Merge ~caleb-ellis/maas:2.6-perf-improvements-jest into maas:2.6

Proposed by Caleb Ellis
Status: Merged
Approved by: Kit Randel
Approved revision: 95e3f8d8f7b68cc7c5e85e384903724969cf7912
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~caleb-ellis/maas:2.6-perf-improvements-jest
Merge into: maas:2.6
Diff against target: 9511 lines (+2763/-2037)
103 files modified
.eslintignore (+1/-0)
.eslintrc.js (+14/-5)
HACKING.rst (+4/-7)
Makefile (+7/-20)
buildout.cfg (+0/-13)
debian/copyright (+0/-4)
dev/null (+0/-85)
jest.config.js (+31/-0)
package.json (+8/-16)
src/maasserver/static/js/angular/controllers/node_details.js (+5/-5)
src/maasserver/static/js/angular/controllers/nodes_list.js (+1/-1)
src/maasserver/static/js/angular/controllers/pods_list.js (+0/-2)
src/maasserver/static/js/angular/controllers/settings.js (+1/-1)
src/maasserver/static/js/angular/controllers/tests/test_add_device.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_add_domain.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_dashboard.js (+3/-3)
src/maasserver/static/js/angular/controllers/tests/test_domain_details.js (+0/-11)
src/maasserver/static/js/angular/controllers/tests/test_fabric_details.js (+0/-15)
src/maasserver/static/js/angular/controllers/tests/test_images.js (+1/-2)
src/maasserver/static/js/angular/controllers/tests/test_node_details.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_node_details_storage.js (+2/-2)
src/maasserver/static/js/angular/controllers/tests/test_node_details_storage_filesystems.js (+1/-1)
src/maasserver/static/js/angular/controllers/tests/test_node_events.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_node_result.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_node_results.js (+12/-4)
src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js (+3/-3)
src/maasserver/static/js/angular/controllers/tests/test_pod_details.js (+1/-0)
src/maasserver/static/js/angular/controllers/tests/test_pods_list.js (+2/-2)
src/maasserver/static/js/angular/controllers/tests/test_settings.js (+2/-0)
src/maasserver/static/js/angular/controllers/tests/test_space_details.js (+0/-14)
src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js (+0/-15)
src/maasserver/static/js/angular/controllers/tests/test_zone_details.js (+0/-11)
src/maasserver/static/js/angular/controllers/tests/test_zones_list.js (+1/-18)
src/maasserver/static/js/angular/directives/login.js (+1/-1)
src/maasserver/static/js/angular/directives/maas_obj_form.js (+2/-3)
src/maasserver/static/js/angular/directives/machines_table.js (+31/-9)
src/maasserver/static/js/angular/directives/script_status.js (+4/-4)
src/maasserver/static/js/angular/directives/tests/test_boot_images.js (+1/-0)
src/maasserver/static/js/angular/directives/tests/test_ipranges.js (+2/-15)
src/maasserver/static/js/angular/directives/tests/test_maas_obj_form.js (+17/-13)
src/maasserver/static/js/angular/directives/tests/test_mac_address.js (+2/-7)
src/maasserver/static/js/angular/directives/tests/test_machines_table.js (+30/-0)
src/maasserver/static/js/angular/directives/tests/test_notifications.js (+2/-0)
src/maasserver/static/js/angular/directives/tests/test_pod_parameters.js (+6/-6)
src/maasserver/static/js/angular/directives/tests/test_proxy_settings.js (+10/-3)
src/maasserver/static/js/angular/directives/tests/test_release_name.js (+0/-8)
src/maasserver/static/js/angular/directives/tests/test_release_options.js (+2/-2)
src/maasserver/static/js/angular/directives/tests/test_script_expander.js (+1/-2)
src/maasserver/static/js/angular/directives/tests/test_script_select.js (+1/-0)
src/maasserver/static/js/angular/directives/tests/test_ssh_keys.js (+1/-0)
src/maasserver/static/js/angular/directives/tests/test_switches_table.js (+1/-2)
src/maasserver/static/js/angular/directives/tests/test_toggle_control.js (+0/-2)
src/maasserver/static/js/angular/directives/tests/test_type.js (+1/-1)
src/maasserver/static/js/angular/directives/tests/test_version_reloader.js (+4/-3)
src/maasserver/static/js/angular/directives/tests/test_window_width.js (+2/-2)
src/maasserver/static/js/angular/entry.js (+4/-9)
src/maasserver/static/js/angular/factories/bootresources.js (+1/-1)
src/maasserver/static/js/angular/factories/general.js (+1/-1)
src/maasserver/static/js/angular/factories/tests/test_bootresources.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_configs.js (+1/-2)
src/maasserver/static/js/angular/factories/tests/test_controllers.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_devices.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_dhcpsnippets.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_general.js (+2/-0)
src/maasserver/static/js/angular/factories/tests/test_machines.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_node_results.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_nodes.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_notifications.js (+0/-17)
src/maasserver/static/js/angular/factories/tests/test_packagerepositories.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_pods.js (+1/-0)
src/maasserver/static/js/angular/factories/tests/test_scripts.js (+1/-2)
src/maasserver/static/js/angular/factories/tests/test_spaces.js (+1/-10)
src/maasserver/static/js/angular/factories/tests/test_switches.js (+1/-0)
src/maasserver/static/js/angular/filters/tests/test_by_subnet.js (+1/-1)
src/maasserver/static/js/angular/services/json.js (+3/-1)
src/maasserver/static/js/angular/services/log.js (+2/-0)
src/maasserver/static/js/angular/services/manager.js (+3/-0)
src/maasserver/static/js/angular/services/tests/test_log.js (+2/-0)
src/maasserver/static/js/angular/services/tests/test_manager.js (+3/-3)
src/maasserver/static/js/angular/services/tests/test_managerhelper.js (+1/-2)
src/maasserver/static/js/angular/services/tests/test_pollingmanager.js (+1/-5)
src/maasserver/static/js/angular/services/tests/test_region.js (+7/-9)
src/maasserver/static/js/angular/services/validation.js (+1/-1)
src/maasserver/static/js/angular/testing/setup-jest.js (+5/-0)
src/maasserver/static/js/angular/testing/setup.js (+2/-0)
src/maasserver/static/js/angular/testing/websocket.js (+2/-0)
src/maasserver/static/js/bundle/maas-min.js (+1/-1)
src/maasserver/static/js/bundle/maas-min.js.map (+1/-1)
src/maasserver/static/partials/dashboard.html (+1/-1)
src/maasserver/static/partials/machines-table.html (+19/-3)
src/maasserver/static/partials/networks-list.html (+2/-2)
src/maasserver/static/partials/node-events.html (+1/-1)
src/maasserver/static/partials/nodes-list.html (+3/-3)
src/maasserver/static/partials/pods-list.html (+1/-1)
src/maasserver/static/partials/subnet-details.html (+1/-1)
src/maasserver/static/partials/switches-table.html (+1/-1)
src/maasserver/static/partials/zones-list.html (+1/-1)
src/maasserver/testing/html-loader.js (+0/-0)
src/maastesting/parallel.py (+7/-2)
src/maastesting/tests/test_parallel.py (+3/-3)
webpack.config.js (+1/-0)
yarn.lock (+2439/-1609)
Reviewer Review Type Date Requested Status
Kit Randel (community) Approve
Review via email: mp+369732@code.launchpad.net

Commit message

Remove vs-repeat, limit machine list groups to 5, replace Karma with Jest

Description of the change

# Done
- Remove vs-repeat package
- Machine groups are now limited to 5 on first load to improve performance
- Karma replaced with Jest for js tests
- Add test-js to make test target, so js tests are actually run in the lander

# QA
- Run make test and check everything passes (incl python tests)
- Check that machine list has groupings of 5 and can be expanded on click

To post a comment you must log in.
95e3f8d... by Caleb Ellis

Remove vs-repeat for real

Revision history for this message
Kit Randel (blr) wrote :

LGTM, tests pass, UI QA's okay.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/.eslintignore b/.eslintignore
2new file mode 100644
3index 0000000..cd090a3
4--- /dev/null
5+++ b/.eslintignore
6@@ -0,0 +1 @@
7+src/maasserver/static/js/angular/3rdparty/
8diff --git a/.eslintrc.js b/.eslintrc.js
9index bded01a..3c59f87 100644
10--- a/.eslintrc.js
11+++ b/.eslintrc.js
12@@ -1,24 +1,33 @@
13 module.exports = {
14 "env": {
15 "browser": true,
16- "es6": true,
17- "jasmine": true
18+ "es6": true
19 },
20- "extends": ["angular", "eslint:recommended"],
21+ "extends": ["eslint:recommended"],
22 "globals": {
23 "__dirname": false,
24+ "$": false,
25+ "afterEach": false,
26 "angular": false,
27 "Atomics": "readonly",
28+ "beforeEach": false,
29+ "describe": false,
30+ "expect": false,
31 "inject": false,
32+ "it": false,
33+ "jasmine": false,
34+ "jest": false,
35+ "MAAS_config": false,
36+ "require": false,
37 "setTimeout": false,
38- "SharedArrayBuffer": "readonly"
39+ "SharedArrayBuffer": "readonly",
40+ "spyOn": false
41 },
42 "parserOptions": {
43 "ecmaVersion": 2018,
44 "sourceType": "module"
45 },
46 "rules": {
47- "angular/di": [2, "function", { "matchNames": true }],
48 "no-unused-vars": [2, { "args": "none" }]
49 }
50 };
51diff --git a/HACKING.rst b/HACKING.rst
52index 8f1c0b9..f040963 100644
53--- a/HACKING.rst
54+++ b/HACKING.rst
55@@ -169,18 +169,15 @@ results to a different file descriptor, to ensure a clean stream.
56 Running JavaScript tests
57 ^^^^^^^^^^^^^^^^^^^^^^^^
58
59-The JavaScript tests are run using Karma_. Chromium and PhantomJS are the
60-default browser but any browser supported by Karma can be used to run the
61-tests.::
62+The JavaScript tests are run using Jest_.::
63
64 $ make test-js
65
66-If you want to run the JavaScript tests in debug mode so you can inspect the
67-code inside of a running browser you can launch Karma_ manually.::
68+Jest tests can be run on change with:::
69
70- $ ./bin/karma start src/maastesting/karma.conf.js --browsers Chrome --no-single-run
71+ $ make test-js-watch
72
73-.. _Karma: http://karma-runner.github.io/
74+.. _Jest: https://jestjs.io/
75
76
77 Frontend development
78diff --git a/Makefile b/Makefile
79index 17d7507..c76850f 100644
80--- a/Makefile
81+++ b/Makefile
82@@ -71,7 +71,6 @@ build: \
83 bin/test.region \
84 bin/test.region.legacy \
85 bin/test.testing \
86- bin/test.js \
87 bin/test.e2e \
88 bin/test.parallel \
89 bin/py bin/ipy \
90@@ -142,10 +141,6 @@ bin/test.cli: bin/buildout buildout.cfg versions.cfg setup.py bin/maas
91 $(buildout) install cli-test
92 @touch --no-create $@
93
94-bin/test.js: bin/karma bin/buildout buildout.cfg versions.cfg setup.py
95- $(buildout) install js-test
96- @touch --no-create $@
97-
98 bin/test.e2e: \
99 bin/protractor bin/buildout buildout.cfg versions.cfg setup.py
100 $(buildout) install e2e-test
101@@ -208,7 +203,6 @@ node_modules: include/nodejs/bin/node bin/yarn
102 @touch --no-create $@
103
104 define js_bins
105- bin/karma
106 bin/protractor
107 bin/node-sass
108 bin/webpack
109@@ -229,24 +223,13 @@ define node_packages
110 babel-loader@^8.0.0-beta.0
111 glob
112 jasmine-core@=2.99.1
113- karma
114- karma-chrome-launcher
115- karma-failed-reporter
116- karma-firefox-launcher
117- karma-jasmine
118- karma-ng-html2js-preprocessor
119- karma-opera-launcher
120- karma-phantomjs-launcher
121- karma-sourcemap-loader
122 macaroon-bakery
123 node-sass
124- phantomjs-prebuilt
125 prop-types
126 protractor
127 react
128 react-dom
129 react2angular
130- uglifyjs-webpack-plugin
131 vanilla-framework
132 vanilla-framework-react
133 webpack
134@@ -264,7 +247,6 @@ define test-scripts
135 bin/test.region
136 bin/test.region.legacy
137 bin/test.testing
138- bin/test.js
139 endef
140
141 lxd:
142@@ -275,9 +257,13 @@ test: bin/test.parallel bin/coverage
143 @$(RM) .coverage .coverage.*
144 @bin/test.parallel --with-coverage --subprocess-per-core
145 @bin/coverage combine
146+ $(MAKE) test-js
147+
148+test-js: javascript
149+ bin/yarn test
150
151-test-js: bin/test.js javascript
152- @bin/test.js
153+test-js-watch: javascript
154+ bin/yarn test --watch
155
156 test-serial: $(strip $(test-scripts))
157 @bin/maas-region makemigrations --dry-run --exit && exit 1 ||:
158@@ -393,6 +379,7 @@ lint-js:
159 -not -path '*-min.js' -a \
160 '(' -name '*.html' -o -name '*.js' ')' -print0 \
161 | xargs -r0 -n20 -P4 $(pocketlint)
162+ bin/yarn lint
163 bin/yarn prettier-check
164
165 # Apply automated formatting to all Python, Sass and Javascript files.
166diff --git a/buildout.cfg b/buildout.cfg
167index 40110f9..c5b893a 100644
168--- a/buildout.cfg
169+++ b/buildout.cfg
170@@ -259,19 +259,6 @@ extra-paths = ${cli:extra-paths}
171 scripts =
172 test.cli
173
174-[js-test]
175-recipe = zc.recipe.egg
176-eggs =
177- ${common:test-eggs}
178-entry-points =
179- test.js=maastesting.karma:run_karma
180-extra-paths =
181- ${common:extra-paths}
182-scripts =
183- test.js
184-initialization =
185- ${common:initialization}
186-
187 [testing-test]
188 recipe = zc.recipe.egg
189 eggs =
190diff --git a/debian/copyright b/debian/copyright
191index 7152152..0127fa2 100644
192--- a/debian/copyright
193+++ b/debian/copyright
194@@ -28,10 +28,6 @@ Files: src/maasserver/static/js/angular/3rdparty/ng-tags-input.js
195 Copyright: Copyright (c) 2013-2015 Michael Benford.
196 License: MIT
197
198-Files: src/maasserver/static/js/angular/3rdparty/vs-repeat.js
199-Copyright: 2018 Kamil Pękala.
200-License: MIT
201-
202 Files: src/maasserver/websockets/websockets.py
203 Copyright: Twisted Matrix Laboratories
204 2011-2012 Oregon State University Open Source Lab
205diff --git a/jest.config.js b/jest.config.js
206new file mode 100644
207index 0000000..5ccd513
208--- /dev/null
209+++ b/jest.config.js
210@@ -0,0 +1,31 @@
211+const config = {
212+ moduleDirectories: [
213+ '<rootDir>/src/maasserver/static/js/angular/',
214+ 'node_modules'
215+ ],
216+ setupFiles: [
217+ '<rootDir>/src/maasserver/static/js/angular/testing/setup-jest.js',
218+ ],
219+ setupFilesAfterEnv: [
220+ '/usr/share/javascript/angular.js/angular.js',
221+ '/usr/share/javascript/angular.js/angular-route.js',
222+ '/usr/share/javascript/angular.js/angular-mocks.js',
223+ '/usr/share/javascript/angular.js/angular-cookies.js',
224+ '/usr/share/javascript/angular.js/angular-sanitize.js',
225+ '<rootDir>/src/maasserver/static/js/angular/3rdparty/ng-tags-input.js',
226+ '<rootDir>/src/maasserver/static/js/angular/entry.js',
227+ '<rootDir>/src/maasserver/static/js/angular/testing/setup.js',
228+
229+ ],
230+ snapshotSerializers: ['enzyme-to-json/serializer'],
231+ testMatch: [
232+ '<rootDir>/src/maasserver/static/js/angular/*/tests/test_*.js'
233+ ],
234+ testURL: 'http://example.com:8000/',
235+ transform: {
236+ '^.+\\.js$': 'babel-jest',
237+ '^.+\\.html?$': 'html-loader-jest'
238+ },
239+};
240+
241+module.exports = config;
242diff --git a/package.json b/package.json
243index bde181d..441d9ce 100644
244--- a/package.json
245+++ b/package.json
246@@ -5,6 +5,7 @@
247 "lint": "eslint ./src/maasserver/static/js/angular/",
248 "prettier": "prettier --write 'src/maasserver/static/**/*.{js,scss}' '!**/build.scss' '!**/*-min.js' '!**/3rdparty/**/*'",
249 "prettier-check": "prettier --check 'src/maasserver/static/**/*.{js,scss}' '!**/build.scss' '!**/*-min.js' '!**/3rdparty/**/*'",
250+ "test": "jest",
251 "watch": "NODE_ENV=development webpack --watch"
252 },
253 "devDependencies": {
254@@ -15,32 +16,23 @@
255 "@types/prop-types": "^15.5.2",
256 "@types/react": "^16.0.40",
257 "@types/react-dom": "^15.5.7",
258+ "babel-jest": "24.8.0",
259 "babel-loader": "^8.0.0-beta.0",
260 "babel-plugin-angularjs-annotate": "^0.10.0",
261+ "enzyme-adapter-react-16": "1.13.2",
262+ "enzyme-to-json": "3.3.5",
263+ "enzyme": "3.9.0",
264 "eslint": "^5.15.3",
265- "eslint-config-angular": "^0.5.0",
266- "eslint-plugin-angular": "^4.0.0",
267 "glob": "^7.1.2",
268- "jasmine-core": "=2.99.1",
269- "karma": "^2.0.0",
270- "karma-chrome-launcher": "^2.2.0",
271- "karma-failed-reporter": "^0.0.3",
272- "karma-firefox-launcher": "^1.1.0",
273- "karma-jasmine": "^1.1.1",
274- "karma-ng-html2js-preprocessor": "^1.0.0",
275- "karma-opera-launcher": "^1.0.0",
276- "karma-phantomjs-launcher": "^1.0.4",
277- "karma-sourcemap-loader": "^0.3.7",
278- "karma-webpack": "^3.0.5",
279+ "html-loader-jest": "0.2.1",
280+ "jest": "24.8.0",
281 "node-sass": "^4.7.2",
282- "phantomjs-prebuilt": "^2.1.16",
283 "prettier": "^1.17.0",
284 "prop-types": "^15.6.1",
285 "protractor": "^5.3.0",
286 "react": "^16.2.0",
287 "react-dom": "^16.2.0",
288 "react2angular": "^3.2.1",
289- "uglifyjs-webpack-plugin": "^1.2.2",
290 "vanilla-framework": "^1.8.0",
291 "vanilla-framework-react": "^0.1.2",
292 "webpack": "^4.1.1",
293@@ -49,6 +41,6 @@
294 },
295 "dependencies": {
296 "babel-polyfill": "^6.26.0",
297- "macaroon-bakery": "^0.2.0"
298+ "macaroon-bakery": "^0.2.1"
299 }
300 }
301diff --git a/src/maasserver/static/js/angular/3rdparty/vs-repeat.js b/src/maasserver/static/js/angular/3rdparty/vs-repeat.js
302deleted file mode 100644
303index b42a6e0..0000000
304--- a/src/maasserver/static/js/angular/3rdparty/vs-repeat.js
305+++ /dev/null
306@@ -1,631 +0,0 @@
307-/*!
308- * Angular Virtual Scroll Repeat v1.1.11
309- * https://github.com/kamilkp/angular-vs-repeat/
310- *
311- * Copyright Kamil Pękala
312- * http://github.com/kamilkp
313- *
314- * Released under the MIT License
315- * https://opensource.org/licenses/MIT
316- *
317- * Date: 2018/03/09
318- *
319- */
320-
321-(function(window, angular) {
322- 'use strict';
323- /* jshint eqnull:true */
324- /* jshint -W038 */
325-
326- // DESCRIPTION:
327- // vsRepeat directive stands for Virtual Scroll Repeat. It turns a standard ngRepeated set of elements in a scrollable container
328- // into a component, where the user thinks he has all the elements rendered and all he needs to do is scroll (without any kind of
329- // pagination - which most users loath) and at the same time the browser isn't overloaded by that many elements/angular bindings etc.
330- // The directive renders only so many elements that can fit into current container's clientHeight/clientWidth.
331-
332- // LIMITATIONS:
333- // - current version only supports an Array as a right-hand-side object for ngRepeat
334- // - all rendered elements must have the same height/width or the sizes of the elements must be known up front
335-
336- // USAGE:
337- // In order to use the vsRepeat directive you need to place a vs-repeat attribute on a direct parent of an element with ng-repeat
338- // example:
339- // <div vs-repeat>
340- // <div ng-repeat="item in someArray">
341- // <!-- content -->
342- // </div>
343- // </div>
344- //
345- // or:
346- // <div vs-repeat>
347- // <div ng-repeat-start="item in someArray">
348- // <!-- content -->
349- // </div>
350- // <div>
351- // <!-- something in the middle -->
352- // </div>
353- // <div ng-repeat-end>
354- // <!-- content -->
355- // </div>
356- // </div>
357- //
358- // You can also measure the single element's height/width (including all paddings and margins), and then speficy it as a value
359- // of the attribute 'vs-repeat'. This can be used if one wants to override the automatically computed element size.
360- // example:
361- // <div vs-repeat="50"> <!-- the specified element height is 50px -->
362- // <div ng-repeat="item in someArray">
363- // <!-- content -->
364- // </div>
365- // </div>
366- //
367- // IMPORTANT!
368- //
369- // - the vsRepeat directive must be applied to a direct parent of an element with ngRepeat
370- // - the value of vsRepeat attribute is the single element's height/width measured in pixels. If none provided, the directive
371- // will compute it automatically
372-
373- // OPTIONAL PARAMETERS (attributes):
374- // vs-repeat-container="selector" - selector for element containing ng-repeat. (defaults to the current element)
375- // vs-scroll-parent="selector" - selector to the scrollable container. The directive will look for a closest parent matching
376- // the given selector (defaults to the current element)
377- // vs-horizontal - stack repeated elements horizontally instead of vertically
378- // vs-offset-before="value" - top/left offset in pixels (defaults to 0)
379- // vs-offset-after="value" - bottom/right offset in pixels (defaults to 0)
380- // vs-excess="value" - an integer number representing the number of elements to be rendered outside of the current container's viewport
381- // (defaults to 2)
382- // vs-size - a property name of the items in collection that is a number denoting the element size (in pixels)
383- // vs-autoresize - use this attribute without vs-size and without specifying element's size. The automatically computed element style will
384- // readjust upon window resize if the size is dependable on the viewport size
385- // vs-scrolled-to-end="callback" - callback will be called when the last item of the list is rendered
386- // vs-scrolled-to-end-offset="integer" - set this number to trigger the scrolledToEnd callback n items before the last gets rendered
387- // vs-scrolled-to-beginning="callback" - callback will be called when the first item of the list is rendered
388- // vs-scrolled-to-beginning-offset="integer" - set this number to trigger the scrolledToBeginning callback n items before the first gets rendered
389-
390- // EVENTS:
391- // - 'vsRepeatTrigger' - an event the directive listens for to manually trigger reinitialization
392- // - 'vsRepeatReinitialized' - an event the directive emits upon reinitialization done
393-
394- var dde = document.documentElement,
395- matchingFunction = dde.matches ? 'matches' :
396- dde.matchesSelector ? 'matchesSelector' :
397- dde.webkitMatches ? 'webkitMatches' :
398- dde.webkitMatchesSelector ? 'webkitMatchesSelector' :
399- dde.msMatches ? 'msMatches' :
400- dde.msMatchesSelector ? 'msMatchesSelector' :
401- dde.mozMatches ? 'mozMatches' :
402- dde.mozMatchesSelector ? 'mozMatchesSelector' : null;
403-
404- var closestElement = angular.element.prototype.closest || function (selector) {
405- var el = this[0].parentNode;
406- while (el !== document.documentElement && el != null && !el[matchingFunction](selector)) {
407- el = el.parentNode;
408- }
409-
410- if (el && el[matchingFunction](selector)) {
411- return angular.element(el);
412- }
413- else {
414- return angular.element();
415- }
416- };
417-
418- function getWindowScroll() {
419- if ('pageYOffset' in window) {
420- return {
421- scrollTop: pageYOffset,
422- scrollLeft: pageXOffset
423- };
424- }
425- else {
426- var sx, sy, d = document, r = d.documentElement, b = d.body;
427- sx = r.scrollLeft || b.scrollLeft || 0;
428- sy = r.scrollTop || b.scrollTop || 0;
429- return {
430- scrollTop: sy,
431- scrollLeft: sx
432- };
433- }
434- }
435-
436- function getClientSize(element, sizeProp) {
437- if (element === window) {
438- return sizeProp === 'clientWidth' ? window.innerWidth : window.innerHeight;
439- }
440- else {
441- return element[sizeProp];
442- }
443- }
444-
445- function getScrollPos(element, scrollProp) {
446- return element === window ? getWindowScroll()[scrollProp] : element[scrollProp];
447- }
448-
449- function getScrollOffset(vsElement, scrollElement, isHorizontal) {
450- var vsPos = vsElement.getBoundingClientRect()[isHorizontal ? 'left' : 'top'];
451- var scrollPos = scrollElement === window ? 0 : scrollElement.getBoundingClientRect()[isHorizontal ? 'left' : 'top'];
452- var correction = vsPos - scrollPos +
453- (scrollElement === window ? getWindowScroll() : scrollElement)[isHorizontal ? 'scrollLeft' : 'scrollTop'];
454-
455- return correction;
456- }
457-
458- var vsRepeatModule = angular.module('vs-repeat', []).directive('vsRepeat', ['$compile', '$parse', function($compile, $parse) {
459- return {
460- restrict: 'A',
461- scope: true,
462- compile: function($element, $attrs) {
463- var repeatContainer = angular.isDefined($attrs.vsRepeatContainer) ? angular.element($element[0].querySelector($attrs.vsRepeatContainer)) : $element,
464- ngRepeatChild = repeatContainer.children().eq(0),
465- ngRepeatExpression,
466- childCloneHtml = ngRepeatChild[0].outerHTML,
467- expressionMatches,
468- lhs,
469- rhs,
470- rhsSuffix,
471- originalNgRepeatAttr,
472- collectionName = '$vs_collection',
473- isNgRepeatStart = false,
474- attributesDictionary = {
475- 'vsRepeat': 'elementSize',
476- 'vsOffsetBefore': 'offsetBefore',
477- 'vsOffsetAfter': 'offsetAfter',
478- 'vsScrolledToEndOffset': 'scrolledToEndOffset',
479- 'vsScrolledToBeginningOffset': 'scrolledToBeginningOffset',
480- 'vsExcess': 'excess',
481- 'vsScrollMargin': 'scrollMargin'
482- };
483-
484- if (ngRepeatChild.attr('ng-repeat')) {
485- originalNgRepeatAttr = 'ng-repeat';
486- ngRepeatExpression = ngRepeatChild.attr('ng-repeat');
487- }
488- else if (ngRepeatChild.attr('data-ng-repeat')) {
489- originalNgRepeatAttr = 'data-ng-repeat';
490- ngRepeatExpression = ngRepeatChild.attr('data-ng-repeat');
491- }
492- else if (ngRepeatChild.attr('ng-repeat-start')) {
493- isNgRepeatStart = true;
494- originalNgRepeatAttr = 'ng-repeat-start';
495- ngRepeatExpression = ngRepeatChild.attr('ng-repeat-start');
496- }
497- else if (ngRepeatChild.attr('data-ng-repeat-start')) {
498- isNgRepeatStart = true;
499- originalNgRepeatAttr = 'data-ng-repeat-start';
500- ngRepeatExpression = ngRepeatChild.attr('data-ng-repeat-start');
501- }
502- else {
503- throw new Error('angular-vs-repeat: no ng-repeat directive on a child element');
504- }
505-
506- expressionMatches = /^\s*(\S+)\s+in\s+([\S\s]+?)(track\s+by\s+\S+)?$/.exec(ngRepeatExpression);
507- lhs = expressionMatches[1];
508- rhs = expressionMatches[2];
509- rhsSuffix = expressionMatches[3];
510-
511- if (isNgRepeatStart) {
512- var index = 0;
513- var repeaterElement = repeatContainer.children().eq(0);
514- while(repeaterElement.attr('ng-repeat-end') == null && repeaterElement.attr('data-ng-repeat-end') == null) {
515- index++;
516- repeaterElement = repeatContainer.children().eq(index);
517- childCloneHtml += repeaterElement[0].outerHTML;
518- }
519- }
520-
521- repeatContainer.empty();
522- return {
523- pre: function($scope, $element, $attrs) {
524- var repeatContainer = angular.isDefined($attrs.vsRepeatContainer) ? angular.element($element[0].querySelector($attrs.vsRepeatContainer)) : $element,
525- childClone = angular.element(childCloneHtml),
526- childTagName = childClone[0].tagName.toLowerCase(),
527- originalCollection = [],
528- originalLength,
529- $$horizontal = typeof $attrs.vsHorizontal !== 'undefined',
530- $beforeContent = angular.element('<' + childTagName + ' class="vs-repeat-before-content"></' + childTagName + '>'),
531- $afterContent = angular.element('<' + childTagName + ' class="vs-repeat-after-content"></' + childTagName + '>'),
532- autoSize = !$attrs.vsRepeat,
533- sizesPropertyExists = !!$attrs.vsSize || !!$attrs.vsSizeProperty,
534- $scrollParent = $attrs.vsScrollParent ?
535- $attrs.vsScrollParent === 'window' ? angular.element(window) :
536- closestElement.call(repeatContainer, $attrs.vsScrollParent) : repeatContainer,
537- $$options = 'vsOptions' in $attrs ? $scope.$eval($attrs.vsOptions) : {},
538- clientSize = $$horizontal ? 'clientWidth' : 'clientHeight',
539- offsetSize = $$horizontal ? 'offsetWidth' : 'offsetHeight',
540- scrollPos = $$horizontal ? 'scrollLeft' : 'scrollTop';
541-
542- $scope.totalSize = 0;
543- if (!('vsSize' in $attrs) && 'vsSizeProperty' in $attrs) {
544- console.warn('vs-size-property attribute is deprecated. Please use vs-size attribute which also accepts angular expressions.');
545- }
546-
547- if ($scrollParent.length === 0) {
548- throw 'Specified scroll parent selector did not match any element';
549- }
550- $scope.$scrollParent = $scrollParent;
551-
552- if (sizesPropertyExists) {
553- $scope.sizesCumulative = [];
554- }
555-
556- //initial defaults
557- $scope.elementSize = (+$attrs.vsRepeat) || getClientSize($scrollParent[0], clientSize) || 50;
558- $scope.offsetBefore = 0;
559- $scope.offsetAfter = 0;
560- $scope.scrollMargin = 0;
561- $scope.excess = 2;
562-
563- if ($$horizontal) {
564- $beforeContent.css('height', '100%');
565- $afterContent.css('height', '100%');
566- }
567- else {
568- $beforeContent.css('width', '100%');
569- $afterContent.css('width', '100%');
570- }
571-
572- Object.keys(attributesDictionary).forEach(function(key) {
573- if ($attrs[key]) {
574- $attrs.$observe(key, function(value) {
575- // '+' serves for getting a number from the string as the attributes are always strings
576- $scope[attributesDictionary[key]] = +value;
577- reinitialize();
578- });
579- }
580- });
581-
582-
583- $scope.$watchCollection(rhs, function(coll) {
584- originalCollection = coll || [];
585- refresh();
586- });
587-
588- function refresh() {
589- if (!originalCollection || originalCollection.length < 1) {
590- $scope[collectionName] = [];
591- originalLength = 0;
592- $scope.sizesCumulative = [0];
593- }
594- else {
595- originalLength = originalCollection.length;
596- if (sizesPropertyExists) {
597- $scope.sizes = originalCollection.map(function(item) {
598- var s = $scope.$new(false);
599- angular.extend(s, item);
600- s[lhs] = item;
601- var size = ($attrs.vsSize || $attrs.vsSizeProperty) ?
602- s.$eval($attrs.vsSize || $attrs.vsSizeProperty) :
603- $scope.elementSize;
604- s.$destroy();
605- return size;
606- });
607- var sum = 0;
608- $scope.sizesCumulative = $scope.sizes.map(function(size) {
609- var res = sum;
610- sum += size;
611- return res;
612- });
613- $scope.sizesCumulative.push(sum);
614- }
615- else {
616- setAutoSize();
617- }
618- }
619-
620- reinitialize();
621- }
622-
623- function setAutoSize() {
624- if (autoSize) {
625- $scope.$$postDigest(function() {
626- if (repeatContainer[0].offsetHeight || repeatContainer[0].offsetWidth) { // element is visible
627- var children = repeatContainer.children(),
628- i = 0,
629- gotSomething = false,
630- insideStartEndSequence = false;
631-
632- while (i < children.length) {
633- if (children[i].attributes[originalNgRepeatAttr] != null || insideStartEndSequence) {
634- if (!gotSomething) {
635- $scope.elementSize = 0;
636- }
637-
638- gotSomething = true;
639- if (children[i][offsetSize]) {
640- $scope.elementSize += children[i][offsetSize];
641- }
642-
643- if (isNgRepeatStart) {
644- if (children[i].attributes['ng-repeat-end'] != null || children[i].attributes['data-ng-repeat-end'] != null) {
645- break;
646- }
647- else {
648- insideStartEndSequence = true;
649- }
650- }
651- else {
652- break;
653- }
654- }
655- i++;
656- }
657-
658- if (gotSomething) {
659- reinitialize();
660- autoSize = false;
661- if ($scope.$root && !$scope.$root.$$phase) {
662- $scope.$apply();
663- }
664- }
665- }
666- else {
667- var dereg = $scope.$watch(function() {
668- if (repeatContainer[0].offsetHeight || repeatContainer[0].offsetWidth) {
669- dereg();
670- setAutoSize();
671- }
672- });
673- }
674- });
675- }
676- }
677-
678- function getLayoutProp() {
679- var layoutPropPrefix = childTagName === 'tr' ? '' : 'min-';
680- var layoutProp = $$horizontal ? layoutPropPrefix + 'width' : layoutPropPrefix + 'height';
681- return layoutProp;
682- }
683-
684- childClone.eq(0).attr(originalNgRepeatAttr, lhs + ' in ' + collectionName + (rhsSuffix ? ' ' + rhsSuffix : ''));
685- childClone.addClass('vs-repeat-repeated-element');
686-
687- repeatContainer.append($beforeContent);
688- repeatContainer.append(childClone);
689- $compile(childClone)($scope);
690- repeatContainer.append($afterContent);
691-
692- $scope.startIndex = 0;
693- $scope.endIndex = 0;
694-
695- function scrollHandler() {
696- if (updateInnerCollection()) {
697- $scope.$digest();
698-
699- var expectedSize = sizesPropertyExists ?
700- $scope.sizesCumulative[originalLength] :
701- $scope.elementSize * originalLength;
702-
703- if (expectedSize !== $element[0].clientHeight) {
704- console.warn('vsRepeat: size mismatch. Expected size ' + expectedSize + 'px whereas actual size is ' + $element[0].clientHeight + 'px. Fix vsSize on element:', $element[0]);
705- }
706- }
707- }
708-
709- $scrollParent.on('scroll', scrollHandler);
710-
711- function onWindowResize() {
712- if (typeof $attrs.vsAutoresize !== 'undefined') {
713- autoSize = true;
714- setAutoSize();
715- if ($scope.$root && !$scope.$root.$$phase) {
716- $scope.$apply();
717- }
718- }
719- if (updateInnerCollection()) {
720- $scope.$apply();
721- }
722- }
723-
724- angular.element(window).on('resize', onWindowResize);
725- $scope.$on('$destroy', function() {
726- angular.element(window).off('resize', onWindowResize);
727- $scrollParent.off('scroll', scrollHandler);
728- });
729-
730- $scope.$on('vsRepeatTrigger', refresh);
731-
732- $scope.$on('vsRepeatResize', function() {
733- autoSize = true;
734- setAutoSize();
735- });
736-
737- var _prevStartIndex,
738- _prevEndIndex,
739- _minStartIndex,
740- _maxEndIndex;
741-
742- $scope.$on('vsRenderAll', function() {//e , quantum) {
743- if($$options.latch) {
744- setTimeout(function() {
745- // var __endIndex = Math.min($scope.endIndex + (quantum || 1), originalLength);
746- var __endIndex = originalLength;
747- _maxEndIndex = Math.max(__endIndex, _maxEndIndex);
748- $scope.endIndex = $$options.latch ? _maxEndIndex : __endIndex;
749- $scope[collectionName] = originalCollection.slice($scope.startIndex, $scope.endIndex);
750- _prevEndIndex = $scope.endIndex;
751-
752- $scope.$$postDigest(function() {
753- $beforeContent.css(getLayoutProp(), 0);
754- $afterContent.css(getLayoutProp(), 0);
755- });
756-
757- $scope.$apply(function() {
758- $scope.$emit('vsRenderAllDone');
759- });
760- });
761- }
762- });
763-
764- function reinitialize() {
765- _prevStartIndex = void 0;
766- _prevEndIndex = void 0;
767- _minStartIndex = originalLength;
768- _maxEndIndex = 0;
769- updateTotalSize(sizesPropertyExists ?
770- $scope.sizesCumulative[originalLength] :
771- $scope.elementSize * originalLength
772- );
773- updateInnerCollection();
774-
775- $scope.$emit('vsRepeatReinitialized', $scope.startIndex, $scope.endIndex);
776- }
777-
778- function updateTotalSize(size) {
779- $scope.totalSize = $scope.offsetBefore + size + $scope.offsetAfter;
780- }
781-
782- var _prevClientSize;
783- function reinitOnClientHeightChange() {
784- var ch = getClientSize($scrollParent[0], clientSize);
785- if (ch !== _prevClientSize) {
786- reinitialize();
787- if ($scope.$root && !$scope.$root.$$phase) {
788- $scope.$apply();
789- }
790- }
791- _prevClientSize = ch;
792- }
793-
794- $scope.$watch(function() {
795- if (typeof window.requestAnimationFrame === 'function') {
796- window.requestAnimationFrame(reinitOnClientHeightChange);
797- }
798- else {
799- reinitOnClientHeightChange();
800- }
801- });
802-
803- function updateInnerCollection() {
804- var $scrollPosition = getScrollPos($scrollParent[0], scrollPos);
805- var $clientSize = getClientSize($scrollParent[0], clientSize);
806-
807- var scrollOffset = repeatContainer[0] === $scrollParent[0] ? 0 : getScrollOffset(
808- repeatContainer[0],
809- $scrollParent[0],
810- $$horizontal
811- );
812-
813- var __startIndex = $scope.startIndex;
814- var __endIndex = $scope.endIndex;
815-
816- if (sizesPropertyExists) {
817- __startIndex = 0;
818- while ($scope.sizesCumulative[__startIndex] < $scrollPosition - $scope.offsetBefore - scrollOffset - $scope.scrollMargin) {
819- __startIndex++;
820- }
821- if (__startIndex > 0) { __startIndex--; }
822-
823- // Adjust the start index according to the excess
824- __startIndex = Math.max(
825- Math.floor(__startIndex - $scope.excess / 2),
826- 0
827- );
828-
829- __endIndex = __startIndex;
830- while ($scope.sizesCumulative[__endIndex] < $scrollPosition - $scope.offsetBefore - scrollOffset + $scope.scrollMargin + $clientSize) {
831- __endIndex++;
832- }
833-
834- // Adjust the end index according to the excess
835- __endIndex = Math.min(
836- Math.ceil(__endIndex + $scope.excess / 2),
837- originalLength
838- );
839- }
840- else {
841- __startIndex = Math.max(
842- Math.floor(
843- ($scrollPosition - $scope.offsetBefore - scrollOffset) / $scope.elementSize
844- ) - $scope.excess / 2,
845- 0
846- );
847-
848- __endIndex = Math.min(
849- __startIndex + Math.ceil(
850- $clientSize / $scope.elementSize
851- ) + $scope.excess,
852- originalLength
853- );
854- }
855-
856- _minStartIndex = Math.min(__startIndex, _minStartIndex);
857- _maxEndIndex = Math.max(__endIndex, _maxEndIndex);
858-
859- $scope.startIndex = $$options.latch ? _minStartIndex : __startIndex;
860- $scope.endIndex = $$options.latch ? _maxEndIndex : __endIndex;
861-
862- // Move to the end of the collection if we are now past it
863- if (_maxEndIndex < $scope.startIndex)
864- $scope.startIndex = _maxEndIndex;
865-
866- var digestRequired = false;
867- if (_prevStartIndex == null) {
868- digestRequired = true;
869- }
870- else if (_prevEndIndex == null) {
871- digestRequired = true;
872- }
873-
874- if (!digestRequired) {
875- if ($$options.hunked) {
876- if (Math.abs($scope.startIndex - _prevStartIndex) >= $scope.excess / 2 ||
877- ($scope.startIndex === 0 && _prevStartIndex !== 0)) {
878- digestRequired = true;
879- }
880- else if (Math.abs($scope.endIndex - _prevEndIndex) >= $scope.excess / 2 ||
881- ($scope.endIndex === originalLength && _prevEndIndex !== originalLength)) {
882- digestRequired = true;
883- }
884- }
885- else {
886- digestRequired = $scope.startIndex !== _prevStartIndex ||
887- $scope.endIndex !== _prevEndIndex;
888- }
889- }
890-
891- if (digestRequired) {
892- $scope[collectionName] = originalCollection.slice($scope.startIndex, $scope.endIndex);
893-
894- // Emit the event
895- $scope.$emit('vsRepeatInnerCollectionUpdated', $scope.startIndex, $scope.endIndex, _prevStartIndex, _prevEndIndex);
896- var triggerIndex;
897- if ($attrs.vsScrolledToEnd) {
898- triggerIndex = originalCollection.length - ($scope.scrolledToEndOffset || 0);
899- if (($scope.endIndex >= triggerIndex && _prevEndIndex < triggerIndex) || (originalCollection.length && $scope.endIndex === originalCollection.length)) {
900- $scope.$eval($attrs.vsScrolledToEnd);
901- }
902- }
903- if ($attrs.vsScrolledToBeginning) {
904- triggerIndex = $scope.scrolledToBeginningOffset || 0;
905- if (($scope.startIndex <= triggerIndex && _prevStartIndex > $scope.startIndex)) {
906- $scope.$eval($attrs.vsScrolledToBeginning);
907- }
908- }
909-
910- _prevStartIndex = $scope.startIndex;
911- _prevEndIndex = $scope.endIndex;
912-
913- var offsetCalculationString = sizesPropertyExists ?
914- '(sizesCumulative[$index + startIndex] + offsetBefore)' :
915- '(($index + startIndex) * elementSize + offsetBefore)';
916-
917- var parsed = $parse(offsetCalculationString);
918- var o1 = parsed($scope, {$index: 0});
919- var o2 = parsed($scope, {$index: $scope[collectionName].length});
920- var total = $scope.totalSize;
921-
922- $beforeContent.css(getLayoutProp(), o1 + 'px');
923- $afterContent.css(getLayoutProp(), (total - o2) + 'px');
924- }
925-
926- return digestRequired;
927- }
928- }
929- };
930- }
931- };
932- }]);
933-
934- if (typeof module !== 'undefined' && module.exports) {
935- module.exports = vsRepeatModule.name;
936- }
937-})(window, window.angular);
938diff --git a/src/maasserver/static/js/angular/controllers/node_details.js b/src/maasserver/static/js/angular/controllers/node_details.js
939index d8cc6ba..05e33cf 100644
940--- a/src/maasserver/static/js/angular/controllers/node_details.js
941+++ b/src/maasserver/static/js/angular/controllers/node_details.js
942@@ -1219,20 +1219,20 @@ function NodeDetailsController(
943 // NEW
944 case 0:
945 // COMMISSIONING
946- case 1:
947+ case 1: // eslint-disable-line no-fallthrough
948 // FAILED_COMMISSIONING
949- case 2:
950+ case 2: // eslint-disable-line no-fallthrough
951 // TESTING
952- case 21:
953+ case 21: // eslint-disable-line no-fallthrough
954 // FAILED_TESTING
955- case 22:
956+ case 22: // eslint-disable-line no-fallthrough
957 return false;
958 }
959 switch ($scope.node.testing_status) {
960 // Tests haven't been run
961 case -1:
962 // Tests have passed
963- case 2:
964+ case 2: // eslint-disable-line no-fallthrough
965 return false;
966 }
967 return true;
968diff --git a/src/maasserver/static/js/angular/controllers/nodes_list.js b/src/maasserver/static/js/angular/controllers/nodes_list.js
969index 8694e59..cde6ec0 100644
970--- a/src/maasserver/static/js/angular/controllers/nodes_list.js
971+++ b/src/maasserver/static/js/angular/controllers/nodes_list.js
972@@ -1148,7 +1148,7 @@ function NodesListController(
973 var machinesText = "";
974
975 if (selectedItemsCount === 1) {
976- var singular = true;
977+ singular = true;
978 }
979
980 if (singular) {
981diff --git a/src/maasserver/static/js/angular/controllers/pods_list.js b/src/maasserver/static/js/angular/controllers/pods_list.js
982index 27865d2..0b7d01c 100644
983--- a/src/maasserver/static/js/angular/controllers/pods_list.js
984+++ b/src/maasserver/static/js/angular/controllers/pods_list.js
985@@ -171,8 +171,6 @@ function PodsListController(
986
987 // Perform the action on all pods.
988 $scope.actionGo = function() {
989- var extra = {};
990-
991 // Setup actionProgress.
992 resetActionProgress();
993 $scope.action.progress.total = $scope.selectedItems.length;
994diff --git a/src/maasserver/static/js/angular/controllers/settings.js b/src/maasserver/static/js/angular/controllers/settings.js
995index 82663bf..194914c 100644
996--- a/src/maasserver/static/js/angular/controllers/settings.js
997+++ b/src/maasserver/static/js/angular/controllers/settings.js
998@@ -221,7 +221,7 @@ function SettingsController(
999 DHCPSnippetsManager.updateItem(snippet).then(null, function(error) {
1000 // Revert state change and clear toggling.
1001 snippet.enabled = !snippet.enabled;
1002- console.log(error);
1003+ console.log(error); // eslint-disable-line no-console
1004 });
1005 };
1006
1007diff --git a/src/maasserver/static/js/angular/controllers/tests/test_add_device.js b/src/maasserver/static/js/angular/controllers/tests/test_add_device.js
1008index 76acfcd..e98c627 100644
1009--- a/src/maasserver/static/js/angular/controllers/tests/test_add_device.js
1010+++ b/src/maasserver/static/js/angular/controllers/tests/test_add_device.js
1011@@ -5,6 +5,7 @@
1012 */
1013
1014 import { makeName } from "testing/utils";
1015+import MockWebSocket from "testing/websocket";
1016
1017 describe("AddDeviceController", function() {
1018 // Load the MAAS module.
1019diff --git a/src/maasserver/static/js/angular/controllers/tests/test_add_domain.js b/src/maasserver/static/js/angular/controllers/tests/test_add_domain.js
1020index 8dd393d..7569752 100644
1021--- a/src/maasserver/static/js/angular/controllers/tests/test_add_domain.js
1022+++ b/src/maasserver/static/js/angular/controllers/tests/test_add_domain.js
1023@@ -5,6 +5,7 @@
1024 */
1025
1026 import { makeName } from "testing/utils";
1027+import MockWebSocket from "testing/websocket";
1028
1029 describe("AddDomainController", function() {
1030 // Load the MAAS module.
1031diff --git a/src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js b/src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js
1032index ebd3e52..ec18513 100644
1033--- a/src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js
1034+++ b/src/maasserver/static/js/angular/controllers/tests/test_add_hardware.js
1035@@ -5,6 +5,7 @@
1036 */
1037
1038 import { makeName } from "testing/utils";
1039+import MockWebSocket from "testing/websocket";
1040
1041 describe("AddHardwareController", function() {
1042 // Load the MAAS module.
1043diff --git a/src/maasserver/static/js/angular/controllers/tests/test_dashboard.js b/src/maasserver/static/js/angular/controllers/tests/test_dashboard.js
1044index 17765b8..10bbc0b 100644
1045--- a/src/maasserver/static/js/angular/controllers/tests/test_dashboard.js
1046+++ b/src/maasserver/static/js/angular/controllers/tests/test_dashboard.js
1047@@ -38,11 +38,11 @@ describe("DashboardController", function() {
1048
1049 // Makes the DashboardController
1050 function makeController(loadManagerDefer) {
1051- var loadManagers = spyOn(ManagerHelperService, "loadManagers");
1052+ var loadManagers = jest.spyOn(ManagerHelperService, "loadManagers");
1053 if (angular.isObject(loadManagerDefer)) {
1054- loadManagers.and.returnValue(loadManagerDefer.promise);
1055+ loadManagers.mockReturnValue(loadManagerDefer.promise);
1056 } else {
1057- loadManagers.and.returnValue($q.defer().promise);
1058+ loadManagers.mockReturnValue($q.defer().promise);
1059 }
1060
1061 // Create the controller.
1062diff --git a/src/maasserver/static/js/angular/controllers/tests/test_domain_details.js b/src/maasserver/static/js/angular/controllers/tests/test_domain_details.js
1063index 88987ba..e1ab340 100644
1064--- a/src/maasserver/static/js/angular/controllers/tests/test_domain_details.js
1065+++ b/src/maasserver/static/js/angular/controllers/tests/test_domain_details.js
1066@@ -96,17 +96,6 @@ describe("DomainDetailsController", function() {
1067 expect($rootScope.page).toBe("domains");
1068 });
1069
1070- it(
1071- "calls loadManagers with [DomainsManager, UsersManager]" +
1072- function() {
1073- makeController();
1074- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith($scope, [
1075- DomainsManager,
1076- UsersManager
1077- ]);
1078- }
1079- );
1080-
1081 it("raises error if domain identifier is invalid", function() {
1082 spyOn(DomainsManager, "setActiveItem").and.returnValue($q.defer().promise);
1083 spyOn(ErrorService, "raiseError").and.returnValue($q.defer().promise);
1084diff --git a/src/maasserver/static/js/angular/controllers/tests/test_fabric_details.js b/src/maasserver/static/js/angular/controllers/tests/test_fabric_details.js
1085index 053af6e..37c4159 100644
1086--- a/src/maasserver/static/js/angular/controllers/tests/test_fabric_details.js
1087+++ b/src/maasserver/static/js/angular/controllers/tests/test_fabric_details.js
1088@@ -103,21 +103,6 @@ describe("FabricDetailsController", function() {
1089 expect($rootScope.page).toBe("networks");
1090 });
1091
1092- it(
1093- "calls loadManagers with correct managers" +
1094- function() {
1095- makeController();
1096- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith($scope, [
1097- FabricsManager,
1098- VLANsManager,
1099- SubnetsManager,
1100- SpacesManager,
1101- ControllersManager,
1102- UsersManager
1103- ]);
1104- }
1105- );
1106-
1107 it("raises error if fabric identifier is invalid", function() {
1108 spyOn(FabricsManager, "setActiveItem").and.returnValue($q.defer().promise);
1109 spyOn(ErrorService, "raiseError").and.returnValue($q.defer().promise);
1110diff --git a/src/maasserver/static/js/angular/controllers/tests/test_images.js b/src/maasserver/static/js/angular/controllers/tests/test_images.js
1111index e80136e..d61440c 100644
1112--- a/src/maasserver/static/js/angular/controllers/tests/test_images.js
1113+++ b/src/maasserver/static/js/angular/controllers/tests/test_images.js
1114@@ -9,11 +9,10 @@ describe("ImagesController", function() {
1115 beforeEach(angular.mock.module("MAAS"));
1116
1117 // Grab the needed angular pieces.
1118- var $controller, $rootScope, $location, $scope, $q;
1119+ var $controller, $rootScope, $scope, $q;
1120 beforeEach(inject(function($injector) {
1121 $controller = $injector.get("$controller");
1122 $rootScope = $injector.get("$rootScope");
1123- $location = $injector.get("$location");
1124 $scope = $rootScope.$new();
1125 $q = $injector.get("$q");
1126 }));
1127diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_details.js b/src/maasserver/static/js/angular/controllers/tests/test_node_details.js
1128index cb01954..f330806 100644
1129--- a/src/maasserver/static/js/angular/controllers/tests/test_node_details.js
1130+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_details.js
1131@@ -5,6 +5,7 @@
1132 */
1133
1134 import { makeInteger, makeName } from "testing/utils";
1135+import MockWebSocket from "testing/websocket";
1136
1137 // Make a fake user.
1138 var userId = 0;
1139diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage.js b/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage.js
1140index 270b011..e271559 100644
1141--- a/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage.js
1142+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage.js
1143@@ -5,6 +5,7 @@
1144 */
1145
1146 import { makeInteger, makeName } from "testing/utils";
1147+import MockWebSocket from "testing/websocket";
1148
1149 describe("removeAvailableByNew", function() {
1150 // Load the MAAS module.
1151@@ -4016,8 +4017,7 @@ describe("NodeStorageController", function() {
1152 devices.push({});
1153 }
1154 $scope.availableNew.devices = devices;
1155- expect(
1156- $scope.getTotalNumberOfAvailableSpares(),
1157+ expect($scope.getTotalNumberOfAvailableSpares()).toBe(
1158 count - mode.min_disks
1159 );
1160 }
1161diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage_filesystems.js b/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage_filesystems.js
1162index ae63268..c26c648 100644
1163--- a/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage_filesystems.js
1164+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_details_storage_filesystems.js
1165@@ -3,7 +3,7 @@ describe("NodeAddSpecialFilesystemController", function() {
1166 beforeEach(angular.mock.module("MAAS"));
1167
1168 // Grab the needed angular pieces.
1169- var $controller, $rootScope, $parentScope, $scope, $q;
1170+ var $controller, $rootScope, $parentScope, $scope;
1171 beforeEach(inject(function($injector) {
1172 $controller = $injector.get("$controller");
1173 $rootScope = $injector.get("$rootScope");
1174diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_events.js b/src/maasserver/static/js/angular/controllers/tests/test_node_events.js
1175index b0d7d64..b5d3f85 100644
1176--- a/src/maasserver/static/js/angular/controllers/tests/test_node_events.js
1177+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_events.js
1178@@ -5,6 +5,7 @@
1179 */
1180
1181 import { makeName } from "testing/utils";
1182+import MockWebSocket from "testing/websocket";
1183
1184 describe("NodeEventsController", function() {
1185 // Load the MAAS module.
1186diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_result.js b/src/maasserver/static/js/angular/controllers/tests/test_node_result.js
1187index 421b378..55ef653 100644
1188--- a/src/maasserver/static/js/angular/controllers/tests/test_node_result.js
1189+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_result.js
1190@@ -5,6 +5,7 @@
1191 */
1192
1193 import { makeFakeResponse, makeInteger, makeName } from "testing/utils";
1194+import MockWebSocket from "testing/websocket";
1195
1196 describe("NodeResultController", function() {
1197 // Load the MAAS module.
1198diff --git a/src/maasserver/static/js/angular/controllers/tests/test_node_results.js b/src/maasserver/static/js/angular/controllers/tests/test_node_results.js
1199index f8cfaa8..400da22 100644
1200--- a/src/maasserver/static/js/angular/controllers/tests/test_node_results.js
1201+++ b/src/maasserver/static/js/angular/controllers/tests/test_node_results.js
1202@@ -10,6 +10,7 @@ import {
1203 makeName,
1204 pickItem
1205 } from "testing/utils";
1206+import MockWebSocket from "testing/websocket";
1207
1208 // 2019-04-30 Caleb - Syntax error `import { ScriptStatus }from "../../enum"`;
1209 // TODO - Fix es module imports in test files
1210@@ -270,7 +271,6 @@ describe("NodeResultsController", function() {
1211 var defer = $q.defer();
1212 makeController(defer);
1213 MachinesManager._activeItem = node;
1214- var manager = NodeResultsManagerFactory.getManager(node);
1215 var loadDefer = $q.defer();
1216
1217 defer.resolve();
1218@@ -286,8 +286,6 @@ describe("NodeResultsController", function() {
1219 $scope.section = { area: "logs" };
1220 MachinesManager._activeItem = node;
1221 webSocket.returnData.push(makeFakeResponse([]));
1222- var manager = NodeResultsManagerFactory.getManager(node);
1223-
1224 defer.resolve();
1225 $rootScope.$digest();
1226 var expectFunc;
1227@@ -482,7 +480,17 @@ describe("NodeResultsController", function() {
1228 defer.resolve();
1229 loadItems_defer.resolve();
1230 $rootScope.$digest();
1231- expect($scope.logs.availableOptions[0].id, installation_result.id);
1232+ var expectFunc;
1233+ expectFunc = function() {
1234+ if ($scope.resultsLoaded) {
1235+ expect($scope.logs.availableOptions[0].id).toBe(
1236+ installation_result.id
1237+ );
1238+ } else {
1239+ setTimeout(expectFunc);
1240+ }
1241+ };
1242+ setTimeout(expectFunc);
1243 });
1244 });
1245
1246diff --git a/src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js b/src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js
1247index 4592b0b..2ee1c8b 100644
1248--- a/src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js
1249+++ b/src/maasserver/static/js/angular/controllers/tests/test_nodes_list.js
1250@@ -5,6 +5,7 @@
1251 */
1252
1253 import { makeInteger, makeName } from "testing/utils";
1254+import MockWebSocket from "testing/websocket";
1255
1256 // Make a fake user.
1257 var userId = 0;
1258@@ -447,7 +448,7 @@ describe("NodesListController", function() {
1259 if (tab === "controllers") {
1260 registerUrl = makeName("url");
1261 registerSecret = makeName("secret");
1262- MAAS_config = {
1263+ window.MAAS_config = {
1264 register_url: registerUrl,
1265 register_secret: registerSecret
1266 };
1267@@ -748,7 +749,7 @@ describe("NodesListController", function() {
1268
1269 it(`sets allViewableChecked to false when
1270 not all objects selected`, function() {
1271- var object2 = makeObject(tab);
1272+ makeObject(tab);
1273 $scope.toggleChecked(object, tab);
1274 expect(tabObj.allViewableChecked).toBe(false);
1275 });
1276@@ -1317,7 +1318,6 @@ describe("NodesListController", function() {
1277 spyOn($scope.tabs[tab].manager, "performAction").and.returnValue(
1278 defer.promise
1279 );
1280- var spy = spyOn($scope.tabs[tab].manager, "unselectItem");
1281 $scope.tabs[tab].actionOption = { name: "start" };
1282 $scope.tabs[tab].selectedItems = [object];
1283 $scope.actionGo(tab);
1284diff --git a/src/maasserver/static/js/angular/controllers/tests/test_pod_details.js b/src/maasserver/static/js/angular/controllers/tests/test_pod_details.js
1285index 8f07791..be8fe1c 100644
1286--- a/src/maasserver/static/js/angular/controllers/tests/test_pod_details.js
1287+++ b/src/maasserver/static/js/angular/controllers/tests/test_pod_details.js
1288@@ -5,6 +5,7 @@
1289 */
1290
1291 import { makeName } from "testing/utils";
1292+import MockWebSocket from "testing/websocket";
1293
1294 describe("PodDetailsController", function() {
1295 // Load the MAAS module.
1296diff --git a/src/maasserver/static/js/angular/controllers/tests/test_pods_list.js b/src/maasserver/static/js/angular/controllers/tests/test_pods_list.js
1297index 4584d73..116b682 100644
1298--- a/src/maasserver/static/js/angular/controllers/tests/test_pods_list.js
1299+++ b/src/maasserver/static/js/angular/controllers/tests/test_pods_list.js
1300@@ -5,6 +5,7 @@
1301 */
1302
1303 import { makeInteger, makeName } from "testing/utils";
1304+import MockWebSocket from "testing/websocket";
1305
1306 describe("PodsListController", function() {
1307 // Load the MAAS module.
1308@@ -215,7 +216,7 @@ describe("PodsListController", function() {
1309 it(
1310 "sets allViewableChecked to false when not all objects " + "selected",
1311 function() {
1312- var pod2 = makePod();
1313+ makePod();
1314 $scope.toggleChecked(pod);
1315 expect($scope.allViewableChecked).toBe(false);
1316 }
1317@@ -352,7 +353,6 @@ describe("PodsListController", function() {
1318 spyOn($scope, "hasActionsInProgress").and.returnValue(false);
1319 var defer = $q.defer();
1320 var refresh = jasmine.createSpy("refresh").and.returnValue(defer.promise);
1321- var spy = spyOn(PodsManager, "unselectItem");
1322 $scope.action.option = { name: "refresh", operation: refresh };
1323 $scope.selectedItems = [pod];
1324 $scope.actionGo();
1325diff --git a/src/maasserver/static/js/angular/controllers/tests/test_settings.js b/src/maasserver/static/js/angular/controllers/tests/test_settings.js
1326index f0db366..8c32cb3 100644
1327--- a/src/maasserver/static/js/angular/controllers/tests/test_settings.js
1328+++ b/src/maasserver/static/js/angular/controllers/tests/test_settings.js
1329@@ -5,6 +5,7 @@
1330 */
1331
1332 import { makeInteger, makeName } from "testing/utils";
1333+import MockWebSocket from "testing/websocket";
1334
1335 describe("SettingsController", function() {
1336 // Load the MAAS module.
1337@@ -577,6 +578,7 @@ describe("SettingsController", function() {
1338 defer.reject(errorMsg);
1339 $scope.$digest();
1340 expect(snippet.enabled).toBe(false);
1341+ // eslint-disable-next-line no-console
1342 expect(console.log).toHaveBeenCalledWith(errorMsg);
1343 });
1344 });
1345diff --git a/src/maasserver/static/js/angular/controllers/tests/test_space_details.js b/src/maasserver/static/js/angular/controllers/tests/test_space_details.js
1346index 96cfa25..2bbd9e3 100644
1347--- a/src/maasserver/static/js/angular/controllers/tests/test_space_details.js
1348+++ b/src/maasserver/static/js/angular/controllers/tests/test_space_details.js
1349@@ -103,20 +103,6 @@ describe("SpaceDetailsController", function() {
1350 expect($rootScope.page).toBe("networks");
1351 });
1352
1353- it(
1354- "calls loadManagers with correct managers" +
1355- function() {
1356- makeController();
1357- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith($scope, [
1358- SpacesManager,
1359- VLANsManager,
1360- SubnetsManager,
1361- FabricsManager,
1362- UsersManager
1363- ]);
1364- }
1365- );
1366-
1367 it("raises error if space identifier is invalid", function() {
1368 spyOn(SpacesManager, "setActiveItem").and.returnValue($q.defer().promise);
1369 spyOn(ErrorService, "raiseError").and.returnValue($q.defer().promise);
1370diff --git a/src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js b/src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js
1371index 9c0240b..6e69cb4 100644
1372--- a/src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js
1373+++ b/src/maasserver/static/js/angular/controllers/tests/test_subnet_details.js
1374@@ -142,21 +142,6 @@ describe("SubnetDetailsController", function() {
1375 expect($rootScope.page).toBe("networks");
1376 });
1377
1378- it(
1379- "calls loadManagers with required managers" +
1380- function() {
1381- makeController();
1382- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith($scope, [
1383- ConfigsManager,
1384- SubnetsManager,
1385- IPRangesManager,
1386- SpacesManager,
1387- VLANsManager,
1388- FabricsManager
1389- ]);
1390- }
1391- );
1392-
1393 it("raises error if subnet identifier is invalid", function() {
1394 spyOn(SubnetsManager, "setActiveItem").and.returnValue($q.defer().promise);
1395 spyOn(ConfigsManager, "getItemFromList").and.returnValue({
1396diff --git a/src/maasserver/static/js/angular/controllers/tests/test_zone_details.js b/src/maasserver/static/js/angular/controllers/tests/test_zone_details.js
1397index c806b7f..252ccbf 100644
1398--- a/src/maasserver/static/js/angular/controllers/tests/test_zone_details.js
1399+++ b/src/maasserver/static/js/angular/controllers/tests/test_zone_details.js
1400@@ -94,17 +94,6 @@ describe("ZoneDetailsController", function() {
1401 expect($rootScope.page).toBe("zones");
1402 });
1403
1404- it(
1405- "calls loadManagers with [ZonesManager, UsersManager]" +
1406- function() {
1407- makeController();
1408- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith($scope, [
1409- ZonesManager,
1410- UsersManager
1411- ]);
1412- }
1413- );
1414-
1415 it("raises error if zone identifier is invalid", function() {
1416 spyOn(ZonesManager, "setActiveItem").and.returnValue($q.defer().promise);
1417 spyOn(ErrorService, "raiseError").and.returnValue($q.defer().promise);
1418diff --git a/src/maasserver/static/js/angular/controllers/tests/test_zones_list.js b/src/maasserver/static/js/angular/controllers/tests/test_zones_list.js
1419index bfd2e56..0084b8a 100644
1420--- a/src/maasserver/static/js/angular/controllers/tests/test_zones_list.js
1421+++ b/src/maasserver/static/js/angular/controllers/tests/test_zones_list.js
1422@@ -20,7 +20,7 @@ describe("ZonesListController", function() {
1423
1424 // Load the managers and services.
1425 var ZonesManager, UsersManager;
1426- var ManagerHelperService, RegionConnection;
1427+ var ManagerHelperService;
1428 beforeEach(inject(function($injector) {
1429 ZonesManager = $injector.get("ZonesManager");
1430 UsersManager = $injector.get("UsersManager");
1431@@ -97,21 +97,4 @@ describe("ZonesListController", function() {
1432 expect($scope.action.obj).not.toBe(obj);
1433 });
1434 });
1435-
1436- setupController = function(zones) {
1437- var defer = $q.defer();
1438- var controller = makeController(defer);
1439- $scope.zones = zones;
1440- ZonesManager._items = zones;
1441- defer.resolve();
1442- $rootScope.$digest();
1443- return controller;
1444- };
1445-
1446- testUpdates = function(controller, zones, expectedZonesData) {
1447- $scope.zones = zones;
1448- ZonesManager._items = zones;
1449- $rootScope.$digest();
1450- expect($scope.data).toEqual(expectedZonesData);
1451- };
1452 });
1453diff --git a/src/maasserver/static/js/angular/directives/login.js b/src/maasserver/static/js/angular/directives/login.js
1454index ecefdd2..c75acd3 100644
1455--- a/src/maasserver/static/js/angular/directives/login.js
1456+++ b/src/maasserver/static/js/angular/directives/login.js
1457@@ -4,7 +4,7 @@
1458 * Login button for external authentication.
1459 */
1460
1461-const bakery = require("macaroon-bakery");
1462+import bakery from "macaroon-bakery";
1463
1464 export function getBakery() {
1465 return function(visitPage) {
1466diff --git a/src/maasserver/static/js/angular/directives/maas_obj_form.js b/src/maasserver/static/js/angular/directives/maas_obj_form.js
1467index eea0dd6..9b97c65 100644
1468--- a/src/maasserver/static/js/angular/directives/maas_obj_form.js
1469+++ b/src/maasserver/static/js/angular/directives/maas_obj_form.js
1470@@ -305,7 +305,7 @@ export function maasObjForm(JSONService) {
1471 self.errorScope.setErrors(value);
1472 } else {
1473 // No error scope, just log to console.
1474- console.log(value);
1475+ console.log(value); // eslint-disable-line no-console
1476 }
1477 }
1478 });
1479@@ -315,7 +315,7 @@ export function maasObjForm(JSONService) {
1480 self.errorScope.setErrors([error]);
1481 } else {
1482 // No error scope, just log to console.
1483- console.log(error);
1484+ console.log(error); // eslint-disable-line no-console
1485 }
1486 }
1487 self.scope.saving = false;
1488@@ -681,7 +681,6 @@ export function maasObjField($compile) {
1489 }
1490
1491 // Revert value on esc.
1492- var self = this;
1493 inputElement.bind("keydown keypress", function(evt) {
1494 if (evt.which === 27) {
1495 inputElement.val(controller.scope.obj[attrs.key]);
1496diff --git a/src/maasserver/static/js/angular/directives/machines_table.js b/src/maasserver/static/js/angular/directives/machines_table.js
1497index 269fb6e..462ce79 100644
1498--- a/src/maasserver/static/js/angular/directives/machines_table.js
1499+++ b/src/maasserver/static/js/angular/directives/machines_table.js
1500@@ -74,15 +74,6 @@ function maasMachinesTable(
1501 NodeStatus.EXITING_RESCUE_MODE,
1502 NodeStatus.TESTING
1503 ];
1504-
1505- // This is an performance optimisation to unblock initial rendering,
1506- // otherwise when there are many machines, due to numerous nested
1507- // ng-repeats the initial digest cycle is slow and the UI is
1508- // blocked on first navigation.
1509- if (angular.isDefined($scope.loading)) {
1510- MachinesManager.clear();
1511- $scope.metadata = MachinesManager.getMetadata();
1512- }
1513 const machines = MachinesManager.getItems();
1514
1515 // Scope variables.
1516@@ -97,6 +88,29 @@ function maasMachinesTable(
1517 machineActions: GeneralManager.getData("machine_actions")
1518 };
1519
1520+ $scope.DISPLAY_LIMIT = 5;
1521+ $scope.displayLimits = {};
1522+ const groupLabels = [
1523+ "Failed",
1524+ "New",
1525+ "Commissioning",
1526+ "Testing",
1527+ "Ready",
1528+ "Allocated",
1529+ "Deploying",
1530+ "Deployed",
1531+ "Rescue mode",
1532+ "Releasing",
1533+ "Broken",
1534+ "Other"
1535+ ];
1536+
1537+ $scope.getLimit = group => $scope.displayLimits[group.label];
1538+
1539+ $scope.loadAll = selectedGroup => {
1540+ $scope.displayLimits[selectedGroup.label] = undefined;
1541+ };
1542+
1543 $scope.statusMenuActions = [
1544 "commission",
1545 "acquire",
1546@@ -475,6 +489,9 @@ function maasMachinesTable(
1547 ]
1548 }
1549 ];
1550+ groupLabels.forEach(label => {
1551+ $scope.displayLimits[label] = $scope.DISPLAY_LIMIT;
1552+ });
1553 return;
1554 }
1555
1556@@ -495,6 +512,9 @@ function maasMachinesTable(
1557 });
1558
1559 $scope.groupedMachines = groupedByOwner;
1560+ groupedByOwner.forEach(owner => {
1561+ $scope.displayLimits[owner.label] = $scope.DISPLAY_LIMIT;
1562+ });
1563 return;
1564 }
1565
1566@@ -504,6 +524,7 @@ function maasMachinesTable(
1567 machines: $scope.table.filteredMachines
1568 }
1569 ];
1570+ $scope.displayLimits["none"] = $scope.DISPLAY_LIMIT;
1571 return;
1572 };
1573
1574@@ -512,6 +533,7 @@ function maasMachinesTable(
1575 $scope.table.machines,
1576 $scope.search
1577 );
1578+ $scope.displayLimits["none"] = $scope.DISPLAY_LIMIT;
1579 };
1580
1581 // When the list of filtered machines change update the all checkbox.
1582diff --git a/src/maasserver/static/js/angular/directives/script_status.js b/src/maasserver/static/js/angular/directives/script_status.js
1583index c7162c3..2f63a13 100644
1584--- a/src/maasserver/static/js/angular/directives/script_status.js
1585+++ b/src/maasserver/static/js/angular/directives/script_status.js
1586@@ -36,7 +36,7 @@ export function maasScriptStatus() {
1587 // SCRIPT_STATUS.RUNNING
1588 case 1:
1589 // SCRIPT_STATUS.INSTALLING
1590- case 7:
1591+ case 7: // eslint-disable-line no-fallthrough
1592 $scope.icon = "p-icon--running";
1593 break;
1594 // SCRIPT_STATUS.PASSED
1595@@ -46,11 +46,11 @@ export function maasScriptStatus() {
1596 // SCRIPT_STATUS.FAILED
1597 case 3:
1598 // SCRIPT_STATUS.ABORTED
1599- case 5:
1600+ case 5: // eslint-disable-line no-fallthrough
1601 // SCRIPT_STATUS.DEGRADED
1602- case 6:
1603+ case 6: // eslint-disable-line no-fallthrough
1604 // SCRIPT_STATUS.FAILED_INSTALLING
1605- case 8:
1606+ case 8: // eslint-disable-line no-fallthrough
1607 $scope.icon = "p-icon--error";
1608 break;
1609 // SCRIPT_STATUS.TIMEDOUT
1610diff --git a/src/maasserver/static/js/angular/directives/tests/test_boot_images.js b/src/maasserver/static/js/angular/directives/tests/test_boot_images.js
1611index b90b3c7..7100969 100644
1612--- a/src/maasserver/static/js/angular/directives/tests/test_boot_images.js
1613+++ b/src/maasserver/static/js/angular/directives/tests/test_boot_images.js
1614@@ -5,6 +5,7 @@
1615 */
1616
1617 import { makeInteger, makeName } from "testing/utils";
1618+import MockWebSocket from "testing/websocket";
1619
1620 describe("maasBootImages", function() {
1621 // Load the MAAS module.
1622diff --git a/src/maasserver/static/js/angular/directives/tests/test_ipranges.js b/src/maasserver/static/js/angular/directives/tests/test_ipranges.js
1623index de054c5..304bdf0 100644
1624--- a/src/maasserver/static/js/angular/directives/tests/test_ipranges.js
1625+++ b/src/maasserver/static/js/angular/directives/tests/test_ipranges.js
1626@@ -5,6 +5,7 @@
1627 */
1628
1629 import { makeInteger } from "testing/utils";
1630+import MockWebSocket from "testing/websocket";
1631
1632 describe("maasIPRanges", function() {
1633 // Load the MAAS module.
1634@@ -20,11 +21,10 @@ describe("maasIPRanges", function() {
1635 }));
1636
1637 // Load the required managers.
1638- var IPRangesManager, UsersManager, ManagerHelperService;
1639+ var IPRangesManager, UsersManager;
1640 beforeEach(inject(function($injector) {
1641 IPRangesManager = $injector.get("IPRangesManager");
1642 UsersManager = $injector.get("UsersManager");
1643- ManagerHelperService = $injector.get("ManagerHelperService");
1644 // Mock buildSocket so an actual connection is not made.
1645 let RegionConnection = $injector.get("RegionConnection");
1646 let webSocket = new MockWebSocket();
1647@@ -70,19 +70,6 @@ describe("maasIPRanges", function() {
1648 expect(scope.deleteIPRange).toBeNull();
1649 });
1650
1651- it(
1652- "clears loading once loadManagers called with required managers" +
1653- function() {
1654- var directive = compileDirective("subnet", "subnet");
1655- var scope = directive.isolateScope();
1656- expect(ManagerHelperService.loadManagers).toHaveBeenCalledWith(scope, [
1657- IPRangesManager,
1658- UsersManager
1659- ]);
1660- expect(scope.loading).toBe(false);
1661- }
1662- );
1663-
1664 describe("isSuperUser", function() {
1665 it("returns UsersManager.isSuperUser", function() {
1666 var directive = compileDirective();
1667diff --git a/src/maasserver/static/js/angular/directives/tests/test_maas_obj_form.js b/src/maasserver/static/js/angular/directives/tests/test_maas_obj_form.js
1668index f0ff73e..2737f72 100644
1669--- a/src/maasserver/static/js/angular/directives/tests/test_maas_obj_form.js
1670+++ b/src/maasserver/static/js/angular/directives/tests/test_maas_obj_form.js
1671@@ -296,7 +296,7 @@ describe("maasObjForm", function() {
1672 });
1673
1674 it("calls on-change function", function() {
1675- var directive, options;
1676+ var options;
1677 $scope.obj = {};
1678 $scope.manager = {};
1679 $scope.changeForm = function(key, val, form) {
1680@@ -338,7 +338,7 @@ describe("maasObjForm", function() {
1681 });
1682
1683 describe("checkboxes", function() {
1684- var directive, options;
1685+ var directive;
1686 beforeEach(function() {
1687 $scope.obj = {
1688 key: []
1689@@ -377,7 +377,7 @@ describe("maasObjForm", function() {
1690 });
1691
1692 describe("tags", function() {
1693- var directive, options;
1694+ var directive;
1695 beforeEach(function() {
1696 $scope.obj = {
1697 key: []
1698@@ -406,7 +406,7 @@ describe("maasObjForm", function() {
1699 });
1700
1701 describe("onoffswitch", function() {
1702- var directive, options;
1703+ var directive;
1704 beforeEach(function() {
1705 $scope.obj = {
1706 key: false
1707@@ -435,7 +435,7 @@ describe("maasObjForm", function() {
1708 });
1709
1710 describe("slider", function() {
1711- var directive, options;
1712+ var directive;
1713 beforeEach(function() {
1714 $scope.obj = {
1715 key: []
1716@@ -464,7 +464,7 @@ describe("maasObjForm", function() {
1717 });
1718
1719 describe("hidden", function() {
1720- var directive, options;
1721+ var directive;
1722 beforeEach(function() {
1723 $scope.obj = {
1724 key: false
1725@@ -705,7 +705,6 @@ describe("maasObjForm", function() {
1726
1727 it("sets field error on both fields", function() {
1728 var field1 = angular.element(directive.find("#key1"));
1729- var field2 = angular.element(directive.find("#key2"));
1730 var selector1 = "label[for='key1'] + .p-form__control";
1731 var selector2 = "label[for='key2'] + .p-form__control";
1732 var control1 = angular.element(directive.find(selector1));
1733@@ -1072,10 +1071,13 @@ describe("maasObjForm", function() {
1734 });
1735
1736 it("should call preventDefault on click", function() {
1737- var event = jasmine.createSpyObj("clickEvent", ["preventDefault"]);
1738+ const event = {
1739+ preventDefault: () => {},
1740+ type: "click"
1741+ };
1742+ jest.spyOn(event, "preventDefault");
1743 var label = directive.find("label");
1744 var icon = label.find("i");
1745- event.type = "click";
1746 icon.triggerHandler(event);
1747 expect(event.preventDefault).toHaveBeenCalled();
1748 });
1749@@ -1108,10 +1110,13 @@ describe("maasObjForm", function() {
1750 });
1751
1752 it("should call preventDefault on click", function() {
1753- var event = jasmine.createSpyObj("clickEvent", ["preventDefault"]);
1754+ const event = {
1755+ preventDefault: () => {},
1756+ type: "click"
1757+ };
1758+ jest.spyOn(event, "preventDefault");
1759 var label = directive.find("label");
1760 var icon = label.find("i");
1761- event.type = "click";
1762 icon.triggerHandler(event);
1763 expect(event.preventDefault).toHaveBeenCalled();
1764 });
1765@@ -1139,7 +1144,6 @@ describe("maasObjForm", function() {
1766 });
1767
1768 describe("unregisterField", function() {
1769- var directive;
1770 beforeEach(function() {
1771 $scope.obj = {};
1772 $scope.manager = {};
1773@@ -1153,7 +1157,7 @@ describe("maasObjForm", function() {
1774 "</div>",
1775 "</maas-obj-form>"
1776 ].join("");
1777- directive = compileDirective(html);
1778+ compileDirective(html);
1779 });
1780
1781 it("fields is unregistered when removed", function() {
1782diff --git a/src/maasserver/static/js/angular/directives/tests/test_mac_address.js b/src/maasserver/static/js/angular/directives/tests/test_mac_address.js
1783index c8e5b3d..da6f5f1 100644
1784--- a/src/maasserver/static/js/angular/directives/tests/test_mac_address.js
1785+++ b/src/maasserver/static/js/angular/directives/tests/test_mac_address.js
1786@@ -10,13 +10,8 @@ describe("maasmacAddress", function() {
1787
1788 // Create a new scope before each test.
1789 var $scope;
1790- var $window;
1791- var $document;
1792- var ngModelCtrl;
1793
1794 beforeEach(inject(function($rootScope, _$window_, _$document_) {
1795- $window = _$window_;
1796- $document = _$document_;
1797 $scope = $rootScope.$new();
1798 }));
1799
1800@@ -50,7 +45,7 @@ describe("maasmacAddress", function() {
1801 }
1802
1803 it("MAC address formatting to be valid", function() {
1804- var directive = compileDirective();
1805+ compileDirective();
1806 // set an invalid value
1807 $scope.TestForm.mac.$setViewValue("00:00:00:00:00:00");
1808 $scope.$digest();
1809@@ -58,7 +53,7 @@ describe("maasmacAddress", function() {
1810 });
1811
1812 it("MAC address formatting to be invalid", function() {
1813- var directive = compileDirective();
1814+ compileDirective();
1815 // set an invalid value
1816 $scope.TestForm.mac.$setViewValue('!"#$%^&*(!"#")"');
1817 $scope.$digest();
1818diff --git a/src/maasserver/static/js/angular/directives/tests/test_machines_table.js b/src/maasserver/static/js/angular/directives/tests/test_machines_table.js
1819index df35a3a..013b76f 100644
1820--- a/src/maasserver/static/js/angular/directives/tests/test_machines_table.js
1821+++ b/src/maasserver/static/js/angular/directives/tests/test_machines_table.js
1822@@ -1083,4 +1083,34 @@ barbaz`); // Has to be formatted this way for tooltip
1823 expect(scope.getArchitectureText("i386/generic")).toBe("i386");
1824 });
1825 });
1826+
1827+ describe("display limits", () => {
1828+ it("returns the default display limit for the group", () => {
1829+ const directive = compileDirective();
1830+ const scope = directive.isolateScope();
1831+
1832+ scope.groupByLabel = "status";
1833+ const group = {
1834+ label: "Allocated",
1835+ machines: []
1836+ };
1837+ scope.$digest();
1838+
1839+ expect(scope.getLimit(group)).toEqual(scope.DISPLAY_LIMIT);
1840+ });
1841+
1842+ it("sets the groups display limit to undefined", () => {
1843+ const directive = compileDirective();
1844+ const scope = directive.isolateScope();
1845+
1846+ scope.groupByLabel = "status";
1847+ const group = {
1848+ label: "New",
1849+ machines: []
1850+ };
1851+ scope.loadAll(group);
1852+
1853+ expect(scope.getLimit(group)).toEqual(undefined);
1854+ });
1855+ });
1856 });
1857diff --git a/src/maasserver/static/js/angular/directives/tests/test_notifications.js b/src/maasserver/static/js/angular/directives/tests/test_notifications.js
1858index 5823b21..daeca54 100644
1859--- a/src/maasserver/static/js/angular/directives/tests/test_notifications.js
1860+++ b/src/maasserver/static/js/angular/directives/tests/test_notifications.js
1861@@ -4,6 +4,8 @@
1862 * Unit tests for notifications directive.
1863 */
1864
1865+import MockWebSocket from "testing/websocket";
1866+
1867 describe("maasNotifications", function() {
1868 // Load the MAAS module.
1869 beforeEach(angular.mock.module("MAAS"));
1870diff --git a/src/maasserver/static/js/angular/directives/tests/test_pod_parameters.js b/src/maasserver/static/js/angular/directives/tests/test_pod_parameters.js
1871index 3559bb9..c9dd0c8 100644
1872--- a/src/maasserver/static/js/angular/directives/tests/test_pod_parameters.js
1873+++ b/src/maasserver/static/js/angular/directives/tests/test_pod_parameters.js
1874@@ -4,16 +4,16 @@
1875 * Unit tests for pod parameters directive.
1876 */
1877
1878+import MockWebSocket from "testing/websocket";
1879+
1880 describe("maasPodParameters", function() {
1881 // Load the MAAS module.
1882 beforeEach(angular.mock.module("MAAS"));
1883
1884 // Get managers before the test.
1885- var PodsManager, GeneralManager, ManagerHelperService;
1886+ var GeneralManager;
1887 beforeEach(inject(function($injector) {
1888- PodsManager = $injector.get("PodsManager");
1889 GeneralManager = $injector.get("GeneralManager");
1890- ManagerHelperService = $injector.get("ManagerHelperService");
1891 // Mock buildSocket so an actual connection is not made.
1892 let RegionConnection = $injector.get("RegionConnection");
1893 let webSocket = new MockWebSocket();
1894@@ -51,7 +51,7 @@ describe("maasPodParameters", function() {
1895 }
1896
1897 it("add type field to maasForm", function() {
1898- var directive = compileDirective("true");
1899+ compileDirective("true");
1900 expect($scope.obj.$maasForm.fields.type).toBeDefined();
1901 });
1902
1903@@ -111,7 +111,7 @@ describe("maasPodParameters", function() {
1904 });
1905
1906 it("renders fields when type set", function() {
1907- var directive = compileDirective("false");
1908+ compileDirective("false");
1909 $scope.obj.$maasForm.updateValue("type", "virsh");
1910 $scope.$digest();
1911
1912@@ -124,7 +124,7 @@ describe("maasPodParameters", function() {
1913 });
1914
1915 it("switches fields when type changed", function() {
1916- var directive = compileDirective("false");
1917+ compileDirective("false");
1918 $scope.obj.$maasForm.updateValue("type", "virsh");
1919 $scope.$digest();
1920 $scope.obj.$maasForm.updateValue("type", "rsd");
1921diff --git a/src/maasserver/static/js/angular/directives/tests/test_proxy_settings.js b/src/maasserver/static/js/angular/directives/tests/test_proxy_settings.js
1922index 10fbcf9..6c6682c 100644
1923--- a/src/maasserver/static/js/angular/directives/tests/test_proxy_settings.js
1924+++ b/src/maasserver/static/js/angular/directives/tests/test_proxy_settings.js
1925@@ -4,18 +4,25 @@
1926 * Unit tests for MAAS proxy settings directive.
1927 */
1928
1929+import template from "../../../../partials/proxy-settings.html";
1930+
1931 describe("maasProxySettings", function() {
1932 // Load the MAAS module.
1933 beforeEach(angular.mock.module("MAAS"));
1934- // Make the templates available.
1935- beforeEach(angular.mock.module("MAAS.templates"));
1936
1937 // Get required angular pieces and create a new scope before each test.
1938- var $scope, $compile, $q, ConfigsManager, ManagerHelperService;
1939+ var $scope,
1940+ $compile,
1941+ $q,
1942+ $templateCache,
1943+ ConfigsManager,
1944+ ManagerHelperService;
1945 beforeEach(inject(function($rootScope, $injector) {
1946 $scope = $rootScope.$new();
1947 $compile = $injector.get("$compile");
1948 $q = $injector.get("$q");
1949+ $templateCache = $injector.get("$templateCache");
1950+ $templateCache.put("static/partials/proxy-settings.html", template);
1951 ConfigsManager = $injector.get("ConfigsManager");
1952 ManagerHelperService = $injector.get("ManagerHelperService");
1953 }));
1954diff --git a/src/maasserver/static/js/angular/directives/tests/test_release_name.js b/src/maasserver/static/js/angular/directives/tests/test_release_name.js
1955index b243477..bd53419 100644
1956--- a/src/maasserver/static/js/angular/directives/tests/test_release_name.js
1957+++ b/src/maasserver/static/js/angular/directives/tests/test_release_name.js
1958@@ -10,14 +10,6 @@ describe("maasReleaseName", function() {
1959 // Load the MAAS module.
1960 beforeEach(angular.mock.module("MAAS"));
1961
1962- // Load the required services and factories.
1963- var $q, GeneralManager, ManagerHelperService;
1964- beforeEach(inject(function($injector) {
1965- $q = $injector.get("$q");
1966- GeneralManager = $injector.get("GeneralManager");
1967- ManagerHelperService = $injector.get("ManagerHelperService");
1968- }));
1969-
1970 // Create a new scope before each test.
1971 var $scope;
1972 beforeEach(inject(function($rootScope) {
1973diff --git a/src/maasserver/static/js/angular/directives/tests/test_release_options.js b/src/maasserver/static/js/angular/directives/tests/test_release_options.js
1974index 198abe2..1d1fea6 100644
1975--- a/src/maasserver/static/js/angular/directives/tests/test_release_options.js
1976+++ b/src/maasserver/static/js/angular/directives/tests/test_release_options.js
1977@@ -47,7 +47,7 @@ describe("maasReleaseOptions", function() {
1978 };
1979 spyOn(GeneralManager, "getData").and.returnValue(managerOptions);
1980
1981- var directive = compileDirective();
1982+ compileDirective();
1983 expect(options).toEqual({
1984 erase: true,
1985 secureErase: true,
1986@@ -68,7 +68,7 @@ describe("maasReleaseOptions", function() {
1987
1988 // Since erase is false all other options should be false so the
1989 // checkboxes are not selected.
1990- var directive = compileDirective();
1991+ compileDirective();
1992 expect(options).toEqual({
1993 erase: false,
1994 secureErase: false,
1995diff --git a/src/maasserver/static/js/angular/directives/tests/test_script_expander.js b/src/maasserver/static/js/angular/directives/tests/test_script_expander.js
1996index 04fe7a1..1707975 100644
1997--- a/src/maasserver/static/js/angular/directives/tests/test_script_expander.js
1998+++ b/src/maasserver/static/js/angular/directives/tests/test_script_expander.js
1999@@ -9,10 +9,9 @@ describe("pScriptExpander", function() {
2000 beforeEach(angular.mock.module("MAAS"));
2001
2002 // Get required angular pieces and create a new scope before each test.
2003- var $scope, $timeout;
2004+ var $scope;
2005 beforeEach(inject(function($rootScope, $injector) {
2006 $scope = $rootScope.$new();
2007- $timeout = $injector.get("$timeout");
2008 }));
2009
2010 // Return the compiled directive.
2011diff --git a/src/maasserver/static/js/angular/directives/tests/test_script_select.js b/src/maasserver/static/js/angular/directives/tests/test_script_select.js
2012index e9863f2..046a304 100644
2013--- a/src/maasserver/static/js/angular/directives/tests/test_script_select.js
2014+++ b/src/maasserver/static/js/angular/directives/tests/test_script_select.js
2015@@ -5,6 +5,7 @@
2016 */
2017
2018 import { makeInteger, makeName } from "testing/utils";
2019+import MockWebSocket from "testing/websocket";
2020
2021 describe("maasScriptSelect", function() {
2022 // Load the MAAS module.
2023diff --git a/src/maasserver/static/js/angular/directives/tests/test_ssh_keys.js b/src/maasserver/static/js/angular/directives/tests/test_ssh_keys.js
2024index 40c102a..b725202 100644
2025--- a/src/maasserver/static/js/angular/directives/tests/test_ssh_keys.js
2026+++ b/src/maasserver/static/js/angular/directives/tests/test_ssh_keys.js
2027@@ -5,6 +5,7 @@
2028 */
2029
2030 import { makeName } from "testing/utils";
2031+import MockWebSocket from "testing/websocket";
2032
2033 describe("maasSshKeys", function() {
2034 // Load the MAAS module.
2035diff --git a/src/maasserver/static/js/angular/directives/tests/test_switches_table.js b/src/maasserver/static/js/angular/directives/tests/test_switches_table.js
2036index 8afe157..8984e3f 100644
2037--- a/src/maasserver/static/js/angular/directives/tests/test_switches_table.js
2038+++ b/src/maasserver/static/js/angular/directives/tests/test_switches_table.js
2039@@ -12,9 +12,8 @@ describe("maasSwitchesTable", function() {
2040
2041 // Preload the $templateCache with empty contents. We only test the
2042 // controller of the directive, not the template.
2043- var $q, $templateCache;
2044+ var $templateCache;
2045 beforeEach(inject(function($injector) {
2046- $q = $injector.get("$q");
2047 $templateCache = $injector.get("$templateCache");
2048 $templateCache.put("static/partials/switches-table.html?v=undefined", "");
2049 }));
2050diff --git a/src/maasserver/static/js/angular/directives/tests/test_toggle_control.js b/src/maasserver/static/js/angular/directives/tests/test_toggle_control.js
2051index 4625b04..ef672dd 100644
2052--- a/src/maasserver/static/js/angular/directives/tests/test_toggle_control.js
2053+++ b/src/maasserver/static/js/angular/directives/tests/test_toggle_control.js
2054@@ -10,11 +10,9 @@ describe("maastoggleCtrl", function() {
2055
2056 // Create a new scope before each test.
2057 var $scope;
2058- var $window;
2059 var $document;
2060
2061 beforeEach(inject(function($rootScope, _$window_, _$document_) {
2062- $window = _$window_;
2063 $document = _$document_;
2064 $scope = $rootScope.$new();
2065 }));
2066diff --git a/src/maasserver/static/js/angular/directives/tests/test_type.js b/src/maasserver/static/js/angular/directives/tests/test_type.js
2067index 79a839d..16d54dc 100644
2068--- a/src/maasserver/static/js/angular/directives/tests/test_type.js
2069+++ b/src/maasserver/static/js/angular/directives/tests/test_type.js
2070@@ -54,7 +54,7 @@ describe("ngType", function() {
2071 it("rejects invalid input type", function() {
2072 var type = "text";
2073 $scope.type = type;
2074- var directive = compileDirective("type");
2075+ compileDirective("type");
2076 // Change the type to something invalid.
2077 type = makeName("type");
2078 $scope.type = type;
2079diff --git a/src/maasserver/static/js/angular/directives/tests/test_version_reloader.js b/src/maasserver/static/js/angular/directives/tests/test_version_reloader.js
2080index 4b21da4..429b91f 100644
2081--- a/src/maasserver/static/js/angular/directives/tests/test_version_reloader.js
2082+++ b/src/maasserver/static/js/angular/directives/tests/test_version_reloader.js
2083@@ -5,6 +5,7 @@
2084 */
2085
2086 import { makeName } from "testing/utils";
2087+import MockWebSocket from "testing/websocket";
2088
2089 describe("maasVersionReloader", function() {
2090 // Load the MAAS module.
2091@@ -58,14 +59,14 @@ describe("maasVersionReloader", function() {
2092 }
2093
2094 it("sets version from GeneralManager", function() {
2095- var directive = compileDirective();
2096+ compileDirective();
2097 expect($scope.version).toBe(GeneralManager.getData("version"));
2098 });
2099
2100 it("watches version.test onces ManagerHelperService resolves", function() {
2101 var defer = $q.defer();
2102 spyOn(ManagerHelperService, "loadManager").and.returnValue(defer.promise);
2103- var directive = compileDirective();
2104+ compileDirective();
2105 spyOn($scope, "$watch");
2106
2107 defer.resolve();
2108@@ -78,7 +79,7 @@ describe("maasVersionReloader", function() {
2109 var defer = $q.defer();
2110 spyOn(ManagerHelperService, "loadManager").and.returnValue(defer.promise);
2111
2112- var directive = compileDirective();
2113+ compileDirective();
2114 spyOn($scope, "reloadPage");
2115 defer.resolve();
2116 $scope.$digest();
2117diff --git a/src/maasserver/static/js/angular/directives/tests/test_window_width.js b/src/maasserver/static/js/angular/directives/tests/test_window_width.js
2118index b6a5ccd..34b1c1e 100644
2119--- a/src/maasserver/static/js/angular/directives/tests/test_window_width.js
2120+++ b/src/maasserver/static/js/angular/directives/tests/test_window_width.js
2121@@ -34,13 +34,13 @@ describe("maasWindowWidth", function() {
2122
2123 it("windowWidth set to initial value", function() {
2124 $window.innerWidth = 1026;
2125- var directive = compileDirective();
2126+ compileDirective();
2127 expect($scope.windowWidth).toEqual($window.innerWidth);
2128 });
2129
2130 it("windowWidth set on resize", function() {
2131 $window.innerWidth = 1026;
2132- var directive = compileDirective();
2133+ compileDirective();
2134 $window.innerWidth = 800;
2135 angular.element($window).triggerHandler("resize");
2136 expect($scope.windowWidth).toEqual($window.innerWidth);
2137diff --git a/src/maasserver/static/js/angular/entry.js b/src/maasserver/static/js/angular/entry.js
2138index cea8d08..1c30abf 100644
2139--- a/src/maasserver/static/js/angular/entry.js
2140+++ b/src/maasserver/static/js/angular/entry.js
2141@@ -227,11 +227,11 @@ function configureMaas(
2142 $compileProvider,
2143 tagsInputConfigProvider
2144 ) {
2145- // Disable debugInfo unless in a karma context.
2146+ // Disable debugInfo unless in a Jest context.
2147 // Re-enable debugInfo in development by running
2148 // angular.reloadWithDebugInfo(); in the console.
2149 // See: https://docs.angularjs.org/guide/production#disabling-debug-data
2150- $compileProvider.debugInfoEnabled(!!window.__karma__);
2151+ $compileProvider.debugInfoEnabled(!!window.DEBUG);
2152
2153 $interpolateProvider.startSymbol("{$");
2154 $interpolateProvider.endSymbol("$}");
2155@@ -265,6 +265,7 @@ function configureMaas(
2156 path += "/";
2157 }
2158 if (path === href) {
2159+ // eslint-disable-next-line no-unused-vars
2160 var routes = $routeProvider
2161 .when("/intro", {
2162 templateUrl: versionedPath("static/partials/intro.html"),
2163@@ -464,13 +465,7 @@ function setupGA($rootScope, $window) {
2164 }
2165
2166 angular
2167- .module("MAAS", [
2168- "ngRoute",
2169- "ngCookies",
2170- "ngSanitize",
2171- "ngTagsInput",
2172- "vs-repeat"
2173- ])
2174+ .module("MAAS", ["ngRoute", "ngCookies", "ngSanitize", "ngTagsInput"])
2175 .config(configureMaas)
2176 .run(introRedirect)
2177 .run(setupGA)
2178diff --git a/src/maasserver/static/js/angular/factories/bootresources.js b/src/maasserver/static/js/angular/factories/bootresources.js
2179index 46baad3..0be0511 100644
2180--- a/src/maasserver/static/js/angular/factories/bootresources.js
2181+++ b/src/maasserver/static/js/angular/factories/bootresources.js
2182@@ -128,7 +128,7 @@ function BootResourcesManager($q, $timeout, RegionConnection, ErrorService) {
2183 },
2184 function(error) {
2185 // Don't raise the error, just log it and try again.
2186- console.log(error);
2187+ console.log(error); // eslint-disable-line no-console
2188 self._pollAgain(self._pollErrorTimeout);
2189 }
2190 );
2191diff --git a/src/maasserver/static/js/angular/factories/general.js b/src/maasserver/static/js/angular/factories/general.js
2192index 2cf6683..909f5fe 100644
2193--- a/src/maasserver/static/js/angular/factories/general.js
2194+++ b/src/maasserver/static/js/angular/factories/general.js
2195@@ -378,7 +378,7 @@ function GeneralManager($q, $timeout, RegionConnection, ErrorService) {
2196 },
2197 function(error) {
2198 // Don't raise the error, just log it and try again.
2199- console.log(error);
2200+ console.log(error); // eslint-disable-line no-console
2201 self._pollAgain(data, self._pollErrorTimeout);
2202 }
2203 );
2204diff --git a/src/maasserver/static/js/angular/factories/tests/test_bootresources.js b/src/maasserver/static/js/angular/factories/tests/test_bootresources.js
2205index 75ea1e0..354cd5e 100644
2206--- a/src/maasserver/static/js/angular/factories/tests/test_bootresources.js
2207+++ b/src/maasserver/static/js/angular/factories/tests/test_bootresources.js
2208@@ -5,6 +5,7 @@
2209 */
2210
2211 import { makeName } from "testing/utils";
2212+import MockWebSocket from "testing/websocket";
2213
2214 describe("BootResourcesManager", function() {
2215 // Load the MAAS module.
2216diff --git a/src/maasserver/static/js/angular/factories/tests/test_configs.js b/src/maasserver/static/js/angular/factories/tests/test_configs.js
2217index 6cb6f45..c82460f 100644
2218--- a/src/maasserver/static/js/angular/factories/tests/test_configs.js
2219+++ b/src/maasserver/static/js/angular/factories/tests/test_configs.js
2220@@ -9,10 +9,9 @@ describe("ConfigsManager", function() {
2221 beforeEach(angular.mock.module("MAAS"));
2222
2223 // Load the ConfigsManager.
2224- var ConfigsManager, RegionConnection;
2225+ var ConfigsManager;
2226 beforeEach(inject(function($injector) {
2227 ConfigsManager = $injector.get("ConfigsManager");
2228- RegionConnection = $injector.get("RegionConnection");
2229 }));
2230
2231 it("set requires attributes", function() {
2232diff --git a/src/maasserver/static/js/angular/factories/tests/test_controllers.js b/src/maasserver/static/js/angular/factories/tests/test_controllers.js
2233index ed941b7..b5ec717 100644
2234--- a/src/maasserver/static/js/angular/factories/tests/test_controllers.js
2235+++ b/src/maasserver/static/js/angular/factories/tests/test_controllers.js
2236@@ -5,6 +5,7 @@
2237 */
2238
2239 import { makeFakeResponse, makeName } from "testing/utils";
2240+import MockWebSocket from "testing/websocket";
2241
2242 describe("ControllersManager", function() {
2243 // Load the MAAS module.
2244diff --git a/src/maasserver/static/js/angular/factories/tests/test_devices.js b/src/maasserver/static/js/angular/factories/tests/test_devices.js
2245index 3f36815..b8e1a89 100644
2246--- a/src/maasserver/static/js/angular/factories/tests/test_devices.js
2247+++ b/src/maasserver/static/js/angular/factories/tests/test_devices.js
2248@@ -5,6 +5,7 @@
2249 */
2250
2251 import { makeFakeResponse, makeName } from "testing/utils";
2252+import MockWebSocket from "testing/websocket";
2253
2254 describe("DevicesManager", function() {
2255 // Load the MAAS module.
2256diff --git a/src/maasserver/static/js/angular/factories/tests/test_dhcpsnippets.js b/src/maasserver/static/js/angular/factories/tests/test_dhcpsnippets.js
2257index b9574b6..5bf95f5 100644
2258--- a/src/maasserver/static/js/angular/factories/tests/test_dhcpsnippets.js
2259+++ b/src/maasserver/static/js/angular/factories/tests/test_dhcpsnippets.js
2260@@ -5,6 +5,7 @@
2261 */
2262
2263 import { makeFakeResponse, makeName } from "testing/utils";
2264+import MockWebSocket from "testing/websocket";
2265
2266 describe("DHCPSnippetsManager", function() {
2267 // Load the MAAS module.
2268diff --git a/src/maasserver/static/js/angular/factories/tests/test_general.js b/src/maasserver/static/js/angular/factories/tests/test_general.js
2269index ddea872..8b21026 100644
2270--- a/src/maasserver/static/js/angular/factories/tests/test_general.js
2271+++ b/src/maasserver/static/js/angular/factories/tests/test_general.js
2272@@ -5,6 +5,7 @@
2273 */
2274
2275 import { makeName } from "testing/utils";
2276+import MockWebSocket from "testing/websocket";
2277
2278 describe("GeneralManager", function() {
2279 // Load the MAAS module.
2280@@ -587,6 +588,7 @@ describe("GeneralManager", function() {
2281 GeneralManager._poll(GeneralManager._data.machine_actions);
2282 defer.reject(error);
2283 $rootScope.$digest();
2284+ // eslint-disable-next-line no-console
2285 expect(console.log).toHaveBeenCalledWith(error);
2286 expect(GeneralManager._pollAgain).toHaveBeenCalledWith(
2287 GeneralManager._data.machine_actions,
2288diff --git a/src/maasserver/static/js/angular/factories/tests/test_machines.js b/src/maasserver/static/js/angular/factories/tests/test_machines.js
2289index cfcb5a9..a925103 100644
2290--- a/src/maasserver/static/js/angular/factories/tests/test_machines.js
2291+++ b/src/maasserver/static/js/angular/factories/tests/test_machines.js
2292@@ -5,6 +5,7 @@
2293 */
2294
2295 import { makeName } from "testing/utils";
2296+import MockWebSocket from "testing/websocket";
2297
2298 describe("MachinesManager", function() {
2299 // Load the MAAS module.
2300diff --git a/src/maasserver/static/js/angular/factories/tests/test_node_results.js b/src/maasserver/static/js/angular/factories/tests/test_node_results.js
2301index 2d1964b..6b31258 100644
2302--- a/src/maasserver/static/js/angular/factories/tests/test_node_results.js
2303+++ b/src/maasserver/static/js/angular/factories/tests/test_node_results.js
2304@@ -11,6 +11,7 @@ import {
2305 makeName,
2306 pickItem
2307 } from "testing/utils";
2308+import MockWebSocket from "testing/websocket";
2309
2310 describe("NodeResultsManagerFactory", function() {
2311 // Load the MAAS module.
2312diff --git a/src/maasserver/static/js/angular/factories/tests/test_nodes.js b/src/maasserver/static/js/angular/factories/tests/test_nodes.js
2313index b4e2251..2a2baf8 100644
2314--- a/src/maasserver/static/js/angular/factories/tests/test_nodes.js
2315+++ b/src/maasserver/static/js/angular/factories/tests/test_nodes.js
2316@@ -6,6 +6,7 @@
2317 */
2318
2319 import { makeFakeResponse, makeInteger, makeName } from "testing/utils";
2320+import MockWebSocket from "testing/websocket";
2321
2322 describe("NodesManager", function() {
2323 // Load the MAAS module.
2324diff --git a/src/maasserver/static/js/angular/factories/tests/test_notifications.js b/src/maasserver/static/js/angular/factories/tests/test_notifications.js
2325index 7bd92b8..0a01088 100644
2326--- a/src/maasserver/static/js/angular/factories/tests/test_notifications.js
2327+++ b/src/maasserver/static/js/angular/factories/tests/test_notifications.js
2328@@ -17,23 +17,6 @@ describe("NotificationsManager", function() {
2329 NotificationsManager = $injector.get("NotificationsManager");
2330 }));
2331
2332- // Make a random notification.
2333- function makeNotification(id, selected) {
2334- var notification = {
2335- name: makeName("name"),
2336- authoritative: true
2337- };
2338- if (angular.isDefined(id)) {
2339- notification.id = id;
2340- } else {
2341- notification.id = makeInteger(1, 100);
2342- }
2343- if (angular.isDefined(selected)) {
2344- notification.$selected = selected;
2345- }
2346- return notification;
2347- }
2348-
2349 it("set requires attributes", function() {
2350 expect(NotificationsManager._pk).toBe("id");
2351 expect(NotificationsManager._handler).toBe("notification");
2352diff --git a/src/maasserver/static/js/angular/factories/tests/test_packagerepositories.js b/src/maasserver/static/js/angular/factories/tests/test_packagerepositories.js
2353index 3591f09..57f5101 100644
2354--- a/src/maasserver/static/js/angular/factories/tests/test_packagerepositories.js
2355+++ b/src/maasserver/static/js/angular/factories/tests/test_packagerepositories.js
2356@@ -5,6 +5,7 @@
2357 */
2358
2359 import { makeFakeResponse, makeName } from "testing/utils";
2360+import MockWebSocket from "testing/websocket";
2361
2362 describe("PackageRepositoriesManager", function() {
2363 // Load the MAAS module.
2364diff --git a/src/maasserver/static/js/angular/factories/tests/test_pods.js b/src/maasserver/static/js/angular/factories/tests/test_pods.js
2365index 3ee3825..38af031 100644
2366--- a/src/maasserver/static/js/angular/factories/tests/test_pods.js
2367+++ b/src/maasserver/static/js/angular/factories/tests/test_pods.js
2368@@ -5,6 +5,7 @@
2369 */
2370
2371 import { makeFakeResponse, makeInteger, makeName } from "testing/utils";
2372+import MockWebSocket from "testing/websocket";
2373
2374 describe("PodsManager", function() {
2375 // Load the MAAS module.
2376diff --git a/src/maasserver/static/js/angular/factories/tests/test_scripts.js b/src/maasserver/static/js/angular/factories/tests/test_scripts.js
2377index 78f8797..94a80e9 100644
2378--- a/src/maasserver/static/js/angular/factories/tests/test_scripts.js
2379+++ b/src/maasserver/static/js/angular/factories/tests/test_scripts.js
2380@@ -9,10 +9,9 @@ describe("ScriptsManager", function() {
2381 beforeEach(angular.mock.module("MAAS"));
2382
2383 // Load the ScriptsManager.
2384- var ScriptsManager, RegionConnection;
2385+ var ScriptsManager;
2386 beforeEach(inject(function($injector) {
2387 ScriptsManager = $injector.get("ScriptsManager");
2388- RegionConnection = $injector.get("RegionConnection");
2389 }));
2390
2391 it("set requires attributes", function() {
2392diff --git a/src/maasserver/static/js/angular/factories/tests/test_spaces.js b/src/maasserver/static/js/angular/factories/tests/test_spaces.js
2393index a2ef01e..68553c9 100644
2394--- a/src/maasserver/static/js/angular/factories/tests/test_spaces.js
2395+++ b/src/maasserver/static/js/angular/factories/tests/test_spaces.js
2396@@ -9,21 +9,12 @@ describe("SpacesManager", function() {
2397 beforeEach(angular.mock.module("MAAS"));
2398
2399 // Load the SpacesManager.
2400- var SpacesManager, SubnetsManager, RegionConnection;
2401+ var SpacesManager, RegionConnection;
2402 beforeEach(inject(function($injector) {
2403 SpacesManager = $injector.get("SpacesManager");
2404- SubnetsManager = $injector.get("SubnetsManager");
2405 RegionConnection = $injector.get("RegionConnection");
2406 }));
2407
2408- // Make a fake subnet.
2409- function makeSubnet() {
2410- return {
2411- id: makeInteger(0, 5000),
2412- name: makeName("subnet")
2413- };
2414- }
2415-
2416 it("set requires attributes", function() {
2417 expect(SpacesManager._pk).toBe("id");
2418 expect(SpacesManager._handler).toBe("space");
2419diff --git a/src/maasserver/static/js/angular/factories/tests/test_switches.js b/src/maasserver/static/js/angular/factories/tests/test_switches.js
2420index 1aa2492..3951550 100644
2421--- a/src/maasserver/static/js/angular/factories/tests/test_switches.js
2422+++ b/src/maasserver/static/js/angular/factories/tests/test_switches.js
2423@@ -5,6 +5,7 @@
2424 */
2425
2426 import { makeFakeResponse, makeName } from "testing/utils";
2427+import MockWebSocket from "testing/websocket";
2428
2429 describe("SwitchesManager", function() {
2430 // Load the MAAS module.
2431diff --git a/src/maasserver/static/js/angular/filters/tests/test_by_subnet.js b/src/maasserver/static/js/angular/filters/tests/test_by_subnet.js
2432index 966b2a1..103c632 100644
2433--- a/src/maasserver/static/js/angular/filters/tests/test_by_subnet.js
2434+++ b/src/maasserver/static/js/angular/filters/tests/test_by_subnet.js
2435@@ -61,7 +61,7 @@ describe("filterBySubnetOrVlan", function() {
2436 beforeEach(angular.mock.module("MAAS"));
2437
2438 // Load filterBySubnet function.
2439- var filterBySubnet;
2440+ var filterBySubnetOrVlan;
2441 beforeEach(inject(function($filter) {
2442 filterBySubnetOrVlan = $filter("filterBySubnetOrVlan");
2443 }));
2444diff --git a/src/maasserver/static/js/angular/services/json.js b/src/maasserver/static/js/angular/services/json.js
2445index e9d4229..ce777d8 100644
2446--- a/src/maasserver/static/js/angular/services/json.js
2447+++ b/src/maasserver/static/js/angular/services/json.js
2448@@ -16,7 +16,9 @@ function JSONService() {
2449 if (obj && typeof obj === "object" && obj !== null) {
2450 return obj;
2451 }
2452- } catch (e) {}
2453+ } catch (e) {
2454+ // Ignore this error.
2455+ }
2456 return null;
2457 };
2458 }
2459diff --git a/src/maasserver/static/js/angular/services/log.js b/src/maasserver/static/js/angular/services/log.js
2460index 621465e..97fd66e 100644
2461--- a/src/maasserver/static/js/angular/services/log.js
2462+++ b/src/maasserver/static/js/angular/services/log.js
2463@@ -33,11 +33,13 @@ function LogService($window) {
2464 };
2465
2466 // Standard logging functions.
2467+ /* eslint-disable no-console */
2468 self._debug = console.debug;
2469 self._log = console.log;
2470 self._info = console.info;
2471 self._warn = console.warn;
2472 self._error = console.error;
2473+ /* eslint-enable no-console */
2474
2475 // Formats the specified time (in milliseconds) in seconds.
2476 this.formatMilliseconds = function(milliseconds) {
2477diff --git a/src/maasserver/static/js/angular/services/manager.js b/src/maasserver/static/js/angular/services/manager.js
2478index 29cbb8a..f014e60 100644
2479--- a/src/maasserver/static/js/angular/services/manager.js
2480+++ b/src/maasserver/static/js/angular/services/manager.js
2481@@ -529,6 +529,7 @@ function Manager($q, $rootScope, $timeout, RegionConnection) {
2482 Manager.prototype.selectItem = function(pk_value) {
2483 var idx = this._getIndexOfItem(this._items, pk_value);
2484 if (idx === -1) {
2485+ // eslint-disable-next-line no-console
2486 console.log(
2487 "WARN: selection of " +
2488 this._handler +
2489@@ -552,6 +553,7 @@ function Manager($q, $rootScope, $timeout, RegionConnection) {
2490 Manager.prototype.unselectItem = function(pk_value) {
2491 var idx = this._getIndexOfItem(this._items, pk_value);
2492 if (idx === -1) {
2493+ // eslint-disable-next-line no-console
2494 console.log(
2495 "WARN: de-selection of " +
2496 this._handler +
2497@@ -576,6 +578,7 @@ function Manager($q, $rootScope, $timeout, RegionConnection) {
2498 Manager.prototype.isSelected = function(pk_value) {
2499 var idx = this._getIndexOfItem(this._items, pk_value);
2500 if (idx === -1) {
2501+ // eslint-disable-next-line no-console
2502 console.log(
2503 "WARN: unable to determine if " +
2504 this._handler +
2505diff --git a/src/maasserver/static/js/angular/services/tests/test_log.js b/src/maasserver/static/js/angular/services/tests/test_log.js
2506index 7830619..8fcc995 100644
2507--- a/src/maasserver/static/js/angular/services/tests/test_log.js
2508+++ b/src/maasserver/static/js/angular/services/tests/test_log.js
2509@@ -64,6 +64,7 @@ describe("LogService", function() {
2510 var logFunction = LogService[scenario.func];
2511 var message = makeName();
2512 logFunction(message);
2513+ // eslint-disable-next-line no-console
2514 expect(console[scenario.func]).toHaveBeenCalled();
2515 }
2516 );
2517@@ -82,6 +83,7 @@ describe("LogService", function() {
2518 var logFunction = LogService[scenario.func];
2519 var message = makeName();
2520 logFunction(message);
2521+ // eslint-disable-next-line no-console
2522 expect(console[scenario.func]).not.toHaveBeenCalled();
2523 }
2524 );
2525diff --git a/src/maasserver/static/js/angular/services/tests/test_manager.js b/src/maasserver/static/js/angular/services/tests/test_manager.js
2526index e9e2512..6b7a6ae 100644
2527--- a/src/maasserver/static/js/angular/services/tests/test_manager.js
2528+++ b/src/maasserver/static/js/angular/services/tests/test_manager.js
2529@@ -5,6 +5,7 @@
2530 */
2531
2532 import { makeFakeResponse, makeName } from "testing/utils";
2533+import MockWebSocket from "testing/websocket";
2534
2535 describe("Manager", function() {
2536 // Load the MAAS module.
2537@@ -145,11 +146,11 @@ describe("Manager", function() {
2538
2539 it("loads items list without replacing it", function(done) {
2540 var fakeNode = makeNode();
2541- var nodes = NodesManager.getItems();
2542+ var existingNodes = NodesManager.getItems();
2543 webSocket.returnData.push(makeFakeResponse([fakeNode]));
2544 NodesManager.loadItems().then(function(nodes) {
2545 expect(nodes).toEqual([addSelected(fakeNode, false)]);
2546- expect(nodes).toBe(nodes);
2547+ expect(nodes).toBe(existingNodes);
2548 done();
2549 });
2550 });
2551@@ -1256,7 +1257,6 @@ describe("Manager", function() {
2552 var node = makeNode();
2553 NodesManager._updateMetadata(node, "create");
2554 NodesManager._items.push(node);
2555- var oldTags = angular.copy(node.tags);
2556 var updatedNode = angular.copy(node);
2557 updatedNode.tags = [makeName("tag"), makeName("tag")];
2558 NodesManager._updateMetadata(updatedNode, "update");
2559diff --git a/src/maasserver/static/js/angular/services/tests/test_managerhelper.js b/src/maasserver/static/js/angular/services/tests/test_managerhelper.js
2560index fa295d7..d932975 100644
2561--- a/src/maasserver/static/js/angular/services/tests/test_managerhelper.js
2562+++ b/src/maasserver/static/js/angular/services/tests/test_managerhelper.js
2563@@ -18,11 +18,10 @@ describe("ManagerHelperService", function() {
2564 }));
2565
2566 // Load the ManagerHelperService.
2567- var ManagerHelperService, RegionConnection, ErrorService;
2568+ var ManagerHelperService, RegionConnection;
2569 beforeEach(inject(function($injector) {
2570 ManagerHelperService = $injector.get("ManagerHelperService");
2571 RegionConnection = $injector.get("RegionConnection");
2572- ErrorService = $injector.get("ErrorService");
2573 }));
2574
2575 // Makes a fake manager.
2576diff --git a/src/maasserver/static/js/angular/services/tests/test_pollingmanager.js b/src/maasserver/static/js/angular/services/tests/test_pollingmanager.js
2577index 095ce48..b6dc03c 100644
2578--- a/src/maasserver/static/js/angular/services/tests/test_pollingmanager.js
2579+++ b/src/maasserver/static/js/angular/services/tests/test_pollingmanager.js
2580@@ -5,6 +5,7 @@
2581 */
2582
2583 import { makeName } from "testing/utils";
2584+import MockWebSocket from "testing/websocket";
2585
2586 describe("PollingManager", function() {
2587 // Load the MAAS module.
2588@@ -96,7 +97,6 @@ describe("PollingManager", function() {
2589
2590 describe("_pollAgain", function() {
2591 it("sets _nextPromise and calls _poll after timeout", function() {
2592- var sentinel = {};
2593 spyOn(TestManager, "_poll");
2594 TestManager._pollAgain(1);
2595
2596@@ -108,7 +108,6 @@ describe("PollingManager", function() {
2597
2598 describe("_poll", function() {
2599 it("calls reloadItems", function() {
2600- var sentinel = {};
2601 var defer = $q.defer();
2602 spyOn(TestManager, "reloadItems").and.returnValue(defer.promise);
2603 TestManager._poll();
2604@@ -116,7 +115,6 @@ describe("PollingManager", function() {
2605 });
2606
2607 it("calls _pollAgain with timeout", function() {
2608- var sentinel = {};
2609 var defer = $q.defer();
2610 spyOn(TestManager, "_pollAgain");
2611 spyOn(TestManager, "reloadItems").and.returnValue(defer.promise);
2612@@ -129,7 +127,6 @@ describe("PollingManager", function() {
2613 });
2614
2615 it("calls _pollAgain with empty timeout", function() {
2616- var sentinel = {};
2617 var defer = $q.defer();
2618 spyOn(TestManager, "_pollAgain");
2619 spyOn(TestManager, "reloadItems").and.returnValue(defer.promise);
2620@@ -142,7 +139,6 @@ describe("PollingManager", function() {
2621 });
2622
2623 it("calls _pollAgain with error timeout", function() {
2624- var sentinel = {};
2625 var defer = $q.defer();
2626 spyOn(TestManager, "_pollAgain");
2627 spyOn(TestManager, "reloadItems").and.returnValue(defer.promise);
2628diff --git a/src/maasserver/static/js/angular/services/tests/test_region.js b/src/maasserver/static/js/angular/services/tests/test_region.js
2629index a7a6d5b..d4d26fb 100644
2630--- a/src/maasserver/static/js/angular/services/tests/test_region.js
2631+++ b/src/maasserver/static/js/angular/services/tests/test_region.js
2632@@ -5,6 +5,7 @@
2633 */
2634
2635 import { makeName } from "testing/utils";
2636+import MockWebSocket from "testing/websocket";
2637
2638 describe("RegionConnection", function() {
2639 // Load the MAAS module to test.
2640@@ -376,7 +377,7 @@ describe("RegionConnection", function() {
2641 ":" +
2642 $window.location.port +
2643 $window.location.pathname +
2644- "/ws"
2645+ "ws"
2646 );
2647 });
2648
2649@@ -388,7 +389,7 @@ describe("RegionConnection", function() {
2650 ":" +
2651 $window.location.port +
2652 $window.location.pathname +
2653- "/ws"
2654+ "ws"
2655 );
2656 });
2657
2658@@ -438,7 +439,7 @@ describe("RegionConnection", function() {
2659 ":" +
2660 port +
2661 $window.location.pathname +
2662- "/ws"
2663+ "ws"
2664 );
2665
2666 // Reset angular.element so the test will complete successfully as
2667@@ -457,14 +458,11 @@ describe("RegionConnection", function() {
2668 ":" +
2669 $window.location.port +
2670 $window.location.pathname +
2671- "/ws"
2672+ "ws"
2673 );
2674 } else {
2675 expect(RegionConnection._buildUrl()).toBe(
2676- "ws://" +
2677- $window.location.hostname +
2678- $window.location.pathname +
2679- "/ws"
2680+ "ws://" + $window.location.hostname + $window.location.pathname + "ws"
2681 );
2682 }
2683 });
2684@@ -484,7 +482,7 @@ describe("RegionConnection", function() {
2685 ":" +
2686 $window.location.port +
2687 $window.location.pathname +
2688- "/ws" +
2689+ "ws" +
2690 "?csrftoken=" +
2691 csrftoken
2692 );
2693diff --git a/src/maasserver/static/js/angular/services/validation.js b/src/maasserver/static/js/angular/services/validation.js
2694index a0d9eae..ac7b225 100644
2695--- a/src/maasserver/static/js/angular/services/validation.js
2696+++ b/src/maasserver/static/js/angular/services/validation.js
2697@@ -14,7 +14,7 @@ function ValidationService(ConverterService) {
2698 var domainnamePattern = /^([a-z\d]|[a-z\d][a-z\d-.]*[a-z\d])*$/i;
2699
2700 // Pattern that matches a hostname.
2701- var hostnamePattern = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])*$/;
2702+ var hostnamePattern = /^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])*$/;
2703
2704 // Pattern that matches a MAC.
2705 var macPattern = /^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/;
2706diff --git a/src/maasserver/static/js/angular/testing/setup-jest.js b/src/maasserver/static/js/angular/testing/setup-jest.js
2707new file mode 100644
2708index 0000000..0e4002a
2709--- /dev/null
2710+++ b/src/maasserver/static/js/angular/testing/setup-jest.js
2711@@ -0,0 +1,5 @@
2712+import $ from "/usr/share/javascript/jquery/jquery.js";
2713+/* eslint-disable no-undef */
2714+global.jQuery = $;
2715+global.$ = $;
2716+/* eslint-enable no-undef */
2717diff --git a/src/maasserver/static/js/angular/testing/setup.js b/src/maasserver/static/js/angular/testing/setup.js
2718index f4f87bf..24a4448 100644
2719--- a/src/maasserver/static/js/angular/testing/setup.js
2720+++ b/src/maasserver/static/js/angular/testing/setup.js
2721@@ -24,3 +24,5 @@ angular.module("MAAS").run([
2722 beforeEach(function() {
2723 window.MAAS_config = {};
2724 });
2725+
2726+window.DEBUG = true;
2727diff --git a/src/maasserver/static/js/angular/testing/websocket.js b/src/maasserver/static/js/angular/testing/websocket.js
2728index 5f53d20..cedfac3 100644
2729--- a/src/maasserver/static/js/angular/testing/websocket.js
2730+++ b/src/maasserver/static/js/angular/testing/websocket.js
2731@@ -134,3 +134,5 @@ MockWebSocket.prototype.send = function(data) {
2732 }
2733 });
2734 };
2735+
2736+export default MockWebSocket;
2737diff --git a/src/maasserver/static/js/bundle/maas-min.js b/src/maasserver/static/js/bundle/maas-min.js
2738index 47488b9..8cf389d 100644
2739--- a/src/maasserver/static/js/bundle/maas-min.js
2740+++ b/src/maasserver/static/js/bundle/maas-min.js
2741@@ -1,2 +1,2 @@
2742-!function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:r})},n.r=function(e){Object.defineProperty(e,"__esModule",{value:!0})},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=623)}([function(e,t,n){"use strict";var r=n(3),i=n(34),a=n(18),o=n(17),s=n(27),c=function e(t,n,c){var u,l,f,d,h=t&e.F,p=t&e.G,g=t&e.P,m=t&e.B,b=p?r:t&e.S?r[n]||(r[n]={}):(r[n]||{}).prototype,v=p?i:i[n]||(i[n]={}),y=v.prototype||(v.prototype={});for(u in p&&(c=n),c)f=((l=!h&&b&&void 0!==b[u])?b:c)[u],d=m&&l?s(f,r):g&&"function"==typeof f?s(Function.call,f):f,b&&o(b,u,f,t&e.U),v[u]!=f&&a(v,u,d),g&&y[u]!=f&&(y[u]=f)};r.core=i,c.F=1,c.G=2,c.S=4,c.P=8,c.B=16,c.W=32,c.U=64,c.R=128,e.exports=c},function(e,t,n){"use strict";"function"==typeof Object.create?e.exports=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}:e.exports=function(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}},function(e,t,n){"use strict";var r=n(6);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){"use strict";var r=e.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=r)},function(e,t,n){"use strict";e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){"use strict";var r=n(7),i=r.Buffer;function a(e,t){for(var n in e)t[n]=e[n]}function o(e,t,n){return i(e,t,n)}i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow?e.exports=r:(a(r,t),t.Buffer=o),a(i,o),o.from=function(e,t,n){if("number"==typeof e)throw new TypeError("Argument must not be a number");return i(e,t,n)},o.alloc=function(e,t,n){if("number"!=typeof e)throw new TypeError("Argument must be a number");var r=i(e);return void 0!==t?"string"==typeof n?r.fill(t,n):r.fill(t):r.fill(0),r},o.allocUnsafe=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return i(e)},o.allocUnsafeSlow=function(e){if("number"!=typeof e)throw new TypeError("Argument must be a number");return r.SlowBuffer(e)}},function(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})(e)}e.exports=function(e){return"object"===r(e)?null!==e:"function"==typeof e}},function(e,t,n){"use strict";(function(e){var r=n(417),i=n(416),a=n(161);function o(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function s(e,t){if(o()<t)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(e=new Uint8Array(t)).__proto__=c.prototype:(null===e&&(e=new c(t)),e.length=t),e}function c(e,t,n){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(e,t,n);if("number"==typeof e){if("string"==typeof t)throw new Error("If encoding is specified then the first argument must be a string");return f(this,e)}return u(this,e,t,n)}function u(e,t,n,r){if("number"==typeof t)throw new TypeError('"value" argument must not be a number');return"undefined"!=typeof ArrayBuffer&&t instanceof ArrayBuffer?function(e,t,n,r){if(t.byteLength,n<0||t.byteLength<n)throw new RangeError("'offset' is out of bounds");if(t.byteLength<n+(r||0))throw new RangeError("'length' is out of bounds");t=void 0===n&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,n):new Uint8Array(t,n,r);c.TYPED_ARRAY_SUPPORT?(e=t).__proto__=c.prototype:e=d(e,t);return e}(e,t,n,r):"string"==typeof t?function(e,t,n){"string"==typeof n&&""!==n||(n="utf8");if(!c.isEncoding(n))throw new TypeError('"encoding" must be a valid string encoding');var r=0|p(t,n),i=(e=s(e,r)).write(t,n);i!==r&&(e=e.slice(0,i));return e}(e,t,n):function(e,t){if(c.isBuffer(t)){var n=0|h(t.length);return 0===(e=s(e,n)).length?e:(t.copy(e,0,0,n),e)}if(t){if("undefined"!=typeof ArrayBuffer&&t.buffer instanceof ArrayBuffer||"length"in t)return"number"!=typeof t.length||(r=t.length)!=r?s(e,0):d(e,t);if("Buffer"===t.type&&a(t.data))return d(e,t.data)}var r;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(e,t)}function l(e){if("number"!=typeof e)throw new TypeError('"size" argument must be a number');if(e<0)throw new RangeError('"size" argument must not be negative')}function f(e,t){if(l(t),e=s(e,t<0?0:0|h(t)),!c.TYPED_ARRAY_SUPPORT)for(var n=0;n<t;++n)e[n]=0;return e}function d(e,t){var n=t.length<0?0:0|h(t.length);e=s(e,n);for(var r=0;r<n;r+=1)e[r]=255&t[r];return e}function h(e){if(e>=o())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+o().toString(16)+" bytes");return 0|e}function p(e,t){if(c.isBuffer(e))return e.length;if("undefined"!=typeof ArrayBuffer&&"function"==typeof ArrayBuffer.isView&&(ArrayBuffer.isView(e)||e instanceof ArrayBuffer))return e.byteLength;"string"!=typeof e&&(e=""+e);var n=e.length;if(0===n)return 0;for(var r=!1;;)switch(t){case"ascii":case"latin1":case"binary":return n;case"utf8":case"utf-8":case void 0:return U(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*n;case"hex":return n>>>1;case"base64":return F(e).length;default:if(r)return U(e).length;t=(""+t).toLowerCase(),r=!0}}function g(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}function m(e,t,n,r,i){if(0===e.length)return-1;if("string"==typeof n?(r=n,n=0):n>2147483647?n=2147483647:n<-2147483648&&(n=-2147483648),n=+n,isNaN(n)&&(n=i?0:e.length-1),n<0&&(n=e.length+n),n>=e.length){if(i)return-1;n=e.length-1}else if(n<0){if(!i)return-1;n=0}if("string"==typeof t&&(t=c.from(t,r)),c.isBuffer(t))return 0===t.length?-1:b(e,t,n,r,i);if("number"==typeof t)return t&=255,c.TYPED_ARRAY_SUPPORT&&"function"==typeof Uint8Array.prototype.indexOf?i?Uint8Array.prototype.indexOf.call(e,t,n):Uint8Array.prototype.lastIndexOf.call(e,t,n):b(e,[t],n,r,i);throw new TypeError("val must be string, number or Buffer")}function b(e,t,n,r,i){var a,o=1,s=e.length,c=t.length;if(void 0!==r&&("ucs2"===(r=String(r).toLowerCase())||"ucs-2"===r||"utf16le"===r||"utf-16le"===r)){if(e.length<2||t.length<2)return-1;o=2,s/=2,c/=2,n/=2}function u(e,t){return 1===o?e[t]:e.readUInt16BE(t*o)}if(i){var l=-1;for(a=n;a<s;a++)if(u(e,a)===u(t,-1===l?0:a-l)){if(-1===l&&(l=a),a-l+1===c)return l*o}else-1!==l&&(a-=a-l),l=-1}else for(n+c>s&&(n=s-c),a=n;a>=0;a--){for(var f=!0,d=0;d<c;d++)if(u(e,a+d)!==u(t,d)){f=!1;break}if(f)return a}return-1}function v(e,t,n,r){n=Number(n)||0;var i=e.length-n;r?(r=Number(r))>i&&(r=i):r=i;var a=t.length;if(a%2!=0)throw new TypeError("Invalid hex string");r>a/2&&(r=a/2);for(var o=0;o<r;++o){var s=parseInt(t.substr(2*o,2),16);if(isNaN(s))return o;e[n+o]=s}return o}function y(e,t,n,r){return z(U(t,e.length-n),e,n,r)}function _(e,t,n,r){return z(function(e){for(var t=[],n=0;n<e.length;++n)t.push(255&e.charCodeAt(n));return t}(t),e,n,r)}function w(e,t,n,r){return _(e,t,n,r)}function S(e,t,n,r){return z(F(t),e,n,r)}function M(e,t,n,r){return z(function(e,t){for(var n,r,i,a=[],o=0;o<e.length&&!((t-=2)<0);++o)n=e.charCodeAt(o),r=n>>8,i=n%256,a.push(i),a.push(r);return a}(t,e.length-n),e,n,r)}function E(e,t,n){return 0===t&&n===e.length?r.fromByteArray(e):r.fromByteArray(e.slice(t,n))}function A(e,t,n){n=Math.min(e.length,n);for(var r=[],i=t;i<n;){var a,o,s,c,u=e[i],l=null,f=u>239?4:u>223?3:u>191?2:1;if(i+f<=n)switch(f){case 1:u<128&&(l=u);break;case 2:128==(192&(a=e[i+1]))&&(c=(31&u)<<6|63&a)>127&&(l=c);break;case 3:a=e[i+1],o=e[i+2],128==(192&a)&&128==(192&o)&&(c=(15&u)<<12|(63&a)<<6|63&o)>2047&&(c<55296||c>57343)&&(l=c);break;case 4:a=e[i+1],o=e[i+2],s=e[i+3],128==(192&a)&&128==(192&o)&&128==(192&s)&&(c=(15&u)<<18|(63&a)<<12|(63&o)<<6|63&s)>65535&&c<1114112&&(l=c)}null===l?(l=65533,f=1):l>65535&&(l-=65536,r.push(l>>>10&1023|55296),l=56320|1023&l),r.push(l),i+=f}return function(e){var t=e.length;if(t<=I)return String.fromCharCode.apply(String,e);var n="",r=0;for(;r<t;)n+=String.fromCharCode.apply(String,e.slice(r,r+=I));return n}(r)}t.Buffer=c,t.SlowBuffer=function(e){+e!=e&&(e=0);return c.alloc(+e)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=void 0!==e.TYPED_ARRAY_SUPPORT?e.TYPED_ARRAY_SUPPORT:function(){try{var e=new Uint8Array(1);return e.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},42===e.foo()&&"function"==typeof e.subarray&&0===e.subarray(1,1).byteLength}catch(e){return!1}}(),t.kMaxLength=o(),c.poolSize=8192,c._augment=function(e){return e.__proto__=c.prototype,e},c.from=function(e,t,n){return u(null,e,t,n)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,"undefined"!=typeof Symbol&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(e,t,n){return function(e,t,n,r){return l(t),t<=0?s(e,t):void 0!==n?"string"==typeof r?s(e,t).fill(n,r):s(e,t).fill(n):s(e,t)}(null,e,t,n)},c.allocUnsafe=function(e){return f(null,e)},c.allocUnsafeSlow=function(e){return f(null,e)},c.isBuffer=function(e){return!(null==e||!e._isBuffer)},c.compare=function(e,t){if(!c.isBuffer(e)||!c.isBuffer(t))throw new TypeError("Arguments must be Buffers");if(e===t)return 0;for(var n=e.length,r=t.length,i=0,a=Math.min(n,r);i<a;++i)if(e[i]!==t[i]){n=e[i],r=t[i];break}return n<r?-1:r<n?1:0},c.isEncoding=function(e){switch(String(e).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(e,t){if(!a(e))throw new TypeError('"list" argument must be an Array of Buffers');if(0===e.length)return c.alloc(0);var n;if(void 0===t)for(t=0,n=0;n<e.length;++n)t+=e[n].length;var r=c.allocUnsafe(t),i=0;for(n=0;n<e.length;++n){var o=e[n];if(!c.isBuffer(o))throw new TypeError('"list" argument must be an Array of Buffers');o.copy(r,i),i+=o.length}return r},c.byteLength=p,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var e=this.length;if(e%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var t=0;t<e;t+=2)g(this,t,t+1);return this},c.prototype.swap32=function(){var e=this.length;if(e%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var t=0;t<e;t+=4)g(this,t,t+3),g(this,t+1,t+2);return this},c.prototype.swap64=function(){var e=this.length;if(e%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var t=0;t<e;t+=8)g(this,t,t+7),g(this,t+1,t+6),g(this,t+2,t+5),g(this,t+3,t+4);return this},c.prototype.toString=function(){var e=0|this.length;return 0===e?"":0===arguments.length?A(this,0,e):function(e,t,n){var r=!1;if((void 0===t||t<0)&&(t=0),t>this.length)return"";if((void 0===n||n>this.length)&&(n=this.length),n<=0)return"";if((n>>>=0)<=(t>>>=0))return"";for(e||(e="utf8");;)switch(e){case"hex":return x(this,t,n);case"utf8":case"utf-8":return A(this,t,n);case"ascii":return k(this,t,n);case"latin1":case"binary":return O(this,t,n);case"base64":return E(this,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return P(this,t,n);default:if(r)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),r=!0}}.apply(this,arguments)},c.prototype.equals=function(e){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");return this===e||0===c.compare(this,e)},c.prototype.inspect=function(){var e="",n=t.INSPECT_MAX_BYTES;return this.length>0&&(e=this.toString("hex",0,n).match(/.{2}/g).join(" "),this.length>n&&(e+=" ... ")),"<Buffer "+e+">"},c.prototype.compare=function(e,t,n,r,i){if(!c.isBuffer(e))throw new TypeError("Argument must be a Buffer");if(void 0===t&&(t=0),void 0===n&&(n=e?e.length:0),void 0===r&&(r=0),void 0===i&&(i=this.length),t<0||n>e.length||r<0||i>this.length)throw new RangeError("out of range index");if(r>=i&&t>=n)return 0;if(r>=i)return-1;if(t>=n)return 1;if(t>>>=0,n>>>=0,r>>>=0,i>>>=0,this===e)return 0;for(var a=i-r,o=n-t,s=Math.min(a,o),u=this.slice(r,i),l=e.slice(t,n),f=0;f<s;++f)if(u[f]!==l[f]){a=u[f],o=l[f];break}return a<o?-1:o<a?1:0},c.prototype.includes=function(e,t,n){return-1!==this.indexOf(e,t,n)},c.prototype.indexOf=function(e,t,n){return m(this,e,t,n,!0)},c.prototype.lastIndexOf=function(e,t,n){return m(this,e,t,n,!1)},c.prototype.write=function(e,t,n,r){if(void 0===t)r="utf8",n=this.length,t=0;else if(void 0===n&&"string"==typeof t)r=t,n=this.length,t=0;else{if(!isFinite(t))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");t|=0,isFinite(n)?(n|=0,void 0===r&&(r="utf8")):(r=n,n=void 0)}var i=this.length-t;if((void 0===n||n>i)&&(n=i),e.length>0&&(n<0||t<0)||t>this.length)throw new RangeError("Attempt to write outside buffer bounds");r||(r="utf8");for(var a=!1;;)switch(r){case"hex":return v(this,e,t,n);case"utf8":case"utf-8":return y(this,e,t,n);case"ascii":return _(this,e,t,n);case"latin1":case"binary":return w(this,e,t,n);case"base64":return S(this,e,t,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return M(this,e,t,n);default:if(a)throw new TypeError("Unknown encoding: "+r);r=(""+r).toLowerCase(),a=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};var I=4096;function k(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(127&e[i]);return r}function O(e,t,n){var r="";n=Math.min(e.length,n);for(var i=t;i<n;++i)r+=String.fromCharCode(e[i]);return r}function x(e,t,n){var r=e.length;(!t||t<0)&&(t=0),(!n||n<0||n>r)&&(n=r);for(var i="",a=t;a<n;++a)i+=$(e[a]);return i}function P(e,t,n){for(var r=e.slice(t,n),i="",a=0;a<r.length;a+=2)i+=String.fromCharCode(r[a]+256*r[a+1]);return i}function C(e,t,n){if(e%1!=0||e<0)throw new RangeError("offset is not uint");if(e+t>n)throw new RangeError("Trying to access beyond buffer length")}function j(e,t,n,r,i,a){if(!c.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||t<a)throw new RangeError('"value" argument is out of bounds');if(n+r>e.length)throw new RangeError("Index out of range")}function D(e,t,n,r){t<0&&(t=65535+t+1);for(var i=0,a=Math.min(e.length-n,2);i<a;++i)e[n+i]=(t&255<<8*(r?i:1-i))>>>8*(r?i:1-i)}function N(e,t,n,r){t<0&&(t=4294967295+t+1);for(var i=0,a=Math.min(e.length-n,4);i<a;++i)e[n+i]=t>>>8*(r?i:3-i)&255}function R(e,t,n,r,i,a){if(n+r>e.length)throw new RangeError("Index out of range");if(n<0)throw new RangeError("Index out of range")}function T(e,t,n,r,a){return a||R(e,0,n,4),i.write(e,t,n,r,23,4),n+4}function B(e,t,n,r,a){return a||R(e,0,n,8),i.write(e,t,n,r,52,8),n+8}c.prototype.slice=function(e,t){var n,r=this.length;if(e=~~e,t=void 0===t?r:~~t,e<0?(e+=r)<0&&(e=0):e>r&&(e=r),t<0?(t+=r)<0&&(t=0):t>r&&(t=r),t<e&&(t=e),c.TYPED_ARRAY_SUPPORT)(n=this.subarray(e,t)).__proto__=c.prototype;else{var i=t-e;n=new c(i,void 0);for(var a=0;a<i;++a)n[a]=this[a+e]}return n},c.prototype.readUIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r},c.prototype.readUIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e+--t],i=1;t>0&&(i*=256);)r+=this[e+--t]*i;return r},c.prototype.readUInt8=function(e,t){return t||C(e,1,this.length),this[e]},c.prototype.readUInt16LE=function(e,t){return t||C(e,2,this.length),this[e]|this[e+1]<<8},c.prototype.readUInt16BE=function(e,t){return t||C(e,2,this.length),this[e]<<8|this[e+1]},c.prototype.readUInt32LE=function(e,t){return t||C(e,4,this.length),(this[e]|this[e+1]<<8|this[e+2]<<16)+16777216*this[e+3]},c.prototype.readUInt32BE=function(e,t){return t||C(e,4,this.length),16777216*this[e]+(this[e+1]<<16|this[e+2]<<8|this[e+3])},c.prototype.readIntLE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=this[e],i=1,a=0;++a<t&&(i*=256);)r+=this[e+a]*i;return r>=(i*=128)&&(r-=Math.pow(2,8*t)),r},c.prototype.readIntBE=function(e,t,n){e|=0,t|=0,n||C(e,t,this.length);for(var r=t,i=1,a=this[e+--r];r>0&&(i*=256);)a+=this[e+--r]*i;return a>=(i*=128)&&(a-=Math.pow(2,8*t)),a},c.prototype.readInt8=function(e,t){return t||C(e,1,this.length),128&this[e]?-1*(255-this[e]+1):this[e]},c.prototype.readInt16LE=function(e,t){t||C(e,2,this.length);var n=this[e]|this[e+1]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt16BE=function(e,t){t||C(e,2,this.length);var n=this[e+1]|this[e]<<8;return 32768&n?4294901760|n:n},c.prototype.readInt32LE=function(e,t){return t||C(e,4,this.length),this[e]|this[e+1]<<8|this[e+2]<<16|this[e+3]<<24},c.prototype.readInt32BE=function(e,t){return t||C(e,4,this.length),this[e]<<24|this[e+1]<<16|this[e+2]<<8|this[e+3]},c.prototype.readFloatLE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!0,23,4)},c.prototype.readFloatBE=function(e,t){return t||C(e,4,this.length),i.read(this,e,!1,23,4)},c.prototype.readDoubleLE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!0,52,8)},c.prototype.readDoubleBE=function(e,t){return t||C(e,8,this.length),i.read(this,e,!1,52,8)},c.prototype.writeUIntLE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||j(this,e,t,n,Math.pow(2,8*n)-1,0);var i=1,a=0;for(this[t]=255&e;++a<n&&(i*=256);)this[t+a]=e/i&255;return t+n},c.prototype.writeUIntBE=function(e,t,n,r){(e=+e,t|=0,n|=0,r)||j(this,e,t,n,Math.pow(2,8*n)-1,0);var i=n-1,a=1;for(this[t+i]=255&e;--i>=0&&(a*=256);)this[t+i]=e/a&255;return t+n},c.prototype.writeUInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,255,0),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),this[t]=255&e,t+1},c.prototype.writeUInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeUInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeUInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t+3]=e>>>24,this[t+2]=e>>>16,this[t+1]=e>>>8,this[t]=255&e):N(this,e,t,!0),t+4},c.prototype.writeUInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},c.prototype.writeIntLE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var a=0,o=1,s=0;for(this[t]=255&e;++a<n&&(o*=256);)e<0&&0===s&&0!==this[t+a-1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},c.prototype.writeIntBE=function(e,t,n,r){if(e=+e,t|=0,!r){var i=Math.pow(2,8*n-1);j(this,e,t,n,i-1,-i)}var a=n-1,o=1,s=0;for(this[t+a]=255&e;--a>=0&&(o*=256);)e<0&&0===s&&0!==this[t+a+1]&&(s=1),this[t+a]=(e/o>>0)-s&255;return t+n},c.prototype.writeInt8=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,1,127,-128),c.TYPED_ARRAY_SUPPORT||(e=Math.floor(e)),e<0&&(e=255+e+1),this[t]=255&e,t+1},c.prototype.writeInt16LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8):D(this,e,t,!0),t+2},c.prototype.writeInt16BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>8,this[t+1]=255&e):D(this,e,t,!1),t+2},c.prototype.writeInt32LE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[t]=255&e,this[t+1]=e>>>8,this[t+2]=e>>>16,this[t+3]=e>>>24):N(this,e,t,!0),t+4},c.prototype.writeInt32BE=function(e,t,n){return e=+e,t|=0,n||j(this,e,t,4,2147483647,-2147483648),e<0&&(e=4294967295+e+1),c.TYPED_ARRAY_SUPPORT?(this[t]=e>>>24,this[t+1]=e>>>16,this[t+2]=e>>>8,this[t+3]=255&e):N(this,e,t,!1),t+4},c.prototype.writeFloatLE=function(e,t,n){return T(this,e,t,!0,n)},c.prototype.writeFloatBE=function(e,t,n){return T(this,e,t,!1,n)},c.prototype.writeDoubleLE=function(e,t,n){return B(this,e,t,!0,n)},c.prototype.writeDoubleBE=function(e,t,n){return B(this,e,t,!1,n)},c.prototype.copy=function(e,t,n,r){if(n||(n=0),r||0===r||(r=this.length),t>=e.length&&(t=e.length),t||(t=0),r>0&&r<n&&(r=n),r===n)return 0;if(0===e.length||0===this.length)return 0;if(t<0)throw new RangeError("targetStart out of bounds");if(n<0||n>=this.length)throw new RangeError("sourceStart out of bounds");if(r<0)throw new RangeError("sourceEnd out of bounds");r>this.length&&(r=this.length),e.length-t<r-n&&(r=e.length-t+n);var i,a=r-n;if(this===e&&n<t&&t<r)for(i=a-1;i>=0;--i)e[i+t]=this[i+n];else if(a<1e3||!c.TYPED_ARRAY_SUPPORT)for(i=0;i<a;++i)e[i+t]=this[i+n];else Uint8Array.prototype.set.call(e,this.subarray(n,n+a),t);return a},c.prototype.fill=function(e,t,n,r){if("string"==typeof e){if("string"==typeof t?(r=t,t=0,n=this.length):"string"==typeof n&&(r=n,n=this.length),1===e.length){var i=e.charCodeAt(0);i<256&&(e=i)}if(void 0!==r&&"string"!=typeof r)throw new TypeError("encoding must be a string");if("string"==typeof r&&!c.isEncoding(r))throw new TypeError("Unknown encoding: "+r)}else"number"==typeof e&&(e&=255);if(t<0||this.length<t||this.length<n)throw new RangeError("Out of range index");if(n<=t)return this;var a;if(t>>>=0,n=void 0===n?this.length:n>>>0,e||(e=0),"number"==typeof e)for(a=t;a<n;++a)this[a]=e;else{var o=c.isBuffer(e)?e:U(new c(e,r).toString()),s=o.length;for(a=0;a<n-t;++a)this[a+t]=o[a%s]}return this};var L=/[^+\/0-9A-Za-z-_]/g;function $(e){return e<16?"0"+e.toString(16):e.toString(16)}function U(e,t){var n;t=t||1/0;for(var r=e.length,i=null,a=[],o=0;o<r;++o){if((n=e.charCodeAt(o))>55295&&n<57344){if(!i){if(n>56319){(t-=3)>-1&&a.push(239,191,189);continue}if(o+1===r){(t-=3)>-1&&a.push(239,191,189);continue}i=n;continue}if(n<56320){(t-=3)>-1&&a.push(239,191,189),i=n;continue}n=65536+(i-55296<<10|n-56320)}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,n<128){if((t-=1)<0)break;a.push(n)}else if(n<2048){if((t-=2)<0)break;a.push(n>>6|192,63&n|128)}else if(n<65536){if((t-=3)<0)break;a.push(n>>12|224,n>>6&63|128,63&n|128)}else{if(!(n<1114112))throw new Error("Invalid code point");if((t-=4)<0)break;a.push(n>>18|240,n>>12&63|128,n>>6&63|128,63&n|128)}}return a}function F(e){return r.toByteArray(function(e){if((e=function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")}(e).replace(L,"")).length<2)return"";for(;e.length%4!=0;)e+="=";return e}(e))}function z(e,t,n,r){for(var i=0;i<r&&!(i+n>=t.length||i>=e.length);++i)t[i+n]=e[i];return i}}).call(this,n(24))},function(e,t,n){"use strict";var r=n(88)("wks"),i=n(51),a=n(3).Symbol,o="function"==typeof a;(e.exports=function(e){return r[e]||(r[e]=o&&a[e]||(o?a:i)("Symbol."+e))}).store=r},function(e,t,n){"use strict";var r=n(31),i=Math.min;e.exports=function(e){return e>0?i(r(e),9007199254740991):0}},function(e,t,n){"use strict";var r=n(2),i=n(197),a=n(33),o=Object.defineProperty;t.f=n(11)?Object.defineProperty:function(e,t,n){if(r(e),t=a(t,!0),r(n),i)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";e.exports=!n(4)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";(function(e){function t(e){return(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})(e)}!function(e,r){function i(e,t){if(!e)throw new Error(t||"Assertion failed")}function a(e,t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}function o(e,t,n){if(o.isBN(e))return e;this.negative=0,this.words=null,this.length=0,this.red=null,null!==e&&("le"!==t&&"be"!==t||(n=t,t=10),this._init(e||0,t||10,n||"be"))}var s;"object"===t(e)?e.exports=o:(void 0).BN=o,o.BN=o,o.wordSize=26;try{s=n(375).Buffer}catch(e){}function c(e,t,n){for(var r=0,i=Math.min(e.length,n),a=t;a<i;a++){var o=e.charCodeAt(a)-48;r<<=4,r|=o>=49&&o<=54?o-49+10:o>=17&&o<=22?o-17+10:15&o}return r}function u(e,t,n,r){for(var i=0,a=Math.min(e.length,n),o=t;o<a;o++){var s=e.charCodeAt(o)-48;i*=r,i+=s>=49?s-49+10:s>=17?s-17+10:s}return i}o.isBN=function(e){return e instanceof o||null!==e&&"object"===t(e)&&e.constructor.wordSize===o.wordSize&&Array.isArray(e.words)},o.max=function(e,t){return e.cmp(t)>0?e:t},o.min=function(e,t){return e.cmp(t)<0?e:t},o.prototype._init=function(e,n,r){if("number"==typeof e)return this._initNumber(e,n,r);if("object"===t(e))return this._initArray(e,n,r);"hex"===n&&(n=16),i(n===(0|n)&&n>=2&&n<=36);var a=0;"-"===(e=e.toString().replace(/\s+/g,""))[0]&&a++,16===n?this._parseHex(e,a):this._parseBase(e,n,a),"-"===e[0]&&(this.negative=1),this.strip(),"le"===r&&this._initArray(this.toArray(),n,r)},o.prototype._initNumber=function(e,t,n){e<0&&(this.negative=1,e=-e),e<67108864?(this.words=[67108863&e],this.length=1):e<4503599627370496?(this.words=[67108863&e,e/67108864&67108863],this.length=2):(i(e<9007199254740992),this.words=[67108863&e,e/67108864&67108863,1],this.length=3),"le"===n&&this._initArray(this.toArray(),t,n)},o.prototype._initArray=function(e,t,n){if(i("number"==typeof e.length),e.length<=0)return this.words=[0],this.length=1,this;this.length=Math.ceil(e.length/3),this.words=new Array(this.length);for(var r=0;r<this.length;r++)this.words[r]=0;var a,o,s=0;if("be"===n)for(r=e.length-1,a=0;r>=0;r-=3)o=e[r]|e[r-1]<<8|e[r-2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);else if("le"===n)for(r=0,a=0;r<e.length;r+=3)o=e[r]|e[r+1]<<8|e[r+2]<<16,this.words[a]|=o<<s&67108863,this.words[a+1]=o>>>26-s&67108863,(s+=24)>=26&&(s-=26,a++);return this.strip()},o.prototype._parseHex=function(e,t){this.length=Math.ceil((e.length-t)/6),this.words=new Array(this.length);for(var n=0;n<this.length;n++)this.words[n]=0;var r,i,a=0;for(n=e.length-6,r=0;n>=t;n-=6)i=c(e,n,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303,(a+=24)>=26&&(a-=26,r++);n+6!==t&&(i=c(e,t,n+6),this.words[r]|=i<<a&67108863,this.words[r+1]|=i>>>26-a&4194303),this.strip()},o.prototype._parseBase=function(e,t,n){this.words=[0],this.length=1;for(var r=0,i=1;i<=67108863;i*=t)r++;r--,i=i/t|0;for(var a=e.length-n,o=a%r,s=Math.min(a,a-o)+n,c=0,l=n;l<s;l+=r)c=u(e,l,l+r,t),this.imuln(i),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c);if(0!==o){var f=1;for(c=u(e,l,e.length,t),l=0;l<o;l++)f*=t;this.imuln(f),this.words[0]+c<67108864?this.words[0]+=c:this._iaddn(c)}},o.prototype.copy=function(e){e.words=new Array(this.length);for(var t=0;t<this.length;t++)e.words[t]=this.words[t];e.length=this.length,e.negative=this.negative,e.red=this.red},o.prototype.clone=function(){var e=new o(null);return this.copy(e),e},o.prototype._expand=function(e){for(;this.length<e;)this.words[this.length++]=0;return this},o.prototype.strip=function(){for(;this.length>1&&0===this.words[this.length-1];)this.length--;return this._normSign()},o.prototype._normSign=function(){return 1===this.length&&0===this.words[0]&&(this.negative=0),this},o.prototype.inspect=function(){return(this.red?"<BN-R: ":"<BN: ")+this.toString(16)+">"};var l=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],f=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],d=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];function h(e,t,n){n.negative=t.negative^e.negative;var r=e.length+t.length|0;n.length=r,r=r-1|0;var i=0|e.words[0],a=0|t.words[0],o=i*a,s=67108863&o,c=o/67108864|0;n.words[0]=s;for(var u=1;u<r;u++){for(var l=c>>>26,f=67108863&c,d=Math.min(u,t.length-1),h=Math.max(0,u-e.length+1);h<=d;h++){var p=u-h|0;l+=(o=(i=0|e.words[p])*(a=0|t.words[h])+f)/67108864|0,f=67108863&o}n.words[u]=0|f,c=0|l}return 0!==c?n.words[u]=0|c:n.length--,n.strip()}o.prototype.toString=function(e,t){var n;if(e=e||10,t=0|t||1,16===e||"hex"===e){n="";for(var r=0,a=0,o=0;o<this.length;o++){var s=this.words[o],c=(16777215&(s<<r|a)).toString(16);n=0!==(a=s>>>24-r&16777215)||o!==this.length-1?l[6-c.length]+c+n:c+n,(r+=2)>=26&&(r-=26,o--)}for(0!==a&&(n=a.toString(16)+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}if(e===(0|e)&&e>=2&&e<=36){var u=f[e],h=d[e];n="";var p=this.clone();for(p.negative=0;!p.isZero();){var g=p.modn(h).toString(e);n=(p=p.idivn(h)).isZero()?g+n:l[u-g.length]+g+n}for(this.isZero()&&(n="0"+n);n.length%t!=0;)n="0"+n;return 0!==this.negative&&(n="-"+n),n}i(!1,"Base should be between 2 and 36")},o.prototype.toNumber=function(){var e=this.words[0];return 2===this.length?e+=67108864*this.words[1]:3===this.length&&1===this.words[2]?e+=4503599627370496+67108864*this.words[1]:this.length>2&&i(!1,"Number can only safely store up to 53 bits"),0!==this.negative?-e:e},o.prototype.toJSON=function(){return this.toString(16)},o.prototype.toBuffer=function(e,t){return i(void 0!==s),this.toArrayLike(s,e,t)},o.prototype.toArray=function(e,t){return this.toArrayLike(Array,e,t)},o.prototype.toArrayLike=function(e,t,n){var r=this.byteLength(),a=n||Math.max(1,r);i(r<=a,"byte array longer than desired length"),i(a>0,"Requested array length <= 0"),this.strip();var o,s,c="le"===t,u=new e(a),l=this.clone();if(c){for(s=0;!l.isZero();s++)o=l.andln(255),l.iushrn(8),u[s]=o;for(;s<a;s++)u[s]=0}else{for(s=0;s<a-r;s++)u[s]=0;for(s=0;!l.isZero();s++)o=l.andln(255),l.iushrn(8),u[a-s-1]=o}return u},Math.clz32?o.prototype._countBits=function(e){return 32-Math.clz32(e)}:o.prototype._countBits=function(e){var t=e,n=0;return t>=4096&&(n+=13,t>>>=13),t>=64&&(n+=7,t>>>=7),t>=8&&(n+=4,t>>>=4),t>=2&&(n+=2,t>>>=2),n+t},o.prototype._zeroBits=function(e){if(0===e)return 26;var t=e,n=0;return 0==(8191&t)&&(n+=13,t>>>=13),0==(127&t)&&(n+=7,t>>>=7),0==(15&t)&&(n+=4,t>>>=4),0==(3&t)&&(n+=2,t>>>=2),0==(1&t)&&n++,n},o.prototype.bitLength=function(){var e=this.words[this.length-1],t=this._countBits(e);return 26*(this.length-1)+t},o.prototype.zeroBits=function(){if(this.isZero())return 0;for(var e=0,t=0;t<this.length;t++){var n=this._zeroBits(this.words[t]);if(e+=n,26!==n)break}return e},o.prototype.byteLength=function(){return Math.ceil(this.bitLength()/8)},o.prototype.toTwos=function(e){return 0!==this.negative?this.abs().inotn(e).iaddn(1):this.clone()},o.prototype.fromTwos=function(e){return this.testn(e-1)?this.notn(e).iaddn(1).ineg():this.clone()},o.prototype.isNeg=function(){return 0!==this.negative},o.prototype.neg=function(){return this.clone().ineg()},o.prototype.ineg=function(){return this.isZero()||(this.negative^=1),this},o.prototype.iuor=function(e){for(;this.length<e.length;)this.words[this.length++]=0;for(var t=0;t<e.length;t++)this.words[t]=this.words[t]|e.words[t];return this.strip()},o.prototype.ior=function(e){return i(0==(this.negative|e.negative)),this.iuor(e)},o.prototype.or=function(e){return this.length>e.length?this.clone().ior(e):e.clone().ior(this)},o.prototype.uor=function(e){return this.length>e.length?this.clone().iuor(e):e.clone().iuor(this)},o.prototype.iuand=function(e){var t;t=this.length>e.length?e:this;for(var n=0;n<t.length;n++)this.words[n]=this.words[n]&e.words[n];return this.length=t.length,this.strip()},o.prototype.iand=function(e){return i(0==(this.negative|e.negative)),this.iuand(e)},o.prototype.and=function(e){return this.length>e.length?this.clone().iand(e):e.clone().iand(this)},o.prototype.uand=function(e){return this.length>e.length?this.clone().iuand(e):e.clone().iuand(this)},o.prototype.iuxor=function(e){var t,n;this.length>e.length?(t=this,n=e):(t=e,n=this);for(var r=0;r<n.length;r++)this.words[r]=t.words[r]^n.words[r];if(this!==t)for(;r<t.length;r++)this.words[r]=t.words[r];return this.length=t.length,this.strip()},o.prototype.ixor=function(e){return i(0==(this.negative|e.negative)),this.iuxor(e)},o.prototype.xor=function(e){return this.length>e.length?this.clone().ixor(e):e.clone().ixor(this)},o.prototype.uxor=function(e){return this.length>e.length?this.clone().iuxor(e):e.clone().iuxor(this)},o.prototype.inotn=function(e){i("number"==typeof e&&e>=0);var t=0|Math.ceil(e/26),n=e%26;this._expand(t),n>0&&t--;for(var r=0;r<t;r++)this.words[r]=67108863&~this.words[r];return n>0&&(this.words[r]=~this.words[r]&67108863>>26-n),this.strip()},o.prototype.notn=function(e){return this.clone().inotn(e)},o.prototype.setn=function(e,t){i("number"==typeof e&&e>=0);var n=e/26|0,r=e%26;return this._expand(n+1),this.words[n]=t?this.words[n]|1<<r:this.words[n]&~(1<<r),this.strip()},o.prototype.iadd=function(e){var t,n,r;if(0!==this.negative&&0===e.negative)return this.negative=0,t=this.isub(e),this.negative^=1,this._normSign();if(0===this.negative&&0!==e.negative)return e.negative=0,t=this.isub(e),e.negative=1,t._normSign();this.length>e.length?(n=this,r=e):(n=e,r=this);for(var i=0,a=0;a<r.length;a++)t=(0|n.words[a])+(0|r.words[a])+i,this.words[a]=67108863&t,i=t>>>26;for(;0!==i&&a<n.length;a++)t=(0|n.words[a])+i,this.words[a]=67108863&t,i=t>>>26;if(this.length=n.length,0!==i)this.words[this.length]=i,this.length++;else if(n!==this)for(;a<n.length;a++)this.words[a]=n.words[a];return this},o.prototype.add=function(e){var t;return 0!==e.negative&&0===this.negative?(e.negative=0,t=this.sub(e),e.negative^=1,t):0===e.negative&&0!==this.negative?(this.negative=0,t=e.sub(this),this.negative=1,t):this.length>e.length?this.clone().iadd(e):e.clone().iadd(this)},o.prototype.isub=function(e){if(0!==e.negative){e.negative=0;var t=this.iadd(e);return e.negative=1,t._normSign()}if(0!==this.negative)return this.negative=0,this.iadd(e),this.negative=1,this._normSign();var n,r,i=this.cmp(e);if(0===i)return this.negative=0,this.length=1,this.words[0]=0,this;i>0?(n=this,r=e):(n=e,r=this);for(var a=0,o=0;o<r.length;o++)a=(t=(0|n.words[o])-(0|r.words[o])+a)>>26,this.words[o]=67108863&t;for(;0!==a&&o<n.length;o++)a=(t=(0|n.words[o])+a)>>26,this.words[o]=67108863&t;if(0===a&&o<n.length&&n!==this)for(;o<n.length;o++)this.words[o]=n.words[o];return this.length=Math.max(this.length,o),n!==this&&(this.negative=1),this.strip()},o.prototype.sub=function(e){return this.clone().isub(e)};var p=function(e,t,n){var r,i,a,o=e.words,s=t.words,c=n.words,u=0,l=0|o[0],f=8191&l,d=l>>>13,h=0|o[1],p=8191&h,g=h>>>13,m=0|o[2],b=8191&m,v=m>>>13,y=0|o[3],_=8191&y,w=y>>>13,S=0|o[4],M=8191&S,E=S>>>13,A=0|o[5],I=8191&A,k=A>>>13,O=0|o[6],x=8191&O,P=O>>>13,C=0|o[7],j=8191&C,D=C>>>13,N=0|o[8],R=8191&N,T=N>>>13,B=0|o[9],L=8191&B,$=B>>>13,U=0|s[0],F=8191&U,z=U>>>13,q=0|s[1],V=8191&q,H=q>>>13,G=0|s[2],K=8191&G,W=G>>>13,Y=0|s[3],J=8191&Y,X=Y>>>13,Z=0|s[4],Q=8191&Z,ee=Z>>>13,te=0|s[5],ne=8191&te,re=te>>>13,ie=0|s[6],ae=8191&ie,oe=ie>>>13,se=0|s[7],ce=8191&se,ue=se>>>13,le=0|s[8],fe=8191&le,de=le>>>13,he=0|s[9],pe=8191&he,ge=he>>>13;n.negative=e.negative^t.negative,n.length=19;var me=(u+(r=Math.imul(f,F))|0)+((8191&(i=(i=Math.imul(f,z))+Math.imul(d,F)|0))<<13)|0;u=((a=Math.imul(d,z))+(i>>>13)|0)+(me>>>26)|0,me&=67108863,r=Math.imul(p,F),i=(i=Math.imul(p,z))+Math.imul(g,F)|0,a=Math.imul(g,z);var be=(u+(r=r+Math.imul(f,V)|0)|0)+((8191&(i=(i=i+Math.imul(f,H)|0)+Math.imul(d,V)|0))<<13)|0;u=((a=a+Math.imul(d,H)|0)+(i>>>13)|0)+(be>>>26)|0,be&=67108863,r=Math.imul(b,F),i=(i=Math.imul(b,z))+Math.imul(v,F)|0,a=Math.imul(v,z),r=r+Math.imul(p,V)|0,i=(i=i+Math.imul(p,H)|0)+Math.imul(g,V)|0,a=a+Math.imul(g,H)|0;var ve=(u+(r=r+Math.imul(f,K)|0)|0)+((8191&(i=(i=i+Math.imul(f,W)|0)+Math.imul(d,K)|0))<<13)|0;u=((a=a+Math.imul(d,W)|0)+(i>>>13)|0)+(ve>>>26)|0,ve&=67108863,r=Math.imul(_,F),i=(i=Math.imul(_,z))+Math.imul(w,F)|0,a=Math.imul(w,z),r=r+Math.imul(b,V)|0,i=(i=i+Math.imul(b,H)|0)+Math.imul(v,V)|0,a=a+Math.imul(v,H)|0,r=r+Math.imul(p,K)|0,i=(i=i+Math.imul(p,W)|0)+Math.imul(g,K)|0,a=a+Math.imul(g,W)|0;var ye=(u+(r=r+Math.imul(f,J)|0)|0)+((8191&(i=(i=i+Math.imul(f,X)|0)+Math.imul(d,J)|0))<<13)|0;u=((a=a+Math.imul(d,X)|0)+(i>>>13)|0)+(ye>>>26)|0,ye&=67108863,r=Math.imul(M,F),i=(i=Math.imul(M,z))+Math.imul(E,F)|0,a=Math.imul(E,z),r=r+Math.imul(_,V)|0,i=(i=i+Math.imul(_,H)|0)+Math.imul(w,V)|0,a=a+Math.imul(w,H)|0,r=r+Math.imul(b,K)|0,i=(i=i+Math.imul(b,W)|0)+Math.imul(v,K)|0,a=a+Math.imul(v,W)|0,r=r+Math.imul(p,J)|0,i=(i=i+Math.imul(p,X)|0)+Math.imul(g,J)|0,a=a+Math.imul(g,X)|0;var _e=(u+(r=r+Math.imul(f,Q)|0)|0)+((8191&(i=(i=i+Math.imul(f,ee)|0)+Math.imul(d,Q)|0))<<13)|0;u=((a=a+Math.imul(d,ee)|0)+(i>>>13)|0)+(_e>>>26)|0,_e&=67108863,r=Math.imul(I,F),i=(i=Math.imul(I,z))+Math.imul(k,F)|0,a=Math.imul(k,z),r=r+Math.imul(M,V)|0,i=(i=i+Math.imul(M,H)|0)+Math.imul(E,V)|0,a=a+Math.imul(E,H)|0,r=r+Math.imul(_,K)|0,i=(i=i+Math.imul(_,W)|0)+Math.imul(w,K)|0,a=a+Math.imul(w,W)|0,r=r+Math.imul(b,J)|0,i=(i=i+Math.imul(b,X)|0)+Math.imul(v,J)|0,a=a+Math.imul(v,X)|0,r=r+Math.imul(p,Q)|0,i=(i=i+Math.imul(p,ee)|0)+Math.imul(g,Q)|0,a=a+Math.imul(g,ee)|0;var we=(u+(r=r+Math.imul(f,ne)|0)|0)+((8191&(i=(i=i+Math.imul(f,re)|0)+Math.imul(d,ne)|0))<<13)|0;u=((a=a+Math.imul(d,re)|0)+(i>>>13)|0)+(we>>>26)|0,we&=67108863,r=Math.imul(x,F),i=(i=Math.imul(x,z))+Math.imul(P,F)|0,a=Math.imul(P,z),r=r+Math.imul(I,V)|0,i=(i=i+Math.imul(I,H)|0)+Math.imul(k,V)|0,a=a+Math.imul(k,H)|0,r=r+Math.imul(M,K)|0,i=(i=i+Math.imul(M,W)|0)+Math.imul(E,K)|0,a=a+Math.imul(E,W)|0,r=r+Math.imul(_,J)|0,i=(i=i+Math.imul(_,X)|0)+Math.imul(w,J)|0,a=a+Math.imul(w,X)|0,r=r+Math.imul(b,Q)|0,i=(i=i+Math.imul(b,ee)|0)+Math.imul(v,Q)|0,a=a+Math.imul(v,ee)|0,r=r+Math.imul(p,ne)|0,i=(i=i+Math.imul(p,re)|0)+Math.imul(g,ne)|0,a=a+Math.imul(g,re)|0;var Se=(u+(r=r+Math.imul(f,ae)|0)|0)+((8191&(i=(i=i+Math.imul(f,oe)|0)+Math.imul(d,ae)|0))<<13)|0;u=((a=a+Math.imul(d,oe)|0)+(i>>>13)|0)+(Se>>>26)|0,Se&=67108863,r=Math.imul(j,F),i=(i=Math.imul(j,z))+Math.imul(D,F)|0,a=Math.imul(D,z),r=r+Math.imul(x,V)|0,i=(i=i+Math.imul(x,H)|0)+Math.imul(P,V)|0,a=a+Math.imul(P,H)|0,r=r+Math.imul(I,K)|0,i=(i=i+Math.imul(I,W)|0)+Math.imul(k,K)|0,a=a+Math.imul(k,W)|0,r=r+Math.imul(M,J)|0,i=(i=i+Math.imul(M,X)|0)+Math.imul(E,J)|0,a=a+Math.imul(E,X)|0,r=r+Math.imul(_,Q)|0,i=(i=i+Math.imul(_,ee)|0)+Math.imul(w,Q)|0,a=a+Math.imul(w,ee)|0,r=r+Math.imul(b,ne)|0,i=(i=i+Math.imul(b,re)|0)+Math.imul(v,ne)|0,a=a+Math.imul(v,re)|0,r=r+Math.imul(p,ae)|0,i=(i=i+Math.imul(p,oe)|0)+Math.imul(g,ae)|0,a=a+Math.imul(g,oe)|0;var Me=(u+(r=r+Math.imul(f,ce)|0)|0)+((8191&(i=(i=i+Math.imul(f,ue)|0)+Math.imul(d,ce)|0))<<13)|0;u=((a=a+Math.imul(d,ue)|0)+(i>>>13)|0)+(Me>>>26)|0,Me&=67108863,r=Math.imul(R,F),i=(i=Math.imul(R,z))+Math.imul(T,F)|0,a=Math.imul(T,z),r=r+Math.imul(j,V)|0,i=(i=i+Math.imul(j,H)|0)+Math.imul(D,V)|0,a=a+Math.imul(D,H)|0,r=r+Math.imul(x,K)|0,i=(i=i+Math.imul(x,W)|0)+Math.imul(P,K)|0,a=a+Math.imul(P,W)|0,r=r+Math.imul(I,J)|0,i=(i=i+Math.imul(I,X)|0)+Math.imul(k,J)|0,a=a+Math.imul(k,X)|0,r=r+Math.imul(M,Q)|0,i=(i=i+Math.imul(M,ee)|0)+Math.imul(E,Q)|0,a=a+Math.imul(E,ee)|0,r=r+Math.imul(_,ne)|0,i=(i=i+Math.imul(_,re)|0)+Math.imul(w,ne)|0,a=a+Math.imul(w,re)|0,r=r+Math.imul(b,ae)|0,i=(i=i+Math.imul(b,oe)|0)+Math.imul(v,ae)|0,a=a+Math.imul(v,oe)|0,r=r+Math.imul(p,ce)|0,i=(i=i+Math.imul(p,ue)|0)+Math.imul(g,ce)|0,a=a+Math.imul(g,ue)|0;var Ee=(u+(r=r+Math.imul(f,fe)|0)|0)+((8191&(i=(i=i+Math.imul(f,de)|0)+Math.imul(d,fe)|0))<<13)|0;u=((a=a+Math.imul(d,de)|0)+(i>>>13)|0)+(Ee>>>26)|0,Ee&=67108863,r=Math.imul(L,F),i=(i=Math.imul(L,z))+Math.imul($,F)|0,a=Math.imul($,z),r=r+Math.imul(R,V)|0,i=(i=i+Math.imul(R,H)|0)+Math.imul(T,V)|0,a=a+Math.imul(T,H)|0,r=r+Math.imul(j,K)|0,i=(i=i+Math.imul(j,W)|0)+Math.imul(D,K)|0,a=a+Math.imul(D,W)|0,r=r+Math.imul(x,J)|0,i=(i=i+Math.imul(x,X)|0)+Math.imul(P,J)|0,a=a+Math.imul(P,X)|0,r=r+Math.imul(I,Q)|0,i=(i=i+Math.imul(I,ee)|0)+Math.imul(k,Q)|0,a=a+Math.imul(k,ee)|0,r=r+Math.imul(M,ne)|0,i=(i=i+Math.imul(M,re)|0)+Math.imul(E,ne)|0,a=a+Math.imul(E,re)|0,r=r+Math.imul(_,ae)|0,i=(i=i+Math.imul(_,oe)|0)+Math.imul(w,ae)|0,a=a+Math.imul(w,oe)|0,r=r+Math.imul(b,ce)|0,i=(i=i+Math.imul(b,ue)|0)+Math.imul(v,ce)|0,a=a+Math.imul(v,ue)|0,r=r+Math.imul(p,fe)|0,i=(i=i+Math.imul(p,de)|0)+Math.imul(g,fe)|0,a=a+Math.imul(g,de)|0;var Ae=(u+(r=r+Math.imul(f,pe)|0)|0)+((8191&(i=(i=i+Math.imul(f,ge)|0)+Math.imul(d,pe)|0))<<13)|0;u=((a=a+Math.imul(d,ge)|0)+(i>>>13)|0)+(Ae>>>26)|0,Ae&=67108863,r=Math.imul(L,V),i=(i=Math.imul(L,H))+Math.imul($,V)|0,a=Math.imul($,H),r=r+Math.imul(R,K)|0,i=(i=i+Math.imul(R,W)|0)+Math.imul(T,K)|0,a=a+Math.imul(T,W)|0,r=r+Math.imul(j,J)|0,i=(i=i+Math.imul(j,X)|0)+Math.imul(D,J)|0,a=a+Math.imul(D,X)|0,r=r+Math.imul(x,Q)|0,i=(i=i+Math.imul(x,ee)|0)+Math.imul(P,Q)|0,a=a+Math.imul(P,ee)|0,r=r+Math.imul(I,ne)|0,i=(i=i+Math.imul(I,re)|0)+Math.imul(k,ne)|0,a=a+Math.imul(k,re)|0,r=r+Math.imul(M,ae)|0,i=(i=i+Math.imul(M,oe)|0)+Math.imul(E,ae)|0,a=a+Math.imul(E,oe)|0,r=r+Math.imul(_,ce)|0,i=(i=i+Math.imul(_,ue)|0)+Math.imul(w,ce)|0,a=a+Math.imul(w,ue)|0,r=r+Math.imul(b,fe)|0,i=(i=i+Math.imul(b,de)|0)+Math.imul(v,fe)|0,a=a+Math.imul(v,de)|0;var Ie=(u+(r=r+Math.imul(p,pe)|0)|0)+((8191&(i=(i=i+Math.imul(p,ge)|0)+Math.imul(g,pe)|0))<<13)|0;u=((a=a+Math.imul(g,ge)|0)+(i>>>13)|0)+(Ie>>>26)|0,Ie&=67108863,r=Math.imul(L,K),i=(i=Math.imul(L,W))+Math.imul($,K)|0,a=Math.imul($,W),r=r+Math.imul(R,J)|0,i=(i=i+Math.imul(R,X)|0)+Math.imul(T,J)|0,a=a+Math.imul(T,X)|0,r=r+Math.imul(j,Q)|0,i=(i=i+Math.imul(j,ee)|0)+Math.imul(D,Q)|0,a=a+Math.imul(D,ee)|0,r=r+Math.imul(x,ne)|0,i=(i=i+Math.imul(x,re)|0)+Math.imul(P,ne)|0,a=a+Math.imul(P,re)|0,r=r+Math.imul(I,ae)|0,i=(i=i+Math.imul(I,oe)|0)+Math.imul(k,ae)|0,a=a+Math.imul(k,oe)|0,r=r+Math.imul(M,ce)|0,i=(i=i+Math.imul(M,ue)|0)+Math.imul(E,ce)|0,a=a+Math.imul(E,ue)|0,r=r+Math.imul(_,fe)|0,i=(i=i+Math.imul(_,de)|0)+Math.imul(w,fe)|0,a=a+Math.imul(w,de)|0;var ke=(u+(r=r+Math.imul(b,pe)|0)|0)+((8191&(i=(i=i+Math.imul(b,ge)|0)+Math.imul(v,pe)|0))<<13)|0;u=((a=a+Math.imul(v,ge)|0)+(i>>>13)|0)+(ke>>>26)|0,ke&=67108863,r=Math.imul(L,J),i=(i=Math.imul(L,X))+Math.imul($,J)|0,a=Math.imul($,X),r=r+Math.imul(R,Q)|0,i=(i=i+Math.imul(R,ee)|0)+Math.imul(T,Q)|0,a=a+Math.imul(T,ee)|0,r=r+Math.imul(j,ne)|0,i=(i=i+Math.imul(j,re)|0)+Math.imul(D,ne)|0,a=a+Math.imul(D,re)|0,r=r+Math.imul(x,ae)|0,i=(i=i+Math.imul(x,oe)|0)+Math.imul(P,ae)|0,a=a+Math.imul(P,oe)|0,r=r+Math.imul(I,ce)|0,i=(i=i+Math.imul(I,ue)|0)+Math.imul(k,ce)|0,a=a+Math.imul(k,ue)|0,r=r+Math.imul(M,fe)|0,i=(i=i+Math.imul(M,de)|0)+Math.imul(E,fe)|0,a=a+Math.imul(E,de)|0;var Oe=(u+(r=r+Math.imul(_,pe)|0)|0)+((8191&(i=(i=i+Math.imul(_,ge)|0)+Math.imul(w,pe)|0))<<13)|0;u=((a=a+Math.imul(w,ge)|0)+(i>>>13)|0)+(Oe>>>26)|0,Oe&=67108863,r=Math.imul(L,Q),i=(i=Math.imul(L,ee))+Math.imul($,Q)|0,a=Math.imul($,ee),r=r+Math.imul(R,ne)|0,i=(i=i+Math.imul(R,re)|0)+Math.imul(T,ne)|0,a=a+Math.imul(T,re)|0,r=r+Math.imul(j,ae)|0,i=(i=i+Math.imul(j,oe)|0)+Math.imul(D,ae)|0,a=a+Math.imul(D,oe)|0,r=r+Math.imul(x,ce)|0,i=(i=i+Math.imul(x,ue)|0)+Math.imul(P,ce)|0,a=a+Math.imul(P,ue)|0,r=r+Math.imul(I,fe)|0,i=(i=i+Math.imul(I,de)|0)+Math.imul(k,fe)|0,a=a+Math.imul(k,de)|0;var xe=(u+(r=r+Math.imul(M,pe)|0)|0)+((8191&(i=(i=i+Math.imul(M,ge)|0)+Math.imul(E,pe)|0))<<13)|0;u=((a=a+Math.imul(E,ge)|0)+(i>>>13)|0)+(xe>>>26)|0,xe&=67108863,r=Math.imul(L,ne),i=(i=Math.imul(L,re))+Math.imul($,ne)|0,a=Math.imul($,re),r=r+Math.imul(R,ae)|0,i=(i=i+Math.imul(R,oe)|0)+Math.imul(T,ae)|0,a=a+Math.imul(T,oe)|0,r=r+Math.imul(j,ce)|0,i=(i=i+Math.imul(j,ue)|0)+Math.imul(D,ce)|0,a=a+Math.imul(D,ue)|0,r=r+Math.imul(x,fe)|0,i=(i=i+Math.imul(x,de)|0)+Math.imul(P,fe)|0,a=a+Math.imul(P,de)|0;var Pe=(u+(r=r+Math.imul(I,pe)|0)|0)+((8191&(i=(i=i+Math.imul(I,ge)|0)+Math.imul(k,pe)|0))<<13)|0;u=((a=a+Math.imul(k,ge)|0)+(i>>>13)|0)+(Pe>>>26)|0,Pe&=67108863,r=Math.imul(L,ae),i=(i=Math.imul(L,oe))+Math.imul($,ae)|0,a=Math.imul($,oe),r=r+Math.imul(R,ce)|0,i=(i=i+Math.imul(R,ue)|0)+Math.imul(T,ce)|0,a=a+Math.imul(T,ue)|0,r=r+Math.imul(j,fe)|0,i=(i=i+Math.imul(j,de)|0)+Math.imul(D,fe)|0,a=a+Math.imul(D,de)|0;var Ce=(u+(r=r+Math.imul(x,pe)|0)|0)+((8191&(i=(i=i+Math.imul(x,ge)|0)+Math.imul(P,pe)|0))<<13)|0;u=((a=a+Math.imul(P,ge)|0)+(i>>>13)|0)+(Ce>>>26)|0,Ce&=67108863,r=Math.imul(L,ce),i=(i=Math.imul(L,ue))+Math.imul($,ce)|0,a=Math.imul($,ue),r=r+Math.imul(R,fe)|0,i=(i=i+Math.imul(R,de)|0)+Math.imul(T,fe)|0,a=a+Math.imul(T,de)|0;var je=(u+(r=r+Math.imul(j,pe)|0)|0)+((8191&(i=(i=i+Math.imul(j,ge)|0)+Math.imul(D,pe)|0))<<13)|0;u=((a=a+Math.imul(D,ge)|0)+(i>>>13)|0)+(je>>>26)|0,je&=67108863,r=Math.imul(L,fe),i=(i=Math.imul(L,de))+Math.imul($,fe)|0,a=Math.imul($,de);var De=(u+(r=r+Math.imul(R,pe)|0)|0)+((8191&(i=(i=i+Math.imul(R,ge)|0)+Math.imul(T,pe)|0))<<13)|0;u=((a=a+Math.imul(T,ge)|0)+(i>>>13)|0)+(De>>>26)|0,De&=67108863;var Ne=(u+(r=Math.imul(L,pe))|0)+((8191&(i=(i=Math.imul(L,ge))+Math.imul($,pe)|0))<<13)|0;return u=((a=Math.imul($,ge))+(i>>>13)|0)+(Ne>>>26)|0,Ne&=67108863,c[0]=me,c[1]=be,c[2]=ve,c[3]=ye,c[4]=_e,c[5]=we,c[6]=Se,c[7]=Me,c[8]=Ee,c[9]=Ae,c[10]=Ie,c[11]=ke,c[12]=Oe,c[13]=xe,c[14]=Pe,c[15]=Ce,c[16]=je,c[17]=De,c[18]=Ne,0!==u&&(c[19]=u,n.length++),n};function g(e,t,n){return(new m).mulp(e,t,n)}function m(e,t){this.x=e,this.y=t}Math.imul||(p=h),o.prototype.mulTo=function(e,t){var n=this.length+e.length;return 10===this.length&&10===e.length?p(this,e,t):n<63?h(this,e,t):n<1024?function(e,t,n){n.negative=t.negative^e.negative,n.length=e.length+t.length;for(var r=0,i=0,a=0;a<n.length-1;a++){var o=i;i=0;for(var s=67108863&r,c=Math.min(a,t.length-1),u=Math.max(0,a-e.length+1);u<=c;u++){var l=a-u,f=(0|e.words[l])*(0|t.words[u]),d=67108863&f;s=67108863&(d=d+s|0),i+=(o=(o=o+(f/67108864|0)|0)+(d>>>26)|0)>>>26,o&=67108863}n.words[a]=s,r=o,o=i}return 0!==r?n.words[a]=r:n.length--,n.strip()}(this,e,t):g(this,e,t)},m.prototype.makeRBT=function(e){for(var t=new Array(e),n=o.prototype._countBits(e)-1,r=0;r<e;r++)t[r]=this.revBin(r,n,e);return t},m.prototype.revBin=function(e,t,n){if(0===e||e===n-1)return e;for(var r=0,i=0;i<t;i++)r|=(1&e)<<t-i-1,e>>=1;return r},m.prototype.permute=function(e,t,n,r,i,a){for(var o=0;o<a;o++)r[o]=t[e[o]],i[o]=n[e[o]]},m.prototype.transform=function(e,t,n,r,i,a){this.permute(a,e,t,n,r,i);for(var o=1;o<i;o<<=1)for(var s=o<<1,c=Math.cos(2*Math.PI/s),u=Math.sin(2*Math.PI/s),l=0;l<i;l+=s)for(var f=c,d=u,h=0;h<o;h++){var p=n[l+h],g=r[l+h],m=n[l+h+o],b=r[l+h+o],v=f*m-d*b;b=f*b+d*m,m=v,n[l+h]=p+m,r[l+h]=g+b,n[l+h+o]=p-m,r[l+h+o]=g-b,h!==s&&(v=c*f-u*d,d=c*d+u*f,f=v)}},m.prototype.guessLen13b=function(e,t){var n=1|Math.max(t,e),r=1&n,i=0;for(n=n/2|0;n;n>>>=1)i++;return 1<<i+1+r},m.prototype.conjugate=function(e,t,n){if(!(n<=1))for(var r=0;r<n/2;r++){var i=e[r];e[r]=e[n-r-1],e[n-r-1]=i,i=t[r],t[r]=-t[n-r-1],t[n-r-1]=-i}},m.prototype.normalize13b=function(e,t){for(var n=0,r=0;r<t/2;r++){var i=8192*Math.round(e[2*r+1]/t)+Math.round(e[2*r]/t)+n;e[r]=67108863&i,n=i<67108864?0:i/67108864|0}return e},m.prototype.convert13b=function(e,t,n,r){for(var a=0,o=0;o<t;o++)a+=0|e[o],n[2*o]=8191&a,a>>>=13,n[2*o+1]=8191&a,a>>>=13;for(o=2*t;o<r;++o)n[o]=0;i(0===a),i(0==(-8192&a))},m.prototype.stub=function(e){for(var t=new Array(e),n=0;n<e;n++)t[n]=0;return t},m.prototype.mulp=function(e,t,n){var r=2*this.guessLen13b(e.length,t.length),i=this.makeRBT(r),a=this.stub(r),o=new Array(r),s=new Array(r),c=new Array(r),u=new Array(r),l=new Array(r),f=new Array(r),d=n.words;d.length=r,this.convert13b(e.words,e.length,o,r),this.convert13b(t.words,t.length,u,r),this.transform(o,a,s,c,r,i),this.transform(u,a,l,f,r,i);for(var h=0;h<r;h++){var p=s[h]*l[h]-c[h]*f[h];c[h]=s[h]*f[h]+c[h]*l[h],s[h]=p}return this.conjugate(s,c,r),this.transform(s,c,d,a,r,i),this.conjugate(d,a,r),this.normalize13b(d,r),n.negative=e.negative^t.negative,n.length=e.length+t.length,n.strip()},o.prototype.mul=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),this.mulTo(e,t)},o.prototype.mulf=function(e){var t=new o(null);return t.words=new Array(this.length+e.length),g(this,e,t)},o.prototype.imul=function(e){return this.clone().mulTo(e,this)},o.prototype.imuln=function(e){i("number"==typeof e),i(e<67108864);for(var t=0,n=0;n<this.length;n++){var r=(0|this.words[n])*e,a=(67108863&r)+(67108863&t);t>>=26,t+=r/67108864|0,t+=a>>>26,this.words[n]=67108863&a}return 0!==t&&(this.words[n]=t,this.length++),this},o.prototype.muln=function(e){return this.clone().imuln(e)},o.prototype.sqr=function(){return this.mul(this)},o.prototype.isqr=function(){return this.imul(this.clone())},o.prototype.pow=function(e){var t=function(e){for(var t=new Array(e.bitLength()),n=0;n<t.length;n++){var r=n/26|0,i=n%26;t[n]=(e.words[r]&1<<i)>>>i}return t}(e);if(0===t.length)return new o(1);for(var n=this,r=0;r<t.length&&0===t[r];r++,n=n.sqr());if(++r<t.length)for(var i=n.sqr();r<t.length;r++,i=i.sqr())0!==t[r]&&(n=n.mul(i));return n},o.prototype.iushln=function(e){i("number"==typeof e&&e>=0);var t,n=e%26,r=(e-n)/26,a=67108863>>>26-n<<26-n;if(0!==n){var o=0;for(t=0;t<this.length;t++){var s=this.words[t]&a,c=(0|this.words[t])-s<<n;this.words[t]=c|o,o=s>>>26-n}o&&(this.words[t]=o,this.length++)}if(0!==r){for(t=this.length-1;t>=0;t--)this.words[t+r]=this.words[t];for(t=0;t<r;t++)this.words[t]=0;this.length+=r}return this.strip()},o.prototype.ishln=function(e){return i(0===this.negative),this.iushln(e)},o.prototype.iushrn=function(e,t,n){var r;i("number"==typeof e&&e>=0),r=t?(t-t%26)/26:0;var a=e%26,o=Math.min((e-a)/26,this.length),s=67108863^67108863>>>a<<a,c=n;if(r-=o,r=Math.max(0,r),c){for(var u=0;u<o;u++)c.words[u]=this.words[u];c.length=o}if(0===o);else if(this.length>o)for(this.length-=o,u=0;u<this.length;u++)this.words[u]=this.words[u+o];else this.words[0]=0,this.length=1;var l=0;for(u=this.length-1;u>=0&&(0!==l||u>=r);u--){var f=0|this.words[u];this.words[u]=l<<26-a|f>>>a,l=f&s}return c&&0!==l&&(c.words[c.length++]=l),0===this.length&&(this.words[0]=0,this.length=1),this.strip()},o.prototype.ishrn=function(e,t,n){return i(0===this.negative),this.iushrn(e,t,n)},o.prototype.shln=function(e){return this.clone().ishln(e)},o.prototype.ushln=function(e){return this.clone().iushln(e)},o.prototype.shrn=function(e){return this.clone().ishrn(e)},o.prototype.ushrn=function(e){return this.clone().iushrn(e)},o.prototype.testn=function(e){i("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26,r=1<<t;return!(this.length<=n)&&!!(this.words[n]&r)},o.prototype.imaskn=function(e){i("number"==typeof e&&e>=0);var t=e%26,n=(e-t)/26;if(i(0===this.negative,"imaskn works only with positive numbers"),this.length<=n)return this;if(0!==t&&n++,this.length=Math.min(n,this.length),0!==t){var r=67108863^67108863>>>t<<t;this.words[this.length-1]&=r}return this.strip()},o.prototype.maskn=function(e){return this.clone().imaskn(e)},o.prototype.iaddn=function(e){return i("number"==typeof e),i(e<67108864),e<0?this.isubn(-e):0!==this.negative?1===this.length&&(0|this.words[0])<e?(this.words[0]=e-(0|this.words[0]),this.negative=0,this):(this.negative=0,this.isubn(e),this.negative=1,this):this._iaddn(e)},o.prototype._iaddn=function(e){this.words[0]+=e;for(var t=0;t<this.length&&this.words[t]>=67108864;t++)this.words[t]-=67108864,t===this.length-1?this.words[t+1]=1:this.words[t+1]++;return this.length=Math.max(this.length,t+1),this},o.prototype.isubn=function(e){if(i("number"==typeof e),i(e<67108864),e<0)return this.iaddn(-e);if(0!==this.negative)return this.negative=0,this.iaddn(e),this.negative=1,this;if(this.words[0]-=e,1===this.length&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var t=0;t<this.length&&this.words[t]<0;t++)this.words[t]+=67108864,this.words[t+1]-=1;return this.strip()},o.prototype.addn=function(e){return this.clone().iaddn(e)},o.prototype.subn=function(e){return this.clone().isubn(e)},o.prototype.iabs=function(){return this.negative=0,this},o.prototype.abs=function(){return this.clone().iabs()},o.prototype._ishlnsubmul=function(e,t,n){var r,a,o=e.length+n;this._expand(o);var s=0;for(r=0;r<e.length;r++){a=(0|this.words[r+n])+s;var c=(0|e.words[r])*t;s=((a-=67108863&c)>>26)-(c/67108864|0),this.words[r+n]=67108863&a}for(;r<this.length-n;r++)s=(a=(0|this.words[r+n])+s)>>26,this.words[r+n]=67108863&a;if(0===s)return this.strip();for(i(-1===s),s=0,r=0;r<this.length;r++)s=(a=-(0|this.words[r])+s)>>26,this.words[r]=67108863&a;return this.negative=1,this.strip()},o.prototype._wordDiv=function(e,t){var n=(this.length,e.length),r=this.clone(),i=e,a=0|i.words[i.length-1];0!==(n=26-this._countBits(a))&&(i=i.ushln(n),r.iushln(n),a=0|i.words[i.length-1]);var s,c=r.length-i.length;if("mod"!==t){(s=new o(null)).length=c+1,s.words=new Array(s.length);for(var u=0;u<s.length;u++)s.words[u]=0}var l=r.clone()._ishlnsubmul(i,1,c);0===l.negative&&(r=l,s&&(s.words[c]=1));for(var f=c-1;f>=0;f--){var d=67108864*(0|r.words[i.length+f])+(0|r.words[i.length+f-1]);for(d=Math.min(d/a|0,67108863),r._ishlnsubmul(i,d,f);0!==r.negative;)d--,r.negative=0,r._ishlnsubmul(i,1,f),r.isZero()||(r.negative^=1);s&&(s.words[f]=d)}return s&&s.strip(),r.strip(),"div"!==t&&0!==n&&r.iushrn(n),{div:s||null,mod:r}},o.prototype.divmod=function(e,t,n){return i(!e.isZero()),this.isZero()?{div:new o(0),mod:new o(0)}:0!==this.negative&&0===e.negative?(s=this.neg().divmod(e,t),"mod"!==t&&(r=s.div.neg()),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.iadd(e)),{div:r,mod:a}):0===this.negative&&0!==e.negative?(s=this.divmod(e.neg(),t),"mod"!==t&&(r=s.div.neg()),{div:r,mod:s.mod}):0!=(this.negative&e.negative)?(s=this.neg().divmod(e.neg(),t),"div"!==t&&(a=s.mod.neg(),n&&0!==a.negative&&a.isub(e)),{div:s.div,mod:a}):e.length>this.length||this.cmp(e)<0?{div:new o(0),mod:this}:1===e.length?"div"===t?{div:this.divn(e.words[0]),mod:null}:"mod"===t?{div:null,mod:new o(this.modn(e.words[0]))}:{div:this.divn(e.words[0]),mod:new o(this.modn(e.words[0]))}:this._wordDiv(e,t);var r,a,s},o.prototype.div=function(e){return this.divmod(e,"div",!1).div},o.prototype.mod=function(e){return this.divmod(e,"mod",!1).mod},o.prototype.umod=function(e){return this.divmod(e,"mod",!0).mod},o.prototype.divRound=function(e){var t=this.divmod(e);if(t.mod.isZero())return t.div;var n=0!==t.div.negative?t.mod.isub(e):t.mod,r=e.ushrn(1),i=e.andln(1),a=n.cmp(r);return a<0||1===i&&0===a?t.div:0!==t.div.negative?t.div.isubn(1):t.div.iaddn(1)},o.prototype.modn=function(e){i(e<=67108863);for(var t=(1<<26)%e,n=0,r=this.length-1;r>=0;r--)n=(t*n+(0|this.words[r]))%e;return n},o.prototype.idivn=function(e){i(e<=67108863);for(var t=0,n=this.length-1;n>=0;n--){var r=(0|this.words[n])+67108864*t;this.words[n]=r/e|0,t=r%e}return this.strip()},o.prototype.divn=function(e){return this.clone().idivn(e)},o.prototype.egcd=function(e){i(0===e.negative),i(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var r=new o(1),a=new o(0),s=new o(0),c=new o(1),u=0;t.isEven()&&n.isEven();)t.iushrn(1),n.iushrn(1),++u;for(var l=n.clone(),f=t.clone();!t.isZero();){for(var d=0,h=1;0==(t.words[0]&h)&&d<26;++d,h<<=1);if(d>0)for(t.iushrn(d);d-- >0;)(r.isOdd()||a.isOdd())&&(r.iadd(l),a.isub(f)),r.iushrn(1),a.iushrn(1);for(var p=0,g=1;0==(n.words[0]&g)&&p<26;++p,g<<=1);if(p>0)for(n.iushrn(p);p-- >0;)(s.isOdd()||c.isOdd())&&(s.iadd(l),c.isub(f)),s.iushrn(1),c.iushrn(1);t.cmp(n)>=0?(t.isub(n),r.isub(s),a.isub(c)):(n.isub(t),s.isub(r),c.isub(a))}return{a:s,b:c,gcd:n.iushln(u)}},o.prototype._invmp=function(e){i(0===e.negative),i(!e.isZero());var t=this,n=e.clone();t=0!==t.negative?t.umod(e):t.clone();for(var r,a=new o(1),s=new o(0),c=n.clone();t.cmpn(1)>0&&n.cmpn(1)>0;){for(var u=0,l=1;0==(t.words[0]&l)&&u<26;++u,l<<=1);if(u>0)for(t.iushrn(u);u-- >0;)a.isOdd()&&a.iadd(c),a.iushrn(1);for(var f=0,d=1;0==(n.words[0]&d)&&f<26;++f,d<<=1);if(f>0)for(n.iushrn(f);f-- >0;)s.isOdd()&&s.iadd(c),s.iushrn(1);t.cmp(n)>=0?(t.isub(n),a.isub(s)):(n.isub(t),s.isub(a))}return(r=0===t.cmpn(1)?a:s).cmpn(0)<0&&r.iadd(e),r},o.prototype.gcd=function(e){if(this.isZero())return e.abs();if(e.isZero())return this.abs();var t=this.clone(),n=e.clone();t.negative=0,n.negative=0;for(var r=0;t.isEven()&&n.isEven();r++)t.iushrn(1),n.iushrn(1);for(;;){for(;t.isEven();)t.iushrn(1);for(;n.isEven();)n.iushrn(1);var i=t.cmp(n);if(i<0){var a=t;t=n,n=a}else if(0===i||0===n.cmpn(1))break;t.isub(n)}return n.iushln(r)},o.prototype.invm=function(e){return this.egcd(e).a.umod(e)},o.prototype.isEven=function(){return 0==(1&this.words[0])},o.prototype.isOdd=function(){return 1==(1&this.words[0])},o.prototype.andln=function(e){return this.words[0]&e},o.prototype.bincn=function(e){i("number"==typeof e);var t=e%26,n=(e-t)/26,r=1<<t;if(this.length<=n)return this._expand(n+1),this.words[n]|=r,this;for(var a=r,o=n;0!==a&&o<this.length;o++){var s=0|this.words[o];a=(s+=a)>>>26,s&=67108863,this.words[o]=s}return 0!==a&&(this.words[o]=a,this.length++),this},o.prototype.isZero=function(){return 1===this.length&&0===this.words[0]},o.prototype.cmpn=function(e){var t,n=e<0;if(0!==this.negative&&!n)return-1;if(0===this.negative&&n)return 1;if(this.strip(),this.length>1)t=1;else{n&&(e=-e),i(e<=67108863,"Number is too big");var r=0|this.words[0];t=r===e?0:r<e?-1:1}return 0!==this.negative?0|-t:t},o.prototype.cmp=function(e){if(0!==this.negative&&0===e.negative)return-1;if(0===this.negative&&0!==e.negative)return 1;var t=this.ucmp(e);return 0!==this.negative?0|-t:t},o.prototype.ucmp=function(e){if(this.length>e.length)return 1;if(this.length<e.length)return-1;for(var t=0,n=this.length-1;n>=0;n--){var r=0|this.words[n],i=0|e.words[n];if(r!==i){r<i?t=-1:r>i&&(t=1);break}}return t},o.prototype.gtn=function(e){return 1===this.cmpn(e)},o.prototype.gt=function(e){return 1===this.cmp(e)},o.prototype.gten=function(e){return this.cmpn(e)>=0},o.prototype.gte=function(e){return this.cmp(e)>=0},o.prototype.ltn=function(e){return-1===this.cmpn(e)},o.prototype.lt=function(e){return-1===this.cmp(e)},o.prototype.lten=function(e){return this.cmpn(e)<=0},o.prototype.lte=function(e){return this.cmp(e)<=0},o.prototype.eqn=function(e){return 0===this.cmpn(e)},o.prototype.eq=function(e){return 0===this.cmp(e)},o.red=function(e){return new M(e)},o.prototype.toRed=function(e){return i(!this.red,"Already a number in reduction context"),i(0===this.negative,"red works only with positives"),e.convertTo(this)._forceRed(e)},o.prototype.fromRed=function(){return i(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},o.prototype._forceRed=function(e){return this.red=e,this},o.prototype.forceRed=function(e){return i(!this.red,"Already a number in reduction context"),this._forceRed(e)},o.prototype.redAdd=function(e){return i(this.red,"redAdd works only with red numbers"),this.red.add(this,e)},o.prototype.redIAdd=function(e){return i(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,e)},o.prototype.redSub=function(e){return i(this.red,"redSub works only with red numbers"),this.red.sub(this,e)},o.prototype.redISub=function(e){return i(this.red,"redISub works only with red numbers"),this.red.isub(this,e)},o.prototype.redShl=function(e){return i(this.red,"redShl works only with red numbers"),this.red.shl(this,e)},o.prototype.redMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.mul(this,e)},o.prototype.redIMul=function(e){return i(this.red,"redMul works only with red numbers"),this.red._verify2(this,e),this.red.imul(this,e)},o.prototype.redSqr=function(){return i(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},o.prototype.redISqr=function(){return i(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},o.prototype.redSqrt=function(){return i(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},o.prototype.redInvm=function(){return i(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},o.prototype.redNeg=function(){return i(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},o.prototype.redPow=function(e){return i(this.red&&!e.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,e)};var b={k256:null,p224:null,p192:null,p25519:null};function v(e,t){this.name=e,this.p=new o(t,16),this.n=this.p.bitLength(),this.k=new o(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}function y(){v.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}function _(){v.call(this,"p224","ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001")}function w(){v.call(this,"p192","ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff")}function S(){v.call(this,"25519","7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed")}function M(e){if("string"==typeof e){var t=o._prime(e);this.m=t.p,this.prime=t}else i(e.gtn(1),"modulus must be greater than 1"),this.m=e,this.prime=null}function E(e){M.call(this,e),this.shift=this.m.bitLength(),this.shift%26!=0&&(this.shift+=26-this.shift%26),this.r=new o(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}v.prototype._tmp=function(){var e=new o(null);return e.words=new Array(Math.ceil(this.n/13)),e},v.prototype.ireduce=function(e){var t,n=e;do{this.split(n,this.tmp),t=(n=(n=this.imulK(n)).iadd(this.tmp)).bitLength()}while(t>this.n);var r=t<this.n?-1:n.ucmp(this.p);return 0===r?(n.words[0]=0,n.length=1):r>0?n.isub(this.p):n.strip(),n},v.prototype.split=function(e,t){e.iushrn(this.n,0,t)},v.prototype.imulK=function(e){return e.imul(this.k)},a(y,v),y.prototype.split=function(e,t){for(var n=Math.min(e.length,9),r=0;r<n;r++)t.words[r]=e.words[r];if(t.length=n,e.length<=9)return e.words[0]=0,void(e.length=1);var i=e.words[9];for(t.words[t.length++]=4194303&i,r=10;r<e.length;r++){var a=0|e.words[r];e.words[r-10]=(4194303&a)<<4|i>>>22,i=a}i>>>=22,e.words[r-10]=i,0===i&&e.length>10?e.length-=10:e.length-=9},y.prototype.imulK=function(e){e.words[e.length]=0,e.words[e.length+1]=0,e.length+=2;for(var t=0,n=0;n<e.length;n++){var r=0|e.words[n];t+=977*r,e.words[n]=67108863&t,t=64*r+(t/67108864|0)}return 0===e.words[e.length-1]&&(e.length--,0===e.words[e.length-1]&&e.length--),e},a(_,v),a(w,v),a(S,v),S.prototype.imulK=function(e){for(var t=0,n=0;n<e.length;n++){var r=19*(0|e.words[n])+t,i=67108863&r;r>>>=26,e.words[n]=i,t=r}return 0!==t&&(e.words[e.length++]=t),e},o._prime=function(e){if(b[e])return b[e];var t;if("k256"===e)t=new y;else if("p224"===e)t=new _;else if("p192"===e)t=new w;else{if("p25519"!==e)throw new Error("Unknown prime "+e);t=new S}return b[e]=t,t},M.prototype._verify1=function(e){i(0===e.negative,"red works only with positives"),i(e.red,"red works only with red numbers")},M.prototype._verify2=function(e,t){i(0==(e.negative|t.negative),"red works only with positives"),i(e.red&&e.red===t.red,"red works only with red numbers")},M.prototype.imod=function(e){return this.prime?this.prime.ireduce(e)._forceRed(this):e.umod(this.m)._forceRed(this)},M.prototype.neg=function(e){return e.isZero()?e.clone():this.m.sub(e)._forceRed(this)},M.prototype.add=function(e,t){this._verify2(e,t);var n=e.add(t);return n.cmp(this.m)>=0&&n.isub(this.m),n._forceRed(this)},M.prototype.iadd=function(e,t){this._verify2(e,t);var n=e.iadd(t);return n.cmp(this.m)>=0&&n.isub(this.m),n},M.prototype.sub=function(e,t){this._verify2(e,t);var n=e.sub(t);return n.cmpn(0)<0&&n.iadd(this.m),n._forceRed(this)},M.prototype.isub=function(e,t){this._verify2(e,t);var n=e.isub(t);return n.cmpn(0)<0&&n.iadd(this.m),n},M.prototype.shl=function(e,t){return this._verify1(e),this.imod(e.ushln(t))},M.prototype.imul=function(e,t){return this._verify2(e,t),this.imod(e.imul(t))},M.prototype.mul=function(e,t){return this._verify2(e,t),this.imod(e.mul(t))},M.prototype.isqr=function(e){return this.imul(e,e.clone())},M.prototype.sqr=function(e){return this.mul(e,e)},M.prototype.sqrt=function(e){if(e.isZero())return e.clone();var t=this.m.andln(3);if(i(t%2==1),3===t){var n=this.m.add(new o(1)).iushrn(2);return this.pow(e,n)}for(var r=this.m.subn(1),a=0;!r.isZero()&&0===r.andln(1);)a++,r.iushrn(1);i(!r.isZero());var s=new o(1).toRed(this),c=s.redNeg(),u=this.m.subn(1).iushrn(1),l=this.m.bitLength();for(l=new o(2*l*l).toRed(this);0!==this.pow(l,u).cmp(c);)l.redIAdd(c);for(var f=this.pow(l,r),d=this.pow(e,r.addn(1).iushrn(1)),h=this.pow(e,r),p=a;0!==h.cmp(s);){for(var g=h,m=0;0!==g.cmp(s);m++)g=g.redSqr();i(m<p);var b=this.pow(f,new o(1).iushln(p-m-1));d=d.redMul(b),f=b.redSqr(),h=h.redMul(f),p=m}return d},M.prototype.invm=function(e){var t=e._invmp(this.m);return 0!==t.negative?(t.negative=0,this.imod(t).redNeg()):this.imod(t)},M.prototype.pow=function(e,t){if(t.isZero())return new o(1).toRed(this);if(0===t.cmpn(1))return e.clone();var n=new Array(16);n[0]=new o(1).toRed(this),n[1]=e;for(var r=2;r<n.length;r++)n[r]=this.mul(n[r-1],e);var i=n[0],a=0,s=0,c=t.bitLength()%26;for(0===c&&(c=26),r=t.length-1;r>=0;r--){for(var u=t.words[r],l=c-1;l>=0;l--){var f=u>>l&1;i!==n[0]&&(i=this.sqr(i)),0!==f||0!==a?(a<<=1,a|=f,(4===++s||0===r&&0===l)&&(i=this.mul(i,n[a]),s=0,a=0)):s=0}c=26}return i},M.prototype.convertTo=function(e){var t=e.umod(this.m);return t===e?t.clone():t},M.prototype.convertFrom=function(e){var t=e.clone();return t.red=null,t},o.mont=function(e){return new E(e)},a(E,M),E.prototype.convertTo=function(e){return this.imod(e.ushln(this.shift))},E.prototype.convertFrom=function(e){var t=this.imod(e.mul(this.rinv));return t.red=null,t},E.prototype.imul=function(e,t){if(e.isZero()||t.isZero())return e.words[0]=0,e.length=1,e;var n=e.imul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},E.prototype.mul=function(e,t){if(e.isZero()||t.isZero())return new o(0)._forceRed(this);var n=e.mul(t),r=n.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),i=n.isub(r).iushrn(this.shift),a=i;return i.cmp(this.m)>=0?a=i.isub(this.m):i.cmpn(0)<0&&(a=i.iadd(this.m)),a._forceRed(this)},E.prototype.invm=function(e){return this.imod(e._invmp(this.m).mul(this.r2))._forceRed(this)}}(void 0===e||e)}).call(this,n(163)(e))},function(e,t,n){"use strict";var r=n(32);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){"use strict";var r=t;r.version=n(369).version,r.utils=n(368),r.rand=n(141),r.curve=n(70),r.curves=n(363),r.ec=n(355),r.eddsa=n(351)},function(e,t,n){"use strict";var r=n(0),i=n(4),a=n(32),o=/"/g,s=function(e,t,n,r){var i=String(a(e)),s="<"+t;return""!==n&&(s+=" "+n+'="'+String(r).replace(o,"&quot;")+'"'),s+">"+i+"</"+t+">"};e.exports=function(e,t){var n={};n[e]=t(s),r(r.P+r.F*i(function(){var t=""[e]('"');return t!==t.toLowerCase()||t.split('"').length>3}),"String",n)}},function(e,t,n){"use strict";var r=n(3),i=n(18),a=n(19),o=n(51)("src"),s=Function.toString,c=(""+s).split("toString");n(34).inspectSource=function(e){return s.call(e)},(e.exports=function(e,t,n,s){var u="function"==typeof n;u&&(a(n,"name")||i(n,"name",t)),e[t]!==n&&(u&&(a(n,o)||i(n,o,e[t]?""+e[t]:c.join(String(t)))),e===r?e[t]=n:s?e[t]?e[t]=n:i(e,t,n):(delete e[t],i(e,t,n)))})(Function.prototype,"toString",function(){return"function"==typeof this&&this[o]||s.call(this)})},function(e,t,n){"use strict";var r=n(10),i=n(52);e.exports=n(11)?function(e,t,n){return r.f(e,t,i(1,n))}:function(e,t,n){return e[t]=n,e}},function(e,t,n){"use strict";var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,n){"use strict";function r(e,t){if(!e)throw new Error(t||"Assertion failed")}e.exports=r,r.equal=function(e,t,n){if(e!=t)throw new Error(n||"Assertion failed: "+e+" != "+t)}},function(e,t,n){"use strict";var r=n(19),i=n(13),a=n(125)("IE_PROTO"),o=Object.prototype;e.exports=Object.getPrototypeOf||function(e){return e=i(e),r(e,a)?e[a]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?o:null}},function(e,t,n){"use strict";var r=n(66),i=n(52),a=n(23),o=n(33),s=n(19),c=n(197),u=Object.getOwnPropertyDescriptor;t.f=n(11)?u:function(e,t){if(e=a(e),t=o(t,!0),c)try{return u(e,t)}catch(e){}if(s(e,t))return i(!r.f.call(e,t),e[t])}},function(e,t,n){"use strict";var r=n(67),i=n(32);e.exports=function(e){return r(i(e))}},function(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})(e)}var i;i=function(){return this}();try{i=i||Function("return this")()||(0,eval)("this")}catch(e){"object"===("undefined"==typeof window?"undefined":r(window))&&(i=window)}e.exports=i},function(e,t,n){"use strict";var r=n(4);e.exports=function(e,t){return!!e&&r(function(){t?e.call(null,function(){},1):e.call(null)})}},function(e,t,n){"use strict";var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t,n){"use strict";var r=n(14);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r=n(20),i=n(1);function a(e){return(e>>>24|e>>>8&65280|e<<8&16711680|(255&e)<<24)>>>0}function o(e){return 1===e.length?"0"+e:e}function s(e){return 7===e.length?"0"+e:6===e.length?"00"+e:5===e.length?"000"+e:4===e.length?"0000"+e:3===e.length?"00000"+e:2===e.length?"000000"+e:1===e.length?"0000000"+e:e}t.inherits=i,t.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"==typeof e)if(t){if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16))}else for(var r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}else for(r=0;r<e.length;r++)n[r]=0|e[r];return n},t.toHex=function(e){for(var t="",n=0;n<e.length;n++)t+=o(e[n].toString(16));return t},t.htonl=a,t.toHex32=function(e,t){for(var n="",r=0;r<e.length;r++){var i=e[r];"little"===t&&(i=a(i)),n+=s(i.toString(16))}return n},t.zero2=o,t.zero8=s,t.join32=function(e,t,n,i){var a=n-t;r(a%4==0);for(var o=new Array(a/4),s=0,c=t;s<o.length;s++,c+=4){var u;u="big"===i?e[c]<<24|e[c+1]<<16|e[c+2]<<8|e[c+3]:e[c+3]<<24|e[c+2]<<16|e[c+1]<<8|e[c],o[s]=u>>>0}return o},t.split32=function(e,t){for(var n=new Array(4*e.length),r=0,i=0;r<e.length;r++,i+=4){var a=e[r];"big"===t?(n[i]=a>>>24,n[i+1]=a>>>16&255,n[i+2]=a>>>8&255,n[i+3]=255&a):(n[i+3]=a>>>24,n[i+2]=a>>>16&255,n[i+1]=a>>>8&255,n[i]=255&a)}return n},t.rotr32=function(e,t){return e>>>t|e<<32-t},t.rotl32=function(e,t){return e<<t|e>>>32-t},t.sum32=function(e,t){return e+t>>>0},t.sum32_3=function(e,t,n){return e+t+n>>>0},t.sum32_4=function(e,t,n,r){return e+t+n+r>>>0},t.sum32_5=function(e,t,n,r,i){return e+t+n+r+i>>>0},t.sum64=function(e,t,n,r){var i=e[t],a=r+e[t+1]>>>0,o=(a<r?1:0)+n+i;e[t]=o>>>0,e[t+1]=a},t.sum64_hi=function(e,t,n,r){return(t+r>>>0<t?1:0)+e+n>>>0},t.sum64_lo=function(e,t,n,r){return t+r>>>0},t.sum64_4_hi=function(e,t,n,r,i,a,o,s){var c=0,u=t;return c+=(u=u+r>>>0)<t?1:0,c+=(u=u+a>>>0)<a?1:0,e+n+i+o+(c+=(u=u+s>>>0)<s?1:0)>>>0},t.sum64_4_lo=function(e,t,n,r,i,a,o,s){return t+r+a+s>>>0},t.sum64_5_hi=function(e,t,n,r,i,a,o,s,c,u){var l=0,f=t;return l+=(f=f+r>>>0)<t?1:0,l+=(f=f+a>>>0)<a?1:0,l+=(f=f+s>>>0)<s?1:0,e+n+i+o+c+(l+=(f=f+u>>>0)<u?1:0)>>>0},t.sum64_5_lo=function(e,t,n,r,i,a,o,s,c,u){return t+r+a+s+u>>>0},t.rotr64_hi=function(e,t,n){return(t<<32-n|e>>>n)>>>0},t.rotr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0},t.shr64_hi=function(e,t,n){return e>>>n},t.shr64_lo=function(e,t,n){return(e<<32-n|t>>>n)>>>0}},function(e,t,n){"use strict";var r=n(27),i=n(67),a=n(13),o=n(9),s=n(108);e.exports=function(e,t){var n=1==e,c=2==e,u=3==e,l=4==e,f=6==e,d=5==e||f,h=t||s;return function(t,s,p){for(var g,m,b=a(t),v=i(b),y=r(s,p,3),_=o(v.length),w=0,S=n?h(t,_):c?h(t,0):void 0;_>w;w++)if((d||w in v)&&(m=y(g=v[w],w,b),e))if(n)S[w]=m;else if(m)switch(e){case 3:return!0;case 5:return g;case 6:return w;case 2:S.push(g)}else if(l)return!1;return f?-1:u||l?l:S}}},function(e,t,n){"use strict";var r=n(0),i=n(34),a=n(4);e.exports=function(e,t){var n=(i.Object||{})[e]||Object[e],o={};o[e]=t(n),r(r.S+r.F*a(function(){n(1)}),"Object",o)}},function(e,t,n){"use strict";var r=Math.ceil,i=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?i:r)(e)}},function(e,t,n){"use strict";e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){"use strict";var r=n(6);e.exports=function(e,t){if(!r(e))return e;var n,i;if(t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;if("function"==typeof(n=e.valueOf)&&!r(i=n.call(e)))return i;if(!t&&"function"==typeof(n=e.toString)&&!r(i=n.call(e)))return i;throw TypeError("Can't convert object to primitive value")}},function(e,t,n){"use strict";var r=e.exports={version:"2.5.3"};"number"==typeof __e&&(__e=r)},function(e,t,n){"use strict";var r,i,a=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function c(e){if(r===setTimeout)return setTimeout(e,0);if((r===o||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:o}catch(e){r=o}try{i="function"==typeof clearTimeout?clearTimeout:s}catch(e){i=s}}();var u,l=[],f=!1,d=-1;function h(){f&&u&&(f=!1,u.length?l=u.concat(l):d=-1,l.length&&p())}function p(){if(!f){var e=c(h);f=!0;for(var t=l.length;t;){for(u=l,l=[];++d<t;)u&&u[d].run();d=-1,t=l.length}u=null,f=!1,function(e){if(i===clearTimeout)return clearTimeout(e);if((i===s||!i)&&clearTimeout)return i=clearTimeout,clearTimeout(e);try{i(e)}catch(t){try{return i.call(null,e)}catch(t){return i.call(this,e)}}}(e)}}function g(e,t){this.fun=e,this.array=t}function m(){}a.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var n=1;n<arguments.length;n++)t[n-1]=arguments[n];l.push(new g(e,t)),1!==l.length||f||c(p)},g.prototype.run=function(){this.fun.apply(null,this.array)},a.title="browser",a.browser=!0,a.env={},a.argv=[],a.version="",a.versions={},a.on=m,a.addListener=m,a.once=m,a.off=m,a.removeListener=m,a.removeAllListeners=m,a.emit=m,a.prependListener=m,a.prependOnceListener=m,a.listeners=function(e){return[]},a.binding=function(e){throw new Error("process.binding is not supported")},a.cwd=function(){return"/"},a.chdir=function(e){throw new Error("process.chdir is not supported")},a.umask=function(){return 0}},function(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})(e)}var i=n(176),a=n(0),o=n(88)("metadata"),s=o.store||(o.store=new(n(173))),c=function(e,t,n){var r=s.get(e);if(!r){if(!n)return;s.set(e,r=new i)}var a=r.get(t);if(!a){if(!n)return;r.set(t,a=new i)}return a};e.exports={store:s,map:c,has:function(e,t,n){var r=c(t,n,!1);return void 0!==r&&r.has(e)},get:function(e,t,n){var r=c(t,n,!1);return void 0===r?void 0:r.get(e)},set:function(e,t,n,r){c(n,r,!0).set(e,t)},keys:function(e,t){var n=c(e,t,!1),r=[];return n&&n.forEach(function(e,t){r.push(t)}),r},key:function(e){return void 0===e||"symbol"==r(e)?e:String(e)},exp:function(e){a(a.S,"Reflect",e)}}},function(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})(e)}if(n(11)){var i=n(50),a=n(3),o=n(4),s=n(0),c=n(78),u=n(102),l=n(27),f=n(44),d=n(52),h=n(18),p=n(42),g=n(31),m=n(9),b=n(171),v=n(48),y=n(33),_=n(19),w=n(65),S=n(6),M=n(13),E=n(111),A=n(47),I=n(21),k=n(46).f,O=n(109),x=n(51),P=n(8),C=n(29),j=n(87),D=n(80),N=n(106),R=n(56),T=n(83),B=n(45),L=n(107),$=n(181),U=n(10),F=n(22),z=U.f,q=F.f,V=a.RangeError,H=a.TypeError,G=a.Uint8Array,K=Array.prototype,W=u.ArrayBuffer,Y=u.DataView,J=C(0),X=C(2),Z=C(3),Q=C(4),ee=C(5),te=C(6),ne=j(!0),re=j(!1),ie=N.values,ae=N.keys,oe=N.entries,se=K.lastIndexOf,ce=K.reduce,ue=K.reduceRight,le=K.join,fe=K.sort,de=K.slice,he=K.toString,pe=K.toLocaleString,ge=P("iterator"),me=P("toStringTag"),be=x("typed_constructor"),ve=x("def_constructor"),ye=c.CONSTR,_e=c.TYPED,we=c.VIEW,Se=C(1,function(e,t){return ke(D(e,e[ve]),t)}),Me=o(function(){return 1===new G(new Uint16Array([1]).buffer)[0]}),Ee=!!G&&!!G.prototype.set&&o(function(){new G(1).set({})}),Ae=function(e,t){var n=g(e);if(n<0||n%t)throw V("Wrong offset!");return n},Ie=function(e){if(S(e)&&_e in e)return e;throw H(e+" is not a typed array!")},ke=function(e,t){if(!(S(e)&&be in e))throw H("It is not a typed array constructor!");return new e(t)},Oe=function(e,t){return xe(D(e,e[ve]),t)},xe=function(e,t){for(var n=0,r=t.length,i=ke(e,r);r>n;)i[n]=t[n++];return i},Pe=function(e,t,n){z(e,t,{get:function(){return this._d[n]}})},Ce=function(e){var t,n,r,i,a,o,s=M(e),c=arguments.length,u=c>1?arguments[1]:void 0,f=void 0!==u,d=O(s);if(void 0!=d&&!E(d)){for(o=d.call(s),r=[],t=0;!(a=o.next()).done;t++)r.push(a.value);s=r}for(f&&c>2&&(u=l(u,arguments[2],2)),t=0,n=m(s.length),i=ke(this,n);n>t;t++)i[t]=f?u(s[t],t):s[t];return i},je=function(){for(var e=0,t=arguments.length,n=ke(this,t);t>e;)n[e]=arguments[e++];return n},De=!!G&&o(function(){pe.call(new G(1))}),Ne=function(){return pe.apply(De?de.call(Ie(this)):Ie(this),arguments)},Re={copyWithin:function(e,t){return $.call(Ie(this),e,t,arguments.length>2?arguments[2]:void 0)},every:function(e){return Q(Ie(this),e,arguments.length>1?arguments[1]:void 0)},fill:function(e){return L.apply(Ie(this),arguments)},filter:function(e){return Oe(this,X(Ie(this),e,arguments.length>1?arguments[1]:void 0))},find:function(e){return ee(Ie(this),e,arguments.length>1?arguments[1]:void 0)},findIndex:function(e){return te(Ie(this),e,arguments.length>1?arguments[1]:void 0)},forEach:function(e){J(Ie(this),e,arguments.length>1?arguments[1]:void 0)},indexOf:function(e){return re(Ie(this),e,arguments.length>1?arguments[1]:void 0)},includes:function(e){return ne(Ie(this),e,arguments.length>1?arguments[1]:void 0)},join:function(e){return le.apply(Ie(this),arguments)},lastIndexOf:function(e){return se.apply(Ie(this),arguments)},map:function(e){return Se(Ie(this),e,arguments.length>1?arguments[1]:void 0)},reduce:function(e){return ce.apply(Ie(this),arguments)},reduceRight:function(e){return ue.apply(Ie(this),arguments)},reverse:function(){for(var e,t=Ie(this).length,n=Math.floor(t/2),r=0;r<n;)e=this[r],this[r++]=this[--t],this[t]=e;return this},some:function(e){return Z(Ie(this),e,arguments.length>1?arguments[1]:void 0)},sort:function(e){return fe.call(Ie(this),e)},subarray:function(e,t){var n=Ie(this),r=n.length,i=v(e,r);return new(D(n,n[ve]))(n.buffer,n.byteOffset+i*n.BYTES_PER_ELEMENT,m((void 0===t?r:v(t,r))-i))}},Te=function(e,t){return Oe(this,de.call(Ie(this),e,t))},Be=function(e){Ie(this);var t=Ae(arguments[1],1),n=this.length,r=M(e),i=m(r.length),a=0;if(i+t>n)throw V("Wrong length!");for(;a<i;)this[t+a]=r[a++]},Le={entries:function(){return oe.call(Ie(this))},keys:function(){return ae.call(Ie(this))},values:function(){return ie.call(Ie(this))}},$e=function(e,t){return S(e)&&e[_e]&&"symbol"!=r(t)&&t in e&&String(+t)==String(t)},Ue=function(e,t){return $e(e,t=y(t,!0))?d(2,e[t]):q(e,t)},Fe=function(e,t,n){return!($e(e,t=y(t,!0))&&S(n)&&_(n,"value"))||_(n,"get")||_(n,"set")||n.configurable||_(n,"writable")&&!n.writable||_(n,"enumerable")&&!n.enumerable?z(e,t,n):(e[t]=n.value,e)};ye||(F.f=Ue,U.f=Fe),s(s.S+s.F*!ye,"Object",{getOwnPropertyDescriptor:Ue,defineProperty:Fe}),o(function(){he.call({})})&&(he=pe=function(){return le.call(this)});var ze=p({},Re);p(ze,Le),h(ze,ge,Le.values),p(ze,{slice:Te,set:Be,constructor:function(){},toString:he,toLocaleString:Ne}),Pe(ze,"buffer","b"),Pe(ze,"byteOffset","o"),Pe(ze,"byteLength","l"),Pe(ze,"length","e"),z(ze,me,{get:function(){return this[_e]}}),e.exports=function(e,t,n,r){var u=e+((r=!!r)?"Clamped":"")+"Array",l="get"+e,d="set"+e,p=a[u],g=p||{},v=p&&I(p),y=!p||!c.ABV,_={},M=p&&p.prototype,E=function(e,n){z(e,n,{get:function(){return function(e,n){var r=e._d;return r.v[l](n*t+r.o,Me)}(this,n)},set:function(e){return function(e,n,i){var a=e._d;r&&(i=(i=Math.round(i))<0?0:i>255?255:255&i),a.v[d](n*t+a.o,i,Me)}(this,n,e)},enumerable:!0})};y?(p=n(function(e,n,r,i){f(e,p,u,"_d");var a,o,s,c,l=0,d=0;if(S(n)){if(!(n instanceof W||"ArrayBuffer"==(c=w(n))||"SharedArrayBuffer"==c))return _e in n?xe(p,n):Ce.call(p,n);a=n,d=Ae(r,t);var g=n.byteLength;if(void 0===i){if(g%t)throw V("Wrong length!");if((o=g-d)<0)throw V("Wrong length!")}else if((o=m(i)*t)+d>g)throw V("Wrong length!");s=o/t}else s=b(n),a=new W(o=s*t);for(h(e,"_d",{b:a,o:d,l:o,e:s,v:new Y(a)});l<s;)E(e,l++)}),M=p.prototype=A(ze),h(M,"constructor",p)):o(function(){p(1)})&&o(function(){new p(-1)})&&T(function(e){new p,new p(null),new p(1.5),new p(e)},!0)||(p=n(function(e,n,r,i){var a;return f(e,p,u),S(n)?n instanceof W||"ArrayBuffer"==(a=w(n))||"SharedArrayBuffer"==a?void 0!==i?new g(n,Ae(r,t),i):void 0!==r?new g(n,Ae(r,t)):new g(n):_e in n?xe(p,n):Ce.call(p,n):new g(b(n))}),J(v!==Function.prototype?k(g).concat(k(v)):k(g),function(e){e in p||h(p,e,g[e])}),p.prototype=M,i||(M.constructor=p));var O=M[ge],x=!!O&&("values"==O.name||void 0==O.name),P=Le.values;h(p,be,!0),h(M,_e,u),h(M,we,!0),h(M,ve,p),(r?new p(1)[me]==u:me in M)||z(M,me,{get:function(){return u}}),_[u]=p,s(s.G+s.W+s.F*(p!=g),_),s(s.S,u,{BYTES_PER_ELEMENT:t}),s(s.S+s.F*o(function(){g.of.call(p,1)}),u,{from:Ce,of:je}),"BYTES_PER_ELEMENT"in M||h(M,"BYTES_PER_ELEMENT",t),s(s.P,u,Re),B(u),s(s.P+s.F*Ee,u,{set:Be}),s(s.P+s.F*!x,u,Le),i||M.toString==he||(M.toString=he),s(s.P+s.F*o(function(){new p(1).slice()}),u,{slice:Te}),s(s.P+s.F*(o(function(){return[1,2].toLocaleString()!=new p([1,2]).toLocaleString()})||!o(function(){M.toLocaleString.call([1,2])})),u,{toLocaleString:Ne}),R[u]=x?O:P,i||x||h(M,ge,P)}}else e.exports=function(){}},function(e,t,n){"use strict";var r=n(5).Buffer,i=n(74).Transform,a=n(95).StringDecoder;function o(e){i.call(this),this.hashMode="string"==typeof e,this.hashMode?this[e]=this._finalOrDigest:this.final=this._finalOrDigest,this._final&&(this.__final=this._final,this._final=null),this._decoder=null,this._encoding=null}n(1)(o,i),o.prototype.update=function(e,t,n){"string"==typeof e&&(e=r.from(e,t));var i=this._update(e);return this.hashMode?this:(n&&(i=this._toString(i,n)),i)},o.prototype.setAutoPadding=function(){},o.prototype.getAuthTag=function(){throw new Error("trying to get auth tag in unsupported state")},o.prototype.setAuthTag=function(){throw new Error("trying to set auth tag in unsupported state")},o.prototype.setAAD=function(){throw new Error("trying to set aad in unsupported state")},o.prototype._transform=function(e,t,n){var r;try{this.hashMode?this._update(e):this.push(this._update(e))}catch(e){r=e}finally{n(r)}},o.prototype._flush=function(e){var t;try{this.push(this.__final())}catch(e){t=e}e(t)},o.prototype._finalOrDigest=function(e){var t=this.__final()||r.alloc(0);return e&&(t=this._toString(t,e,!0)),t},o.prototype._toString=function(e,t,n){if(this._decoder||(this._decoder=new a(t),this._encoding=t),this._encoding!==t)throw new Error("can't switch encodings");var r=this._decoder.write(e);return n&&(r+=this._decoder.end()),r},e.exports=o},function(e,t,n){"use strict";var r=n(8)("unscopables"),i=Array.prototype;void 0==i[r]&&n(18)(i,r,{}),e.exports=function(e){i[r][e]=!0}},function(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})(e)}var i=n(51)("meta"),a=n(6),o=n(19),s=n(10).f,c=0,u=Object.isExtensible||function(){return!0},l=!n(4)(function(){return u(Object.preventExtensions({}))}),f=function(e){s(e,i,{value:{i:"O"+ ++c,w:{}}})},d=e.exports={KEY:i,NEED:!1,fastKey:function(e,t){if(!a(e))return"symbol"==r(e)?e:("string"==typeof e?"S":"P")+e;if(!o(e,i)){if(!u(e))return"F";if(!t)return"E";f(e)}return e[i].i},getWeak:function(e,t){if(!o(e,i)){if(!u(e))return!0;if(!t)return!1;f(e)}return e[i].w},onFreeze:function(e){return l&&d.NEED&&u(e)&&!o(e,i)&&f(e),e}}},function(e,t,n){"use strict";var r=n(73),i=Object.keys||function(e){var t=[];for(var n in e)t.push(n);return t};e.exports=f;var a=n(63);a.inherits=n(1);var o=n(160),s=n(96);a.inherits(f,o);for(var c=i(s.prototype),u=0;u<c.length;u++){var l=c[u];f.prototype[l]||(f.prototype[l]=s.prototype[l])}function f(e){if(!(this instanceof f))return new f(e);o.call(this,e),s.call(this,e),e&&!1===e.readable&&(this.readable=!1),e&&!1===e.writable&&(this.writable=!1),this.allowHalfOpen=!0,e&&!1===e.allowHalfOpen&&(this.allowHalfOpen=!1),this.once("end",d)}function d(){this.allowHalfOpen||this._writableState.ended||r.nextTick(h,this)}function h(e){e.end()}Object.defineProperty(f.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed&&this._writableState.destroyed)},set:function(e){void 0!==this._readableState&&void 0!==this._writableState&&(this._readableState.destroyed=e,this._writableState.destroyed=e)}}),f.prototype._destroy=function(e,t){this.push(null),this.end(),r.nextTick(t,e)}},function(e,t,n){"use strict";var r=n(17);e.exports=function(e,t,n){for(var i in t)r(e,i,t[i],n);return e}},function(e,t,n){"use strict";var r=n(27),i=n(183),a=n(111),o=n(2),s=n(9),c=n(109),u={},l={},f=e.exports=function(e,t,n,f,d){var h,p,g,m,b=d?function(){return e}:c(e),v=r(n,f,t?2:1),y=0;if("function"!=typeof b)throw TypeError(e+" is not iterable!");if(a(b)){for(h=s(e.length);h>y;y++)if((m=t?v(o(p=e[y])[0],p[1]):v(e[y]))===u||m===l)return m}else for(g=b.call(e);!(p=g.next()).done;)if((m=i(g,v,p.value,t))===u||m===l)return m};f.BREAK=u,f.RETURN=l},function(e,t,n){"use strict";e.exports=function(e,t,n,r){if(!(e instanceof t)||void 0!==r&&r in e)throw TypeError(n+": incorrect invocation!");return e}},function(e,t,n){"use strict";var r=n(3),i=n(10),a=n(11),o=n(8)("species");e.exports=function(e){var t=r[e];a&&t&&!t[o]&&i.f(t,o,{configurable:!0,get:function(){return this}})}},function(e,t,n){"use strict";var r=n(195),i=n(124).concat("length","prototype");t.f=Object.getOwnPropertyNames||function(e){return r(e,i)}},function(e,t,n){"use strict";var r=n(2),i=n(194),a=n(124),o=n(125)("IE_PROTO"),s=function(){},c=function(){var e,t=n(127)("iframe"),r=a.length;for(t.style.display="none",n(123).appendChild(t),t.src="javascript:",(e=t.contentWindow.document).open(),e.write("<script>document.F=Object<\/script>"),e.close(),c=e.F;r--;)delete c.prototype[a[r]];return c()};e.exports=Object.create||function(e,t){var n;return null!==e?(s.prototype=r(e),n=new s,s.prototype=null,n[o]=e):n=c(),void 0===t?n:i(n,t)}},function(e,t,n){"use strict";var r=n(31),i=Math.max,a=Math.min;e.exports=function(e,t){return(e=r(e))<0?i(e+t,0):a(e,t)}},function(e,t,n){"use strict";var r=n(195),i=n(124);e.exports=Object.keys||function(e){return r(e,i)}},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r=0,i=Math.random();e.exports=function(e){return"Symbol(".concat(void 0===e?"":e,")_",(++r+i).toString(36))}},function(e,t,n){"use strict";e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,n){"use strict";var r=n(5).Buffer;function i(e,t){this._block=r.alloc(e),this._finalSize=t,this._blockSize=e,this._len=0}i.prototype.update=function(e,t){"string"==typeof e&&(t=t||"utf8",e=r.from(e,t));for(var n=this._block,i=this._blockSize,a=e.length,o=this._len,s=0;s<a;){for(var c=o%i,u=Math.min(a-s,i-c),l=0;l<u;l++)n[c+l]=e[s+l];s+=u,(o+=u)%i==0&&this._update(n)}return this._len+=a,this},i.prototype.digest=function(e){var t=this._len%this._blockSize;this._block[t]=128,this._block.fill(0,t+1),t>=this._finalSize&&(this._update(this._block),this._block.fill(0));var n=8*this._len;if(n<=4294967295)this._block.writeUInt32BE(n,this._blockSize-4);else{var r=(4294967295&n)>>>0,i=(n-r)/4294967296;this._block.writeUInt32BE(i,this._blockSize-8),this._block.writeUInt32BE(r,this._blockSize-4)}this._update(this._block);var a=this._hash();return e?a.toString(e):a},i.prototype._update=function(){throw new Error("_update must be implemented by subclass")},e.exports=i},function(e,t,n){"use strict";(function(t,r){var i=n(5).Buffer,a=t.crypto||t.msCrypto;a&&a.getRandomValues?e.exports=function(e,n){if(e>65536)throw new Error("requested too many random bytes");var o=new t.Uint8Array(e);e>0&&a.getRandomValues(o);var s=i.from(o.buffer);if("function"==typeof n)return r.nextTick(function(){n(null,s)});return s}:e.exports=function(){throw new Error("Secure random number generation is not supported by this browser.\nUse Chrome, Firefox or Internet Explorer 11")}}).call(this,n(24),n(35))},function(e,t,n){"use strict";var r=n(6);e.exports=function(e,t){if(!r(e)||e._t!==t)throw TypeError("Incompatible receiver, "+t+" required!");return e}},function(e,t,n){"use strict";e.exports={}},function(e,t,n){"use strict";var r=n(0),i=n(32),a=n(4),o=n(121),s="["+o+"]",c=RegExp("^"+s+s+"*"),u=RegExp(s+s+"*$"),l=function(e,t,n){var i={},s=a(function(){return!!o[e]()||"​
2743"!="​
2744"[e]()}),c=i[e]=s?t(f):o[e];n&&(i[n]=c),r(r.P+r.F*s,"String",i)},f=l.trim=function(e,t){return e=String(i(e)),1&t&&(e=e.replace(c,"")),2&t&&(e=e.replace(u,"")),e};e.exports=l},function(e,t,n){"use strict";var r=n(10).f,i=n(19),a=n(8)("toStringTag");e.exports=function(e,t,n){e&&!i(e=n?e:e.prototype,a)&&r(e,a,{configurable:!0,value:t})}},function(e,t,n){"use strict";var r=t;r.Reporter=n(344).Reporter,r.DecoderBuffer=n(136).DecoderBuffer,r.EncoderBuffer=n(136).EncoderBuffer,r.Node=n(343)},function(e,t,n){"use strict";var r=t;r.bignum=n(12),r.define=n(347).define,r.base=n(59),r.constants=n(135),r.decoders=n(341),r.encoders=n(339)},function(e,t,n){"use strict";var r=n(28),i=n(20);function a(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}t.BlockHash=a,a.prototype.update=function(e,t){if(e=r.toArray(e,t),this.pending?this.pending=this.pending.concat(e):this.pending=e,this.pendingTotal+=e.length,this.pending.length>=this._delta8){var n=(e=this.pending).length%this._delta8;this.pending=e.slice(e.length-n,e.length),0===this.pending.length&&(this.pending=null),e=r.join32(e,0,e.length-n,this.endian);for(var i=0;i<e.length;i+=this._delta32)this._update(e,i,i+this._delta32)}return this},a.prototype.digest=function(e){return this.update(this._pad()),i(null===this.pending),this._digest(e)},a.prototype._pad=function(){var e=this.pendingTotal,t=this._delta8,n=t-(e+this.padLength)%t,r=new Array(n+this.padLength);r[0]=128;for(var i=1;i<n;i++)r[i]=0;if(e<<=3,"big"===this.endian){for(var a=8;a<this.padLength;a++)r[i++]=0;r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=e>>>24&255,r[i++]=e>>>16&255,r[i++]=e>>>8&255,r[i++]=255&e}else for(r[i++]=255&e,r[i++]=e>>>8&255,r[i++]=e>>>16&255,r[i++]=e>>>24&255,r[i++]=0,r[i++]=0,r[i++]=0,r[i++]=0,a=8;a<this.padLength;a++)r[i++]=0;return r}},function(e,t,n){"use strict";(function(t){e.exports=function(e,n){for(var r=Math.min(e.length,n.length),i=new t(r),a=0;a<r;++a)i[a]=e[a]^n[a];return i}}).call(this,n(7).Buffer)},function(e,t,n){"use strict";(function(e){function n(e){return(n="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})(e)}function r(e){return Object.prototype.toString.call(e)}t.isArray=function(e){return Array.isArray?Array.isArray(e):"[object Array]"===r(e)},t.isBoolean=function(e){return"boolean"==typeof e},t.isNull=function(e){return null===e},t.isNullOrUndefined=function(e){return null==e},t.isNumber=function(e){return"number"==typeof e},t.isString=function(e){return"string"==typeof e},t.isSymbol=function(e){return"symbol"===n(e)},t.isUndefined=function(e){return void 0===e},t.isRegExp=function(e){return"[object RegExp]"===r(e)},t.isObject=function(e){return"object"===n(e)&&null!==e},t.isDate=function(e){return"[object Date]"===r(e)},t.isError=function(e){return"[object Error]"===r(e)||e instanceof Error},t.isFunction=function(e){return"function"==typeof e},t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===n(e)||void 0===e},t.isBuffer=e.isBuffer}).call(this,n(7).Buffer)},function(e,t,n){"use strict";(function(t){var r=n(1),i=n(100),a=n(99),o=n(94),s=n(38);function c(e){s.call(this,"digest"),this._hash=e,this.buffers=[]}function u(e){s.call(this,"digest"),this._hash=e}r(c,s),c.prototype._update=function(e){this.buffers.push(e)},c.prototype._final=function(){var e=t.concat(this.buffers),n=this._hash(e);return this.buffers=null,n},r(u,s),u.prototype._update=function(e){this._hash.update(e)},u.prototype._final=function(){return this._hash.digest()},e.exports=function(e){return"md5"===(e=e.toLowerCase())?new c(i):new u("rmd160"===e||"ripemd160"===e?new a:o(e))}}).call(this,n(7).Buffer)},function(e,t,n){"use strict";var r=n(26),i=n(8)("toStringTag"),a="Arguments"==r(function(){return arguments}());e.exports=function(e){var t,n,o;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(n=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),i))?n:a?r(t):"Object"==(o=r(t))&&"function"==typeof t.callee?"Arguments":o}},function(e,t,n){"use strict";t.f={}.propertyIsEnumerable},function(e,t,n){"use strict";var r=n(26);e.exports=Object("z").propertyIsEnumerable(0)?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.HardwareType=t.NodeTypes=t.ScriptStatus=t.NodeStatus=void 0;t.NodeStatus={NEW:0,COMMISSIONING:1,FAILED_COMMISSIONING:2,MISSING:3,READY:4,RESERVED:5,DEPLOYED:6,RETIRED:7,BROKEN:8,DEPLOYING:9,ALLOCATED:10,FAILED_DEPLOYMENT:11,RELEASING:12,FAILED_RELEASING:13,DISK_ERASING:14,FAILED_DISK_ERASING:15,RESCUE_MODE:16,ENTERING_RESCUE_MODE:17,FAILED_ENTERING_RESCUE_MODE:18,EXITING_RESCUE_MODE:19,FAILED_EXITING_RESCUE_MODE:20,TESTING:21,FAILED_TESTING:22};t.ScriptStatus={PENDING:0,RUNNING:1,PASSED:2,FAILED:3,TIMEDOUT:4,ABORTED:5,DEGRADED:6,INSTALLING:7,FAILED_INSTALLING:8,SKIPPED:9};t.NodeTypes={REGION_CONTROLLER:3};t.HardwareType={NODE:0,CPU:1,MEMORY:2,STORAGE:3}},function(e,t,n){"use strict";(function(t){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})(e)}var i=n(348),a=n(336),o=n(335),s=n(93),c=n(152);function u(e){var n;"object"!==r(e)||t.isBuffer(e)||(n=e.passphrase,e=e.key),"string"==typeof e&&(e=new t(e));var u,l,f=o(e,n),d=f.tag,h=f.data;switch(d){case"CERTIFICATE":l=i.certificate.decode(h,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":switch(l||(l=i.PublicKey.decode(h,"der")),u=l.algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPublicKey.decode(l.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return l.subjectPrivateKey=l.subjectPublicKey,{type:"ec",data:l};case"1.2.840.10040.4.1":return l.algorithm.params.pub_key=i.DSAparam.decode(l.subjectPublicKey.data,"der"),{type:"dsa",data:l.algorithm.params};default:throw new Error("unknown key id "+u)}throw new Error("unknown key type "+d);case"ENCRYPTED PRIVATE KEY":h=function(e,n){var r=e.algorithm.decrypt.kde.kdeparams.salt,i=parseInt(e.algorithm.decrypt.kde.kdeparams.iters.toString(),10),o=a[e.algorithm.decrypt.cipher.algo.join(".")],u=e.algorithm.decrypt.cipher.iv,l=e.subjectPrivateKey,f=parseInt(o.split("-")[1],10)/8,d=c.pbkdf2Sync(n,r,i,f),h=s.createDecipheriv(o,d,u),p=[];return p.push(h.update(l)),p.push(h.final()),t.concat(p)}(h=i.EncryptedPrivateKey.decode(h,"der"),n);case"PRIVATE KEY":switch(u=(l=i.PrivateKey.decode(h,"der")).algorithm.algorithm.join(".")){case"1.2.840.113549.1.1.1":return i.RSAPrivateKey.decode(l.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:l.algorithm.curve,privateKey:i.ECPrivateKey.decode(l.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return l.algorithm.params.priv_key=i.DSAparam.decode(l.subjectPrivateKey,"der"),{type:"dsa",params:l.algorithm.params};default:throw new Error("unknown key id "+u)}throw new Error("unknown key type "+d);case"RSA PUBLIC KEY":return i.RSAPublicKey.decode(h,"der");case"RSA PRIVATE KEY":return i.RSAPrivateKey.decode(h,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:i.DSAPrivateKey.decode(h,"der")};case"EC PRIVATE KEY":return{curve:(h=i.ECPrivateKey.decode(h,"der")).parameters.value,privateKey:h.privateKey};default:throw new Error("unknown key type "+d)}}e.exports=u,u.signature=i.signature}).call(this,n(7).Buffer)},function(e,t,n){"use strict";var r=t;r.base=n(367),r.short=n(366),r.mont=n(365),r.edwards=n(364)},function(e,t,n){"use strict";var r=n(5).Buffer;function i(e){r.isBuffer(e)||(e=r.from(e));for(var t=e.length/4|0,n=new Array(t),i=0;i<t;i++)n[i]=e.readUInt32BE(4*i);return n}function a(e){for(;0<e.length;e++)e[0]=0}function o(e,t,n,r,i){for(var a,o,s,c,u=n[0],l=n[1],f=n[2],d=n[3],h=e[0]^t[0],p=e[1]^t[1],g=e[2]^t[2],m=e[3]^t[3],b=4,v=1;v<i;v++)a=u[h>>>24]^l[p>>>16&255]^f[g>>>8&255]^d[255&m]^t[b++],o=u[p>>>24]^l[g>>>16&255]^f[m>>>8&255]^d[255&h]^t[b++],s=u[g>>>24]^l[m>>>16&255]^f[h>>>8&255]^d[255&p]^t[b++],c=u[m>>>24]^l[h>>>16&255]^f[p>>>8&255]^d[255&g]^t[b++],h=a,p=o,g=s,m=c;return a=(r[h>>>24]<<24|r[p>>>16&255]<<16|r[g>>>8&255]<<8|r[255&m])^t[b++],o=(r[p>>>24]<<24|r[g>>>16&255]<<16|r[m>>>8&255]<<8|r[255&h])^t[b++],s=(r[g>>>24]<<24|r[m>>>16&255]<<16|r[h>>>8&255]<<8|r[255&p])^t[b++],c=(r[m>>>24]<<24|r[h>>>16&255]<<16|r[p>>>8&255]<<8|r[255&g])^t[b++],[a>>>=0,o>>>=0,s>>>=0,c>>>=0]}var s=[0,1,2,4,8,16,32,64,128,27,54],c=function(){for(var e=new Array(256),t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;for(var n=[],r=[],i=[[],[],[],[]],a=[[],[],[],[]],o=0,s=0,c=0;c<256;++c){var u=s^s<<1^s<<2^s<<3^s<<4;u=u>>>8^255&u^99,n[o]=u,r[u]=o;var l=e[o],f=e[l],d=e[f],h=257*e[u]^16843008*u;i[0][o]=h<<24|h>>>8,i[1][o]=h<<16|h>>>16,i[2][o]=h<<8|h>>>24,i[3][o]=h,h=16843009*d^65537*f^257*l^16843008*o,a[0][u]=h<<24|h>>>8,a[1][u]=h<<16|h>>>16,a[2][u]=h<<8|h>>>24,a[3][u]=h,0===o?o=s=1:(o=l^e[e[e[d^l]]],s^=e[e[s]])}return{SBOX:n,INV_SBOX:r,SUB_MIX:i,INV_SUB_MIX:a}}();function u(e){this._key=i(e),this._reset()}u.blockSize=16,u.keySize=32,u.prototype.blockSize=u.blockSize,u.prototype.keySize=u.keySize,u.prototype._reset=function(){for(var e=this._key,t=e.length,n=t+6,r=4*(n+1),i=[],a=0;a<t;a++)i[a]=e[a];for(a=t;a<r;a++){var o=i[a-1];a%t==0?(o=o<<8|o>>>24,o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o],o^=s[a/t|0]<<24):t>6&&a%t==4&&(o=c.SBOX[o>>>24]<<24|c.SBOX[o>>>16&255]<<16|c.SBOX[o>>>8&255]<<8|c.SBOX[255&o]),i[a]=i[a-t]^o}for(var u=[],l=0;l<r;l++){var f=r-l,d=i[f-(l%4?0:4)];u[l]=l<4||f<=4?d:c.INV_SUB_MIX[0][c.SBOX[d>>>24]]^c.INV_SUB_MIX[1][c.SBOX[d>>>16&255]]^c.INV_SUB_MIX[2][c.SBOX[d>>>8&255]]^c.INV_SUB_MIX[3][c.SBOX[255&d]]}this._nRounds=n,this._keySchedule=i,this._invKeySchedule=u},u.prototype.encryptBlockRaw=function(e){return o(e=i(e),this._keySchedule,c.SUB_MIX,c.SBOX,this._nRounds)},u.prototype.encryptBlock=function(e){var t=this.encryptBlockRaw(e),n=r.allocUnsafe(16);return n.writeUInt32BE(t[0],0),n.writeUInt32BE(t[1],4),n.writeUInt32BE(t[2],8),n.writeUInt32BE(t[3],12),n},u.prototype.decryptBlock=function(e){var t=(e=i(e))[1];e[1]=e[3],e[3]=t;var n=o(e,this._invKeySchedule,c.INV_SUB_MIX,c.INV_SBOX,this._nRounds),a=r.allocUnsafe(16);return a.writeUInt32BE(n[0],0),a.writeUInt32BE(n[3],4),a.writeUInt32BE(n[2],8),a.writeUInt32BE(n[1],12),a},u.prototype.scrub=function(){a(this._keySchedule),a(this._invKeySchedule),a(this._key)},e.exports.AES=u},function(e,t,n){"use strict";var r=n(5).Buffer,i=n(394);e.exports=function(e,t,n,a){if(r.isBuffer(e)||(e=r.from(e,"binary")),t&&(r.isBuffer(t)||(t=r.from(t,"binary")),8!==t.length))throw new RangeError("salt should be Buffer with 8 byte length");for(var o=n/8,s=r.alloc(o),c=r.alloc(a||0),u=r.alloc(0);o>0||a>0;){var l=new i;l.update(u),l.update(e),t&&l.update(t),u=l.digest();var f=0;if(o>0){var d=s.length-o;f=Math.min(o,u.length),u.copy(s,d,0,f),o-=f}if(f<u.length&&a>0){var h=c.length-a,p=Math.min(a,u.length-f);u.copy(c,h,f,f+p),a-=p}}return u.fill(0),{key:s,iv:c}}},function(e,t,n){"use strict";(function(t){!t.version||0===t.version.indexOf("v0.")||0===t.version.indexOf("v1.")&&0!==t.version.indexOf("v1.8.")?e.exports={nextTick:function(e,n,r,i){if("function"!=typeof e)throw new TypeError('"callback" argument must be a function');var a,o,s=arguments.length;switch(s){case 0:case 1:return t.nextTick(e);case 2:return t.nextTick(function(){e.call(null,n)});case 3:return t.nextTick(function(){e.call(null,n,r)});case 4:return t.nextTick(function(){e.call(null,n,r,i)});default:for(a=new Array(s-1),o=0;o<a.length;)a[o++]=arguments[o];return t.nextTick(function(){e.apply(null,a)})}}}:e.exports=t}).call(this,n(35))},function(e,t,n){"use strict";e.exports=i;var r=n(98).EventEmitter;function i(){r.call(this)}n(1)(i,r),i.Readable=n(97),i.Writable=n(406),i.Duplex=n(405),i.Transform=n(404),i.PassThrough=n(403),i.Stream=i,i.prototype.pipe=function(e,t){var n=this;function i(t){e.writable&&!1===e.write(t)&&n.pause&&n.pause()}function a(){n.readable&&n.resume&&n.resume()}n.on("data",i),e.on("drain",a),e._isStdio||t&&!1===t.end||(n.on("end",s),n.on("close",c));var o=!1;function s(){o||(o=!0,e.end())}function c(){o||(o=!0,"function"==typeof e.destroy&&e.destroy())}function u(e){if(l(),0===r.listenerCount(this,"error"))throw e}function l(){n.removeListener("data",i),e.removeListener("drain",a),n.removeListener("end",s),n.removeListener("close",c),n.removeListener("error",u),e.removeListener("error",u),n.removeListener("end",l),n.removeListener("close",l),e.removeListener("close",l)}return n.on("error",u),e.on("error",u),n.on("end",l),n.on("close",l),e.on("close",l),e.emit("pipe",n),e}},function(e,t,n){"use strict";var r=n(0),i=n(14),a=n(27),o=n(43);e.exports=function(e){r(r.S,e,{from:function(e){var t,n,r,s,c=arguments[1];return i(this),(t=void 0!==c)&&i(c),void 0==e?new this:(n=[],t?(r=0,s=a(c,arguments[2],2),o(e,!1,function(e){n.push(s(e,r++))})):o(e,!1,n.push,n),new this(n))}})}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e){r(r.S,e,{of:function(){for(var e=arguments.length,t=new Array(e);e--;)t[e]=arguments[e];return new this(t)}})}},function(e,t,n){"use strict";e.exports=n(50)||!n(4)(function(){var e=Math.random();__defineSetter__.call(null,e,function(){}),delete n(3)[e]})},function(e,t,n){"use strict";for(var r,i=n(3),a=n(18),o=n(51),s=o("typed_array"),c=o("view"),u=!(!i.ArrayBuffer||!i.DataView),l=u,f=0,d="Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array".split(",");f<9;)(r=i[d[f++]])?(a(r.prototype,s,!0),a(r.prototype,c,!0)):l=!1;e.exports={ABV:u,CONSTR:l,TYPED:s,VIEW:c}},function(e,t,n){"use strict";var r=n(3),i=n(0),a=n(17),o=n(42),s=n(40),c=n(43),u=n(44),l=n(6),f=n(4),d=n(83),h=n(58),p=n(120);e.exports=function(e,t,n,g,m,b){var v=r[e],y=v,_=m?"set":"add",w=y&&y.prototype,S={},M=function(e){var t=w[e];a(w,e,"delete"==e?function(e){return!(b&&!l(e))&&t.call(this,0===e?0:e)}:"has"==e?function(e){return!(b&&!l(e))&&t.call(this,0===e?0:e)}:"get"==e?function(e){return b&&!l(e)?void 0:t.call(this,0===e?0:e)}:"add"==e?function(e){return t.call(this,0===e?0:e),this}:function(e,n){return t.call(this,0===e?0:e,n),this})};if("function"==typeof y&&(b||w.forEach&&!f(function(){(new y).entries().next()}))){var E=new y,A=E[_](b?{}:-0,1)!=E,I=f(function(){E.has(1)}),k=d(function(e){new y(e)}),O=!b&&f(function(){for(var e=new y,t=5;t--;)e[_](t,t);return!e.has(-0)});k||((y=t(function(t,n){u(t,y,e);var r=p(new v,t,y);return void 0!=n&&c(n,m,r[_],r),r})).prototype=w,w.constructor=y),(I||O)&&(M("delete"),M("has"),m&&M("get")),(O||A)&&M(_),b&&w.clear&&delete w.clear}else y=g.getConstructor(t,e,m,_),o(y.prototype,n),s.NEED=!0;return h(y,e),S[e]=y,i(i.G+i.W+i.F*(y!=v),S),b||g.setStrong(y,e,m),y}},function(e,t,n){"use strict";var r=n(2),i=n(14),a=n(8)("species");e.exports=function(e,t){var n,o=r(e).constructor;return void 0===o||void 0==(n=r(o)[a])?t:i(n)}},function(e,t,n){"use strict";var r=n(18),i=n(17),a=n(4),o=n(32),s=n(8);e.exports=function(e,t,n){var c=s(e),u=n(o,c,""[e]),l=u[0],f=u[1];a(function(){var t={};return t[c]=function(){return 7},7!=""[e](t)})&&(i(String.prototype,e,l),r(RegExp.prototype,c,2==t?function(e,t){return f.call(e,this,t)}:function(e){return f.call(e,this)}))}},function(e,t,n){"use strict";var r=n(2);e.exports=function(){var e=r(this),t="";return e.global&&(t+="g"),e.ignoreCase&&(t+="i"),e.multiline&&(t+="m"),e.unicode&&(t+="u"),e.sticky&&(t+="y"),t}},function(e,t,n){"use strict";var r=n(8)("iterator"),i=!1;try{var a=[7][r]();a.return=function(){i=!0},Array.from(a,function(){throw 2})}catch(e){}e.exports=function(e,t){if(!t&&!i)return!1;var n=!1;try{var a=[7],o=a[r]();o.next=function(){return{done:n=!0}},a[r]=function(){return o},e(a)}catch(e){}return n}},function(e,t,n){"use strict";var r=n(6),i=n(26),a=n(8)("match");e.exports=function(e){var t;return r(e)&&(void 0!==(t=e[a])?!!t:"RegExp"==i(e))}},function(e,t,n){"use strict";var r=n(26);e.exports=Array.isArray||function(e){return"Array"==r(e)}},function(e,t,n){"use strict";t.f=Object.getOwnPropertySymbols},function(e,t,n){"use strict";var r=n(23),i=n(9),a=n(48);e.exports=function(e){return function(t,n,o){var s,c=r(t),u=i(c.length),l=a(o,u);if(e&&n!=n){for(;u>l;)if((s=c[l++])!=s)return!0}else for(;u>l;l++)if((e||l in c)&&c[l]===n)return e||l||0;return!e&&-1}}},function(e,t,n){"use strict";var r=n(3),i=r["__core-js_shared__"]||(r["__core-js_shared__"]={});e.exports=function(e){return i[e]||(i[e]={})}},function(e,t,n){"use strict";var r=t;r.utils=n(28),r.common=n(61),r.sha=n(362),r.ripemd=n(358),r.hmac=n(357),r.sha1=r.sha.sha1,r.sha256=r.sha.sha256,r.sha224=r.sha.sha224,r.sha384=r.sha.sha384,r.sha512=r.sha.sha512,r.ripemd160=r.ripemd.ripemd160},function(e,t,n){"use strict";(function(t){var r=n(12),i=n(54);function a(e,n){var i=function(e){var t=o(e);return{blinder:t.toRed(r.mont(e.modulus)).redPow(new r(e.publicExponent)).fromRed(),unblinder:t.invm(e.modulus)}}(n),a=n.modulus.byteLength(),s=(r.mont(n.modulus),new r(e).mul(i.blinder).umod(n.modulus)),c=s.toRed(r.mont(n.prime1)),u=s.toRed(r.mont(n.prime2)),l=n.coefficient,f=n.prime1,d=n.prime2,h=c.redPow(n.exponent1),p=u.redPow(n.exponent2);h=h.fromRed(),p=p.fromRed();var g=h.isub(p).imul(l).umod(f);return g.imul(d),p.iadd(g),new t(p.imul(i.unblinder).umod(n.modulus).toArray(!1,a))}function o(e){for(var t=e.modulus.byteLength(),n=new r(i(t));n.cmp(e.modulus)>=0||!n.umod(e.prime1)||!n.umod(e.prime2);)n=new r(i(t));return n}e.exports=a,a.getr=o}).call(this,n(7).Buffer)},function(e,t,n){"use strict";t.utils=n(382),t.Cipher=n(381),t.DES=n(380),t.CBC=n(379),t.EDE=n(378)},function(e,t,n){"use strict";var r={ECB:n(391),CBC:n(390),CFB:n(389),CFB8:n(388),CFB1:n(387),OFB:n(386),CTR:n(148),GCM:n(148)},i=n(146);for(var a in i)i[a].module=r[i[a].mode];e.exports=i},function(e,t,n){"use strict";var r=n(392),i=n(384),a=n(146);t.createCipher=t.Cipher=r.createCipher,t.createCipheriv=t.Cipheriv=r.createCipheriv,t.createDecipher=t.Decipher=i.createDecipher,t.createDecipheriv=t.Decipheriv=i.createDecipheriv,t.listCiphers=t.getCiphers=function(){return Object.keys(a)}},function(e,t,n){"use strict";var r=e.exports=function(e){e=e.toLowerCase();var t=r[e];if(!t)throw new Error(e+" is not supported (we accept pull requests)");return new t};r.sha=n(402),r.sha1=n(401),r.sha224=n(400),r.sha256=n(156),r.sha384=n(399),r.sha512=n(155)},function(e,t,n){"use strict";var r=n(5).Buffer,i=r.isEncoding||function(e){switch((e=""+e)&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function a(e){var t;switch(this.encoding=function(e){var t=function(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}(e);if("string"!=typeof t&&(r.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}(e),this.encoding){case"utf16le":this.text=c,this.end=u,t=4;break;case"utf8":this.fillLast=s,t=4;break;case"base64":this.text=l,this.end=f,t=3;break;default:return this.write=d,void(this.end=h)}this.lastNeed=0,this.lastTotal=0,this.lastChar=r.allocUnsafe(t)}function o(e){return e<=127?0:e>>5==6?2:e>>4==14?3:e>>3==30?4:e>>6==2?-1:-2}function s(e){var t=this.lastTotal-this.lastNeed,n=function(e,t,n){if(128!=(192&t[0]))return e.lastNeed=0,"�";if(e.lastNeed>1&&t.length>1){if(128!=(192&t[1]))return e.lastNeed=1,"�";if(e.lastNeed>2&&t.length>2&&128!=(192&t[2]))return e.lastNeed=2,"�"}}(this,e);return void 0!==n?n:this.lastNeed<=e.length?(e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal)):(e.copy(this.lastChar,t,0,e.length),void(this.lastNeed-=e.length))}function c(e,t){if((e.length-t)%2==0){var n=e.toString("utf16le",t);if(n){var r=n.charCodeAt(n.length-1);if(r>=55296&&r<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],n.slice(0,-1)}return n}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function u(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var n=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,n)}return t}function l(e,t){var n=(e.length-t)%3;return 0===n?e.toString("base64",t):(this.lastNeed=3-n,this.lastTotal=3,1===n?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-n))}function f(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function d(e){return e.toString(this.encoding)}function h(e){return e&&e.length?this.write(e):""}t.StringDecoder=a,a.prototype.write=function(e){if(0===e.length)return"";var t,n;if(this.lastNeed){if(void 0===(t=this.fillLast(e)))return"";n=this.lastNeed,this.lastNeed=0}else n=0;return n<e.length?t?t+this.text(e,n):this.text(e,n):t||""},a.prototype.end=function(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"�":t},a.prototype.text=function(e,t){var n=function(e,t,n){var r=t.length-1;if(r<n)return 0;var i=o(t[r]);if(i>=0)return i>0&&(e.lastNeed=i-1),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(e.lastNeed=i-2),i;if(--r<n||-2===i)return 0;if((i=o(t[r]))>=0)return i>0&&(2===i?i=0:e.lastNeed=i-3),i;return 0}(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=n;var r=e.length-(n-this.lastNeed);return e.copy(this.lastChar,0,r),e.toString("utf8",t,r)},a.prototype.fillLast=function(e){if(this.lastNeed<=e.length)return e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,this.lastTotal-this.lastNeed,0,e.length),this.lastNeed-=e.length}},function(e,t,n){"use strict";(function(t,r,i){var a=n(73);function o(e){var t=this;this.next=null,this.entry=null,this.finish=function(){!function(e,t,n){var r=e.entry;e.entry=null;for(;r;){var i=r.callback;t.pendingcb--,i(n),r=r.next}t.corkedRequestsFree?t.corkedRequestsFree.next=e:t.corkedRequestsFree=e}(t,e)}}e.exports=v;var s,c=!t.browser&&["v0.10","v0.9."].indexOf(t.version.slice(0,5))>-1?r:a.nextTick;v.WritableState=b;var u=n(63);u.inherits=n(1);var l={deprecate:n(408)},f=n(159),d=n(5).Buffer,h=i.Uint8Array||function(){};var p,g=n(158);function m(){}function b(e,t){s=s||n(41),e=e||{};var r=t instanceof s;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode);var i=e.highWaterMark,u=e.writableHighWaterMark,l=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(u||0===u)?u:l,this.highWaterMark=Math.floor(this.highWaterMark),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var f=!1===e.decodeStrings;this.decodeStrings=!f,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(e){!function(e,t){var n=e._writableState,r=n.sync,i=n.writecb;if(function(e){e.writing=!1,e.writecb=null,e.length-=e.writelen,e.writelen=0}(n),t)!function(e,t,n,r,i){--t.pendingcb,n?(a.nextTick(i,r),a.nextTick(E,e,t),e._writableState.errorEmitted=!0,e.emit("error",r)):(i(r),e._writableState.errorEmitted=!0,e.emit("error",r),E(e,t))}(e,n,r,t,i);else{var o=S(n);o||n.corked||n.bufferProcessing||!n.bufferedRequest||w(e,n),r?c(_,e,n,o,i):_(e,n,o,i)}}(t,e)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.bufferedRequestCount=0,this.corkedRequestsFree=new o(this)}function v(e){if(s=s||n(41),!(p.call(v,this)||this instanceof s))return new v(e);this._writableState=new b(e,this),this.writable=!0,e&&("function"==typeof e.write&&(this._write=e.write),"function"==typeof e.writev&&(this._writev=e.writev),"function"==typeof e.destroy&&(this._destroy=e.destroy),"function"==typeof e.final&&(this._final=e.final)),f.call(this)}function y(e,t,n,r,i,a,o){t.writelen=r,t.writecb=o,t.writing=!0,t.sync=!0,n?e._writev(i,t.onwrite):e._write(i,a,t.onwrite),t.sync=!1}function _(e,t,n,r){n||function(e,t){0===t.length&&t.needDrain&&(t.needDrain=!1,e.emit("drain"))}(e,t),t.pendingcb--,r(),E(e,t)}function w(e,t){t.bufferProcessing=!0;var n=t.bufferedRequest;if(e._writev&&n&&n.next){var r=t.bufferedRequestCount,i=new Array(r),a=t.corkedRequestsFree;a.entry=n;for(var s=0,c=!0;n;)i[s]=n,n.isBuf||(c=!1),n=n.next,s+=1;i.allBuffers=c,y(e,t,!0,t.length,i,"",a.finish),t.pendingcb++,t.lastBufferedRequest=null,a.next?(t.corkedRequestsFree=a.next,a.next=null):t.corkedRequestsFree=new o(t),t.bufferedRequestCount=0}else{for(;n;){var u=n.chunk,l=n.encoding,f=n.callback;if(y(e,t,!1,t.objectMode?1:u.length,u,l,f),n=n.next,t.bufferedRequestCount--,t.writing)break}null===n&&(t.lastBufferedRequest=null)}t.bufferedRequest=n,t.bufferProcessing=!1}function S(e){return e.ending&&0===e.length&&null===e.bufferedRequest&&!e.finished&&!e.writing}function M(e,t){e._final(function(n){t.pendingcb--,n&&e.emit("error",n),t.prefinished=!0,e.emit("prefinish"),E(e,t)})}function E(e,t){var n=S(t);return n&&(!function(e,t){t.prefinished||t.finalCalled||("function"==typeof e._final?(t.pendingcb++,t.finalCalled=!0,a.nextTick(M,e,t)):(t.prefinished=!0,e.emit("prefinish")))}(e,t),0===t.pendingcb&&(t.finished=!0,e.emit("finish"))),n}u.inherits(v,f),b.prototype.getBuffer=function(){for(var e=this.bufferedRequest,t=[];e;)t.push(e),e=e.next;return t},function(){try{Object.defineProperty(b.prototype,"buffer",{get:l.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}}(),"function"==typeof Symbol&&Symbol.hasInstance&&"function"==typeof Function.prototype[Symbol.hasInstance]?(p=Function.prototype[Symbol.hasInstance],Object.defineProperty(v,Symbol.hasInstance,{value:function(e){return!!p.call(this,e)||this===v&&(e&&e._writableState instanceof b)}})):p=function(e){return e instanceof this},v.prototype.pipe=function(){this.emit("error",new Error("Cannot pipe, not readable"))},v.prototype.write=function(e,t,n){var r,i=this._writableState,o=!1,s=!i.objectMode&&(r=e,d.isBuffer(r)||r instanceof h);return s&&!d.isBuffer(e)&&(e=function(e){return d.from(e)}(e)),"function"==typeof t&&(n=t,t=null),s?t="buffer":t||(t=i.defaultEncoding),"function"!=typeof n&&(n=m),i.ended?function(e,t){var n=new Error("write after end");e.emit("error",n),a.nextTick(t,n)}(this,n):(s||function(e,t,n,r){var i=!0,o=!1;return null===n?o=new TypeError("May not write null values to stream"):"string"==typeof n||void 0===n||t.objectMode||(o=new TypeError("Invalid non-string/buffer chunk")),o&&(e.emit("error",o),a.nextTick(r,o),i=!1),i}(this,i,e,n))&&(i.pendingcb++,o=function(e,t,n,r,i,a){if(!n){var o=function(e,t,n){e.objectMode||!1===e.decodeStrings||"string"!=typeof t||(t=d.from(t,n));return t}(t,r,i);r!==o&&(n=!0,i="buffer",r=o)}var s=t.objectMode?1:r.length;t.length+=s;var c=t.length<t.highWaterMark;c||(t.needDrain=!0);if(t.writing||t.corked){var u=t.lastBufferedRequest;t.lastBufferedRequest={chunk:r,encoding:i,isBuf:n,callback:a,next:null},u?u.next=t.lastBufferedRequest:t.bufferedRequest=t.lastBufferedRequest,t.bufferedRequestCount+=1}else y(e,t,!1,s,r,i,a);return c}(this,i,s,e,t,n)),o},v.prototype.cork=function(){this._writableState.corked++},v.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,e.writing||e.corked||e.finished||e.bufferProcessing||!e.bufferedRequest||w(this,e))},v.prototype.setDefaultEncoding=function(e){if("string"==typeof e&&(e=e.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((e+"").toLowerCase())>-1))throw new TypeError("Unknown encoding: "+e);return this._writableState.defaultEncoding=e,this},v.prototype._write=function(e,t,n){n(new Error("_write() is not implemented"))},v.prototype._writev=null,v.prototype.end=function(e,t,n){var r=this._writableState;"function"==typeof e?(n=e,e=null,t=null):"function"==typeof t&&(n=t,t=null),null!==e&&void 0!==e&&this.write(e,t),r.corked&&(r.corked=1,this.uncork()),r.ending||r.finished||function(e,t,n){t.ending=!0,E(e,t),n&&(t.finished?a.nextTick(n):e.once("finish",n));t.ended=!0,e.writable=!1}(this,r,n)},Object.defineProperty(v.prototype,"destroyed",{get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(e){this._writableState&&(this._writableState.destroyed=e)}}),v.prototype.destroy=g.destroy,v.prototype._undestroy=g.undestroy,v.prototype._destroy=function(e,t){this.end(),t(e)}}).call(this,n(35),n(410).setImmediate,n(24))},function(e,t,n){"use strict";(t=e.exports=n(160)).Stream=t,t.Readable=t,t.Writable=n(96),t.Duplex=n(41),t.Transform=n(157),t.PassThrough=n(407)},function(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})(e)}function i(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function a(e){return"function"==typeof e}function o(e){return"object"===r(e)&&null!==e}function s(e){return void 0===e}e.exports=i,i.EventEmitter=i,i.prototype._events=void 0,i.prototype._maxListeners=void 0,i.defaultMaxListeners=10,i.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},i.prototype.emit=function(e){var t,n,r,i,c,u;if(this._events||(this._events={}),"error"===e&&(!this._events.error||o(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var l=new Error('Uncaught, unspecified "error" event. ('+t+")");throw l.context=t,l}if(s(n=this._events[e]))return!1;if(a(n))switch(arguments.length){case 1:n.call(this);break;case 2:n.call(this,arguments[1]);break;case 3:n.call(this,arguments[1],arguments[2]);break;default:i=Array.prototype.slice.call(arguments,1),n.apply(this,i)}else if(o(n))for(i=Array.prototype.slice.call(arguments,1),r=(u=n.slice()).length,c=0;c<r;c++)u[c].apply(this,i);return!0},i.prototype.addListener=function(e,t){var n;if(!a(t))throw TypeError("listener must be a function");return this._events||(this._events={}),this._events.newListener&&this.emit("newListener",e,a(t.listener)?t.listener:t),this._events[e]?o(this._events[e])?this._events[e].push(t):this._events[e]=[this._events[e],t]:this._events[e]=t,o(this._events[e])&&!this._events[e].warned&&(n=s(this._maxListeners)?i.defaultMaxListeners:this._maxListeners)&&n>0&&this._events[e].length>n&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(e,t){if(!a(t))throw TypeError("listener must be a function");var n=!1;function r(){this.removeListener(e,r),n||(n=!0,t.apply(this,arguments))}return r.listener=t,this.on(e,r),this},i.prototype.removeListener=function(e,t){var n,r,i,s;if(!a(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(i=(n=this._events[e]).length,r=-1,n===t||a(n.listener)&&n.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(o(n)){for(s=i;s-- >0;)if(n[s]===t||n[s].listener&&n[s].listener===t){r=s;break}if(r<0)return this;1===n.length?(n.length=0,delete this._events[e]):n.splice(r,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},i.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(a(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},i.prototype.listeners=function(e){return this._events&&this._events[e]?a(this._events[e])?[this._events[e]]:this._events[e].slice():[]},i.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(a(t))return 1;if(t)return t.length}return 0},i.listenerCount=function(e,t){return e.listenerCount(t)}},function(e,t,n){"use strict";(function(t){var r=n(1),i=n(414);function a(){i.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878,this._e=3285377520}function o(e,t){return e<<t|e>>>32-t}function s(e,t,n,r,i,a,s,c){return o(e+(t^n^r)+a+s|0,c)+i|0}function c(e,t,n,r,i,a,s,c){return o(e+(t&n|~t&r)+a+s|0,c)+i|0}function u(e,t,n,r,i,a,s,c){return o(e+((t|~n)^r)+a+s|0,c)+i|0}function l(e,t,n,r,i,a,s,c){return o(e+(t&r|n&~r)+a+s|0,c)+i|0}function f(e,t,n,r,i,a,s,c){return o(e+(t^(n|~r))+a+s|0,c)+i|0}r(a,i),a.prototype._update=function(){for(var e=new Array(16),t=0;t<16;++t)e[t]=this._block.readInt32LE(4*t);var n=this._a,r=this._b,i=this._c,a=this._d,d=this._e;d=s(d,n=s(n,r,i,a,d,e[0],0,11),r,i=o(i,10),a,e[1],0,14),r=s(r=o(r,10),i=s(i,a=s(a,d,n,r,i,e[2],0,15),d,n=o(n,10),r,e[3],0,12),a,d=o(d,10),n,e[4],0,5),a=s(a=o(a,10),d=s(d,n=s(n,r,i,a,d,e[5],0,8),r,i=o(i,10),a,e[6],0,7),n,r=o(r,10),i,e[7],0,9),n=s(n=o(n,10),r=s(r,i=s(i,a,d,n,r,e[8],0,11),a,d=o(d,10),n,e[9],0,13),i,a=o(a,10),d,e[10],0,14),i=s(i=o(i,10),a=s(a,d=s(d,n,r,i,a,e[11],0,15),n,r=o(r,10),i,e[12],0,6),d,n=o(n,10),r,e[13],0,7),d=c(d=o(d,10),n=s(n,r=s(r,i,a,d,n,e[14],0,9),i,a=o(a,10),d,e[15],0,8),r,i=o(i,10),a,e[7],1518500249,7),r=c(r=o(r,10),i=c(i,a=c(a,d,n,r,i,e[4],1518500249,6),d,n=o(n,10),r,e[13],1518500249,8),a,d=o(d,10),n,e[1],1518500249,13),a=c(a=o(a,10),d=c(d,n=c(n,r,i,a,d,e[10],1518500249,11),r,i=o(i,10),a,e[6],1518500249,9),n,r=o(r,10),i,e[15],1518500249,7),n=c(n=o(n,10),r=c(r,i=c(i,a,d,n,r,e[3],1518500249,15),a,d=o(d,10),n,e[12],1518500249,7),i,a=o(a,10),d,e[0],1518500249,12),i=c(i=o(i,10),a=c(a,d=c(d,n,r,i,a,e[9],1518500249,15),n,r=o(r,10),i,e[5],1518500249,9),d,n=o(n,10),r,e[2],1518500249,11),d=c(d=o(d,10),n=c(n,r=c(r,i,a,d,n,e[14],1518500249,7),i,a=o(a,10),d,e[11],1518500249,13),r,i=o(i,10),a,e[8],1518500249,12),r=u(r=o(r,10),i=u(i,a=u(a,d,n,r,i,e[3],1859775393,11),d,n=o(n,10),r,e[10],1859775393,13),a,d=o(d,10),n,e[14],1859775393,6),a=u(a=o(a,10),d=u(d,n=u(n,r,i,a,d,e[4],1859775393,7),r,i=o(i,10),a,e[9],1859775393,14),n,r=o(r,10),i,e[15],1859775393,9),n=u(n=o(n,10),r=u(r,i=u(i,a,d,n,r,e[8],1859775393,13),a,d=o(d,10),n,e[1],1859775393,15),i,a=o(a,10),d,e[2],1859775393,14),i=u(i=o(i,10),a=u(a,d=u(d,n,r,i,a,e[7],1859775393,8),n,r=o(r,10),i,e[0],1859775393,13),d,n=o(n,10),r,e[6],1859775393,6),d=u(d=o(d,10),n=u(n,r=u(r,i,a,d,n,e[13],1859775393,5),i,a=o(a,10),d,e[11],1859775393,12),r,i=o(i,10),a,e[5],1859775393,7),r=l(r=o(r,10),i=l(i,a=u(a,d,n,r,i,e[12],1859775393,5),d,n=o(n,10),r,e[1],2400959708,11),a,d=o(d,10),n,e[9],2400959708,12),a=l(a=o(a,10),d=l(d,n=l(n,r,i,a,d,e[11],2400959708,14),r,i=o(i,10),a,e[10],2400959708,15),n,r=o(r,10),i,e[0],2400959708,14),n=l(n=o(n,10),r=l(r,i=l(i,a,d,n,r,e[8],2400959708,15),a,d=o(d,10),n,e[12],2400959708,9),i,a=o(a,10),d,e[4],2400959708,8),i=l(i=o(i,10),a=l(a,d=l(d,n,r,i,a,e[13],2400959708,9),n,r=o(r,10),i,e[3],2400959708,14),d,n=o(n,10),r,e[7],2400959708,5),d=l(d=o(d,10),n=l(n,r=l(r,i,a,d,n,e[15],2400959708,6),i,a=o(a,10),d,e[14],2400959708,8),r,i=o(i,10),a,e[5],2400959708,6),r=f(r=o(r,10),i=l(i,a=l(a,d,n,r,i,e[6],2400959708,5),d,n=o(n,10),r,e[2],2400959708,12),a,d=o(d,10),n,e[4],2840853838,9),a=f(a=o(a,10),d=f(d,n=f(n,r,i,a,d,e[0],2840853838,15),r,i=o(i,10),a,e[5],2840853838,5),n,r=o(r,10),i,e[9],2840853838,11),n=f(n=o(n,10),r=f(r,i=f(i,a,d,n,r,e[7],2840853838,6),a,d=o(d,10),n,e[12],2840853838,8),i,a=o(a,10),d,e[2],2840853838,13),i=f(i=o(i,10),a=f(a,d=f(d,n,r,i,a,e[10],2840853838,12),n,r=o(r,10),i,e[14],2840853838,5),d,n=o(n,10),r,e[1],2840853838,12),d=f(d=o(d,10),n=f(n,r=f(r,i,a,d,n,e[3],2840853838,13),i,a=o(a,10),d,e[8],2840853838,14),r,i=o(i,10),a,e[11],2840853838,11),r=f(r=o(r,10),i=f(i,a=f(a,d,n,r,i,e[6],2840853838,8),d,n=o(n,10),r,e[15],2840853838,5),a,d=o(d,10),n,e[13],2840853838,6),a=o(a,10);var h=this._a,p=this._b,g=this._c,m=this._d,b=this._e;b=f(b,h=f(h,p,g,m,b,e[5],1352829926,8),p,g=o(g,10),m,e[14],1352829926,9),p=f(p=o(p,10),g=f(g,m=f(m,b,h,p,g,e[7],1352829926,9),b,h=o(h,10),p,e[0],1352829926,11),m,b=o(b,10),h,e[9],1352829926,13),m=f(m=o(m,10),b=f(b,h=f(h,p,g,m,b,e[2],1352829926,15),p,g=o(g,10),m,e[11],1352829926,15),h,p=o(p,10),g,e[4],1352829926,5),h=f(h=o(h,10),p=f(p,g=f(g,m,b,h,p,e[13],1352829926,7),m,b=o(b,10),h,e[6],1352829926,7),g,m=o(m,10),b,e[15],1352829926,8),g=f(g=o(g,10),m=f(m,b=f(b,h,p,g,m,e[8],1352829926,11),h,p=o(p,10),g,e[1],1352829926,14),b,h=o(h,10),p,e[10],1352829926,14),b=l(b=o(b,10),h=f(h,p=f(p,g,m,b,h,e[3],1352829926,12),g,m=o(m,10),b,e[12],1352829926,6),p,g=o(g,10),m,e[6],1548603684,9),p=l(p=o(p,10),g=l(g,m=l(m,b,h,p,g,e[11],1548603684,13),b,h=o(h,10),p,e[3],1548603684,15),m,b=o(b,10),h,e[7],1548603684,7),m=l(m=o(m,10),b=l(b,h=l(h,p,g,m,b,e[0],1548603684,12),p,g=o(g,10),m,e[13],1548603684,8),h,p=o(p,10),g,e[5],1548603684,9),h=l(h=o(h,10),p=l(p,g=l(g,m,b,h,p,e[10],1548603684,11),m,b=o(b,10),h,e[14],1548603684,7),g,m=o(m,10),b,e[15],1548603684,7),g=l(g=o(g,10),m=l(m,b=l(b,h,p,g,m,e[8],1548603684,12),h,p=o(p,10),g,e[12],1548603684,7),b,h=o(h,10),p,e[4],1548603684,6),b=l(b=o(b,10),h=l(h,p=l(p,g,m,b,h,e[9],1548603684,15),g,m=o(m,10),b,e[1],1548603684,13),p,g=o(g,10),m,e[2],1548603684,11),p=u(p=o(p,10),g=u(g,m=u(m,b,h,p,g,e[15],1836072691,9),b,h=o(h,10),p,e[5],1836072691,7),m,b=o(b,10),h,e[1],1836072691,15),m=u(m=o(m,10),b=u(b,h=u(h,p,g,m,b,e[3],1836072691,11),p,g=o(g,10),m,e[7],1836072691,8),h,p=o(p,10),g,e[14],1836072691,6),h=u(h=o(h,10),p=u(p,g=u(g,m,b,h,p,e[6],1836072691,6),m,b=o(b,10),h,e[9],1836072691,14),g,m=o(m,10),b,e[11],1836072691,12),g=u(g=o(g,10),m=u(m,b=u(b,h,p,g,m,e[8],1836072691,13),h,p=o(p,10),g,e[12],1836072691,5),b,h=o(h,10),p,e[2],1836072691,14),b=u(b=o(b,10),h=u(h,p=u(p,g,m,b,h,e[10],1836072691,13),g,m=o(m,10),b,e[0],1836072691,13),p,g=o(g,10),m,e[4],1836072691,7),p=c(p=o(p,10),g=c(g,m=u(m,b,h,p,g,e[13],1836072691,5),b,h=o(h,10),p,e[8],2053994217,15),m,b=o(b,10),h,e[6],2053994217,5),m=c(m=o(m,10),b=c(b,h=c(h,p,g,m,b,e[4],2053994217,8),p,g=o(g,10),m,e[1],2053994217,11),h,p=o(p,10),g,e[3],2053994217,14),h=c(h=o(h,10),p=c(p,g=c(g,m,b,h,p,e[11],2053994217,14),m,b=o(b,10),h,e[15],2053994217,6),g,m=o(m,10),b,e[0],2053994217,14),g=c(g=o(g,10),m=c(m,b=c(b,h,p,g,m,e[5],2053994217,6),h,p=o(p,10),g,e[12],2053994217,9),b,h=o(h,10),p,e[2],2053994217,12),b=c(b=o(b,10),h=c(h,p=c(p,g,m,b,h,e[13],2053994217,9),g,m=o(m,10),b,e[9],2053994217,12),p,g=o(g,10),m,e[7],2053994217,5),p=s(p=o(p,10),g=c(g,m=c(m,b,h,p,g,e[10],2053994217,15),b,h=o(h,10),p,e[14],2053994217,8),m,b=o(b,10),h,e[12],0,8),m=s(m=o(m,10),b=s(b,h=s(h,p,g,m,b,e[15],0,5),p,g=o(g,10),m,e[10],0,12),h,p=o(p,10),g,e[4],0,9),h=s(h=o(h,10),p=s(p,g=s(g,m,b,h,p,e[1],0,12),m,b=o(b,10),h,e[5],0,5),g,m=o(m,10),b,e[8],0,14),g=s(g=o(g,10),m=s(m,b=s(b,h,p,g,m,e[7],0,6),h,p=o(p,10),g,e[6],0,8),b,h=o(h,10),p,e[2],0,13),b=s(b=o(b,10),h=s(h,p=s(p,g,m,b,h,e[13],0,6),g,m=o(m,10),b,e[14],0,5),p,g=o(g,10),m,e[0],0,15),p=s(p=o(p,10),g=s(g,m=s(m,b,h,p,g,e[3],0,13),b,h=o(h,10),p,e[9],0,11),m,b=o(b,10),h,e[11],0,11),m=o(m,10);var v=this._b+i+m|0;this._b=this._c+a+b|0,this._c=this._d+d+h|0,this._d=this._e+n+p|0,this._e=this._a+r+g|0,this._a=v},a.prototype._digest=function(){this._block[this._blockOffset++]=128,this._blockOffset>56&&(this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0),this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var e=new t(20);return e.writeInt32LE(this._a,0),e.writeInt32LE(this._b,4),e.writeInt32LE(this._c,8),e.writeInt32LE(this._d,12),e.writeInt32LE(this._e,16),e},e.exports=a}).call(this,n(7).Buffer)},function(e,t,n){"use strict";var r=n(415);function i(e,t){e[t>>5]|=128<<t%32,e[14+(t+64>>>9<<4)]=t;for(var n=1732584193,r=-271733879,i=-1732584194,a=271733878,f=0;f<e.length;f+=16){var d=n,h=r,p=i,g=a;r=u(r=u(r=u(r=u(r=c(r=c(r=c(r=c(r=s(r=s(r=s(r=s(r=o(r=o(r=o(r=o(r,i=o(i,a=o(a,n=o(n,r,i,a,e[f+0],7,-680876936),r,i,e[f+1],12,-389564586),n,r,e[f+2],17,606105819),a,n,e[f+3],22,-1044525330),i=o(i,a=o(a,n=o(n,r,i,a,e[f+4],7,-176418897),r,i,e[f+5],12,1200080426),n,r,e[f+6],17,-1473231341),a,n,e[f+7],22,-45705983),i=o(i,a=o(a,n=o(n,r,i,a,e[f+8],7,1770035416),r,i,e[f+9],12,-1958414417),n,r,e[f+10],17,-42063),a,n,e[f+11],22,-1990404162),i=o(i,a=o(a,n=o(n,r,i,a,e[f+12],7,1804603682),r,i,e[f+13],12,-40341101),n,r,e[f+14],17,-1502002290),a,n,e[f+15],22,1236535329),i=s(i,a=s(a,n=s(n,r,i,a,e[f+1],5,-165796510),r,i,e[f+6],9,-1069501632),n,r,e[f+11],14,643717713),a,n,e[f+0],20,-373897302),i=s(i,a=s(a,n=s(n,r,i,a,e[f+5],5,-701558691),r,i,e[f+10],9,38016083),n,r,e[f+15],14,-660478335),a,n,e[f+4],20,-405537848),i=s(i,a=s(a,n=s(n,r,i,a,e[f+9],5,568446438),r,i,e[f+14],9,-1019803690),n,r,e[f+3],14,-187363961),a,n,e[f+8],20,1163531501),i=s(i,a=s(a,n=s(n,r,i,a,e[f+13],5,-1444681467),r,i,e[f+2],9,-51403784),n,r,e[f+7],14,1735328473),a,n,e[f+12],20,-1926607734),i=c(i,a=c(a,n=c(n,r,i,a,e[f+5],4,-378558),r,i,e[f+8],11,-2022574463),n,r,e[f+11],16,1839030562),a,n,e[f+14],23,-35309556),i=c(i,a=c(a,n=c(n,r,i,a,e[f+1],4,-1530992060),r,i,e[f+4],11,1272893353),n,r,e[f+7],16,-155497632),a,n,e[f+10],23,-1094730640),i=c(i,a=c(a,n=c(n,r,i,a,e[f+13],4,681279174),r,i,e[f+0],11,-358537222),n,r,e[f+3],16,-722521979),a,n,e[f+6],23,76029189),i=c(i,a=c(a,n=c(n,r,i,a,e[f+9],4,-640364487),r,i,e[f+12],11,-421815835),n,r,e[f+15],16,530742520),a,n,e[f+2],23,-995338651),i=u(i,a=u(a,n=u(n,r,i,a,e[f+0],6,-198630844),r,i,e[f+7],10,1126891415),n,r,e[f+14],15,-1416354905),a,n,e[f+5],21,-57434055),i=u(i,a=u(a,n=u(n,r,i,a,e[f+12],6,1700485571),r,i,e[f+3],10,-1894986606),n,r,e[f+10],15,-1051523),a,n,e[f+1],21,-2054922799),i=u(i,a=u(a,n=u(n,r,i,a,e[f+8],6,1873313359),r,i,e[f+15],10,-30611744),n,r,e[f+6],15,-1560198380),a,n,e[f+13],21,1309151649),i=u(i,a=u(a,n=u(n,r,i,a,e[f+4],6,-145523070),r,i,e[f+11],10,-1120210379),n,r,e[f+2],15,718787259),a,n,e[f+9],21,-343485551),n=l(n,d),r=l(r,h),i=l(i,p),a=l(a,g)}return[n,r,i,a]}function a(e,t,n,r,i,a){return l((o=l(l(t,e),l(r,a)))<<(s=i)|o>>>32-s,n);var o,s}function o(e,t,n,r,i,o,s){return a(t&n|~t&r,e,t,i,o,s)}function s(e,t,n,r,i,o,s){return a(t&r|n&~r,e,t,i,o,s)}function c(e,t,n,r,i,o,s){return a(t^n^r,e,t,i,o,s)}function u(e,t,n,r,i,o,s){return a(n^(t|~r),e,t,i,o,s)}function l(e,t){var n=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(n>>16)<<16|65535&n}e.exports=function(e){return r(e,i)}},function(e,t,n){"use strict";var r=n(3).navigator;e.exports=r&&r.userAgent||""},function(e,t,n){"use strict";var r=n(3),i=n(11),a=n(50),o=n(78),s=n(18),c=n(42),u=n(4),l=n(44),f=n(31),d=n(9),h=n(171),p=n(46).f,g=n(10).f,m=n(107),b=n(58),v="prototype",y="Wrong index!",_=r.ArrayBuffer,w=r.DataView,S=r.Math,M=r.RangeError,E=r.Infinity,A=_,I=S.abs,k=S.pow,O=S.floor,x=S.log,P=S.LN2,C=i?"_b":"buffer",j=i?"_l":"byteLength",D=i?"_o":"byteOffset";function N(e,t,n){var r,i,a,o=new Array(n),s=8*n-t-1,c=(1<<s)-1,u=c>>1,l=23===t?k(2,-24)-k(2,-77):0,f=0,d=e<0||0===e&&1/e<0?1:0;for((e=I(e))!=e||e===E?(i=e!=e?1:0,r=c):(r=O(x(e)/P),e*(a=k(2,-r))<1&&(r--,a*=2),(e+=r+u>=1?l/a:l*k(2,1-u))*a>=2&&(r++,a/=2),r+u>=c?(i=0,r=c):r+u>=1?(i=(e*a-1)*k(2,t),r+=u):(i=e*k(2,u-1)*k(2,t),r=0));t>=8;o[f++]=255&i,i/=256,t-=8);for(r=r<<t|i,s+=t;s>0;o[f++]=255&r,r/=256,s-=8);return o[--f]|=128*d,o}function R(e,t,n){var r,i=8*n-t-1,a=(1<<i)-1,o=a>>1,s=i-7,c=n-1,u=e[c--],l=127&u;for(u>>=7;s>0;l=256*l+e[c],c--,s-=8);for(r=l&(1<<-s)-1,l>>=-s,s+=t;s>0;r=256*r+e[c],c--,s-=8);if(0===l)l=1-o;else{if(l===a)return r?NaN:u?-E:E;r+=k(2,t),l-=o}return(u?-1:1)*r*k(2,l-t)}function T(e){return e[3]<<24|e[2]<<16|e[1]<<8|e[0]}function B(e){return[255&e]}function L(e){return[255&e,e>>8&255]}function $(e){return[255&e,e>>8&255,e>>16&255,e>>24&255]}function U(e){return N(e,52,8)}function F(e){return N(e,23,4)}function z(e,t,n){g(e[v],t,{get:function(){return this[n]}})}function q(e,t,n,r){var i=h(+n);if(i+t>e[j])throw M(y);var a=e[C]._b,o=i+e[D],s=a.slice(o,o+t);return r?s:s.reverse()}function V(e,t,n,r,i,a){var o=h(+n);if(o+t>e[j])throw M(y);for(var s=e[C]._b,c=o+e[D],u=r(+i),l=0;l<t;l++)s[c+l]=u[a?l:t-l-1]}if(o.ABV){if(!u(function(){_(1)})||!u(function(){new _(-1)})||u(function(){return new _,new _(1.5),new _(NaN),"ArrayBuffer"!=_.name})){for(var H,G=(_=function(e){return l(this,_),new A(h(e))})[v]=A[v],K=p(A),W=0;K.length>W;)(H=K[W++])in _||s(_,H,A[H]);a||(G.constructor=_)}var Y=new w(new _(2)),J=w[v].setInt8;Y.setInt8(0,2147483648),Y.setInt8(1,2147483649),!Y.getInt8(0)&&Y.getInt8(1)||c(w[v],{setInt8:function(e,t){J.call(this,e,t<<24>>24)},setUint8:function(e,t){J.call(this,e,t<<24>>24)}},!0)}else _=function(e){l(this,_,"ArrayBuffer");var t=h(e);this._b=m.call(new Array(t),0),this[j]=t},w=function(e,t,n){l(this,w,"DataView"),l(e,_,"DataView");var r=e[j],i=f(t);if(i<0||i>r)throw M("Wrong offset!");if(i+(n=void 0===n?r-i:d(n))>r)throw M("Wrong length!");this[C]=e,this[D]=i,this[j]=n},i&&(z(_,"byteLength","_l"),z(w,"buffer","_b"),z(w,"byteLength","_l"),z(w,"byteOffset","_o")),c(w[v],{getInt8:function(e){return q(this,1,e)[0]<<24>>24},getUint8:function(e){return q(this,1,e)[0]},getInt16:function(e){var t=q(this,2,e,arguments[1]);return(t[1]<<8|t[0])<<16>>16},getUint16:function(e){var t=q(this,2,e,arguments[1]);return t[1]<<8|t[0]},getInt32:function(e){return T(q(this,4,e,arguments[1]))},getUint32:function(e){return T(q(this,4,e,arguments[1]))>>>0},getFloat32:function(e){return R(q(this,4,e,arguments[1]),23,4)},getFloat64:function(e){return R(q(this,8,e,arguments[1]),52,8)},setInt8:function(e,t){V(this,1,e,B,t)},setUint8:function(e,t){V(this,1,e,B,t)},setInt16:function(e,t){V(this,2,e,L,t,arguments[2])},setUint16:function(e,t){V(this,2,e,L,t,arguments[2])},setInt32:function(e,t){V(this,4,e,$,t,arguments[2])},setUint32:function(e,t){V(this,4,e,$,t,arguments[2])},setFloat32:function(e,t){V(this,4,e,F,t,arguments[2])},setFloat64:function(e,t){V(this,8,e,U,t,arguments[2])}});b(_,"ArrayBuffer"),b(w,"DataView"),s(w[v],o.VIEW,!0),t.ArrayBuffer=_,t.DataView=w},function(e,t,n){"use strict";var r=n(14);e.exports.f=function(e){return new function(e){var t,n;this.promise=new e(function(e,r){if(void 0!==t||void 0!==n)throw TypeError("Bad Promise constructor");t=e,n=r}),this.resolve=r(t),this.reject=r(n)}(e)}},function(e,t,n){"use strict";var r=n(3),i=n(105).set,a=r.MutationObserver||r.WebKitMutationObserver,o=r.process,s=r.Promise,c="process"==n(26)(o);e.exports=function(){var e,t,n,u=function(){var r,i;for(c&&(r=o.domain)&&r.exit();e;){i=e.fn,e=e.next;try{i()}catch(r){throw e?n():t=void 0,r}}t=void 0,r&&r.enter()};if(c)n=function(){o.nextTick(u)};else if(!a||r.navigator&&r.navigator.standalone)if(s&&s.resolve){var l=s.resolve();n=function(){l.then(u)}}else n=function(){i.call(r,u)};else{var f=!0,d=document.createTextNode("");new a(u).observe(d,{characterData:!0}),n=function(){d.data=f=!f}}return function(r){var i={fn:r,next:void 0};t&&(t.next=i),e||(e=i,n()),t=i}}},function(e,t,n){"use strict";var r,i,a,o=n(27),s=n(190),c=n(123),u=n(127),l=n(3),f=l.process,d=l.setImmediate,h=l.clearImmediate,p=l.MessageChannel,g=l.Dispatch,m=0,b={},v=function(){var e=+this;if(b.hasOwnProperty(e)){var t=b[e];delete b[e],t()}},y=function(e){v.call(e.data)};d&&h||(d=function(e){for(var t=[],n=1;arguments.length>n;)t.push(arguments[n++]);return b[++m]=function(){s("function"==typeof e?e:Function(e),t)},r(m),m},h=function(e){delete b[e]},"process"==n(26)(f)?r=function(e){f.nextTick(o(v,e,1))}:g&&g.now?r=function(e){g.now(o(v,e,1))}:p?(a=(i=new p).port2,i.port1.onmessage=y,r=o(a.postMessage,a,1)):l.addEventListener&&"function"==typeof postMessage&&!l.importScripts?(r=function(e){l.postMessage(e+"","*")},l.addEventListener("message",y,!1)):r="onreadystatechange"in u("script")?function(e){c.appendChild(u("script")).onreadystatechange=function(){c.removeChild(this),v.call(e)}}:function(e){setTimeout(o(v,e,1),0)}),e.exports={set:d,clear:h}},function(e,t,n){"use strict";var r=n(39),i=n(180),a=n(56),o=n(23);e.exports=n(115)(Array,"Array",function(e,t){this._t=o(e),this._i=0,this._k=t},function(){var e=this._t,t=this._k,n=this._i++;return!e||n>=e.length?(this._t=void 0,i(1)):i(0,"keys"==t?n:"values"==t?e[n]:[n,e[n]])},"values"),a.Arguments=a.Array,r("keys"),r("values"),r("entries")},function(e,t,n){"use strict";var r=n(13),i=n(48),a=n(9);e.exports=function(e){for(var t=r(this),n=a(t.length),o=arguments.length,s=i(o>1?arguments[1]:void 0,n),c=o>2?arguments[2]:void 0,u=void 0===c?n:i(c,n);u>s;)t[s++]=e;return t}},function(e,t,n){"use strict";var r=n(530);e.exports=function(e,t){return new(r(e))(t)}},function(e,t,n){"use strict";var r=n(65),i=n(8)("iterator"),a=n(56);e.exports=n(34).getIteratorMethod=function(e){if(void 0!=e)return e[i]||e["@@iterator"]||a[r(e)]}},function(e,t,n){"use strict";var r=n(10),i=n(52);e.exports=function(e,t,n){t in e?r.f(e,t,i(0,n)):e[t]=n}},function(e,t,n){"use strict";var r=n(56),i=n(8)("iterator"),a=Array.prototype;e.exports=function(e){return void 0!==e&&(r.Array===e||a[i]===e)}},function(e,t,n){"use strict";var r=n(8)("match");e.exports=function(e){var t=/./;try{"/./"[e](t)}catch(n){try{return t[r]=!1,!"/./"[e](t)}catch(e){}}return!0}},function(e,t,n){"use strict";var r=n(84),i=n(32);e.exports=function(e,t,n){if(r(t))throw TypeError("String#"+n+" doesn't accept regex!");return String(i(e))}},function(e,t,n){"use strict";var r=n(47),i=n(52),a=n(58),o={};n(18)(o,n(8)("iterator"),function(){return this}),e.exports=function(e,t,n){e.prototype=r(o,{next:i(1,n)}),a(e,t+" Iterator")}},function(e,t,n){"use strict";var r=n(50),i=n(0),a=n(17),o=n(18),s=n(19),c=n(56),u=n(114),l=n(58),f=n(21),d=n(8)("iterator"),h=!([].keys&&"next"in[].keys()),p=function(){return this};e.exports=function(e,t,n,g,m,b,v){u(n,t,g);var y,_,w,S=function(e){if(!h&&e in I)return I[e];switch(e){case"keys":case"values":return function(){return new n(this,e)}}return function(){return new n(this,e)}},M=t+" Iterator",E="values"==m,A=!1,I=e.prototype,k=I[d]||I["@@iterator"]||m&&I[m],O=!h&&k||S(m),x=m?E?S("entries"):O:void 0,P="Array"==t&&I.entries||k;if(P&&(w=f(P.call(new e)))!==Object.prototype&&w.next&&(l(w,M,!0),r||s(w,d)||o(w,d,p)),E&&k&&"values"!==k.name&&(A=!0,O=function(){return k.call(this)}),r&&!v||!h&&!A&&I[d]||o(I,d,O),c[t]=O,c[M]=p,m)if(y={values:E?O:S("values"),keys:b?O:S("keys"),entries:x},v)for(_ in y)_ in I||a(I,_,y[_]);else i(i.P+i.F*(h||A),t,y);return y}},function(e,t,n){"use strict";var r=n(31),i=n(32);e.exports=function(e){return function(t,n){var a,o,s=String(i(t)),c=r(n),u=s.length;return c<0||c>=u?e?"":void 0:(a=s.charCodeAt(c))<55296||a>56319||c+1===u||(o=s.charCodeAt(c+1))<56320||o>57343?e?s.charAt(c):a:e?s.slice(c,c+2):o-56320+(a-55296<<10)+65536}}},function(e,t,n){"use strict";var r=Math.expm1;e.exports=!r||r(10)>22025.465794806718||r(10)<22025.465794806718||-2e-17!=r(-2e-17)?function(e){return 0==(e=+e)?e:e>-1e-6&&e<1e-6?e+e*e/2:Math.exp(e)-1}:r},function(e,t,n){"use strict";e.exports=Math.sign||function(e){return 0==(e=+e)||e!=e?e:e<0?-1:1}},function(e,t,n){"use strict";var r=n(31),i=n(32);e.exports=function(e){var t=String(i(this)),n="",a=r(e);if(a<0||a==1/0)throw RangeError("Count can't be negative");for(;a>0;(a>>>=1)&&(t+=t))1&a&&(n+=t);return n}},function(e,t,n){"use strict";var r=n(6),i=n(122).set;e.exports=function(e,t,n){var a,o=t.constructor;return o!==n&&"function"==typeof o&&(a=o.prototype)!==n.prototype&&r(a)&&i&&i(e,a),e}},function(e,t,n){"use strict";e.exports="\t\n\v\f\r   ᠎              \u2028\u2029\ufeff"},function(e,t,n){"use strict";var r=n(6),i=n(2),a=function(e,t){if(i(e),!r(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t,r){try{(r=n(27)(Function.call,n(22).f(Object.prototype,"__proto__").set,2))(e,[]),t=!(e instanceof Array)}catch(e){t=!0}return function(e,n){return a(e,n),t?e.__proto__=n:r(e,n),e}}({},!1):void 0),check:a}},function(e,t,n){"use strict";var r=n(3).document;e.exports=r&&r.documentElement},function(e,t,n){"use strict";e.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(e,t,n){"use strict";var r=n(88)("keys"),i=n(51);e.exports=function(e){return r[e]||(r[e]=i(e))}},function(e,t,n){"use strict";var r=n(3),i=n(34),a=n(50),o=n(196),s=n(10).f;e.exports=function(e){var t=i.Symbol||(i.Symbol=a?{}:r.Symbol||{});"_"==e.charAt(0)||e in t||s(t,e,{value:o.f(e)})}},function(e,t,n){"use strict";var r=n(6),i=n(3).document,a=r(i)&&r(i.createElement);e.exports=function(e){return a?i.createElement(e):{}}},function(e,t,n){"use strict";(function(e,r){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})(e)}var a=/%[sdj%]/g;t.format=function(e){if(!v(e)){for(var t=[],n=0;n<arguments.length;n++)t.push(c(arguments[n]));return t.join(" ")}n=1;for(var r=arguments,i=r.length,o=String(e).replace(a,function(e){if("%%"===e)return"%";if(n>=i)return e;switch(e){case"%s":return String(r[n++]);case"%d":return Number(r[n++]);case"%j":try{return JSON.stringify(r[n++])}catch(e){return"[Circular]"}default:return e}}),s=r[n];n<i;s=r[++n])m(s)||!w(s)?o+=" "+s:o+=" "+c(s);return o},t.deprecate=function(n,i){if(y(e.process))return function(){return t.deprecate(n,i).apply(this,arguments)};if(!0===r.noDeprecation)return n;var a=!1;return function(){if(!a){if(r.throwDeprecation)throw new Error(i);r.traceDeprecation?console.trace(i):console.error(i),a=!0}return n.apply(this,arguments)}};var o,s={};function c(e,n){var r={seen:[],stylize:l};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),g(n)?r.showHidden=n:n&&t._extend(r,n),y(r.showHidden)&&(r.showHidden=!1),y(r.depth)&&(r.depth=2),y(r.colors)&&(r.colors=!1),y(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=u),f(r,e,r.depth)}function u(e,t){var n=c.styles[t];return n?"["+c.colors[n][0]+"m"+e+"["+c.colors[n][1]+"m":e}function l(e,t){return e}function f(e,n,r){if(e.customInspect&&n&&E(n.inspect)&&n.inspect!==t.inspect&&(!n.constructor||n.constructor.prototype!==n)){var i=n.inspect(r,e);return v(i)||(i=f(e,i,r)),i}var a=function(e,t){if(y(t))return e.stylize("undefined","undefined");if(v(t)){var n="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(n,"string")}if(b(t))return e.stylize(""+t,"number");if(g(t))return e.stylize(""+t,"boolean");if(m(t))return e.stylize("null","null")}(e,n);if(a)return a;var o=Object.keys(n),s=function(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}(o);if(e.showHidden&&(o=Object.getOwnPropertyNames(n)),M(n)&&(o.indexOf("message")>=0||o.indexOf("description")>=0))return d(n);if(0===o.length){if(E(n)){var c=n.name?": "+n.name:"";return e.stylize("[Function"+c+"]","special")}if(_(n))return e.stylize(RegExp.prototype.toString.call(n),"regexp");if(S(n))return e.stylize(Date.prototype.toString.call(n),"date");if(M(n))return d(n)}var u,l="",w=!1,A=["{","}"];(p(n)&&(w=!0,A=["[","]"]),E(n))&&(l=" [Function"+(n.name?": "+n.name:"")+"]");return _(n)&&(l=" "+RegExp.prototype.toString.call(n)),S(n)&&(l=" "+Date.prototype.toUTCString.call(n)),M(n)&&(l=" "+d(n)),0!==o.length||w&&0!=n.length?r<0?_(n)?e.stylize(RegExp.prototype.toString.call(n),"regexp"):e.stylize("[Object]","special"):(e.seen.push(n),u=w?function(e,t,n,r,i){for(var a=[],o=0,s=t.length;o<s;++o)O(t,String(o))?a.push(h(e,t,n,r,String(o),!0)):a.push("");return i.forEach(function(i){i.match(/^\d+$/)||a.push(h(e,t,n,r,i,!0))}),a}(e,n,r,s,o):o.map(function(t){return h(e,n,r,s,t,w)}),e.seen.pop(),function(e,t,n){if(e.reduce(function(e,t){return 0,t.indexOf("\n")>=0&&0,e+t.replace(/\u001b\[\d\d?m/g,"").length+1},0)>60)return n[0]+(""===t?"":t+"\n ")+" "+e.join(",\n ")+" "+n[1];return n[0]+t+" "+e.join(", ")+" "+n[1]}(u,l,A)):A[0]+l+A[1]}function d(e){return"["+Error.prototype.toString.call(e)+"]"}function h(e,t,n,r,i,a){var o,s,c;if((c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]}).get?s=c.set?e.stylize("[Getter/Setter]","special"):e.stylize("[Getter]","special"):c.set&&(s=e.stylize("[Setter]","special")),O(r,i)||(o="["+i+"]"),s||(e.seen.indexOf(c.value)<0?(s=m(n)?f(e,c.value,null):f(e,c.value,n-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")),y(o)){if(a&&i.match(/^\d+$/))return s;(o=JSON.stringify(""+i)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.substr(1,o.length-2),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function p(e){return Array.isArray(e)}function g(e){return"boolean"==typeof e}function m(e){return null===e}function b(e){return"number"==typeof e}function v(e){return"string"==typeof e}function y(e){return void 0===e}function _(e){return w(e)&&"[object RegExp]"===A(e)}function w(e){return"object"===i(e)&&null!==e}function S(e){return w(e)&&"[object Date]"===A(e)}function M(e){return w(e)&&("[object Error]"===A(e)||e instanceof Error)}function E(e){return"function"==typeof e}function A(e){return Object.prototype.toString.call(e)}function I(e){return e<10?"0"+e.toString(10):e.toString(10)}t.debuglog=function(e){if(y(o)&&(o=r.env.NODE_DEBUG||""),e=e.toUpperCase(),!s[e])if(new RegExp("\\b"+e+"\\b","i").test(o)){var n=r.pid;s[e]=function(){var r=t.format.apply(t,arguments);console.error("%s %d: %s",e,n,r)}}else s[e]=function(){};return s[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.isArray=p,t.isBoolean=g,t.isNull=m,t.isNullOrUndefined=function(e){return null==e},t.isNumber=b,t.isString=v,t.isSymbol=function(e){return"symbol"===i(e)},t.isUndefined=y,t.isRegExp=_,t.isObject=w,t.isDate=S,t.isError=M,t.isFunction=E,t.isPrimitive=function(e){return null===e||"boolean"==typeof e||"number"==typeof e||"string"==typeof e||"symbol"===i(e)||void 0===e},t.isBuffer=n(325);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(){var e,n;console.log("%s - %s",(e=new Date,n=[I(e.getHours()),I(e.getMinutes()),I(e.getSeconds())].join(":"),[e.getDate(),k[e.getMonth()],n].join(" ")),t.format.apply(t,arguments))},t.inherits=n(324),t._extend=function(e,t){if(!t||!w(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e}}).call(this,n(24),n(35))},function(e,t,n){"use strict";(function(t){var r=n(12);e.exports=function(e,n){return new t(e.toRed(r.mont(n.modulus)).redPow(new r(n.publicExponent)).fromRed().toArray())}}).call(this,n(7).Buffer)},function(e,t,n){"use strict";e.exports=function(e,t){for(var n=e.length,r=-1;++r<n;)e[r]^=t[r];return e}},function(e,t,n){"use strict";(function(t){var r=n(64);function i(e){var n=new t(4);return n.writeUInt32BE(e,0),n}e.exports=function(e,n){for(var a,o=new t(""),s=0;o.length<n;)a=i(s++),o=t.concat([o,r("sha1").update(e).update(a).digest()]);return o.slice(0,n)}}).call(this,n(7).Buffer)},function(e){e.exports={"1.3.132.0.10":"secp256k1","1.3.132.0.33":"p224","1.2.840.10045.3.1.1":"p192","1.2.840.10045.3.1.7":"p256","1.3.132.0.34":"p384","1.3.132.0.35":"p521"}},function(e,t,n){"use strict";var r=n(1),i=n(7).Buffer,a=n(60),o=a.base,s=a.constants.der;function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){o.Node.call(this,"der",e)}function l(e){return e<10?"0"+e:e}e.exports=c,c.prototype.encode=function(e,t){return this.tree._encode(e,t).join()},r(u,o.Node),u.prototype._encodeComposite=function(e,t,n,r){var a,o=function(e,t,n,r){var i;"seqof"===e?e="seq":"setof"===e&&(e="set");if(s.tagByName.hasOwnProperty(e))i=s.tagByName[e];else{if("number"!=typeof e||(0|e)!==e)return r.error("Unknown tag: "+e);i=e}if(i>=31)return r.error("Multi-octet tag encoding unsupported");t||(i|=32);return i|=s.tagClassByName[n||"universal"]<<6}(e,t,n,this.reporter);if(r.length<128)return(a=new i(2))[0]=o,a[1]=r.length,this._createEncoderBuffer([a,r]);for(var c=1,u=r.length;u>=256;u>>=8)c++;(a=new i(2+c))[0]=o,a[1]=128|c;u=1+c;for(var l=r.length;l>0;u--,l>>=8)a[u]=255&l;return this._createEncoderBuffer([a,r])},u.prototype._encodeStr=function(e,t){if("bitstr"===t)return this._createEncoderBuffer([0|e.unused,e.data]);if("bmpstr"===t){for(var n=new i(2*e.length),r=0;r<e.length;r++)n.writeUInt16BE(e.charCodeAt(r),2*r);return this._createEncoderBuffer(n)}return"numstr"===t?this._isNumstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: numstr supports only digits and space"):"printstr"===t?this._isPrintstr(e)?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: printstr supports only latin upper and lower case letters, digits, space, apostrophe, left and rigth parenthesis, plus sign, comma, hyphen, dot, slash, colon, equal sign, question mark"):/str$/.test(t)?this._createEncoderBuffer(e):"objDesc"===t?this._createEncoderBuffer(e):this.reporter.error("Encoding of string type: "+t+" unsupported")},u.prototype._encodeObjid=function(e,t,n){if("string"==typeof e){if(!t)return this.reporter.error("string objid given, but no values map found");if(!t.hasOwnProperty(e))return this.reporter.error("objid not found in values map");e=t[e].split(/[\s\.]+/g);for(var r=0;r<e.length;r++)e[r]|=0}else if(Array.isArray(e)){e=e.slice();for(r=0;r<e.length;r++)e[r]|=0}if(!Array.isArray(e))return this.reporter.error("objid() should be either array or string, got: "+JSON.stringify(e));if(!n){if(e[1]>=40)return this.reporter.error("Second objid identifier OOB");e.splice(0,2,40*e[0]+e[1])}var a=0;for(r=0;r<e.length;r++){var o=e[r];for(a++;o>=128;o>>=7)a++}var s=new i(a),c=s.length-1;for(r=e.length-1;r>=0;r--){o=e[r];for(s[c--]=127&o;(o>>=7)>0;)s[c--]=128|127&o}return this._createEncoderBuffer(s)},u.prototype._encodeTime=function(e,t){var n,r=new Date(e);return"gentime"===t?n=[l(r.getFullYear()),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):"utctime"===t?n=[l(r.getFullYear()%100),l(r.getUTCMonth()+1),l(r.getUTCDate()),l(r.getUTCHours()),l(r.getUTCMinutes()),l(r.getUTCSeconds()),"Z"].join(""):this.reporter.error("Encoding "+t+" time is not supported yet"),this._encodeStr(n,"octstr")},u.prototype._encodeNull=function(){return this._createEncoderBuffer("")},u.prototype._encodeInt=function(e,t){if("string"==typeof e){if(!t)return this.reporter.error("String int or enum given, but no values map");if(!t.hasOwnProperty(e))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(e));e=t[e]}if("number"!=typeof e&&!i.isBuffer(e)){var n=e.toArray();!e.sign&&128&n[0]&&n.unshift(0),e=new i(n)}if(i.isBuffer(e)){var r=e.length;0===e.length&&r++;var a=new i(r);return e.copy(a),0===e.length&&(a[0]=0),this._createEncoderBuffer(a)}if(e<128)return this._createEncoderBuffer(e);if(e<256)return this._createEncoderBuffer([0,e]);r=1;for(var o=e;o>=256;o>>=8)r++;for(o=(a=new Array(r)).length-1;o>=0;o--)a[o]=255&e,e>>=8;return 128&a[0]&&a.unshift(0),this._createEncoderBuffer(new i(a))},u.prototype._encodeBool=function(e){return this._createEncoderBuffer(e?255:0)},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getEncoder("der").tree},u.prototype._skipDefault=function(e,t,n){var r,i=this._baseState;if(null===i.default)return!1;var a=e.join();if(void 0===i.defaultBuffer&&(i.defaultBuffer=this._encodeValue(i.default,t,n).join()),a.length!==i.defaultBuffer.length)return!1;for(r=0;r<a.length;r++)if(a[r]!==i.defaultBuffer[r])return!1;return!0}},function(e,t,n){"use strict";var r=n(1),i=n(60),a=i.base,o=i.bignum,s=i.constants.der;function c(e){this.enc="der",this.name=e.name,this.entity=e,this.tree=new u,this.tree._init(e.body)}function u(e){a.Node.call(this,"der",e)}function l(e,t){var n=e.readUInt8(t);if(e.isError(n))return n;var r=s.tagClass[n>>6],i=0==(32&n);if(31==(31&n)){var a=n;for(n=0;128==(128&a);){if(a=e.readUInt8(t),e.isError(a))return a;n<<=7,n|=127&a}}else n&=31;return{cls:r,primitive:i,tag:n,tagStr:s.tag[n]}}function f(e,t,n){var r=e.readUInt8(n);if(e.isError(r))return r;if(!t&&128===r)return null;if(0==(128&r))return r;var i=127&r;if(i>4)return e.error("length octect is too long");r=0;for(var a=0;a<i;a++){r<<=8;var o=e.readUInt8(n);if(e.isError(o))return o;r|=o}return r}e.exports=c,c.prototype.decode=function(e,t){return e instanceof a.DecoderBuffer||(e=new a.DecoderBuffer(e,t)),this.tree._decode(e,t)},r(u,a.Node),u.prototype._peekTag=function(e,t,n){if(e.isEmpty())return!1;var r=e.save(),i=l(e,'Failed to peek tag: "'+t+'"');return e.isError(i)?i:(e.restore(r),i.tag===t||i.tagStr===t||i.tagStr+"of"===t||n)},u.prototype._decodeTag=function(e,t,n){var r=l(e,'Failed to decode tag of "'+t+'"');if(e.isError(r))return r;var i=f(e,r.primitive,'Failed to get length of "'+t+'"');if(e.isError(i))return i;if(!n&&r.tag!==t&&r.tagStr!==t&&r.tagStr+"of"!==t)return e.error('Failed to match tag: "'+t+'"');if(r.primitive||null!==i)return e.skip(i,'Failed to match body of: "'+t+'"');var a=e.save(),o=this._skipUntilEnd(e,'Failed to skip indefinite length body: "'+this.tag+'"');return e.isError(o)?o:(i=e.offset-a.offset,e.restore(a),e.skip(i,'Failed to match body of: "'+t+'"'))},u.prototype._skipUntilEnd=function(e,t){for(;;){var n=l(e,t);if(e.isError(n))return n;var r,i=f(e,n.primitive,t);if(e.isError(i))return i;if(r=n.primitive||null!==i?e.skip(i):this._skipUntilEnd(e,t),e.isError(r))return r;if("end"===n.tagStr)break}},u.prototype._decodeList=function(e,t,n,r){for(var i=[];!e.isEmpty();){var a=this._peekTag(e,"end");if(e.isError(a))return a;var o=n.decode(e,"der",r);if(e.isError(o)&&a)break;i.push(o)}return i},u.prototype._decodeStr=function(e,t){if("bitstr"===t){var n=e.readUInt8();return e.isError(n)?n:{unused:n,data:e.raw()}}if("bmpstr"===t){var r=e.raw();if(r.length%2==1)return e.error("Decoding of string type: bmpstr length mismatch");for(var i="",a=0;a<r.length/2;a++)i+=String.fromCharCode(r.readUInt16BE(2*a));return i}if("numstr"===t){var o=e.raw().toString("ascii");return this._isNumstr(o)?o:e.error("Decoding of string type: numstr unsupported characters")}if("octstr"===t)return e.raw();if("objDesc"===t)return e.raw();if("printstr"===t){var s=e.raw().toString("ascii");return this._isPrintstr(s)?s:e.error("Decoding of string type: printstr unsupported characters")}return/str$/.test(t)?e.raw().toString():e.error("Decoding of string type: "+t+" unsupported")},u.prototype._decodeObjid=function(e,t,n){for(var r,i=[],a=0;!e.isEmpty();){var o=e.readUInt8();a<<=7,a|=127&o,0==(128&o)&&(i.push(a),a=0)}128&o&&i.push(a);var s=i[0]/40|0,c=i[0]%40;if(r=n?i:[s,c].concat(i.slice(1)),t){var u=t[r.join(" ")];void 0===u&&(u=t[r.join(".")]),void 0!==u&&(r=u)}return r},u.prototype._decodeTime=function(e,t){var n=e.raw().toString();if("gentime"===t)var r=0|n.slice(0,4),i=0|n.slice(4,6),a=0|n.slice(6,8),o=0|n.slice(8,10),s=0|n.slice(10,12),c=0|n.slice(12,14);else{if("utctime"!==t)return e.error("Decoding "+t+" time is not supported yet");r=0|n.slice(0,2),i=0|n.slice(2,4),a=0|n.slice(4,6),o=0|n.slice(6,8),s=0|n.slice(8,10),c=0|n.slice(10,12);r=r<70?2e3+r:1900+r}return Date.UTC(r,i-1,a,o,s,c,0)},u.prototype._decodeNull=function(e){return null},u.prototype._decodeBool=function(e){var t=e.readUInt8();return e.isError(t)?t:0!==t},u.prototype._decodeInt=function(e,t){var n=e.raw(),r=new o(n);return t&&(r=t[r.toString(10)]||r),r},u.prototype._use=function(e,t){return"function"==typeof e&&(e=e(t)),e._getDecoder("der").tree}},function(e,t,n){"use strict";var r=t;r._reverse=function(e){var t={};return Object.keys(e).forEach(function(n){(0|n)==n&&(n|=0);var r=e[n];t[r]=n}),t},r.der=n(342)},function(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})(e)}var i=n(1),a=n(59).Reporter,o=n(7).Buffer;function s(e,t){a.call(this,t),o.isBuffer(e)?(this.base=e,this.offset=0,this.length=e.length):this.error("Input not Buffer")}function c(e,t){if(Array.isArray(e))this.length=0,this.value=e.map(function(e){return e instanceof c||(e=new c(e,t)),this.length+=e.length,e},this);else if("number"==typeof e){if(!(0<=e&&e<=255))return t.error("non-byte EncoderBuffer value");this.value=e,this.length=1}else if("string"==typeof e)this.value=e,this.length=o.byteLength(e);else{if(!o.isBuffer(e))return t.error("Unsupported type: "+r(e));this.value=e,this.length=e.length}}i(s,a),t.DecoderBuffer=s,s.prototype.save=function(){return{offset:this.offset,reporter:a.prototype.save.call(this)}},s.prototype.restore=function(e){var t=new s(this.base);return t.offset=e.offset,t.length=this.offset,this.offset=e.offset,a.prototype.restore.call(this,e.reporter),t},s.prototype.isEmpty=function(){return this.offset===this.length},s.prototype.readUInt8=function(e){return this.offset+1<=this.length?this.base.readUInt8(this.offset++,!0):this.error(e||"DecoderBuffer overrun")},s.prototype.skip=function(e,t){if(!(this.offset+e<=this.length))return this.error(t||"DecoderBuffer overrun");var n=new s(this.base);return n._reporterState=this._reporterState,n.offset=this.offset,n.length=this.offset+e,this.offset+=e,n},s.prototype.raw=function(e){return this.base.slice(e?e.offset:this.offset,this.length)},t.EncoderBuffer=c,c.prototype.join=function(e,t){return e||(e=new o(this.length)),t||(t=0),0===this.length?e:(Array.isArray(this.value)?this.value.forEach(function(n){n.join(e,t),t+=n.length}):("number"==typeof this.value?e[t]=this.value:"string"==typeof this.value?e.write(this.value,t):o.isBuffer(this.value)&&this.value.copy(e,t),t+=this.length),e)}},function(e,t,n){"use strict";var r=n(28),i=n(61),a=n(20),o=r.rotr64_hi,s=r.rotr64_lo,c=r.shr64_hi,u=r.shr64_lo,l=r.sum64,f=r.sum64_hi,d=r.sum64_lo,h=r.sum64_4_hi,p=r.sum64_4_lo,g=r.sum64_5_hi,m=r.sum64_5_lo,b=i.BlockHash,v=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function y(){if(!(this instanceof y))return new y;b.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=v,this.W=new Array(160)}function _(e,t,n,r,i){var a=e&n^~e&i;return a<0&&(a+=4294967296),a}function w(e,t,n,r,i,a){var o=t&r^~t&a;return o<0&&(o+=4294967296),o}function S(e,t,n,r,i){var a=e&n^e&i^n&i;return a<0&&(a+=4294967296),a}function M(e,t,n,r,i,a){var o=t&r^t&a^r&a;return o<0&&(o+=4294967296),o}function E(e,t){var n=o(e,t,28)^o(t,e,2)^o(t,e,7);return n<0&&(n+=4294967296),n}function A(e,t){var n=s(e,t,28)^s(t,e,2)^s(t,e,7);return n<0&&(n+=4294967296),n}function I(e,t){var n=o(e,t,14)^o(e,t,18)^o(t,e,9);return n<0&&(n+=4294967296),n}function k(e,t){var n=s(e,t,14)^s(e,t,18)^s(t,e,9);return n<0&&(n+=4294967296),n}function O(e,t){var n=o(e,t,1)^o(e,t,8)^c(e,t,7);return n<0&&(n+=4294967296),n}function x(e,t){var n=s(e,t,1)^s(e,t,8)^u(e,t,7);return n<0&&(n+=4294967296),n}function P(e,t){var n=o(e,t,19)^o(t,e,29)^c(e,t,6);return n<0&&(n+=4294967296),n}function C(e,t){var n=s(e,t,19)^s(t,e,29)^u(e,t,6);return n<0&&(n+=4294967296),n}r.inherits(y,b),e.exports=y,y.blockSize=1024,y.outSize=512,y.hmacStrength=192,y.padLength=128,y.prototype._prepareBlock=function(e,t){for(var n=this.W,r=0;r<32;r++)n[r]=e[t+r];for(;r<n.length;r+=2){var i=P(n[r-4],n[r-3]),a=C(n[r-4],n[r-3]),o=n[r-14],s=n[r-13],c=O(n[r-30],n[r-29]),u=x(n[r-30],n[r-29]),l=n[r-32],f=n[r-31];n[r]=h(i,a,o,s,c,u,l,f),n[r+1]=p(i,a,o,s,c,u,l,f)}},y.prototype._update=function(e,t){this._prepareBlock(e,t);var n=this.W,r=this.h[0],i=this.h[1],o=this.h[2],s=this.h[3],c=this.h[4],u=this.h[5],h=this.h[6],p=this.h[7],b=this.h[8],v=this.h[9],y=this.h[10],O=this.h[11],x=this.h[12],P=this.h[13],C=this.h[14],j=this.h[15];a(this.k.length===n.length);for(var D=0;D<n.length;D+=2){var N=C,R=j,T=I(b,v),B=k(b,v),L=_(b,v,y,O,x),$=w(b,v,y,O,x,P),U=this.k[D],F=this.k[D+1],z=n[D],q=n[D+1],V=g(N,R,T,B,L,$,U,F,z,q),H=m(N,R,T,B,L,$,U,F,z,q);N=E(r,i),R=A(r,i),T=S(r,i,o,s,c),B=M(r,i,o,s,c,u);var G=f(N,R,T,B),K=d(N,R,T,B);C=x,j=P,x=y,P=O,y=b,O=v,b=f(h,p,V,H),v=d(p,p,V,H),h=c,p=u,c=o,u=s,o=r,s=i,r=f(V,H,G,K),i=d(V,H,G,K)}l(this.h,0,r,i),l(this.h,2,o,s),l(this.h,4,c,u),l(this.h,6,h,p),l(this.h,8,b,v),l(this.h,10,y,O),l(this.h,12,x,P),l(this.h,14,C,j)},y.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){"use strict";var r=n(28),i=n(61),a=n(139),o=n(20),s=r.sum32,c=r.sum32_4,u=r.sum32_5,l=a.ch32,f=a.maj32,d=a.s0_256,h=a.s1_256,p=a.g0_256,g=a.g1_256,m=i.BlockHash,b=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function v(){if(!(this instanceof v))return new v;m.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=b,this.W=new Array(64)}r.inherits(v,m),e.exports=v,v.blockSize=512,v.outSize=256,v.hmacStrength=192,v.padLength=64,v.prototype._update=function(e,t){for(var n=this.W,r=0;r<16;r++)n[r]=e[t+r];for(;r<n.length;r++)n[r]=c(g(n[r-2]),n[r-7],p(n[r-15]),n[r-16]);var i=this.h[0],a=this.h[1],m=this.h[2],b=this.h[3],v=this.h[4],y=this.h[5],_=this.h[6],w=this.h[7];for(o(this.k.length===n.length),r=0;r<n.length;r++){var S=u(w,h(v),l(v,y,_),this.k[r],n[r]),M=s(d(i),f(i,a,m));w=_,_=y,y=v,v=s(b,S),b=m,m=a,a=i,i=s(S,M)}this.h[0]=s(this.h[0],i),this.h[1]=s(this.h[1],a),this.h[2]=s(this.h[2],m),this.h[3]=s(this.h[3],b),this.h[4]=s(this.h[4],v),this.h[5]=s(this.h[5],y),this.h[6]=s(this.h[6],_),this.h[7]=s(this.h[7],w)},v.prototype._digest=function(e){return"hex"===e?r.toHex32(this.h,"big"):r.split32(this.h,"big")}},function(e,t,n){"use strict";var r=n(28).rotr32;function i(e,t,n){return e&t^~e&n}function a(e,t,n){return e&t^e&n^t&n}function o(e,t,n){return e^t^n}t.ft_1=function(e,t,n,r){return 0===e?i(t,n,r):1===e||3===e?o(t,n,r):2===e?a(t,n,r):void 0},t.ch32=i,t.maj32=a,t.p32=o,t.s0_256=function(e){return r(e,2)^r(e,13)^r(e,22)},t.s1_256=function(e){return r(e,6)^r(e,11)^r(e,25)},t.g0_256=function(e){return r(e,7)^r(e,18)^e>>>3},t.g1_256=function(e){return r(e,17)^r(e,19)^e>>>10}},function(e,t,n){"use strict";var r=t;function i(e){return 1===e.length?"0"+e:e}function a(e){for(var t="",n=0;n<e.length;n++)t+=i(e[n].toString(16));return t}r.toArray=function(e,t){if(Array.isArray(e))return e.slice();if(!e)return[];var n=[];if("string"!=typeof e){for(var r=0;r<e.length;r++)n[r]=0|e[r];return n}if("hex"===t)for((e=e.replace(/[^a-z0-9]+/gi,"")).length%2!=0&&(e="0"+e),r=0;r<e.length;r+=2)n.push(parseInt(e[r]+e[r+1],16));else for(r=0;r<e.length;r++){var i=e.charCodeAt(r),a=i>>8,o=255&i;a?n.push(a,o):n.push(o)}return n},r.zero2=i,r.toHex=a,r.encode=function(e,t){return"hex"===t?a(e):e}},function(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})(e)}var i;function a(e){this.rand=e}if(e.exports=function(e){return i||(i=new a(null)),i.generate(e)},e.exports.Rand=a,a.prototype.generate=function(e){return this._rand(e)},a.prototype._rand=function(e){if(this.rand.getBytes)return this.rand.getBytes(e);for(var t=new Uint8Array(e),n=0;n<t.length;n++)t[n]=this.rand.getByte();return t},"object"===("undefined"==typeof self?"undefined":r(self)))self.crypto&&self.crypto.getRandomValues?a.prototype._rand=function(e){var t=new Uint8Array(e);return self.crypto.getRandomValues(t),t}:self.msCrypto&&self.msCrypto.getRandomValues?a.prototype._rand=function(e){var t=new Uint8Array(e);return self.msCrypto.getRandomValues(t),t}:"object"===("undefined"==typeof window?"undefined":r(window))&&(a.prototype._rand=function(){throw new Error("Not implemented yet")});else try{var o=n(374);if("function"!=typeof o.randomBytes)throw new Error("Not supported");a.prototype._rand=function(e){return o.randomBytes(e)}}catch(e){}},function(e,t,n){"use strict";var r=n(12),i=n(141);function a(e){this.rand=e||new i.Rand}e.exports=a,a.create=function(e){return new a(e)},a.prototype._randbelow=function(e){var t=e.bitLength(),n=Math.ceil(t/8);do{var i=new r(this.rand.generate(n))}while(i.cmp(e)>=0);return i},a.prototype._randrange=function(e,t){var n=t.sub(e);return e.add(this._randbelow(n))},a.prototype.test=function(e,t,n){var i=e.bitLength(),a=r.mont(e),o=new r(1).toRed(a);t||(t=Math.max(1,i/48|0));for(var s=e.subn(1),c=0;!s.testn(c);c++);for(var u=e.shrn(c),l=s.toRed(a);t>0;t--){var f=this._randrange(new r(2),s);n&&n(f);var d=f.toRed(a).redPow(u);if(0!==d.cmp(o)&&0!==d.cmp(l)){for(var h=1;h<c;h++){if(0===(d=d.redSqr()).cmp(o))return!1;if(0===d.cmp(l))break}if(h===c)return!1}}return!0},a.prototype.getDivisor=function(e,t){var n=e.bitLength(),i=r.mont(e),a=new r(1).toRed(i);t||(t=Math.max(1,n/48|0));for(var o=e.subn(1),s=0;!o.testn(s);s++);for(var c=e.shrn(s),u=o.toRed(i);t>0;t--){var l=this._randrange(new r(2),o),f=e.gcd(l);if(0!==f.cmpn(1))return f;var d=l.toRed(i).redPow(c);if(0!==d.cmp(a)&&0!==d.cmp(u)){for(var h=1;h<s;h++){if(0===(d=d.redSqr()).cmp(a))return d.fromRed().subn(1).gcd(e);if(0===d.cmp(u))break}if(h===s)return(d=d.redSqr()).fromRed().subn(1).gcd(e)}}return!1}},function(e,t,n){"use strict";var r=n(54);e.exports=v,v.simpleSieve=m,v.fermatTest=b;var i=n(12),a=new i(24),o=new(n(142)),s=new i(1),c=new i(2),u=new i(5),l=(new i(16),new i(8),new i(10)),f=new i(3),d=(new i(7),new i(11)),h=new i(4),p=(new i(12),null);function g(){if(null!==p)return p;var e=[];e[0]=2;for(var t=1,n=3;n<1048576;n+=2){for(var r=Math.ceil(Math.sqrt(n)),i=0;i<t&&e[i]<=r&&n%e[i]!=0;i++);t!==i&&e[i]<=r||(e[t++]=n)}return p=e,e}function m(e){for(var t=g(),n=0;n<t.length;n++)if(0===e.modn(t[n]))return 0===e.cmpn(t[n]);return!0}function b(e){var t=i.mont(e);return 0===c.toRed(t).redPow(e.subn(1)).fromRed().cmpn(1)}function v(e,t){if(e<16)return new i(2===t||5===t?[140,123]:[140,39]);var n,p;for(t=new i(t);;){for(n=new i(r(Math.ceil(e/8)));n.bitLength()>e;)n.ishrn(1);if(n.isEven()&&n.iadd(s),n.testn(1)||n.iadd(c),t.cmp(c)){if(!t.cmp(u))for(;n.mod(l).cmp(f);)n.iadd(h)}else for(;n.mod(a).cmp(d);)n.iadd(h);if(m(p=n.shrn(1))&&m(n)&&b(p)&&b(n)&&o.test(p)&&o.test(n))return n}}},function(e,t,n){"use strict";var r=n(71),i=n(5).Buffer,a=n(38);function o(e,t,n,o){a.call(this),this._cipher=new r.AES(t),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._mode=e}n(1)(o,a),o.prototype._update=function(e){return this._mode.encrypt(this,e,this._decrypt)},o.prototype._final=function(){this._cipher.scrub()},e.exports=o},function(e,t,n){"use strict";var r=n(71),i=n(5).Buffer,a=n(38),o=n(1),s=n(385),c=n(62),u=n(147);function l(e,t,n,o){a.call(this);var c=i.alloc(4,0);this._cipher=new r.AES(t);var l=this._cipher.encryptBlock(c);this._ghash=new s(l),n=function(e,t,n){if(12===t.length)return e._finID=i.concat([t,i.from([0,0,0,1])]),i.concat([t,i.from([0,0,0,2])]);var r=new s(n),a=t.length,o=a%16;r.update(t),o&&(o=16-o,r.update(i.alloc(o,0))),r.update(i.alloc(8,0));var c=8*a,l=i.alloc(8);l.writeUIntBE(c,0,8),r.update(l),e._finID=r.state;var f=i.from(e._finID);return u(f),f}(this,n,l),this._prev=i.from(n),this._cache=i.allocUnsafe(0),this._secCache=i.allocUnsafe(0),this._decrypt=o,this._alen=0,this._len=0,this._mode=e,this._authTag=null,this._called=!1}o(l,a),l.prototype._update=function(e){if(!this._called&&this._alen){var t=16-this._alen%16;t<16&&(t=i.alloc(t,0),this._ghash.update(t))}this._called=!0;var n=this._mode.encrypt(this,e);return this._decrypt?this._ghash.update(e):this._ghash.update(n),this._len+=e.length,n},l.prototype._final=function(){if(this._decrypt&&!this._authTag)throw new Error("Unsupported state or unable to authenticate data");var e=c(this._ghash.final(8*this._alen,8*this._len),this._cipher.encryptBlock(this._finID));if(this._decrypt&&function(e,t){var n=0;e.length!==t.length&&n++;for(var r=Math.min(e.length,t.length),i=0;i<r;++i)n+=e[i]^t[i];return n}(e,this._authTag))throw new Error("Unsupported state or unable to authenticate data");this._authTag=e,this._cipher.scrub()},l.prototype.getAuthTag=function(){if(this._decrypt||!i.isBuffer(this._authTag))throw new Error("Attempting to get auth tag in unsupported state");return this._authTag},l.prototype.setAuthTag=function(e){if(!this._decrypt)throw new Error("Attempting to set auth tag in unsupported state");this._authTag=e},l.prototype.setAAD=function(e){if(this._called)throw new Error("Attempting to set AAD in unsupported state");this._ghash.update(e),this._alen+=e.length},e.exports=l},function(e){e.exports={"aes-128-ecb":{cipher:"AES",key:128,iv:0,mode:"ECB",type:"block"},"aes-192-ecb":{cipher:"AES",key:192,iv:0,mode:"ECB",type:"block"},"aes-256-ecb":{cipher:"AES",key:256,iv:0,mode:"ECB",type:"block"},"aes-128-cbc":{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},"aes-192-cbc":{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},"aes-256-cbc":{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},aes128:{cipher:"AES",key:128,iv:16,mode:"CBC",type:"block"},aes192:{cipher:"AES",key:192,iv:16,mode:"CBC",type:"block"},aes256:{cipher:"AES",key:256,iv:16,mode:"CBC",type:"block"},"aes-128-cfb":{cipher:"AES",key:128,iv:16,mode:"CFB",type:"stream"},"aes-192-cfb":{cipher:"AES",key:192,iv:16,mode:"CFB",type:"stream"},"aes-256-cfb":{cipher:"AES",key:256,iv:16,mode:"CFB",type:"stream"},"aes-128-cfb8":{cipher:"AES",key:128,iv:16,mode:"CFB8",type:"stream"},"aes-192-cfb8":{cipher:"AES",key:192,iv:16,mode:"CFB8",type:"stream"},"aes-256-cfb8":{cipher:"AES",key:256,iv:16,mode:"CFB8",type:"stream"},"aes-128-cfb1":{cipher:"AES",key:128,iv:16,mode:"CFB1",type:"stream"},"aes-192-cfb1":{cipher:"AES",key:192,iv:16,mode:"CFB1",type:"stream"},"aes-256-cfb1":{cipher:"AES",key:256,iv:16,mode:"CFB1",type:"stream"},"aes-128-ofb":{cipher:"AES",key:128,iv:16,mode:"OFB",type:"stream"},"aes-192-ofb":{cipher:"AES",key:192,iv:16,mode:"OFB",type:"stream"},"aes-256-ofb":{cipher:"AES",key:256,iv:16,mode:"OFB",type:"stream"},"aes-128-ctr":{cipher:"AES",key:128,iv:16,mode:"CTR",type:"stream"},"aes-192-ctr":{cipher:"AES",key:192,iv:16,mode:"CTR",type:"stream"},"aes-256-ctr":{cipher:"AES",key:256,iv:16,mode:"CTR",type:"stream"},"aes-128-gcm":{cipher:"AES",key:128,iv:12,mode:"GCM",type:"auth"},"aes-192-gcm":{cipher:"AES",key:192,iv:12,mode:"GCM",type:"auth"},"aes-256-gcm":{cipher:"AES",key:256,iv:12,mode:"GCM",type:"auth"}}},function(e,t,n){"use strict";e.exports=function(e){for(var t,n=e.length;n--;){if(255!==(t=e.readUInt8(n))){t++,e.writeUInt8(t,n);break}e.writeUInt8(0,n)}}},function(e,t,n){"use strict";var r=n(62),i=n(5).Buffer,a=n(147);function o(e){var t=e._cipher.encryptBlockRaw(e._prev);return a(e._prev),t}t.encrypt=function(e,t){var n=Math.ceil(t.length/16),a=e._cache.length;e._cache=i.concat([e._cache,i.allocUnsafe(16*n)]);for(var s=0;s<n;s++){var c=o(e),u=a+16*s;e._cache.writeUInt32BE(c[0],u+0),e._cache.writeUInt32BE(c[1],u+4),e._cache.writeUInt32BE(c[2],u+8),e._cache.writeUInt32BE(c[3],u+12)}var l=e._cache.slice(0,t.length);return e._cache=e._cache.slice(t.length),r(t,l)}},function(e,t,n){"use strict";var r=n(100),i=n(99),a=n(94),o=n(151),s=n(150),c=n(5).Buffer,u=c.alloc(128),l={md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,rmd160:20,ripemd160:20};function f(e,t,n){var o=function(e){return"rmd160"===e||"ripemd160"===e?i:"md5"===e?r:function(t){return a(e).update(t).digest()}}(e),s="sha512"===e||"sha384"===e?128:64;t.length>s?t=o(t):t.length<s&&(t=c.concat([t,u],s));for(var f=c.allocUnsafe(s+l[e]),d=c.allocUnsafe(s+l[e]),h=0;h<s;h++)f[h]=54^t[h],d[h]=92^t[h];var p=c.allocUnsafe(s+n+4);f.copy(p,0,0,s),this.ipad1=p,this.ipad2=f,this.opad=d,this.alg=e,this.blocksize=s,this.hash=o,this.size=l[e]}f.prototype.run=function(e,t){return e.copy(t,this.blocksize),this.hash(t).copy(this.opad,this.blocksize),this.hash(this.opad)},e.exports=function(e,t,n,r,i){c.isBuffer(e)||(e=c.from(e,s)),c.isBuffer(t)||(t=c.from(t,s)),o(n,r);var a=new f(i=i||"sha1",e,t.length),u=c.allocUnsafe(r),d=c.allocUnsafe(t.length+4);t.copy(d,0,0,t.length);for(var h=0,p=l[i],g=Math.ceil(r/p),m=1;m<=g;m++){d.writeUInt32BE(m,t.length);for(var b=a.run(d,a.ipad1),v=b,y=1;y<n;y++){v=a.run(v,a.ipad2);for(var _=0;_<p;_++)b[_]^=v[_]}b.copy(u,h),h+=p}return u}},function(e,t,n){"use strict";(function(t){var n;t.browser?n="utf-8":n=parseInt(t.version.split(".")[0].slice(1),10)>=6?"utf-8":"binary";e.exports=n}).call(this,n(35))},function(e,t,n){"use strict";var r=Math.pow(2,30)-1;e.exports=function(e,t){if("number"!=typeof e)throw new TypeError("Iterations not a number");if(e<0)throw new TypeError("Bad iterations");if("number"!=typeof t)throw new TypeError("Key length not a number");if(t<0||t>r||t!=t)throw new TypeError("Bad key length")}},function(e,t,n){"use strict";t.pbkdf2=n(396),t.pbkdf2Sync=n(149)},function(e){e.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}},function(e,t,n){"use strict";var r=n(1),i=n(398),a=n(38),o=n(5).Buffer,s=n(100),c=n(99),u=n(94),l=o.alloc(128);function f(e,t){a.call(this,"digest"),"string"==typeof t&&(t=o.from(t));var n="sha512"===e||"sha384"===e?128:64;(this._alg=e,this._key=t,t.length>n)?t=("rmd160"===e?new c:u(e)).update(t).digest():t.length<n&&(t=o.concat([t,l],n));for(var r=this._ipad=o.allocUnsafe(n),i=this._opad=o.allocUnsafe(n),s=0;s<n;s++)r[s]=54^t[s],i[s]=92^t[s];this._hash="rmd160"===e?new c:u(e),this._hash.update(r)}r(f,a),f.prototype._update=function(e){this._hash.update(e)},f.prototype._final=function(){var e=this._hash.digest();return("rmd160"===this._alg?new c:u(this._alg)).update(this._opad).update(e).digest()},e.exports=function(e,t){return"rmd160"===(e=e.toLowerCase())||"ripemd160"===e?new f("rmd160",t):"md5"===e?new i(s,t):new f(e,t)}},function(e,t,n){"use strict";var r=n(1),i=n(53),a=n(5).Buffer,o=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591],s=new Array(160);function c(){this.init(),this._w=s,i.call(this,128,112)}function u(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e,t){return(e>>>28|t<<4)^(t>>>2|e<<30)^(t>>>7|e<<25)}function d(e,t){return(e>>>14|t<<18)^(e>>>18|t<<14)^(t>>>9|e<<23)}function h(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^e>>>7}function p(e,t){return(e>>>1|t<<31)^(e>>>8|t<<24)^(e>>>7|t<<25)}function g(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^e>>>6}function m(e,t){return(e>>>19|t<<13)^(t>>>29|e<<3)^(e>>>6|t<<26)}function b(e,t){return e>>>0<t>>>0?1:0}r(c,i),c.prototype.init=function(){return this._ah=1779033703,this._bh=3144134277,this._ch=1013904242,this._dh=2773480762,this._eh=1359893119,this._fh=2600822924,this._gh=528734635,this._hh=1541459225,this._al=4089235720,this._bl=2227873595,this._cl=4271175723,this._dl=1595750129,this._el=2917565137,this._fl=725511199,this._gl=4215389547,this._hl=327033209,this},c.prototype._update=function(e){for(var t=this._w,n=0|this._ah,r=0|this._bh,i=0|this._ch,a=0|this._dh,s=0|this._eh,c=0|this._fh,v=0|this._gh,y=0|this._hh,_=0|this._al,w=0|this._bl,S=0|this._cl,M=0|this._dl,E=0|this._el,A=0|this._fl,I=0|this._gl,k=0|this._hl,O=0;O<32;O+=2)t[O]=e.readInt32BE(4*O),t[O+1]=e.readInt32BE(4*O+4);for(;O<160;O+=2){var x=t[O-30],P=t[O-30+1],C=h(x,P),j=p(P,x),D=g(x=t[O-4],P=t[O-4+1]),N=m(P,x),R=t[O-14],T=t[O-14+1],B=t[O-32],L=t[O-32+1],$=j+T|0,U=C+R+b($,j)|0;U=(U=U+D+b($=$+N|0,N)|0)+B+b($=$+L|0,L)|0,t[O]=U,t[O+1]=$}for(var F=0;F<160;F+=2){U=t[F],$=t[F+1];var z=l(n,r,i),q=l(_,w,S),V=f(n,_),H=f(_,n),G=d(s,E),K=d(E,s),W=o[F],Y=o[F+1],J=u(s,c,v),X=u(E,A,I),Z=k+K|0,Q=y+G+b(Z,k)|0;Q=(Q=(Q=Q+J+b(Z=Z+X|0,X)|0)+W+b(Z=Z+Y|0,Y)|0)+U+b(Z=Z+$|0,$)|0;var ee=H+q|0,te=V+z+b(ee,H)|0;y=v,k=I,v=c,I=A,c=s,A=E,s=a+Q+b(E=M+Z|0,M)|0,a=i,M=S,i=r,S=w,r=n,w=_,n=Q+te+b(_=Z+ee|0,Z)|0}this._al=this._al+_|0,this._bl=this._bl+w|0,this._cl=this._cl+S|0,this._dl=this._dl+M|0,this._el=this._el+E|0,this._fl=this._fl+A|0,this._gl=this._gl+I|0,this._hl=this._hl+k|0,this._ah=this._ah+n+b(this._al,_)|0,this._bh=this._bh+r+b(this._bl,w)|0,this._ch=this._ch+i+b(this._cl,S)|0,this._dh=this._dh+a+b(this._dl,M)|0,this._eh=this._eh+s+b(this._el,E)|0,this._fh=this._fh+c+b(this._fl,A)|0,this._gh=this._gh+v+b(this._gl,I)|0,this._hh=this._hh+y+b(this._hl,k)|0},c.prototype._hash=function(){var e=a.allocUnsafe(64);function t(t,n,r){e.writeInt32BE(t,r),e.writeInt32BE(n,r+4)}return t(this._ah,this._al,0),t(this._bh,this._bl,8),t(this._ch,this._cl,16),t(this._dh,this._dl,24),t(this._eh,this._el,32),t(this._fh,this._fl,40),t(this._gh,this._gl,48),t(this._hh,this._hl,56),e},e.exports=c},function(e,t,n){"use strict";var r=n(1),i=n(53),a=n(5).Buffer,o=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],s=new Array(64);function c(){this.init(),this._w=s,i.call(this,64,56)}function u(e,t,n){return n^e&(t^n)}function l(e,t,n){return e&t|n&(e|t)}function f(e){return(e>>>2|e<<30)^(e>>>13|e<<19)^(e>>>22|e<<10)}function d(e){return(e>>>6|e<<26)^(e>>>11|e<<21)^(e>>>25|e<<7)}function h(e){return(e>>>7|e<<25)^(e>>>18|e<<14)^e>>>3}r(c,i),c.prototype.init=function(){return this._a=1779033703,this._b=3144134277,this._c=1013904242,this._d=2773480762,this._e=1359893119,this._f=2600822924,this._g=528734635,this._h=1541459225,this},c.prototype._update=function(e){for(var t,n=this._w,r=0|this._a,i=0|this._b,a=0|this._c,s=0|this._d,c=0|this._e,p=0|this._f,g=0|this._g,m=0|this._h,b=0;b<16;++b)n[b]=e.readInt32BE(4*b);for(;b<64;++b)n[b]=0|(((t=n[b-2])>>>17|t<<15)^(t>>>19|t<<13)^t>>>10)+n[b-7]+h(n[b-15])+n[b-16];for(var v=0;v<64;++v){var y=m+d(c)+u(c,p,g)+o[v]+n[v]|0,_=f(r)+l(r,i,a)|0;m=g,g=p,p=c,c=s+y|0,s=a,a=i,i=r,r=y+_|0}this._a=r+this._a|0,this._b=i+this._b|0,this._c=a+this._c|0,this._d=s+this._d|0,this._e=c+this._e|0,this._f=p+this._f|0,this._g=g+this._g|0,this._h=m+this._h|0},c.prototype._hash=function(){var e=a.allocUnsafe(32);return e.writeInt32BE(this._a,0),e.writeInt32BE(this._b,4),e.writeInt32BE(this._c,8),e.writeInt32BE(this._d,12),e.writeInt32BE(this._e,16),e.writeInt32BE(this._f,20),e.writeInt32BE(this._g,24),e.writeInt32BE(this._h,28),e},e.exports=c},function(e,t,n){"use strict";e.exports=a;var r=n(41),i=n(63);function a(e){if(!(this instanceof a))return new a(e);r.call(this,e),this._transformState={afterTransform:function(e,t){var n=this._transformState;n.transforming=!1;var r=n.writecb;if(!r)return this.emit("error",new Error("write callback called multiple times"));n.writechunk=null,n.writecb=null,null!=t&&this.push(t),r(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}.bind(this),needTransform:!1,transforming:!1,writecb:null,writechunk:null,writeencoding:null},this._readableState.needReadable=!0,this._readableState.sync=!1,e&&("function"==typeof e.transform&&(this._transform=e.transform),"function"==typeof e.flush&&(this._flush=e.flush)),this.on("prefinish",o)}function o(){var e=this;"function"==typeof this._flush?this._flush(function(t,n){s(e,t,n)}):s(this,null,null)}function s(e,t,n){if(t)return e.emit("error",t);if(null!=n&&e.push(n),e._writableState.length)throw new Error("Calling transform done when ws.length != 0");if(e._transformState.transforming)throw new Error("Calling transform done when still transforming");return e.push(null)}i.inherits=n(1),i.inherits(a,r),a.prototype.push=function(e,t){return this._transformState.needTransform=!1,r.prototype.push.call(this,e,t)},a.prototype._transform=function(e,t,n){throw new Error("_transform() is not implemented")},a.prototype._write=function(e,t,n){var r=this._transformState;if(r.writecb=n,r.writechunk=e,r.writeencoding=t,!r.transforming){var i=this._readableState;(r.needTransform||i.needReadable||i.length<i.highWaterMark)&&this._read(i.highWaterMark)}},a.prototype._read=function(e){var t=this._transformState;null!==t.writechunk&&t.writecb&&!t.transforming?(t.transforming=!0,this._transform(t.writechunk,t.writeencoding,t.afterTransform)):t.needTransform=!0},a.prototype._destroy=function(e,t){var n=this;r.prototype._destroy.call(this,e,function(e){t(e),n.emit("close")})}},function(e,t,n){"use strict";var r=n(73);function i(e,t){e.emit("error",t)}e.exports={destroy:function(e,t){var n=this,a=this._readableState&&this._readableState.destroyed,o=this._writableState&&this._writableState.destroyed;return a||o?(t?t(e):!e||this._writableState&&this._writableState.errorEmitted||r.nextTick(i,this,e),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(e){!t&&e?(r.nextTick(i,n,e),n._writableState&&(n._writableState.errorEmitted=!0)):t&&t(e)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}}},function(e,t,n){"use strict";e.exports=n(98).EventEmitter},function(e,t,n){"use strict";(function(t,r){var i=n(73);e.exports=y;var a,o=n(161);y.ReadableState=v;n(98).EventEmitter;var s=function(e,t){return e.listeners(t).length},c=n(159),u=n(5).Buffer,l=t.Uint8Array||function(){};var f=n(63);f.inherits=n(1);var d=n(413),h=void 0;h=d&&d.debuglog?d.debuglog("stream"):function(){};var p,g=n(412),m=n(158);f.inherits(y,c);var b=["error","close","destroy","pause","resume"];function v(e,t){a=a||n(41),e=e||{};var r=t instanceof a;this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode);var i=e.highWaterMark,o=e.readableHighWaterMark,s=this.objectMode?16:16384;this.highWaterMark=i||0===i?i:r&&(o||0===o)?o:s,this.highWaterMark=Math.floor(this.highWaterMark),this.buffer=new g,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(p||(p=n(95).StringDecoder),this.decoder=new p(e.encoding),this.encoding=e.encoding)}function y(e){if(a=a||n(41),!(this instanceof y))return new y(e);this._readableState=new v(e,this),this.readable=!0,e&&("function"==typeof e.read&&(this._read=e.read),"function"==typeof e.destroy&&(this._destroy=e.destroy)),c.call(this)}function _(e,t,n,r,i){var a,o=e._readableState;null===t?(o.reading=!1,function(e,t){if(t.ended)return;if(t.decoder){var n=t.decoder.end();n&&n.length&&(t.buffer.push(n),t.length+=t.objectMode?1:n.length)}t.ended=!0,E(e)}(e,o)):(i||(a=function(e,t){var n;r=t,u.isBuffer(r)||r instanceof l||"string"==typeof t||void 0===t||e.objectMode||(n=new TypeError("Invalid non-string/buffer chunk"));var r;return n}(o,t)),a?e.emit("error",a):o.objectMode||t&&t.length>0?("string"==typeof t||o.objectMode||Object.getPrototypeOf(t)===u.prototype||(t=function(e){return u.from(e)}(t)),r?o.endEmitted?e.emit("error",new Error("stream.unshift() after end event")):w(e,o,t,!0):o.ended?e.emit("error",new Error("stream.push() after EOF")):(o.reading=!1,o.decoder&&!n?(t=o.decoder.write(t),o.objectMode||0!==t.length?w(e,o,t,!1):I(e,o)):w(e,o,t,!1))):r||(o.reading=!1));return function(e){return!e.ended&&(e.needReadable||e.length<e.highWaterMark||0===e.length)}(o)}function w(e,t,n,r){t.flowing&&0===t.length&&!t.sync?(e.emit("data",n),e.read(0)):(t.length+=t.objectMode?1:n.length,r?t.buffer.unshift(n):t.buffer.push(n),t.needReadable&&E(e)),I(e,t)}Object.defineProperty(y.prototype,"destroyed",{get:function(){return void 0!==this._readableState&&this._readableState.destroyed},set:function(e){this._readableState&&(this._readableState.destroyed=e)}}),y.prototype.destroy=m.destroy,y.prototype._undestroy=m.undestroy,y.prototype._destroy=function(e,t){this.push(null),t(e)},y.prototype.push=function(e,t){var n,r=this._readableState;return r.objectMode?n=!0:"string"==typeof e&&((t=t||r.defaultEncoding)!==r.encoding&&(e=u.from(e,t),t=""),n=!0),_(this,e,t,!1,n)},y.prototype.unshift=function(e){return _(this,e,null,!0,!1)},y.prototype.isPaused=function(){return!1===this._readableState.flowing},y.prototype.setEncoding=function(e){return p||(p=n(95).StringDecoder),this._readableState.decoder=new p(e),this._readableState.encoding=e,this};var S=8388608;function M(e,t){return e<=0||0===t.length&&t.ended?0:t.objectMode?1:e!=e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=function(e){return e>=S?e=S:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}function E(e){var t=e._readableState;t.needReadable=!1,t.emittedReadable||(h("emitReadable",t.flowing),t.emittedReadable=!0,t.sync?i.nextTick(A,e):A(e))}function A(e){h("emit readable"),e.emit("readable"),P(e)}function I(e,t){t.readingMore||(t.readingMore=!0,i.nextTick(k,e,t))}function k(e,t){for(var n=t.length;!t.reading&&!t.flowing&&!t.ended&&t.length<t.highWaterMark&&(h("maybeReadMore read 0"),e.read(0),n!==t.length);)n=t.length;t.readingMore=!1}function O(e){h("readable nexttick read 0"),e.read(0)}function x(e,t){t.reading||(h("resume read 0"),e.read(0)),t.resumeScheduled=!1,t.awaitDrain=0,e.emit("resume"),P(e),t.flowing&&!t.reading&&e.read(0)}function P(e){var t=e._readableState;for(h("flow",t.flowing);t.flowing&&null!==e.read(););}function C(e,t){return 0===t.length?null:(t.objectMode?n=t.buffer.shift():!e||e>=t.length?(n=t.decoder?t.buffer.join(""):1===t.buffer.length?t.buffer.head.data:t.buffer.concat(t.length),t.buffer.clear()):n=function(e,t,n){var r;e<t.head.data.length?(r=t.head.data.slice(0,e),t.head.data=t.head.data.slice(e)):r=e===t.head.data.length?t.shift():n?function(e,t){var n=t.head,r=1,i=n.data;e-=i.length;for(;n=n.next;){var a=n.data,o=e>a.length?a.length:e;if(o===a.length?i+=a:i+=a.slice(0,e),0===(e-=o)){o===a.length?(++r,n.next?t.head=n.next:t.head=t.tail=null):(t.head=n,n.data=a.slice(o));break}++r}return t.length-=r,i}(e,t):function(e,t){var n=u.allocUnsafe(e),r=t.head,i=1;r.data.copy(n),e-=r.data.length;for(;r=r.next;){var a=r.data,o=e>a.length?a.length:e;if(a.copy(n,n.length-e,0,o),0===(e-=o)){o===a.length?(++i,r.next?t.head=r.next:t.head=t.tail=null):(t.head=r,r.data=a.slice(o));break}++i}return t.length-=i,n}(e,t);return r}(e,t.buffer,t.decoder),n);var n}function j(e){var t=e._readableState;if(t.length>0)throw new Error('"endReadable()" called on non-empty stream');t.endEmitted||(t.ended=!0,i.nextTick(D,t,e))}function D(e,t){e.endEmitted||0!==e.length||(e.endEmitted=!0,t.readable=!1,t.emit("end"))}function N(e,t){for(var n=0,r=e.length;n<r;n++)if(e[n]===t)return n;return-1}y.prototype.read=function(e){h("read",e),e=parseInt(e,10);var t=this._readableState,n=e;if(0!==e&&(t.emittedReadable=!1),0===e&&t.needReadable&&(t.length>=t.highWaterMark||t.ended))return h("read: emitReadable",t.length,t.ended),0===t.length&&t.ended?j(this):E(this),null;if(0===(e=M(e,t))&&t.ended)return 0===t.length&&j(this),null;var r,i=t.needReadable;return h("need readable",i),(0===t.length||t.length-e<t.highWaterMark)&&h("length less than watermark",i=!0),t.ended||t.reading?h("reading or ended",i=!1):i&&(h("do read"),t.reading=!0,t.sync=!0,0===t.length&&(t.needReadable=!0),this._read(t.highWaterMark),t.sync=!1,t.reading||(e=M(n,t))),null===(r=e>0?C(e,t):null)?(t.needReadable=!0,e=0):t.length-=e,0===t.length&&(t.ended||(t.needReadable=!0),n!==e&&t.ended&&j(this)),null!==r&&this.emit("data",r),r},y.prototype._read=function(e){this.emit("error",new Error("_read() is not implemented"))},y.prototype.pipe=function(e,t){var n=this,a=this._readableState;switch(a.pipesCount){case 0:a.pipes=e;break;case 1:a.pipes=[a.pipes,e];break;default:a.pipes.push(e)}a.pipesCount+=1,h("pipe count=%d opts=%j",a.pipesCount,t);var c=(!t||!1!==t.end)&&e!==r.stdout&&e!==r.stderr?l:y;function u(t,r){h("onunpipe"),t===n&&r&&!1===r.hasUnpiped&&(r.hasUnpiped=!0,h("cleanup"),e.removeListener("close",b),e.removeListener("finish",v),e.removeListener("drain",f),e.removeListener("error",m),e.removeListener("unpipe",u),n.removeListener("end",l),n.removeListener("end",y),n.removeListener("data",g),d=!0,!a.awaitDrain||e._writableState&&!e._writableState.needDrain||f())}function l(){h("onend"),e.end()}a.endEmitted?i.nextTick(c):n.once("end",c),e.on("unpipe",u);var f=function(e){return function(){var t=e._readableState;h("pipeOnDrain",t.awaitDrain),t.awaitDrain&&t.awaitDrain--,0===t.awaitDrain&&s(e,"data")&&(t.flowing=!0,P(e))}}(n);e.on("drain",f);var d=!1;var p=!1;function g(t){h("ondata"),p=!1,!1!==e.write(t)||p||((1===a.pipesCount&&a.pipes===e||a.pipesCount>1&&-1!==N(a.pipes,e))&&!d&&(h("false write response, pause",n._readableState.awaitDrain),n._readableState.awaitDrain++,p=!0),n.pause())}function m(t){h("onerror",t),y(),e.removeListener("error",m),0===s(e,"error")&&e.emit("error",t)}function b(){e.removeListener("finish",v),y()}function v(){h("onfinish"),e.removeListener("close",b),y()}function y(){h("unpipe"),n.unpipe(e)}return n.on("data",g),function(e,t,n){if("function"==typeof e.prependListener)return e.prependListener(t,n);e._events&&e._events[t]?o(e._events[t])?e._events[t].unshift(n):e._events[t]=[n,e._events[t]]:e.on(t,n)}(e,"error",m),e.once("close",b),e.once("finish",v),e.emit("pipe",n),a.flowing||(h("pipe resume"),n.resume()),e},y.prototype.unpipe=function(e){var t=this._readableState,n={hasUnpiped:!1};if(0===t.pipesCount)return this;if(1===t.pipesCount)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,n),this);if(!e){var r=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a<i;a++)r[a].emit("unpipe",this,n);return this}var o=N(t.pipes,e);return-1===o?this:(t.pipes.splice(o,1),t.pipesCount-=1,1===t.pipesCount&&(t.pipes=t.pipes[0]),e.emit("unpipe",this,n),this)},y.prototype.on=function(e,t){var n=c.prototype.on.call(this,e,t);if("data"===e)!1!==this._readableState.flowing&&this.resume();else if("readable"===e){var r=this._readableState;r.endEmitted||r.readableListening||(r.readableListening=r.needReadable=!0,r.emittedReadable=!1,r.reading?r.length&&E(this):i.nextTick(O,this))}return n},y.prototype.addListener=y.prototype.on,y.prototype.resume=function(){var e=this._readableState;return e.flowing||(h("resume"),e.flowing=!0,function(e,t){t.resumeScheduled||(t.resumeScheduled=!0,i.nextTick(x,e,t))}(this,e)),this},y.prototype.pause=function(){return h("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(h("pause"),this._readableState.flowing=!1,this.emit("pause")),this},y.prototype.wrap=function(e){var t=this,n=this._readableState,r=!1;for(var i in e.on("end",function(){if(h("wrapped end"),n.decoder&&!n.ended){var e=n.decoder.end();e&&e.length&&t.push(e)}t.push(null)}),e.on("data",function(i){(h("wrapped data"),n.decoder&&(i=n.decoder.write(i)),!n.objectMode||null!==i&&void 0!==i)&&((n.objectMode||i&&i.length)&&(t.push(i)||(r=!0,e.pause())))}),e)void 0===this[i]&&"function"==typeof e[i]&&(this[i]=function(t){return function(){return e[t].apply(e,arguments)}}(i));for(var a=0;a<b.length;a++)e.on(b[a],this.emit.bind(this,b[a]));return this._read=function(t){h("wrapped _read",t),r&&(r=!1,e.resume())},this},y._fromList=C}).call(this,n(24),n(35))},function(e,t,n){"use strict";var r={}.toString;e.exports=Array.isArray||function(e){return"[object Array]"==r.call(e)}},function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(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 a(e,t,n){return t&&i(e.prototype,t),n&&i(e,n),e}var o,s=n(420);if("undefined"==typeof window){var c=n(128);o=c.TextDecoder}else o=window.TextDecoder;var u=function(e){return btoa(JSON.stringify(e))},l=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};r(this,e),this._onSuccess=t.onSuccess||function(){},this._sendRequest=t.sendRequest||h,this.storage=t.storage||new f(new d),this._visitPage=t.visitPage||function(e){window.open(e.Info.VisitURL,"Login")},this._dischargeDisabled=!1}return a(e,[{key:"sendRequest",value:function(e,t,n,r,i){t=t.toLowerCase();var a=this._wrapCallback(e,t,n,r,i),o={"Bakery-Protocol-Version":1},s=this.storage.get(e);s&&(o.Macaroons=s),Object.keys(n||{}).forEach(function(e){var t=n[e];o[e]=t});var c=!1;return"put"===t&&-1!==e.indexOf("/set-auth-cookie")&&(c=!0),this._sendRequest(e,t,o,r,c,a)}},{key:"get",value:function(e,t,n){return this.sendRequest(e,"get",t,null,n)}},{key:"delete",value:function(e,t,n,r){return this.sendRequest(e,"delete",t,n,r)}},{key:"post",value:function(e,t,n,r){return this.sendRequest(e,"post",t,n,r)}},{key:"put",value:function(e,t,n,r){return this.sendRequest(e,"put",t,n,r)}},{key:"patch",value:function(e,t,n,r){return this.sendRequest(e,"patch",t,n,r)}},{key:"discharge",value:function(e,t,n){try{s.dischargeMacaroon(s.importMacaroons(e)[0],this._getThirdPartyDischarge.bind(this),function(e){t(e.map(function(e){return e._exportAsJSONObjectV1()}))},n)}catch(e){n("discharge failed: ".concat(e.message))}}},{key:"_wrapCallback",value:function(e,t,n,r,i){var a=this;return function(o){var s=function(e){i(null,e),a._onSuccess()},c=a._getError(o.target);if(c){var l,f=function(e){i(e,null)};switch(c.Code){case"interaction required":l=function(t){var n=JSON.parse(t.target.responseText),r=u(n.Macaroon);a.storage.set(e,r,function(){if(n.DischargeToken){var r=u(n.DischargeToken);a.storage.set(e,r,function(){a.storage.set("identity",r,function(){s(t)})})}else s(t)})},a._interact(c,l,f);break;case"macaroon discharge required":if(a._dischargeDisabled)return void i("discharge required but disabled",o);l=function(o){a.storage.set(e,u(o),function(){a.sendRequest(e,t,n,r,i)})},a.discharge(c.Info.Macaroon,l,f);break;default:i(a._getErrorMessage(c),null)}}else s(o)}}},{key:"_getThirdPartyDischarge",value:function(e,t,n,r,i){var a=t+"/discharge",c={"Content-Type":"application/x-www-form-urlencoded"},u=new o("utf-8").decode(n),l=encodeURIComponent(u),f=encodeURIComponent(e),d="id=".concat(l,"&location=").concat(f);this.post(a,c,d,function(e,t){if(e)i(e);else{var n=JSON.parse(t.target.responseText),a=s.importMacaroons(n.Macaroon)[0];r(a)}})}},{key:"_interact",value:function(e,t,n){var r=this;this._visitPage(e);var i=function(t){var n={"Content-Type":"application/json"};return r._sendRequest(e.Info.WaitURL,"get",n,void 0,!1,t)},a=0;i(function e(o){var s=o.target;if(0===s.status&&""===s.response&&""===s.responseText&&a<5)return a+=1,void i(e);var c=r._getError(s);c?n("cannot interact: "+r._getErrorMessage(c)):t(o)})}},{key:"_getError",value:function(e){if(401!==e.status&&407!==e.status)return null;if("application/json"!==e.getResponseHeader("Content-Type"))return null;var t;try{t=JSON.parse(e.responseText)}catch(e){return"cannot parse error response"}return t}},{key:"_getErrorMessage",value:function(e){return e.Message||e.message||e.Error||e.error||"unexpected error: "+JSON.stringify(e)}}]),e}(),f=function(){function e(t){var n=this,i=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};r(this,e),this._store=t,this._services=i.services||{},this._charmstoreCookieSetter=i.charmstoreCookieSetter||null;var a=i.initial||{};Object.keys(a).forEach(function(e){var t=a[e];t&&n.set(e,t)})}return a(e,[{key:"get",value:function(e){return e=this._getKey(e),this._store.getItem(e)}},{key:"set",value:function(e,t,n){if(e=this._getKey(e),this._store.setItem(e,t),"charmstore"===e&&this._charmstoreCookieSetter){var r=(i=t,JSON.parse(atob(i)));this._charmstoreCookieSetter(r,function(e,t){e&&console.error("cannot set charm store cookie:",e),n()})}else{var i;n()}}},{key:"clear",value:function(){this._store.clear()}},{key:"_getKey",value:function(e){for(var t in this._services){var n=this._services[t];if(0===e.indexOf(n))return t}return"/discharge"===e.slice(-"/discharge".length)?e.slice(0,-"/discharge".length):e}}]),e}(),d=function(){function e(){r(this,e),this._items={}}return a(e,[{key:"getItem",value:function(e){return this._items[e]}},{key:"setItem",value:function(e,t){this._items[e]=t}},{key:"clear",value:function(){this._items={}}}]),e}();function h(e,t,n,r,i,a){var o=new XMLHttpRequest({}),s=function e(t){a&&a(t),o.removeEventListener("error",e),o.removeEventListener("load",e)};return o.addEventListener("error",s,!1),o.addEventListener("load",s,!1),o.open(t,e,!0),Object.keys(n||{}).forEach(function(e){o.setRequestHeader(e,n[e])}),i&&(o.withCredentials=i),o.send(r||void 0),o}e.exports={Bakery:l,BakeryStorage:f,InMemoryStore:d}},function(e,t,n){"use strict";e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){"use strict";e.exports=Math.scale||function(e,t,n,r,i){return 0===arguments.length||e!=e||t!=t||n!=n||r!=r||i!=i?NaN:e===1/0||e===-1/0?e:(e-t)*(i-r)/(n-t)+r}},function(e,t,n){"use strict";var r=n(43);e.exports=function(e,t){var n=[];return r(e,!1,n.push,n,t),n}},function(e,t,n){"use strict";var r=n(65),i=n(165);e.exports=function(e){return function(){if(r(this)!=e)throw TypeError(e+"#toJSON isn't generic");return i(this)}}},function(e,t,n){"use strict";var r=n(49),i=n(23),a=n(66).f;e.exports=function(e){return function(t){for(var n,o=i(t),s=r(o),c=s.length,u=0,l=[];c>u;)a.call(o,n=s[u++])&&l.push(e?[n,o[n]]:o[n]);return l}}},function(e,t,n){"use strict";var r=n(9),i=n(119),a=n(32);e.exports=function(e,t,n,o){var s=String(a(e)),c=s.length,u=void 0===n?" ":String(n),l=r(t);if(l<=c||""==u)return s;var f=l-c,d=i.call(u,Math.ceil(f/u.length));return d.length>f&&(d=d.slice(0,f)),o?d+s:s+d}},function(e,t,n){"use strict";var r=n(85),i=n(6),a=n(9),o=n(27),s=n(8)("isConcatSpreadable");e.exports=function e(t,n,c,u,l,f,d,h){for(var p,g,m=l,b=0,v=!!d&&o(d,h,3);b<u;){if(b in c){if(p=v?v(c[b],b,n):c[b],g=!1,i(p)&&(g=void 0!==(g=p[s])?!!g:r(p)),g&&f>0)m=e(t,n,p,a(p.length),m,f-1)-1;else{if(m>=9007199254740991)throw TypeError();t[m]=p}m++}b++}return m}},function(e,t,n){"use strict";var r=n(46),i=n(86),a=n(2),o=n(3).Reflect;e.exports=o&&o.ownKeys||function(e){var t=r.f(a(e)),n=i.f;return n?t.concat(n(e)):t}},function(e,t,n){"use strict";var r=n(31),i=n(9);e.exports=function(e){if(void 0===e)return 0;var t=r(e),n=i(t);if(t!==n)throw RangeError("Wrong length!");return n}},function(e,t,n){"use strict";var r=n(42),i=n(40).getWeak,a=n(2),o=n(6),s=n(44),c=n(43),u=n(29),l=n(19),f=n(55),d=u(5),h=u(6),p=0,g=function(e){return e._l||(e._l=new m)},m=function(){this.a=[]},b=function(e,t){return d(e.a,function(e){return e[0]===t})};m.prototype={get:function(e){var t=b(this,e);if(t)return t[1]},has:function(e){return!!b(this,e)},set:function(e,t){var n=b(this,e);n?n[1]=t:this.a.push([e,t])},delete:function(e){var t=h(this.a,function(t){return t[0]===e});return~t&&this.a.splice(t,1),!!~t}},e.exports={getConstructor:function(e,t,n,a){var u=e(function(e,r){s(e,u,t,"_i"),e._t=t,e._i=p++,e._l=void 0,void 0!=r&&c(r,n,e[a],e)});return r(u.prototype,{delete:function(e){if(!o(e))return!1;var n=i(e);return!0===n?g(f(this,t)).delete(e):n&&l(n,this._i)&&delete n[this._i]},has:function(e){if(!o(e))return!1;var n=i(e);return!0===n?g(f(this,t)).has(e):n&&l(n,this._i)}}),u},def:function(e,t,n){var r=i(a(t),!0);return!0===r?g(e).set(t,n):r[e._i]=n,e},ufstore:g}},function(e,t,n){"use strict";var r,i=n(29)(0),a=n(17),o=n(40),s=n(192),c=n(172),u=n(6),l=n(4),f=n(55),d=o.getWeak,h=Object.isExtensible,p=c.ufstore,g={},m=function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},b={get:function(e){if(u(e)){var t=d(e);return!0===t?p(f(this,"WeakMap")).get(e):t?t[this._i]:void 0}},set:function(e,t){return c.def(f(this,"WeakMap"),e,t)}},v=e.exports=n(79)("WeakMap",m,b,c,!0,!0);l(function(){return 7!=(new v).set((Object.freeze||Object)(g),7).get(g)})&&(s((r=c.getConstructor(m,"WeakMap")).prototype,b),o.NEED=!0,i(["delete","has","get","set"],function(e){var t=v.prototype,n=t[e];a(t,e,function(t,i){if(u(t)&&!h(t)){this._f||(this._f=new r);var a=this._f[e](t,i);return"set"==e?this:a}return n.call(this,t,i)})}))},function(e,t,n){"use strict";var r=n(175),i=n(55);e.exports=n(79)("Set",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{add:function(e){return r.def(i(this,"Set"),e=0===e?0:e,e)}},r)},function(e,t,n){"use strict";var r=n(10).f,i=n(47),a=n(42),o=n(27),s=n(44),c=n(43),u=n(115),l=n(180),f=n(45),d=n(11),h=n(40).fastKey,p=n(55),g=d?"_s":"size",m=function(e,t){var n,r=h(t);if("F"!==r)return e._i[r];for(n=e._f;n;n=n.n)if(n.k==t)return n};e.exports={getConstructor:function(e,t,n,u){var l=e(function(e,r){s(e,l,t,"_i"),e._t=t,e._i=i(null),e._f=void 0,e._l=void 0,e[g]=0,void 0!=r&&c(r,n,e[u],e)});return a(l.prototype,{clear:function(){for(var e=p(this,t),n=e._i,r=e._f;r;r=r.n)r.r=!0,r.p&&(r.p=r.p.n=void 0),delete n[r.i];e._f=e._l=void 0,e[g]=0},delete:function(e){var n=p(this,t),r=m(n,e);if(r){var i=r.n,a=r.p;delete n._i[r.i],r.r=!0,a&&(a.n=i),i&&(i.p=a),n._f==r&&(n._f=i),n._l==r&&(n._l=a),n[g]--}return!!r},forEach:function(e){p(this,t);for(var n,r=o(e,arguments.length>1?arguments[1]:void 0,3);n=n?n.n:this._f;)for(r(n.v,n.k,this);n&&n.r;)n=n.p},has:function(e){return!!m(p(this,t),e)}}),d&&r(l.prototype,"size",{get:function(){return p(this,t)[g]}}),l},def:function(e,t,n){var r,i,a=m(e,t);return a?a.v=n:(e._l=a={i:i=h(t,!0),k:t,v:n,p:r=e._l,n:void 0,r:!1},e._f||(e._f=a),r&&(r.n=a),e[g]++,"F"!==i&&(e._i[i]=a)),e},getEntry:m,setStrong:function(e,t,n){u(e,t,function(e,n){this._t=p(e,t),this._k=n,this._l=void 0},function(){for(var e=this._k,t=this._l;t&&t.r;)t=t.p;return this._t&&(this._l=t=t?t.n:this._t._f)?l(0,"keys"==e?t.k:"values"==e?t.v:[t.k,t.v]):(this._t=void 0,l(1))},n?"entries":"values",!n,!0),f(t)}}},function(e,t,n){"use strict";var r=n(175),i=n(55);e.exports=n(79)("Map",function(e){return function(){return e(this,arguments.length>0?arguments[0]:void 0)}},{get:function(e){var t=r.getEntry(i(this,"Map"),e);return t&&t.v},set:function(e,t){return r.def(i(this,"Map"),0===e?0:e,t)}},r,!0)},function(e,t,n){"use strict";var r=n(2),i=n(6),a=n(103);e.exports=function(e,t){if(r(e),i(t)&&t.constructor===e)return t;var n=a.f(e);return(0,n.resolve)(t),n.promise}},function(e,t,n){"use strict";e.exports=function(e){try{return{e:!1,v:e()}}catch(e){return{e:!0,v:e}}}},function(e,t,n){"use strict";n(11)&&"g"!=/./g.flags&&n(10).f(RegExp.prototype,"flags",{configurable:!0,get:n(82)})},function(e,t,n){"use strict";e.exports=function(e,t){return{value:t,done:!!e}}},function(e,t,n){"use strict";var r=n(13),i=n(48),a=n(9);e.exports=[].copyWithin||function(e,t){var n=r(this),o=a(n.length),s=i(e,o),c=i(t,o),u=arguments.length>2?arguments[2]:void 0,l=Math.min((void 0===u?o:i(u,o))-c,o-s),f=1;for(c<s&&s<c+l&&(f=-1,c+=l-1,s+=l-1);l-- >0;)c in n?n[s]=n[c]:delete n[s],s+=f,c+=f;return n}},function(e,t,n){"use strict";var r=n(14),i=n(13),a=n(67),o=n(9);e.exports=function(e,t,n,s,c){r(t);var u=i(e),l=a(u),f=o(u.length),d=c?f-1:0,h=c?-1:1;if(n<2)for(;;){if(d in l){s=l[d],d+=h;break}if(d+=h,c?d<0:f<=d)throw TypeError("Reduce of empty array with no initial value")}for(;c?d>=0:f>d;d+=h)d in l&&(s=t(s,l[d],d,u));return s}},function(e,t,n){"use strict";var r=n(2);e.exports=function(e,t,n,i){try{return i?t(r(n)[0],n[1]):t(n)}catch(t){var a=e.return;throw void 0!==a&&r(a.call(e)),t}}},function(e,t,n){"use strict";var r=n(118),i=Math.pow,a=i(2,-52),o=i(2,-23),s=i(2,127)*(2-o),c=i(2,-126);e.exports=Math.fround||function(e){var t,n,i=Math.abs(e),u=r(e);return i<c?u*(i/c/o+1/a-1/a)*c*o:(n=(t=(1+o/a)*i)-(t-i))>s||n!=n?u*(1/0):u*n}},function(e,t,n){"use strict";e.exports=Math.log1p||function(e){return(e=+e)>-1e-8&&e<1e-8?e-e*e/2:Math.log(1+e)}},function(e,t,n){"use strict";var r=n(6),i=Math.floor;e.exports=function(e){return!r(e)&&isFinite(e)&&i(e)===e}},function(e,t,n){"use strict";var r=n(26);e.exports=function(e,t){if("number"!=typeof e&&"Number"!=r(e))throw TypeError(t);return+e}},function(e,t,n){"use strict";var r=n(3).parseFloat,i=n(57).trim;e.exports=1/r(n(121)+"-0")!=-1/0?function(e){var t=i(String(e),3),n=r(t);return 0===n&&"-"==t.charAt(0)?-0:n}:r},function(e,t,n){"use strict";var r=n(3).parseInt,i=n(57).trim,a=n(121),o=/^[-+]?0[xX]/;e.exports=8!==r(a+"08")||22!==r(a+"0x16")?function(e,t){var n=i(String(e),3);return r(n,t>>>0||(o.test(n)?16:10))}:r},function(e,t,n){"use strict";e.exports=function(e,t,n){var r=void 0===n;switch(t.length){case 0:return r?e():e.call(n);case 1:return r?e(t[0]):e.call(n,t[0]);case 2:return r?e(t[0],t[1]):e.call(n,t[0],t[1]);case 3:return r?e(t[0],t[1],t[2]):e.call(n,t[0],t[1],t[2]);case 4:return r?e(t[0],t[1],t[2],t[3]):e.call(n,t[0],t[1],t[2],t[3])}return e.apply(n,t)}},function(e,t,n){"use strict";var r=n(14),i=n(6),a=n(190),o=[].slice,s={};e.exports=Function.bind||function(e){var t=r(this),n=o.call(arguments,1),c=function r(){var i=n.concat(o.call(arguments));return this instanceof r?function(e,t,n){if(!(t in s)){for(var r=[],i=0;i<t;i++)r[i]="a["+i+"]";s[t]=Function("F,a","return new F("+r.join(",")+")")}return s[t](e,n)}(t,i.length,i):a(t,i,e)};return i(t.prototype)&&(c.prototype=t.prototype),c}},function(e,t,n){"use strict";var r=n(49),i=n(86),a=n(66),o=n(13),s=n(67),c=Object.assign;e.exports=!c||n(4)(function(){var e={},t={},n=Symbol(),r="abcdefghijklmnopqrst";return e[n]=7,r.split("").forEach(function(e){t[e]=e}),7!=c({},e)[n]||Object.keys(c({},t)).join("")!=r})?function(e,t){for(var n=o(e),c=arguments.length,u=1,l=i.f,f=a.f;c>u;)for(var d,h=s(arguments[u++]),p=l?r(h).concat(l(h)):r(h),g=p.length,m=0;g>m;)f.call(h,d=p[m++])&&(n[d]=h[d]);return n}:c},function(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})(e)}var i=n(23),a=n(46).f,o={}.toString,s="object"==("undefined"==typeof window?"undefined":r(window))&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[];e.exports.f=function(e){return s&&"[object Window]"==o.call(e)?function(e){try{return a(e)}catch(e){return s.slice()}}(e):a(i(e))}},function(e,t,n){"use strict";var r=n(10),i=n(2),a=n(49);e.exports=n(11)?Object.defineProperties:function(e,t){i(e);for(var n,o=a(t),s=o.length,c=0;s>c;)r.f(e,n=o[c++],t[n]);return e}},function(e,t,n){"use strict";var r=n(19),i=n(23),a=n(87)(!1),o=n(125)("IE_PROTO");e.exports=function(e,t){var n,s=i(e),c=0,u=[];for(n in s)n!=o&&r(s,n)&&u.push(n);for(;t.length>c;)r(s,n=t[c++])&&(~a(u,n)||u.push(n));return u}},function(e,t,n){"use strict";t.f=n(8)},function(e,t,n){"use strict";e.exports=!n(11)&&!n(4)(function(){return 7!=Object.defineProperty(n(127)("div"),"a",{get:function(){return 7}}).a})},function(e,t,n){"use strict";function r(e){return{restrict:"A",link:function(t,n,r){function i(){t.windowWidth!==e.innerWidth&&(t.windowWidth=e.innerWidth,t.$apply(function(){t.message="Timeout called!"}))}t.windowWidth=e.innerWidth,angular.element(e).on("resize",i),t.$on("$destroy",function(){angular.element(e).off("resize",i)})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$window"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){return i.$inject=["$scope"],{restrict:"A",controller:i};function i(i){i.version=t.getData("version"),i.reloadPage=function(){e.location.reload(!0)},n.loadManager(i,t).then(function(){t.enableAutoReload(!0),r.info('Version reloader: Monitoring MAAS "'+i.site+'"; version',i.version.text,"via",e.location.href),i.$watch("version.text",function(e,t){e!==t&&(r.info("MAAS version changed from '"+t+"' to '"+e+"'; forcing reload."),i.reloadPage())})})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$window","GeneralManager","ManagerHelperService","LogService"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",scope:{ngType:"="},link:function(e,t){e.$watch("ngType",function(){if(-1===["button","checkbox","color","date ","datetime ","datetime-local ","email ","file","hidden","image","month ","number ","password","radio","range ","reset","search","submit","tel","text","time ","url","week"].indexOf(e.ngType))throw new Error("Invalid input type: "+e.ngType);t[0].type=e.ngType})}}};t.default=r},function(e,t,n){"use strict";function r(e){return{restrict:"A",link:function(t,n,r){t.isToggled=!1,t.toggleMenu=function(){t.isToggled=!t.isToggled};var i=function(e){n.find(e.target).length>0||t.$apply(function(){t.isToggled=!1})};e.on("click",i),t.$on("$destroy",function(){e.off("click",i)})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$document"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){return{restrict:"E",scope:{search:"=",ngDisabled:"&",switchHasError:"&",hideCheckboxes:"=?",onListingChange:"&",onCheckAll:"&",onCheck:"&"},templateUrl:"static/partials/switches-table.html?v="+MAAS_config.files_version,link:function(n,r,i){var a=[1,9,12,14,17,19,21];n.table={column:"fqdn",predicate:"fqdn",reverse:!1,allViewableChecked:!1,switches:e.getItems(),filteredSwitches:[],osinfo:t.getData("osinfo")},n.updateAllChecked=function(){if(0!==n.table.filteredSwitches.length){var e;for(e=0;e<n.table.filteredSwitches.length;e++)if(!n.table.filteredSwitches[e].$selected)return void(n.table.allViewableChecked=!1);n.table.allViewableChecked=!0}else n.table.allViewableChecked=!1},n.toggleCheckAll=function(){n.table.allViewableChecked?angular.forEach(n.table.filteredSwitches,function(t){e.unselectItem(t.system_id)}):angular.forEach(n.table.filteredSwitches,function(t){e.selectItem(t.system_id)}),n.updateAllChecked(),n.onCheckAll()},n.toggleChecked=function(t){e.isSelected(t.system_id)?e.unselectItem(t.system_id):e.selectItem(t.system_id),n.updateAllChecked(),n.onCheck({$switch_:t})},n.sortTable=function(e){n.table.predicate=e,n.table.reverse=!n.table.reverse},n.selectColumnOrSort=function(e){n.table.column!==e?n.table.column=e:n.sortTable(e)},n.showSpinner=function(e){return a.indexOf(e.status_code)>-1},n.getReleaseTitle=function(e){if(angular.isArray(n.table.osinfo.releases))for(var t=0;t<n.table.osinfo.releases.length;t++){var r=n.table.osinfo.releases[t];if(r[0]===e)return r[1]}return e},n.getStatusText=function(e){if(-1===["Deploying","Deployed"].indexOf(e.status))return e.status;var t=n.getReleaseTitle(e.osystem+"/"+e.distro_series);return"ubuntu"===e.osystem&&(t=t.split('"')[0].trim()),"Deployed"===e.status?t:"Deploying"===e.status?e.status+" "+t:void 0},n.$watchCollection("table.filteredSwitches",function(){n.updateAllChecked(),n.onListingChange({$switches:n.table.filteredSwitches})})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["SwitchesManager","GeneralManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){return i.$inject=["$scope"],{restrict:"E",scope:{},templateUrl:"static/partials/ssh-keys.html?v="+MAAS_config.files_version,controller:i};function i(i){i.loading=!0,i.keys=t.getItems(),i.groupedKeys=[],i.add={source:"lp",authId:"",key:"",error:null,saving:!1},i.sourceTitles={lp:"Launchpad",gh:"Github",upload:"Upload"},i.openRow=null,i.rowMode=null,i.trustAsHtml=e.trustAsHtml,i.open=function(e,t){i.openRow=e.id,i.rowMode=t},i.close=function(){i.openRow=null},i.canImportKeys=function(){return!i.add.saving&&("lp"===i.add.source||"gh"===i.add.source?i.add.authId.length>0:i.add.key.length>0)},i.importKeys=function(){i.canImportKeys()&&(i.add.error=null,i.add.saving=!0,"lp"===i.add.source||"gh"===i.add.source?t.importKeys({protocol:i.add.source,auth_id:i.add.authId}).then(function(){i.open({id:"".concat(i.add.source,"/").concat(i.add.authId)},"view"),i.add.saving=!1,i.add.source="lp",i.add.authId="",i.add.key=""},function(e){i.add.saving=!1;var t=r.tryParse(e);angular.isObject(t)&&angular.isArray(t.__all__)?i.add.error=t.__all__[0]:i.add.error=e}):t.createItem({key:i.add.key}).then(function(){i.add.saving=!1,i.add.source="lp",i.add.authId="",i.add.key=""},function(e){i.add.saving=!1;var t=r.tryParse(e);angular.isObject(t)?angular.isArray(t.key)?i.add.error=t.key[0]:angular.isArray(t.__all__)?i.add.error=t.__all__[0]:i.add.error=e:i.add.error=e}))},i.confirmDelete=function(e){angular.forEach(e.keys,function(e){t.deleteItem(e)})},i.$watchCollection("keys",function(){i.groupedKeys=[];var e={};angular.forEach(i.keys,function(t){var n,r=t.keysource;if(angular.isObject(r)){var a=r.protocol+"/"+r.auth_id;n=e[a],angular.isObject(n)?n.keys.push(t):(n={id:a,source:r.protocol,authId:r.auth_id,keys:[t]},e[a]=n,i.groupedKeys.push(n))}else n={id:"upload/"+t.id,source:"upload",authId:"",keys:[t]},i.groupedKeys.push(n)})}),n.loadManager(i,t).then(function(){i.loading=!1})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$sce","SSHKeysManager","ManagerHelperService","JSONService"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{templateUrl:"static/partials/script-results-list.html?v="+MAAS_config.files_version}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"C",link:function(e,t,n){var r=t.find(".p-script-expander__trigger"),i=t.find(".p-script-expander__content");i.addClass("u-hide"),r.on("click",function(e){e.preventDefault(),i.toggleClass("u-hide")})}}};t.default=r},function(e,t,n){"use strict";function r(e){return{restrict:"A",scope:{releaseName:"=maasReleaseName"},link:function(t,n,r){t.osinfo=e.getData("osinfo");var i=function(){n.text(function(){if(angular.isArray(t.osinfo.releases))for(var e=0;e<t.osinfo.releases.length;e++){var n=t.osinfo.releases[e];if(n[0]===t.releaseName)return n[1]}return t.releaseName}())};t.$watch("releaseName",function(){i()}),t.$watchCollection("osinfo.releases",function(){i()})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["GeneralManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){return n.$inject=["$scope"],{restrict:"E",scope:{},templateUrl:"static/partials/proxy-settings.html",controller:n};function n(n){n.loading=!0,t.loadManager(n,e).then(function(){n.loading=!1,n.httpProxy=e.getItemFromList("http_proxy"),n.enableHttpProxy=e.getItemFromList("enable_http_proxy"),n.usePeerProxy=e.getItemFromList("use_peer_proxy"),n.enableHttpProxy.value?n.httpProxy.value?n.usePeerProxy.value?n.proxy_type="peer-proxy":n.proxy_type="external-proxy":n.proxy_type="builtin-proxy":n.proxy_type="no-proxy"})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["ConfigsManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){return{restrict:"A",controller:function(){var r=this;r.addKey=function(){var i=e.defer();return t.defaultConnect().then(function(){n.createAuthorisationToken().then(function(e){r.injector&&r.injector(e),i.resolve(e)})}),i.promise},r.deleteKey=function(e){t.defaultConnect().then(function(){n.deleteAuthorisationToken(e)})}}}}function i(e,t){return{restrict:"A",require:"^maasPrefKeys",scope:{template:"@maasPrefKeysInject"},link:function(n,r,i,a){var o=t.get(n.template);if(!o)throw new Error("Unable to load template: "+n.template);a.injector=function(t){var i=n.$new();i.token=t;var a=angular.element(o);r.append(a),e(a)(i)}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.maasPrefKeys=r,t.maasPrefKeysInject=i,t.maasPrefKeysAdd=function(){return{restrict:"A",require:"^maasPrefKeys",link:function(e,t,n,r){t.on("click",function(n){n.preventDefault();var i=angular.element('<i class="p-icon--spinner u-animation--spin"></i>');t.prepend(i),e.$apply(function(){r.addKey().then(function(){i.remove()})})})}}},t.maasPrefKey=function(){return e.$inject=["$scope","$element"],{restrict:"A",require:"^maasPrefKeys",scope:{key:"@maasPrefKey"},controller:e,link:function(e,t,n,r){e.prefsController=r}};function e(e,t){this.deleteKey=function(){e.prefsController.deleteKey(e.key),e.$destroy(),t.remove()}}},t.maasPrefKeyDelete=function(){return{restrict:"A",require:"^maasPrefKey",link:function(e,t,n,r){t.on("click",function(t){t.preventDefault(),e.$apply(function(){r.deleteKey()})})}}},i.$inject=["$compile","$templateCache"],r.$inject=["$q","RegionConnection","UsersManager"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",scope:{ngPlaceholder:"="},link:function(e,t){e.$watch("ngPlaceholder",function(){t[0].placeholder=e.ngPlaceholder})}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",link:function(e,t,n){t.on("click",function(e){e.stopPropagation(),t.parent().parent().find("#mobile-nav-menu").toggleClass("u-show")})}}};t.default=r},function(e,t,n){"use strict";function r(e){return{restrict:"A",link:function(t,n,r){n.on("click",function(e){e.stopPropagation(),n.parent().find(".p-dropdown__menu").toggleClass("u-hide")}),e.on("click",function(){n.parent().find(".p-dropdown__menu").addClass("u-hide")})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$document"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",require:"ngModel",link:function(e,t,n,r){if(r){var i=function(e){if(e){var t=e.replace(/:/g,"");return e.length%3==0?t.replace(/([0-9A-Za-z]{2})/g,"$1:"):void 0}};r.$parsers.push(function(e){return e.toUpperCase()}),r.$formatters.push(i),t.on("input",function(){var n=i(t.val());angular.isDefined(n)&&(r.$setViewValue(n),r.$render()),e.$apply()})}}}};t.default=r},function(e,t,n){"use strict";function r(e){function t(e){"ngInject";this.obj=e.obj,this.manager=e.manager,this.fields={},this.scope=e,this.scope.saving=!1,this.scope.savingKeys=[],angular.isObject(this.scope.obj)&&(this.scope.obj.$maasForm=this),this.managerMethod=e.managerMethod,angular.isUndefined(this.managerMethod)&&(this.managerMethod="updateItem");var t=this;e.$watch("obj",function(){t.obj=e.obj,angular.isObject(t.obj)&&(t.obj.$maasForm=t)}),e.$on("$destroy",function(){angular.isObject(t.obj)&&delete t.obj.$maasForm})}return t.$inject=["$scope"],t.prototype.getValue=function(e){var t=this.fields[e];if(angular.isObject(t)&&angular.isObject(t.scope))return t.scope.getValue()},t.prototype.updateValue=function(e,t){var n=this.fields[e];if(angular.isObject(n)&&angular.isObject(n.scope))return n.scope.updateValue(t)},t.prototype.cloneObject=function(){if(angular.isObject(this.obj)){delete this.obj.$maasForm;var e=angular.copy(this.obj);return this.obj.$maasForm=this,e}return this.obj},t.prototype.isTableForm=function(){return!angular.isUndefined(this.scope.tableForm)&&this.scope.tableForm},t.prototype.saveOnBlur=function(){return!!angular.isUndefined(this.scope.saveOnBlur)||this.scope.saveOnBlur},t.prototype.isSaving=function(e){return this.scope.saving&&this.scope.savingKeys.indexOf(e)>=0},t.prototype.showInputSaving=function(e){return this.saveOnBlur()&&this.isSaving(e)},t.prototype.hasErrors=function(){var e=!1;return angular.forEach(this.fields,function(t){t.scope.hasErrors()&&(e=!0)}),angular.isDefined(this.errorScope)&&this.errorScope.hasErrors()&&(e=!0),e},t.prototype.registerField=function(e,t){this.fields[e]={editing:!1,scope:t};var n=this;return this.scope.$watch("obj."+e,function(){angular.isObject(n.obj)&&!n.fields[e].editing&&n.fields[e].scope.updateValue(n.obj[e])}),angular.isObject(this.obj)?this.obj[e]:null},t.prototype.unregisterField=function(e){delete this.fields[e]},t.prototype.startEditingField=function(e){this.fields[e].editing=!0},t.prototype.stopEditingField=function(e,t){var n=this.fields[e];if(this.saveOnBlur()){n.scope.clearErrors();var r=this.cloneObject();r[e]=t,r[e]!==this.obj[e]?(this.scope.saving=!0,this.scope.savingKeys=[e],this.updateItem(r,[e])):n.editing=!1}else n.editing=!1},t.prototype.updateItem=function(t,n){var r=n[0],i=this.fields[r],a=this;return angular.isFunction(this.scope.preProcess)&&(t=this.scope.preProcess(t,n)),this.manager[this.managerMethod](t).then(function(e){return i.editing=!1,i.scope.updateValue(e[r]),a.scope.saving=!1,a.scope.savingKeys=[],angular.isFunction(a.scope.afterSave)&&a.scope.afterSave(e),e},function(t){var n=e.tryParse(t);return angular.isObject(n)?angular.forEach(n,function(e,t){var n=a.fields[t];angular.isArray(e)||(e=[e]),angular.isObject(n)?n.scope.setErrors(e):("__all__"!==t&&(e=e.map(function(e){return t+": "+e})),i.scope.setErrors(e))}):i.scope.setErrors([t]),a.scope.saving=!1,a.scope.savingKeys=[],t})},t.prototype.saveForm=function(){var t=[],n=this.cloneObject();angular.forEach(this.fields,function(e,r){e.scope.clearErrors();var i=e.scope.getValue();angular.isDefined(i)&&n[r]!==i&&(n[r]=i,t.push(r))}),angular.isFunction(this.scope.preProcess)&&(n=this.scope.preProcess(n,t)),angular.isDefined(this.errorScope)&&this.errorScope.clearErrors();var r=this;return this.scope.saving=!0,this.scope.savingKeys=t,this.manager[this.managerMethod](n).then(function(e){return r.scope.saving=!1,r.scope.savingKeys=[],angular.isFunction(r.scope.afterSave)&&r.scope.afterSave(e),e},function(t){var n=e.tryParse(t);return angular.isObject(n)?angular.forEach(n,function(e,t){var n=r.fields[t];angular.isArray(e)||(e=[e]),angular.isObject(n)?n.scope.setErrors(e):("__all__"!==t&&(e=e.map(function(e){return t+": "+e})),angular.isDefined(r.errorScope)?r.errorScope.setErrors(e):console.log(e))}):angular.isDefined(r.errorScope)?r.errorScope.setErrors([t]):console.log(t),r.scope.saving=!1,r.scope.savingKeys=[],t})},{restrict:"E",scope:{obj:"=",manager:"=",managerMethod:"@",preProcess:"=",afterSave:"=",tableForm:"=",saveOnBlur:"=",inline:"=",ngDisabled:"&"},transclude:!0,template:"<form class=\"p-form\" data-ng-class=\"{saving: saving, 'p-form--inline': inline, 'p-form--stacked': tableForm}\" ng-transclude></form>",controller:t}}function i(e){return{restrict:"E",require:["^^maasObjForm","?^^maasObjFieldGroup"],scope:{onChange:"=",subtleText:"@"},transclude:!0,template:"<div data-ng-transclude></div>",link:function(t,n,r,i){var a=i[1];angular.isObject(a)||(a=i[0]),t.ngDisabled=a.scope.ngDisabled,n.addClass("p-form__group"),"false"!==r.subtle&&n.addClass("form__group--subtle");var o=[];if(angular.isString(r.type)&&0!==r.type.length||o.push("type"),angular.isString(r.key)&&0!==r.key.length||o.push("key"),o.length>0)throw new Error(o.join(", ")+" are required on maas-obj-field.");angular.isString(r.disabled)&&(t.ngDisabled=function(){return!0}),n.find("div").remove();var s=r.label||r.key;if("true"!==r.disableLabel&&"hidden"!==r.type){var c=angular.element("<label/>");if(c.attr("for",r.key),c.text(s),c.addClass("p-form__label"),r.labelWidth&&(c.addClass("col-"+r.labelWidth),r.labelWidthMobile&&c.addClass("mobile-col-"+r.labelWidthMobile),r.labelWidthTablet&&c.addClass("tablet-col-"+r.labelWidthTablet)),"true"===r.labelLeft&&(c.addClass("u-padding--left"),c.addClass("u-position--relative")),n.append(c),angular.isString(r.labelInfo)&&r.labelInfo.length>0){var u=angular.element("<span>&nbsp;</span>");u.addClass("p-tooltip p-tooltip--btm-right");var l=angular.element("<i/>");r.labelInfoIcon?l.addClass("p-icon--"+r.labelInfoIcon):l.addClass("p-icon--information"),l.attr("aria-describedby",r.key+"-tooptip");var f=angular.element("<p></p>");f.addClass("p-tooltip__message"),f.text(r.labelInfo),f.attr("id",r.key+"-tooptip"),u.append(l),u.append(f),c.append(u),l.bind("click",function(e){e.preventDefault()})}}var d=angular.element("<div></div>");d.addClass("p-form__control"),r.inputWidthMobile&&d.addClass("mobile-col-"+r.inputWidthMobile),r.inputWidthTablet&&d.addClass("tablet-col-"+r.inputWidthTablet),r.inputWidth&&d.addClass("col-"+r.inputWidth);var h=r.placeholder||s,p=null;if("text"===r.type||"textarea"===r.type||"password"===r.type){"text"===r.type?p=e('<input type="text" id="'+r.key+'" placeholder="'+h+'"data-ng-disabled="ngDisabled()">')(t):"textarea"===r.type?p=e('<textarea id="'+r.key+'" placeholder="'+h+'"data-ng-disabled="ngDisabled()"></textarea>')(t):"password"===r.type&&(p=e('<input type="password" id="'+r.key+'" placeholder="'+h+'"data-ng-disabled="ngDisabled()">')(t)),r.blurOnEnter&&p.bind("keydown keypress",function(e){13===e.which&&(p.blur(),e.preventDefault())});p.bind("keydown keypress",function(e){27===e.which&&(p.val(a.scope.obj[r.key]),p.blur(),e.preventDefault())}),r.value&&t.$applyAsync(function(){p.val(r.value)});var g=a.registerField(r.key,t);p.val(g),p.on("focus",function(){t.$apply(function(){a.startEditingField(r.key)})}),p.on("blur",function(){t.$apply(function(){a.stopEditingField(r.key,p.val())})}),t.updateValue=function(e){p.val(e)},t.getValue=function(){return p.val()}}else if("options"===r.type){var m=r.options;if(!angular.isString(m)||0===m.length)throw new Error("options attribute is required on type 'options' on maas-obj-field.");var b="disabled";"true"===r.placeholderEnabled&&(b="");var v=t.$parent.$new();v._ngDisabled=t.ngDisabled,v._selectValue=a.registerField(r.key,t),v._selectNgChange=function(){t._change(),a.stopEditingField(r.key,v._selectValue)},p=e('<select id="'+r.key+'" data-ng-model="_selectValue" data-ng-options="'+m+'"data-ng-change="_selectNgChange()"data-ng-disabled="_ngDisabled()"><option value="" '+b+">"+h+"</option></select>")(v),t.updateValue=function(e){v._selectValue=e},t.getValue=function(){return v._selectValue}}else if("checkboxes"===r.type){var y=r.values;if(!angular.isString(y)||0===y.length)throw new Error("values attribute is required on type 'checkboxes' on maas-obj-field.");var _=t.$parent.$new();_._selectedValues=a.registerField(r.key,t),_._checked=function(e){return _._selectedValues.indexOf(e)>-1},_._toggleChecked=function(e){var t=_._selectedValues.indexOf(e);t>-1?_._selectedValues.splice(t,1):_._selectedValues.push(e)},p=angular.element(['<div class="p-form__group" ','style="padding-top: .2rem;" ','data-ng-repeat="val in '+y+'">','<input id="'+r.key+"_{$ val $}",'" type="checkbox" value="{$ val $}" ','class="checkbox" ','data-ng-checked="_checked(val)" ','data-ng-click="_toggleChecked(val)">','<label for="'+r.key+"_",'{$ val $}" ','class="checkbox-label">{$ val $}</label>',"</div>"].join("")),p=e(p)(_),t.updateValue=function(e){_._selectedValues=e},t.getValue=function(){return _._selectedValues}}else if("tags"===r.type){var w=t.$new(),S=a.registerField(r.key,t);w._tags=S.map(function(e){return{text:e}}),p=angular.element(['<span data-ng-if="ngDisabled()" ','data-ng-repeat="tag in _tags">',"{$ tag.text $} </span>",'<tags-input id="'+r.key+'" ','data-ng-model="_tags" ','data-ng-if="!ngDisabled()" ','placeholder="'+h+'" ','data-ng-change="_change()" ','allow-tags-pattern="[\\w-]+"></tags-input>'].join("")),p=e(p)(w),t.updateValue=function(e){w._tags=e.map(function(e){return{text:e}})},t.getValue=function(){return w._tags.map(function(e){return e.text})}}else if("hidden"===r.type){var M=t.$new();M._toggle=a.registerField(r.key,t),p=angular.element(['<input type="hidden" name="'+r.key+'" ','id="'+r.key+'" ','value="'+r.value+'">',"</input>"].join("")),p=e(p)(M),t.getValue=function(){return r.value},t.updateValue=function(){return null}}else if("onoffswitch"===r.type){var E=t.$new();E._toggle=a.registerField(r.key,t),E._changed=function(){t._change(),a.startEditingField(r.key),a.stopEditingField(r.key,E.getValue())},p=angular.element(['<div class="maas-p-switch">','<input type="checkbox" name="'+r.key+'" ','class="maas-p-switch--input" ','id="'+r.key+'" ','data-ng-model="_toggle" ','data-ng-change="_changed()">','<div class="maas-p-switch--mask"></div>',"</div>"].join("")),p=e(p)(E),t.updateValue=function(e){r.onValue&&r.onValue===e?E._toggle=!0:r.offValue&&r.offValue===e?E._toggle=!1:E._toggle=e},t.getValue=function(){return E._toggle?!r.onValue||r.onValue:!!r.offValue&&r.offValue}}else{if("slider"!=r.type)throw new Error("Unknown type on maas-obj-field: "+r.type);var A=t.$new();A._slider=a.registerField(r.key,t),A._ngDisabled=t.ngDisabled,p=angular.element(['<div class="p-slider__wrapper">','<input class="p-slider" type="range"','min="'+r.min+'" max="'+r.max+'" ','value="1" step="'+r.step+'" ','id="'+r.key+'" ','data-ng-model="_slider" data-ng-disabled="','_ngDisabled()">','<input class="p-slider__input" type="text" ','maxlength="3" id="'+r.key+'-input" ','data-ng-model="_slider" disabled="disabled" ',"></div>"].join("")),p=e(p)(A),t.updateValue=function(e){A._slider=e},t.getValue=function(){return A._slider}}t._change=function(){angular.isFunction(t.onChange)&&t.onChange(r.key,a.getValue(r.key),a)},r.inputClass&&p.addClass(r.inputClass),d.append(p);var I=angular.element('<ul class="p-list u-no-margin--top"></ul>');if(a.isTableForm()||I.addClass("form__error"),d.append(I),r.helpText){var k=angular.element("<p>"+r.helpText+"</p>");k.addClass("p-form-help-text"),d.append(k)}if(t.clearErrors=function(){p.removeClass("ng-dirty"),p.removeClass("p-form-validation__input"),d.removeClass("p-form-validation"),d.removeClass("is-error"),d.removeClass("u-no-margin--top"),I.empty()},t.setErrors=function(e){e.length>0&&(d.addClass("p-form-validation"),d.addClass("is-error"),d.addClass("u-no-margin--top"),p.addClass("ng-dirty"),p.addClass("p-form-validation__input"),angular.forEach(e,function(e){I.append('<li class="p-form-validation__message"><strong>Error:</strong> '+e+"</li>")}),setTimeout(function(){p.focus()},1))},t.hasErrors=function(){return d.hasClass("is-error")},r.subtleText){var O=e(angular.element('<span class="p-form-help-text" data-ng-bind="subtleText"></span>'))(t);d.append(O)}n.append(d),t.$watch(function(){return a.showInputSaving(r.key)},function(e){e?(d.children(":first").addClass("u-border--information"),c.prepend('<i class="obj-saving icon p-icon--spinner u-animation--spin"></i>'),d.addClass("p-tooltip"),d.addClass("p-tooltip--bottom"),d.addClass("u-no-margin--top"),d.attr("aria-label","Saving")):(d.children(":first").removeClass("u-border--information"),c&&c.find("i.obj-saving").remove(),d.removeClass("p-tooltip"),d.removeClass("p-tooltip--right"),d.addClass("u-no-margin--top"),d.removeAttr("aria-label"))}),t.$on("$destroy",function(){a.unregisterField(r.key)})}}}function a(e){return{restrict:"E",require:["^^maasObjForm"],scope:{},template:'<ul class="p-list u-no-margin--top"></ul>',link:function(t,n,r,i){i[0].errorScope=t;var a=n.find("ul");t.clearErrors=function(){a.empty()},t.setErrors=function(n){if(n.length>0){t.errors=n;for(var r=0;r<t.errors.length;r++)a.append(e('<li class="p-list__item"><i class="p-icon--error"></i> <span ng-bind="errors['+r+']"></span></li>')(t))}},t.hasErrors=function(){return a.children().length>0}}}}Object.defineProperty(t,"__esModule",{value:!0}),t.maasObjForm=r,t.maasObjFieldGroup=function(){function e(e,t){"ngInject";this.fields={},this.scope=e,this.scope.saving=!1,this.scope.savingKeys=[],this.timeout=t;var n=this;this.scope.isEditing=function(){var e=!1;return angular.forEach(n.fields,function(t){e||(e=t.editing)}),e}}return e.$inject=["$scope","$timeout"],e.prototype.isTableForm=function(){return this.formController.isTableForm()},e.prototype.saveOnBlur=function(){return this.formController.saveOnBlur()},e.prototype.isSaving=function(e){return this.scope.saving&&this.scope.savingKeys.indexOf(e)>=0},e.prototype.showInputSaving=function(e){return this.saveOnBlur()&&this.scope.saving},e.prototype.registerField=function(e,t){return this.fields[e]={editing:!1,scope:t},this.formController.registerField(e,t)},e.prototype.unregisterField=function(e){delete this.fields[e],this.formController.unregisterField(e)},e.prototype.startEditingField=function(e){this.fields[e].editing=!0;var t=this;angular.forEach(this.fields,function(e,n){t.formController.startEditingField(n)})},e.prototype.stopEditingField=function(e,t){if(this.fields[e].editing=!1,this.saveOnBlur()){var n=this;this.timeout(function(){var t=!1;if(angular.forEach(n.fields,function(e){t||(t=e.editing)}),!t){var r=[],i=!1,a=n.formController.cloneObject();if(angular.forEach(n.fields,function(e,t){e.scope.clearErrors();var n=e.scope.getValue();angular.isDefined(n)&&a[t]!==n&&(r.push(t),a[t]=n,i=!0)}),i){var o=r.indexOf(e);-1!==o&&(r.splice(o,1),r.splice(0,0,e)),n.scope.saving=!0,n.scope.savingKeys=r,n.formController.updateItem(a,r).then(function(e){return n.scope.saving=!1,n.scope.savingKeys=[],e},function(e){return n.scope.saving=!1,n.scope.savingKeys=[],e})}}},10)}},{restrict:"E",require:["^^maasObjForm","maasObjFieldGroup"],scope:{},transclude:!0,template:'<div class="form__siblings" data-ng-class="{\'is-active\': isEditing()}" data-ng-transclude></div>',controller:e,link:{pre:function(e,t,n,r){r[1].formController=r[0],e.ngDisabled=r[0].scope.ngDisabled,r[0].scope.$watch("obj",function(t){e.obj=t})}}}},t.maasObjField=i,t.maasObjSave=function(){return{restrict:"A",require:["^^maasObjForm"],scope:{},link:function(e,t,n,r){var i=r[0];if(i.saveOnBlur())throw new Error("maas-obj-save is only allowed when save-on-blur is set to false.");t.on("click",function(){e.$apply(function(){i.saveForm()})})}}},t.maasObjErrors=a,t.maasObjSaving=function(){return{restrict:"E",require:"^^maasObjForm",scope:{},transclude:!0,template:['<span data-ng-if="saving">','<i class="p-icon--loading u-animation--spin"></i>',"<span data-ng-transclude></span>","</span>"].join(""),link:function(e,t,n,r){e.saving=!1,e.$watch(function(){return r.scope.saving},function(t){e.saving=t})}}},t.maasObjShowSaving=function(){return{restrict:"A",require:"^^maasObjForm",link:function(e,t,n,r){e.$watch(function(){return r.scope.saving},function(e){e?t.removeClass("ng-hide"):t.addClass("ng-hide")})}}},t.maasObjHideSaving=function(){return{restrict:"A",require:"^^maasObjForm",link:function(e,t,n,r){e.$watch(function(){return r.scope.saving},function(e){e?t.addClass("ng-hide"):t.removeClass("ng-hide")})}}},a.$inject=["$compile"],i.$inject=["$compile"],r.$inject=["JSONService"]},function(e,t,n){"use strict";function r(e,t,n,r){return i.$inject=["$scope"],{restrict:"E",scope:{subnet:"=",vlan:"="},templateUrl:"static/partials/ipranges.html?v="+MAAS_config.files_version,controller:i};function i(i){i.loading=!0,i.ipranges=e.getItems(),i.iprangeManager=e,i.newRange=null,i.editIPRange=null,i.deleteIPRange=null,i.MAAS_VERSION_NUMBER=e.formatMAASVersionNumber(),i.RESERVE_RANGE={name:"reserve_range",title:"Reserve range",selectedTitle:"Reserve range",objectName:"reserveRange"},i.RESERVE_DYNAMIC_RANGE={name:"reserve_dynamic_range",title:"Reserve dynamic range",selectedTitle:"Reserve dynamic range",objectName:"reserveDynamicRange"},i.actionOptions=[i.RESERVE_RANGE,i.RESERVE_DYNAMIC_RANGE],i.actionChanged=function(){var e=i.actionOption?i.actionOption.name:null;"reserve_range"===e&&i.addRange("reserved"),"reserve_dynamic_range"===e&&i.addRange("dynamic")},i.isSuperUser=function(){return t.isSuperUser()},i.addRange=function(e){i.newRange={type:e,start_ip:"",end_ip:"",comment:""},angular.isObject(i.subnet)&&(i.newRange.subnet=i.subnet.id),angular.isObject(i.vlan)&&(i.newRange.vlan=i.vlan.id),"dynamic"===e&&(i.newRange.comment="Dynamic")},i.cancelAddRange=function(){i.newRange=null,i.actionOption=null},i.ipRangeCanBeModified=function(e){return!!i.isSuperUser()||"reserved"===e.type&&e.user===t.getAuthUser().id},i.isIPRangeInEditMode=function(e){return i.editIPRange===e},i.ipRangeToggleEditMode=function(e){i.deleteIPRange=null,i.isIPRangeInEditMode(e)?i.editIPRange=null:i.editIPRange=e},i.ipRangeClearEditMode=function(){i.editIPRange=null},i.isIPRangeInDeleteMode=function(e){return i.deleteIPRange===e},i.ipRangeEnterDeleteMode=function(e){i.editIPRange=null,i.deleteIPRange=e},i.ipRangeCancelDelete=function(){i.deleteIPRange=null},i.ipRangeConfirmDelete=function(){e.deleteItem(i.deleteIPRange).then(function(){i.deleteIPRange=null})},i.ipRangeSort=function(e){return-1!==e.start_ip.indexOf(":")?r.ipv6Expand(e.start_ip):r.ipv4ToInteger(e.start_ip)},n.loadManagers(i,[e,t]).then(function(){i.loading=!1})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["IPRangesManager","UsersManager","ManagerHelperService","ConverterService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){return{restrict:"A",link:function(r,i,a){var o,s=function(){angular.isDefined(o)&&(e.cancel(o),o=void 0)},c=function(){var r=t.isConnected(),a=n._error;r&&!angular.isString(a)?(s(),i.removeClass("ng-hide")):angular.isString(a)?(s(),i.addClass("ng-hide")):r||(s(),o=e(function(){i.addClass("ng-hide")},500))};r.$watch(function(){return t.isConnected()},c),r.$watch(function(){return n._error},c),r.$on("$destroy",function(){s()})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$timeout","RegionConnection","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",link:function(e,t,n){t.bind("keydown keypress",function(t){13===t.which&&(e.$apply(function(){e.$eval(n.maasEnter)}),t.preventDefault())})}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",link:function(e,t,n){t.bind("keydown keypress",function(e){13===e.which&&(t.blur(),e.preventDefault())})}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",scope:{osInput:"@maasDefaultOsSelect",seriesInput:"@maasDefaultSeriesSelect"},link:function(e,t){var n=angular.element(t.find(e.osInput)),r=angular.element(t.find(e.seriesInput));if(!n||!r)throw new Error("Unable to find os or series elements");var i=function(e,t){var n=r.find("option"),i=!1;angular.forEach(n,function(n){var r=function(e,t,n){var r=!1,i=e.val(),a=i.split("/");return""===t?""===i?(e.removeClass("u-hide"),e.attr("selected","selected")):e.addClass("u-hide"):a[0]===t?(e.removeClass("u-hide"),""!==a[1]||n||(r=!0,e.attr("selected","selected"))):e.addClass("u-hide"),r}(angular.element(n),e,t);!1===i&&(i=r)}),t||i||function(e){var t=null;angular.forEach(e,function(e){(e=angular.element(e)).hasClass("u-hide")||null===t&&(t=e)}),null!==t&&r.val(t.val())}(n)};n.on("change",function(){i(n.val(),!1)}),i(n.val(),!0)}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",require:"ngModel",scope:{ngDisabled:"&",maasEditing:"&"},link:function(e,t,n,r){var i=function(){e.ngDisabled()?t.blur():e.$apply(e.maasEditing())};t.bind("focus",i);var a=function(){e.$apply(r.$setViewValue(t.text()))};t.bind("blur keyup change",a),r.$render=function(){t.html(r.$viewValue||"")},r.$viewChangeListeners.push(function(){e.$eval(n.ngChange)}),e.$on("$destroy",function(){t.unbind("blur keyup change",a),t.unbind("focus",i)})}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"A",scope:{maasCodeLines:"&"},link:function(e,t){e.$watch(e.maasCodeLines,function(){t.empty(),t.text(e.maasCodeLines);var n=t.html().split("\n"),r="<code>";angular.forEach(n,function(e){r+='<span class="code-line">'+e+"</span>"}),r+="</code>",t.html(r)})}}};t.default=r},function(e,t,n){"use strict";function r(e){return{restrict:"A",link:function(t,n,r){var i="<ng-include src=\"'"+("static/partials/cards/"+r.maasCardLoader+".html?v="+MAAS_config.files_version)+"'\"></ng-include>";n.html(i),e(n.contents())(t)}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$compile"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e){return t.$inject=["$scope"],{restrict:"E",scope:{},template:['<p class="page-header__status" ','data-ng-if="data.region_import_running">','<span class="u-text--loading">','<i class="p-icon--loading u-animation--spin"></i>',"Step 1/2: Region controller importing","</span>","</p>",'<p class="page-header__status" ','data-ng-if="!data.region_import_running && ','data.rack_import_running">','<span class="u-text--loading">','<i class="p-icon--loading u-animation--spin"></i>',"Step 2/2: Rack controller(s) importing","</span>","</p>"].join(""),controller:t};function t(t){t.data=e.getData()}}function i(e,t,n,r){return i.$inject=["$scope"],{restrict:"E",scope:{design:"=?"},templateUrl:"static/partials/boot-images.html?v="+MAAS_config.files_version,controller:i};function i(i){i.loading=!0,i.saving=!1,i.saved=!1,i.stopping=!1,i.design=i.design||"page",i.bootResources=t.getData(),i.ubuntuImages=[],i.source={isNew:!1,tooMany:!1,showingAdvanced:!1,connecting:!1,errorMessage:"",source_type:"maas.io",url:"",keyring_filename:"",keyring_data:"",releases:[],arches:[],selections:{changed:!1,releases:[],arches:[]}},i.ubuntuCoreImages=[],i.ubuntu_core={changed:!1,images:[]},i.otherImages=[],i.other={changed:!1,images:[]},i.generatedImages=[],i.customImages=[],i.ubuntuDeleteId=null,i.removingImage=null,i.isSuperUser=function(){return n.isSuperUser()},i.getTitleIcon=function(){return 0===i.bootResources.resources.length?"p-icon--success-muted":"p-icon--success"},i.showMirrorPath=function(){return"custom"===i.source.source_type},i.isShowingAdvancedOptions=function(){return i.source.showingAdvanced},i.toggleAdvancedOptions=function(){i.source.showingAdvanced=!i.source.showingAdvanced},i.bothKeyringOptionsSet=function(){return i.source.keyring_filename.length>0&&i.source.keyring_data.length>0},i.showConnectButton=function(){return i.source.isNew},i.sourceChanged=function(){var e=i.bootResources.ubuntu.sources;if(0===e.length)i.source.isNew=!0;else{var t=i.source.isNew;i.source.isNew=i.source.source_type!==e[0].source_type,"custom"===i.source.source_type&&(i.source.isNew=i.source.isNew||i.source.url!==e[0].url),t&&!i.source.isNew&&(i.source.url=e[0].url,i.source.keyring_filename=e[0].keyring_filename,i.source.keyring_data=e[0].keyring_data),i.source.releases=[],i.source.arches=[],i.source.selections={changed:!1,releases:[],arches:[]}}i.updateSource(),i.regenerateUbuntuImages(),i.source.isNew&&"maas.io"===i.source.source_type&&i.connect()},i.isConnectButtonDisabled=function(){return"maas.io"!==i.source.source_type&&(i.bothKeyringOptionsSet()||0===i.source.url.length||i.source.connecting)},i.getSourceParams=function(){return"maas.io"===i.source.source_type?{source_type:"maas.io"}:{source_type:i.source.source_type,url:i.source.url,keyring_filename:i.source.keyring_filename,keyring_data:i.source.keyring_data}},i.selectDefaults=function(){angular.forEach(i.source.releases,function(e){"bionic"===e.name&&i.source.selections.releases.push(e)}),angular.forEach(i.source.arches,function(e){"amd64"===e.name&&i.source.selections.arches.push(e)})},i.connect=function(){if(!i.isConnectButtonDisabled()){var e=i.getSourceParams();i.source.connecting=!0,i.source.releases=[],i.source.arches=[],i.source.selections.changed=!0,i.source.selections.releases=[],i.source.selections.arches=[],i.regenerateUbuntuImages(),t.fetch(e).then(function(e){i.source.connecting=!1,e=angular.fromJson(e),i.source.releases=e.releases,i.source.arches=e.arches,i.selectDefaults(),i.regenerateUbuntuImages()},function(e){i.source.connecting=!1,i.source.errorMessage=e})}},i.showConnectBlock=function(){return i.source.tooMany||i.source.isNew&&!i.showSelections()},i.showSelections=function(){return i.source.releases.length>0&&i.source.arches.length>0},i.getUbuntuLTSReleases=function(){var e=i.bootResources.ubuntu.releases;i.source.isNew&&(e=i.source.releases);var t=[];return angular.forEach(e,function(e){e.deleted||-1===e.title.indexOf("LTS")||t.push(e)}),t},i.getUbuntuNonLTSReleases=function(){var e=i.bootResources.ubuntu.releases;i.source.isNew&&(e=i.source.releases);var t=[];return angular.forEach(e,function(e){e.deleted||-1!==e.title.indexOf("LTS")||t.push(e)}),t},i.getArchitectures=function(){var e=i.bootResources.ubuntu.arches;i.source.isNew&&(e=i.source.arches);var t=[];return angular.forEach(e,function(e){e.deleted||t.push(e)}),t},i.isSelected=function(e,t){return i.source.selections[e].indexOf(t)>=0},i.toggleSelection=function(e,t){var n=i.source.selections[e].indexOf(t);-1===n?i.source.selections[e].push(t):i.source.selections[e].splice(n,1),i.source.selections.changed=!0,i.regenerateUbuntuImages()},i.showImagesTable=function(){return i.ubuntuImages.length>0||i.source.arches.length>0&&i.source.releases.length>0},i.regenerateUbuntuImages=function(){var e=function(){return null},t=i.bootResources.resources.filter(function(e){var t=e.name.split("/")[0];return 0===e.rtype&&"ubuntu"===t});i.source.isNew||(e=function(e,n){var r;for(r=0;r<t.length;r++){var i=t[r];if(i.name.split("/")[1]===e&&i.arch===n)return t.splice(r,1),i}return null}),i.ubuntuImages.length=0,angular.forEach(i.source.selections.releases,function(t){angular.forEach(i.source.selections.arches,function(n){var r={icon:"p-icon--status-queued",title:t.title,arch:n.title,size:"-",status:"Selected for download",beingDeleted:!1,name:t.name},a=e(t.name,n.name);angular.isObject(a)&&(r.resourceId=a.id,r.icon="p-icon--status-"+a.icon,r.size=a.size,r.status=a.status,a.downloading&&(r.icon+=" u-animation--pulse")),i.ubuntuImages.push(r)})}),i.source.isNew||angular.forEach(t,function(e){var t=e.name.split("/"),n={icon:"p-icon--status-failed",title:e.title,arch:e.arch,size:e.size,status:"Will be deleted",beingDeleted:!0,name:t[1]};i.ubuntuImages.push(n)})},i.regenerateUbuntuCoreImages=function(){var e=i.bootResources.resources.filter(function(e){var t=e.name.split("/")[0];return 0===e.rtype&&"ubuntu-core"===t});i.ubuntuCoreImages.length=0,angular.forEach(i.ubuntu_core.images,function(t){if(t.checked){var n=t.name.split("/"),r={icon:"p-icon--status-queued",title:t.title,arch:n[1],size:"-",status:"Selected for download",beingDeleted:!1},a=function(t,n){var r;for(r=0;r<e.length;r++){var i=e[r];if(i.name.split("/")[1]===t&&i.arch===n)return e.splice(r,1),i}return null}(n[3],n[1]);angular.isObject(a)&&(r.icon="p-icon--status-"+a.icon,r.size=a.size,r.status=a.status,a.downloading&&(r.icon+=" u-animation--pulse")),i.ubuntuCoreImages.push(r)}}),angular.forEach(e,function(e){var t={icon:"p-icon--status-failed",title:e.title,arch:e.arch,size:e.size,status:"Will be deleted",beingDeleted:!0};i.ubuntuCoreImages.push(t)})},i.regenerateOtherImages=function(){var e=i.bootResources.resources.filter(function(e){var t=e.name.split("/")[0];return 0===e.rtype&&"ubuntu"!==t&&"ubuntu-core"!==t&&"custom"!==t});i.otherImages.length=0,angular.forEach(i.other.images,function(t){if(t.checked){var n=t.name.split("/"),r={icon:"p-icon--status-queued",title:t.title,arch:n[1],size:"-",status:"Selected for download",beingDeleted:!1},a=function(t,n){var r;for(r=0;r<e.length;r++){var i=e[r];if(i.name.split("/")[1]===t&&i.arch===n)return e.splice(r,1),i}return null}(n[3],n[1]);angular.isObject(a)&&(r.icon="p-icon--status-"+a.icon,r.size=a.size,r.status=a.status,a.downloading&&(r.icon+=" u-animation--pulse")),i.otherImages.push(r)}}),angular.forEach(e,function(e){var t={icon:"p-icon--status-failed",title:e.title,arch:e.arch,size:e.size,status:"Will be deleted",beingDeleted:!0};i.otherImages.push(t)})},i._regenerateImages=function(e,t){t.length=0,angular.forEach(i.bootResources.resources,function(n){if(n.rtype===e){var r={icon:"p-icon--status-"+n.icon,title:n.title,arch:n.arch,image_id:n.id,size:n.size,status:n.status};n.downloading&&(r.icon+=" u-animation--pulse"),t.push(r)}})},i.regenerateGeneratedImages=function(){i._regenerateImages(1,i.generatedImages)},i.regenerateCustomImages=function(){i._regenerateImages(2,i.customImages)},i.ltsIsSelected=function(){var e;for(e=0;e<i.ubuntuImages.length;e++){if(!i.ubuntuImages[e].beingDeleted&&i.ubuntuImages[e].title.indexOf("LTS")>=0)if(parseInt(i.ubuntuImages[e].title.split(".")[0],10)>=14)return!0}return!1},i.commissioningSeriesSelected=function(){var e;for(e=0;e<i.ubuntuImages.length;e++)if(!i.ubuntuImages[e].beingDeleted&&i.ubuntuImages[e].name===i.bootResources.ubuntu.commissioning_series)return!0;return!1},i.isShowingDeleteConfirm=function(e){return e===i.removingImage},i.quickRemove=function(e){i.removingImage=e},i.cancelRemove=function(){i.removingImage=null},i.confirmRemove=function(e){e===i.removingImage&&t.deleteImage({id:e.image_id}),i.cancelRemove()},i.showStopImportButton=function(){return i.bootResources.region_import_running},i.showSaveSelection=function(){return i.showImagesTable()},i.canSaveSelection=function(){var e,t=!1,n=0;for(e=0;e<i.ubuntuImages.length;e++)i.ubuntuImages[e].name===i.bootResources.ubuntu.commissioning_series&&n++;for(e=0;e<i.ubuntuImages.length;e++)if(i.ubuntuImages[e].beingDeleted&&i.ubuntuImages[e].name===i.bootResources.ubuntu.commissioning_series&&1===n){t=!0;break}return!t&&!i.saving&&!i.stopping&&i.ltsIsSelected()},i.getSaveSelectionText=function(){return i.saving?"Saving...":i.saved?"Selection updated":"Update selection"},i.canStopImport=function(){return!i.saving&&!i.stopping},i.getStopImportText=function(){return i.stopping?"Stopping...":"Stop import"},i.stopImport=function(){i.canStopImport()&&(i.stopping=!0,t.stopImport().then(function(){i.stopping=!1}))},i.saveSelection=function(){if(i.canSaveSelection()){var e=i.getSourceParams();e.releases=i.source.selections.releases.map(function(e){return e.name}),e.arches=i.source.selections.arches.map(function(e){return e.name}),i.saving=!0,t.saveUbuntu(e).then(function(){i.saving=!1,i.source.isNew=!1,i.source.selections.changed=!1,i.savedTimeout(),i.updateSource()})}},i.savedTimeout=function(){i.saved=!0,e(function(){return i.saved=!1},3e3)},i.getNewSelections=function(e,t){var n=[];return angular.forEach(e,function(e){angular.forEach(t,function(t){e.name===t.name&&n.push(e)})}),n},i.updateSource=function(){if(!i.source.isNew){var e=i.bootResources.ubuntu.sources.length;if(0===e)i.source.isNew=!0,i.source.source_type="custom",i.source.errorMessage="Currently no source exists.";else if(1===e){var t=i.bootResources.ubuntu.sources[0];i.source.source_type=t.source_type,"maas.io"===t.source_type?(i.source.url="",i.source.keyring_filename="",i.source.keyring_data=""):(i.source.url=t.url,i.source.keyring_filename=t.keyring_filename,i.source.keyring_data=t.keyring_data),i.source.releases=i.bootResources.ubuntu.releases,i.source.arches=i.bootResources.ubuntu.arches,i.source.selections.changed?(i.source.selections.releases=i.getNewSelections(i.source.releases,i.source.selections.releases),i.source.selections.arches=i.getNewSelections(i.source.arches,i.source.selections.arches)):(i.source.selections.releases=i.source.releases.filter(function(e){return e.checked}),i.source.selections.arches=i.source.arches.filter(function(e){return e.checked})),i.regenerateUbuntuImages()}else i.source.tooMany=!0,i.source.releases=i.bootResources.ubuntu.releases,i.source.arches=i.bootResources.ubuntu.arches,i.source.selections.releases=i.source.releases.filter(function(e){return e.checked}),i.source.selections.arches=i.source.arches.filter(function(e){return e.checked}),i.source.errorMessage="More than one image source exists. UI does not support modification of sources when more than one has been defined. Used the API to adjust your sources.",i.regenerateUbuntuImages()}},i.toggleUbuntuCoreSelection=function(e){i.ubuntu_core.changed=!0,e.checked=!e.checked,i.regenerateUbuntuCoreImages()},i.saveUbuntuCoreSelection=function(){var e={images:i.ubuntu_core.images.filter(function(e){return e.checked}).map(function(e){return e.name})};i.saving=!0,t.saveUbuntuCore(e).then(function(){i.saving=!1})},i.toggleOtherSelection=function(e){i.other.changed=!0,e.checked=!e.checked,i.regenerateOtherImages()},i.saveOtherSelection=function(){var e={images:i.other.images.filter(function(e){return e.checked}).map(function(e){return e.name})};i.saving=!0,t.saveOther(e).then(function(){i.saving=!1})},i.canBeRemoved=function(e){if(!angular.isNumber(e.resourceId))return!1;var t,n=i.bootResources.ubuntu.releases,r=i.bootResources.ubuntu.arches;for(t=0;t<n.length;t++){var a=n[t];if(a.deleted&&e.title===a.title)return!0}for(t=0;t<r.length;t++){var o=r[t];if(o.deleted&&e.arch===o.name)return!0}return!1},i.deleteImage=function(e){angular.isObject(e)?i.ubuntuDeleteId=e.resourceId:i.ubuntuDeleteId=null},i.confirmDeleteImage=function(){t.deleteImage({id:i.ubuntuDeleteId}),i.ubuntuDeleteId=null};var a=2;t.startPolling().then(function(){0===(a-=1)&&(i.loading=!1)}),r.loadManager(i,n).then(function(){0===(a-=1)&&(i.loading=!1)}),i.$watch("bootResources.ubuntu",function(){angular.isObject(i.bootResources.ubuntu)&&i.updateSource()}),i.$watch("bootResources.resources",function(){angular.isArray(i.bootResources.resources)&&(i.regenerateUbuntuImages(),i.regenerateUbuntuCoreImages(),i.regenerateOtherImages(),i.regenerateGeneratedImages(),i.regenerateCustomImages())}),i.$watch("bootResources.ubuntu_core_images",function(){var e=i.bootResources.ubuntu_core_images;angular.isArray(e)&&(i.ubuntu_core.changed||(i.ubuntu_core.images=e),i.regenerateUbuntuCoreImages())}),i.$watch("bootResources.other_images",function(){angular.isArray(i.bootResources.other_images)&&(i.other.changed||(i.other.images=i.bootResources.other_images),i.regenerateOtherImages())}),i.$on("$destroy",function(){t.stopPolling()})}}Object.defineProperty(t,"__esModule",{value:!0}),t.maasBootImagesStatus=r,t.maasBootImages=i,i.$inject=["$timeout","BootResourcesManager","UsersManager","ManagerHelperService"],r.$inject=["BootResourcesManager"]},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"C",link:function(e,t){var n=function(e){var t=e.data.tab;angular.element(t).toggleClass("is-selected")},r=t.find(".maas-accordion-tab");angular.forEach(r,function(e){(e=angular.element(e)).on("click",{tab:e},n)}),e.$on("$destroy",function(){angular.forEach(r,function(e){angular.element(e).off("click",n)})})}}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"E",scope:!0,templateUrl:"".concat("static/partials/nodelist/add-machine.html","?v=").concat(MAAS_config.files_version)}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(68);function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=[],r=!0,i=!1,a=void 0;try{for(var o,s=e[Symbol.iterator]();!(r=(o=s.next()).done)&&(n.push(o.value),!t||n.length!==t);r=!0);}catch(e){i=!0,a=e}finally{try{r||null==s.return||s.return()}finally{if(i)throw a}}return n}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function a(e){return function(e){if(Array.isArray(e)){for(var t=0,n=new Array(e.length);t<e.length;t++)n[t]=e[t];return n}}(e)||function(e){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e))return Array.from(e)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}function o(e,t,n,o,s,c,u,l){return f.$inject=["$scope"],{restrict:"E",scope:{loading:"<",search:"=",groupByLabel:"=",actionOption:"=",ngDisabled:"&",machineHasError:"&",hideActions:"=?",onListingChange:"&",onCheckAll:"&",onCheck:"=",pools:"=",zones:"=",hideFailedTests:"<",metadata:"="},templateUrl:"static/partials/machines-table.html?v="+u.MAAS_config.files_version,link:function(e){e.clickHandler=function(t){var n=t.target.classList||[],r=t.target.parentNode.classList||[];n.contains("p-table-menu__toggle")||n.contains("p-double-row__icon-container")||r.contains("p-table-menu__dropdown")||r.contains("p-double-row__icon-container")||e.$apply(e.closeMenu)},c.on("click",e.clickHandler),e.$on("$destroy",function(){return c.off("click",e.clickHandler)})},controller:f};function f(c){var u=[r.NodeStatus.COMMISSIONING,r.NodeStatus.DEPLOYING,r.NodeStatus.RELEASING,r.NodeStatus.DISK_ERASING,r.NodeStatus.ENTERING_RESCUE_MODE,r.NodeStatus.EXITING_RESCUE_MODE,r.NodeStatus.TESTING];angular.isDefined(c.loading)&&(e.clear(),c.metadata=e.getMetadata());var f=e.getItems();c.table={column:"fqdn",predicate:"fqdn",reverse:!1,allViewableChecked:!1,machines:f,filteredMachines:f,osinfo:o.getData("osinfo"),machineActions:o.getData("machine_actions")},c.statusMenuActions=["commission","acquire","deploy","release","abort","test","rescue-mode","exit-rescue-mode","mark-broken","mark-fixed","override-failed-testing","lock","unlock"],c.openMenu="",c.closedGroups=[],c.groupBy=function(e,t){var n=new Map;return e.forEach(function(e){var r=t(e),i=n.get(r);i?i.push(e):n.set(r,[e])}),n},c.getActionSentence=function(e,t){var n="machine";switch(t&&t.hostname&&(n=t.hostname),e){case"abort":return"abort current action of ".concat(n);case"acquire":return"acquire ".concat(n);case"check":return"check power state of ".concat(n);case"commission":return"commission ".concat(n);case"deploy":return"deploy ".concat(n);case"exit-rescue-mode":return"exit rescue mode of ".concat(n);case"lock":return"lock ".concat(n);case"mark-broken":return"mark ".concat(n," as broken");case"mark-fixed":return"mark ".concat(n," as fixed");case"off":return"power off ".concat(n);case"on":return"power on ".concat(n);case"override-failed-testing":return"override failed testing of ".concat(n);case"release":return"release ".concat(n);case"rescue-mode":return"enter rescue mode of ".concat(n);case"set-pool":return"set pool of ".concat(n);case"set-zone":return"set zone of ".concat(n);case"test":return"test ".concat(n);case"unlock":return"unlock ".concat(n);default:return"perform action"}},c.updateAllChecked=function(){if(c.table.filteredMachines&&0===c.table.filteredMachines.length)c.table.allViewableChecked=!1;else{var e;for(e=0;e<c.table.filteredMachines.length;e++)if(!c.table.filteredMachines[e].$selected)return void(c.table.allViewableChecked=!1);c.table.allViewableChecked=!0}},c.toggleCheckAll=function(){c.table.allViewableChecked?angular.forEach(c.table.filteredMachines,function(t){e.unselectItem(t.system_id)}):angular.forEach(c.table.filteredMachines,function(t){e.selectItem(t.system_id)}),c.updateFilteredMachines(),c.updateAllChecked(),c.onCheckAll()},c.toggleChecked=function(t){e.isSelected(t.system_id)?e.unselectItem(t.system_id):e.selectItem(t.system_id),c.updateFilteredMachines(),c.updateAllChecked()},c.toggleCheckGroup=function(t){var n=c.groupedMachines.find(function(e){return e.label===t});c.getGroupSelectedState(t)?n.machines.forEach(function(t){e.unselectItem(t.system_id)}):n.machines.forEach(function(t){e.selectItem(t.system_id)}),c.updateFilteredMachines(),c.updateAllChecked()},c.toggleOpenGroup=function(e){c.closedGroups.includes(e)?c.closedGroups=c.closedGroups.filter(function(t){return t!==e}):c.closedGroups=[].concat(a(c.closedGroups),[e])},c.sortTable=function(e){c.table.predicate=e,c.table.reverse=!c.table.reverse},c.selectColumnOrSort=function(e){c.table.column!==e?c.table.column=e:c.sortTable(e)},c.showSpinner=function(e){return u.indexOf(e.status_code)>-1},c.showFailedTestWarning=function(e){if(c.showSpinner(e))return!1;switch(e.status_code){case r.NodeStatus.NEW:case r.NodeStatus.COMMISSIONING:case r.NodeStatus.FAILED_COMMISSIONING:case r.NodeStatus.TESTING:case r.NodeStatus.FAILED_TESTING:return!1}switch(e.testing_status){case-1:case 2:return!1}return!0},c.showNodeStatus=function(e){return!c.showSpinner(e)&&!c.showFailedTestWarning(e)&&-1!==e.other_test_status&&2!==e.other_test_status},c.getReleaseTitle=function(e){if(angular.isArray(c.table.osinfo.releases))for(var t=0;t<c.table.osinfo.releases.length;t++){var n=c.table.osinfo.releases[t];if(n[0]===e)return n[1]}return e},c.getStatusText=function(e){if(-1===["Deploying","Deployed"].indexOf(e.status))return e.status;var t=c.getReleaseTitle(e.osystem+"/"+e.distro_series);return"ubuntu"===e.osystem&&(t=t.split('"')[0].trim()),"Deployed"===e.status?t:"Deploying"===e.status?e.status+" "+t:void 0},c.getStatusMessage=function(e){return[1,9,12,14,17,19,21].indexOf(e.status_code)>=0?e.status_message:""},c.getSpacesTooltipMessage=function(e){var t="";return e.length>1&&e.forEach(function(n,r){t+=n,r!==e.length-1&&(t+="\n")}),t},c.getGroupSelectedState=function(e){return!c.groupedMachines.find(function(t){return t.label===e}).machines.some(function(e){return!e.$selected})},c.getGroupCountString=function(e){var t=c.groupedMachines.find(function(t){return t.label===e}),n=t.machines.length,r=t.machines.filter(function(e){return e.$selected}).length,i="".concat(n," ").concat(1===n?"machine":"machines");return r&&r===n?"".concat(i," selected"):"".concat(i).concat(r?", ".concat(r," selected"):"")},c.updateGroupedMachines=function(e){if("status"!==e)if("owner"!==e)c.groupedMachines=[{label:"none",machines:c.table.filteredMachines}];else{var t=c.groupBy(c.table.filteredMachines,function(e){return e.owner}),n=Array.from(t).map(function(e){var t=i(e,2),n=t[0],r=t[1];return""==n&&(n="No owner"),{label:n,machines:r}});c.groupedMachines=n}else{var o=c.groupBy(c.table.filteredMachines,function(e){return e.status_code});c.groupedMachines=[{label:"Failed",machines:[].concat(a(o.get(r.NodeStatus.FAILED_COMMISSIONING)||[]),a(o.get(r.NodeStatus.FAILED_DEPLOYMENT)||[]),a(o.get(r.NodeStatus.FAILED_RELEASING)||[]),a(o.get(r.NodeStatus.FAILED_DISK_ERASING)||[]),a(o.get(r.NodeStatus.FAILED_ENTERING_RESCUE_MODE)||[]),a(o.get(r.NodeStatus.FAILED_EXITING_RESCUE_MODE)||[]),a(o.get(r.NodeStatus.FAILED_TESTING)||[]))},{label:"New",machines:a(o.get(r.NodeStatus.NEW)||[])},{label:"Commissioning",machines:a(o.get(r.NodeStatus.COMMISSIONING)||[])},{label:"Testing",machines:a(o.get(r.NodeStatus.TESTING)||[])},{label:"Ready",machines:a(o.get(r.NodeStatus.READY)||[])},{label:"Allocated",machines:a(o.get(r.NodeStatus.ALLOCATED)||[])},{label:"Deploying",machines:a(o.get(r.NodeStatus.DEPLOYING)||[])},{label:"Deployed",machines:a(o.get(r.NodeStatus.DEPLOYED)||[])},{label:"Rescue mode",machines:[].concat(a(o.get(r.NodeStatus.RESCUE_MODE)||[]),a(o.get(r.NodeStatus.ENTERING_RESCUE_MODE)||[]),a(o.get(r.NodeStatus.EXITING_RESCUE_MODE)||[]))},{label:"Releasing",machines:[].concat(a(o.get(r.NodeStatus.RELEASING)||[]),a(o.get(r.NodeStatus.DISK_ERASING)||[]))},{label:"Broken",machines:a(o.get(r.NodeStatus.BROKEN)||[])},{label:"Other",machines:[].concat(a(o.get(r.NodeStatus.RETIRED)||[]),a(o.get(r.NodeStatus.MISSING)||[]),a(o.get(r.NodeStatus.RESERVED)||[]))}]}},c.updateFilteredMachines=function(){c.table.filteredMachines=s("nodesFilter")(c.table.machines,c.search)},c.$watchCollection("table.filteredMachines",function(){c.updateAllChecked(),c.onListingChange({$machines:c.table.filteredMachines}),c.updateGroupedMachines(c.groupByLabel)}),c.$watch("groupByLabel",function(){c.updateGroupedMachines(c.groupByLabel)}),c.$watch("search",c.updateFilteredMachines),c.$watch(function(e){return e.table.machines.map(function(e){return{id:e.id,status:e.status,state:e.power_state}})},function(e,t){e.forEach(function(e){var n=t.find(function(t){return t.id===e.id})||{};e.state!==n.state&&(c.table.machines.find(function(t){return t.id===e.id}).powerTransition=void 0),e.status===n.status||"none"===c.groupByLabel||c.loading||c.updateGroupedMachines(c.groupByLabel)})},!0),c.formatMemoryUnit=function(e){return{value:parseFloat(e).toString(),unit:"GiB"}},c.formatStorageUnit=function(e){var t=parseFloat(e);return t<1e3?{value:Number(t.toPrecision(3)).toString(),unit:"GB"}:{value:Number((t/1e3).toPrecision(3)).toString(),unit:"TB"}},c.getCheckboxClass=function(e){return c.actionOption?e.$selected&&e.actions.indexOf(c.actionOption.name)>-1?"actionable":"not-actionable":""},c.getAllCheckboxClass=function(e){if(e&&c.actionOption){for(var t=0;t<e.length;t++)if(-1===e[t].actions.indexOf(c.actionOption.name))return"not-actionable";return"actionable"}return""},c.getBootIp=function(e){for(var t=0;t<e.length;t++)if(e[t].is_boot)return e[t].ip;return!1},c.removeDuplicates=function(e,t){if(angular.isArray(e))return e.filter(function(e,n,r){return r.map(function(e){return e[t]}).indexOf(e[t])===n})},c.changePowerState=function(t,n){c.closeMenu(),t.powerTransition=!0,"check"===n?e.checkPowerState(t).then(function(){t.action_failed=!1,t.powerTransition=void 0},function(e){c.createErrorNotification(t,n,e),t.action_failed=!0,t.powerTransition=void 0}):e.performAction(t,n).then(function(){t.action_failed=!1},function(e){c.createErrorNotification(t,n,e),t.action_failed=!0,t.powerTransition=void 0})},c.performAction=function(t,n,r){c.closeMenu(),t["".concat(n,"-transition")]=!0,angular.isObject(r)||(r={}),e.performAction(t,n,r).then(function(){t.action_failed=!1},function(e){c.createErrorNotification(t,n,e),t.action_failed=!0,t["".concat(n,"-transition")]=void 0})},c.getActionTitle=function(e){var t=c.table,n=t.machineActions,r=t.osinfo;if("deploy"===e&&r){var i=r.osystems,a=r.releases,o=r.default_osystem,s=r.default_release,u=i&&i.find(function(e){return e[0]===o}),l=a&&a.find(function(e){return e[0]==="".concat(o,"/").concat(s)});return u&&l?"Deploy ".concat(u[1]," ").concat(l[1],"..."):"Deploy ".concat(o,"/").concat(s,"...")}if(n.length)return n.find(function(t){return t.name===e}).title},c.getStatusActions=function(e){return c.statusMenuActions.filter(function(t){return e.actions.includes(t)})},c.toggleMenu=function(e){c.openMenu=c.openMenu===e?"":e},c.closeMenu=function(){return c.openMenu=""},c.getArchitectureText=function(e){return e.includes("/generic")?e.split("/")[0]:e},c.createErrorNotification=function(e,r,i){var a=n.getAuthUser();angular.isObject(a)?t.createItem({message:"Unable to ".concat(c.getActionSentence(r,e),": ").concat(i),category:"error",user:a.id}):l.error(i)}}}o.$inject=["MachinesManager","NotificationsManager","UsersManager","GeneralManager","$filter","$document","$window","$log"];var s=o;t.default=s},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"E",templateUrl:"".concat("static/partials/nodedetails/storage/datastores.html","?v=").concat(MAAS_config.files_version)}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"E",templateUrl:"".concat("static/partials/nodedetails/storage/filesystems.html","?v=").concat(MAAS_config.files_version)}};t.default=r},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=function(){return{restrict:"E",templateUrl:"".concat("static/partials/nodedetails/storage/disks-partitions.html","?v=").concat(MAAS_config.files_version)}};t.default=r},function(e,t,n){"use strict";function r(e,t,n,r,i){t.title="Zones",t.page="zones",e.zoneManager=n,e.zones=n.getItems(),e.currentpage="zones",e.predicate="name",e.reverse=!1,e.loading=!0,e.action={open:!1,obj:{}},e.addZone=function(){e.action.open=!0},e.closeZone=function(){e.action.open=!1,e.action.obj={}},e.isSuperUser=function(){return r.isSuperUser()},i.loadManagers(e,[n,r]).then(function(){e.loading=!1})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","ZonesManager","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s){function c(n){e.zone=n,e.loaded=!0,t.title=e.zone.name}t.title="Loading...",t.page="zones",e.loaded=!1,e.zone=null,e.zoneManager=i,e.editSummary=!1,e.predicate="name",e.reverse=!1,e.enterEditSummary=function(){e.editSummary=!0},e.exitEditSummary=function(){e.editSummary=!1},e.isSuperUser=function(){return a.isSuperUser()},e.isDefaultZone=function(){return!!angular.isObject(e.zone)&&1===e.zone.id},e.canBeDeleted=function(){return!!angular.isObject(e.zone)&&0!==e.zone.id},e.deleteButton=function(){e.error=null,e.confirmingDelete=!0},e.cancelDeleteButton=function(){e.confirmingDelete=!1},e.deleteConfirmButton=function(){i.deleteItem(e.zone).then(function(){e.confirmingDelete=!1,r.path("/zones")},function(t){e.error=o.parseValidationError(t)})},o.loadManagers(e,[i,a]).then(function(){var e=i.getActiveItem(),t=parseInt(n.zone_id,10);isNaN(t)?s.raiseError("Invalid zone identifier."):angular.isObject(e)&&e.id===t?c(e):i.setActiveItem(t).then(function(e){c(e)},function(e){s.raiseError(e)})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$location","ZonesManager","UsersManager","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l,f){function d(n){e.space=n,t.title=e.space.name,e.predicate="[subnet_name, vlan_name]",e.$watch("subnets",h,!0),h(),e.loaded=!0}function h(){var t=[];angular.forEach(r("filter")(e.subnets,{space:e.space.id},!0),function(e){var n=o.getItemFromList(e.vlan),r=c.getItemFromList(n.fabric),i={vlan:n,vlan_name:o.getName(n),subnet:e,subnet_name:s.getName(e),fabric:r,fabric_name:r.name};t.push(i)}),e.rows=t}t.title="Loading...",t.page="networks",e.space=null,e.spaceManager=a,e.subnets=s.getItems(),e.loaded=!1,e.editSummary=!1,e.isSuperUser=function(){return u.isSuperUser()},e.enterEditSummary=function(){e.editSummary=!0},e.exitEditSummary=function(){e.editSummary=!1},e.isDefaultSpace=function(){return!!angular.isObject(e.space)&&0===e.space.id},e.canBeDeleted=function(){return!!angular.isObject(e.space)&&0===e.space.subnet_ids.length},e.deleteButton=function(){e.error=null,e.confirmingDelete=!0},e.cancelDeleteButton=function(){e.confirmingDelete=!1},e.deleteConfirmButton=function(){a.deleteSpace(e.space).then(function(){e.confirmingDelete=!1,i.path("/networks"),i.search("by","space")},function(t){e.error=l.parseValidationError(t)})},l.loadManagers(e,[a,s,o,c,u]).then(function(){var e=a.getActiveItem(),t=parseInt(n.space_id,10);isNaN(t)?f.raiseError("Invalid space identifier."):angular.isObject(e)&&e.id===t?d(e):a.setActiveItem(t).then(function(e){d(e)},function(e){f.raiseError(e)})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$filter","$location","SpacesManager","VLANsManager","SubnetsManager","FabricsManager","UsersManager","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l){t.title="Loading...",t.page="settings",e.loading=!0,e.snippetsManager=i,e.snippets=i.getItems(),e.subnets=c.getItems(),e.machines=a.getItems(),e.devices=s.getItems(),e.controllers=o.getItems(),e.known_architectures=u.getData("known_architectures"),e.pockets_to_disable=u.getData("pockets_to_disable"),e.components_to_disable=u.getData("components_to_disable"),e.packageRepositoriesManager=r,e.repositories=r.getItems(),e.newSnippet=null,e.editSnippet=null,e.deleteSnippet=null,e.snippetTypes=["Global","Subnet","Node"],e.newRepository=null,e.editRepository=null,e.deleteRepository=null,e.repositoryEnabledToggle=function(e){r.updateItem(e)},e.repositoryEnterRemove=function(t){e.newRepository=null,e.editRepository=null,e.deleteRepository=t},e.repositoryExitRemove=function(){e.deleteRepository=null},e.repositoryConfirmRemove=function(){r.deleteItem(e.deleteRepository).then(function(){e.repositoryExitRemove()})},e.isPPA=function(e){return!!angular.isObject(e)&&(!!angular.isString(e.url)&&(0===e.url.indexOf("ppa:")||e.url.indexOf("ppa.launchpad.net")>-1))},e.isMirror=function(e){return!!angular.isObject(e)&&(!!angular.isString(e.name)&&("main_archive"===e.name||"ports_archive"===e.name))},e.repositoryEnterEdit=function(t){e.newRepository=null,e.deleteRepository=null,e.editRepository=t},e.repositoryExitEdit=function(){e.editRepository=null},e.repositoryAdd=function(t){var n={name:"",enabled:!0,url:"",key:"",arches:["i386","amd64"],distributions:[],components:[]};t&&(n.url="ppa:"),e.newRepository=n},e.repositoryAddCancel=function(){e.newRepository=null},e.getSubnetName=function(e){return c.getName(e)},e.getSnippetTypeText=function(e){return angular.isString(e.node)?"Node":angular.isNumber(e.subnet)?"Subnet":"Global"},e.getSnippetAppliesToObject=function(e){return angular.isString(e.node)?(t=e.node,n=a.getItemFromList(t),angular.isObject(n)?n:(n=s.getItemFromList(t),angular.isObject(n)?n:(n=o.getItemFromList(t),angular.isObject(n)?n:void 0))):angular.isNumber(e.subnet)?c.getItemFromList(e.subnet):void 0;var t,n},e.getSnippetAppliesToText=function(t){var n=e.getSnippetAppliesToObject(t);return angular.isString(t.node)&&angular.isObject(n)?n.fqdn:angular.isNumber(t.subnet)&&angular.isObject(n)?c.getName(n):""},e.snippetEnterRemove=function(t){e.newSnippet=null,e.editSnippet=null,e.deleteSnippet=t},e.snippetExitRemove=function(){e.deleteSnippet=null},e.snippetConfirmRemove=function(){i.deleteItem(e.deleteSnippet).then(function(){e.snippetExitRemove()})},e.snippetEnterEdit=function(t){e.newSnippet=null,e.deleteSnippet=null,e.editSnippet=t,e.editSnippet.type=e.getSnippetTypeText(t)},e.snippetExitEdit=function(){e.editSnippet=null},e.snippetToggle=function(e){i.updateItem(e).then(null,function(t){e.enabled=!e.enabled,console.log(t)})},e.snippetAdd=function(){e.editSnippet=null,e.deleteSnippet=null,e.newSnippet={name:"",type:"Global",enabled:!0}},e.snippetAddCancel=function(){e.newSnippet=null},"dhcp"===n.section?(t.title="DHCP snippets",e.currentpage="dhcp"):"repositories"===n.section&&(t.title="Package repositories",e.currentpage="repositories"),l.loadManagers(e,[r,i,a,s,o,c,u]).then(function(){e.loading=!1})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","PackageRepositoriesManager","DHCPSnippetsManager","MachinesManager","ControllersManager","DevicesManager","SubnetsManager","GeneralManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){e.loading=!0,n.loadManager(e,t).then(function(){e.loading=!1})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s){function c(){if(0!==e.pods.length){var t;for(t=0;t<e.pods.length;t++)if(!e.pods[t].$selected)return void(e.allViewableChecked=!1);e.allViewableChecked=!0}else e.allViewableChecked=!1}function u(){f(),e.action.option=null}function l(){0===e.selectedItems.length&&(u(),e.action.option&&(e.action.option=null))}function f(){var t=e.action.progress;t.completed=t.total=t.errors=0,angular.forEach(e.pods,function(e){delete e.action_failed})}function d(){e.hasActionsFailed()?(angular.forEach(e.pods,function(e){!1===e.action_failed&&n.unselectItem(e.id)}),l()):e.hasActionsInProgress()||u()}t.title="Pods",t.page="pods",e.podManager=n,e.pods=n.getItems(),e.loading=!0,e.filteredItems=[],e.selectedItems=n.getSelectedItems(),e.predicate="name",e.allViewableChecked=!1,e.action={option:null,options:[{name:"refresh",title:"Refresh",sentence:"refresh",operation:angular.bind(n,n.refresh)},{name:"delete",title:"Delete",sentence:"delete",operation:angular.bind(n,n.deleteItem)}],progress:{total:0,completed:0,errors:0}},e.add={open:!1,obj:{cpu_over_commit_ratio:1,memory_over_commit_ratio:1}},e.powerTypes=i.getData("power_types"),e.zones=a.getItems(),e.pools=s.getItems(),e.toggleChecked=function(e){n.isSelected(e.id)?n.unselectItem(e.id):n.selectItem(e.id),c(),l()},e.toggleCheckAll=function(){e.allViewableChecked?angular.forEach(e.pods,function(e){n.unselectItem(e.id)}):angular.forEach(e.pods,function(e){n.selectItem(e.id)}),c(),l()},e.$watchCollection("pods",function(){c()}),e.sortTable=function(t){e.predicate=t,e.reverse=!e.reverse},e.actionCancel=function(){f(),e.action.option=null},e.availableWithOvercommit=n.availableWithOvercommit,e.actionGo=function(){f(),e.action.progress.total=e.selectedItems.length;var t=e.action.option.operation;angular.forEach(e.selectedItems,function(n){t(n).then(function(){e.action.progress.completed+=1,n.action_failed=!1,d()},function(t){e.action.progress.errors+=1,n.action_error=t,n.action_failed=!0,d()})})},e.hasActionsInProgress=function(){var t=e.action.progress;return t.total>0&&t.completed+t.errors!==t.total},e.hasActionsFailed=function(){return e.action.progress.errors>0},e.addPod=function(){e.add.open=!0,e.add.obj.zone=a.getDefaultZone().id,e.add.obj.default_pool=s.getDefaultPool().id,e.add.obj.cpu_over_commit_ratio=1,e.add.obj.memory_over_commit_ratio=1},e.cancelAddPod=function(){e.add.open=!1,e.add.obj={}},e.isRackControllerConnected=function(){return e.powerTypes.length>0},e.canAddPod=function(){return e.isRackControllerConnected()&&r.hasGlobalPermission("pod_create")},e.showActions=function(){for(var t=0;t<e.pods.length;t++)if(e.pods[t].permissions&&e.pods[t].permissions.indexOf("edit")>=0)return!0;return!1},e.getPowerTypeTitle=function(t){var n;for(n=0;n<e.powerTypes.length;n++){var r=e.powerTypes[n];if(r.name===t)return r.description}return t},o.loadManagers(e,[n,r,i,a,s]).then(function(){e.loading=!1})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","PodsManager","UsersManager","GeneralManager","ZonesManager","ManagerHelperService","ResourcePoolsManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l,f,d,h,p,g,m,b,v,y,_){function w(){e.name.editing||(e.name.value=e.pod.name)}t.title="Loading...",t.page="pods",e.loaded=!1,e.pod=null,e.podManager=a,e.action={option:null,options:[{name:"refresh",title:"Refresh",sentence:"refresh",operation:angular.bind(a,a.refresh)},{name:"delete",title:"Delete",sentence:"delete",operation:angular.bind(a,a.deleteItem)}],inProgress:!1,error:null},e.defaultInterface={name:"default"},e.compose={action:{name:"compose",title:"Compose",sentence:"compose"},obj:{storage:[{type:"local",size:8,tags:[],pool:{},boot:!0}],requests:[],interfaces:[e.defaultInterface]}},e.power_types=o.getData("power_types"),e.domains=c.getItems(),e.zones=u.getItems(),e.pools=h.getItems(),e.section={area:"summary"},e.machinesSearch="pod-id:=invalid",e.editing=!1,e.name={editing:!1,value:""},e.isRackControllerConnected=function(){return e.power_types.length>0},e.canEdit=function(){return!!(e.isRackControllerConnected()&&e.pod&&e.pod.permissions&&-1!==e.pod.permissions.indexOf("edit"))},e.editPodConfiguration=function(){e.canEdit()&&(e.editing=!0)},e.exitEditPodConfiguration=function(){e.editing=!1},e.editName=function(){e.canEdit()&&(e.name.editing||(e.name.editing=!0,e.name.value=e.pod.name))},e.editNameInvalid=function(){if(!e.name.editing)return!1;var t=e.name.value;return 0===t.length||!v.validateHostname(t)},e.cancelEditName=function(){e.name.editing=!1,w()},e.saveEditName=function(){if(!e.editNameInvalid()){e.name.editing=!1;var t=angular.copy(e.pod);t.name=e.name.value,e.updatePod(t)}},e.updatePod=function(t){return e.podManager.updateItem(t).then(function(){w()},function(e){y.error(e),w()})},e.isActionError=function(){return null!==e.action.error},e.actionOptionChanged=function(){e.action.error=null},e.actionCancel=function(){e.action.option=null,e.action.error=null},e.actionGo=function(){e.action.inProgress=!0,e.action.option.operation(e.pod).then(function(){"delete"===e.action.option.name&&n.path("/pods"),e.action.inProgress=!1,e.action.option=null,e.action.error=null},function(t){e.action.inProgress=!1,e.action.error=t})},e.openSubnetOptions=function(t){angular.forEach(e.compose.obj.interfaces,function(e){e.showOptions=!1}),t.showOptions=!0},e.validateMachineCompose=function(){e.compose.obj.requests.length<1&&e.updateRequests();var t=e.compose.obj.requests,n=e.compose.obj.hostname,r=!0;return angular.isDefined(n)&&""!==n&&(r=v.validateHostname(n)),t.forEach(function(e){(e.size>e.available||""===e.size)&&(r=!1)}),r},e.totalStoragePercentage=function(e,t,n){var r=e.used/e.total*100,i=t/e.total*100,a=n/e.total*100,o=r+i;return n&&(o=r+i+a),o},e.updateRequests=function(){var t=[];e.compose.obj.storage.forEach(function(e){var n=t.find(function(t){return t.poolId===e.pool.id});n?n.size+=parseInt(e.size,10):t.push({poolId:e.pool.id,size:e.size,available:Math.round(e.pool.available/1e3/1e3/1e3)})}),e.compose.obj.requests=t},e.getOtherRequests=function(t,n){for(var r=e.compose.obj.requests,i=0,a=0;a<r.length;a++)t.id===r[a].poolId&&(i=r[a].size);return t.id===n.pool.id&&(i-=n.size),i},e.poolOverCapacity=function(t){for(var n=e.pod.storage_pools.find(function(e){return e.id===t.pool.id}),r=e.compose.obj.requests,a=0,o=0;o<r.length;o++)n.id===r[o].poolId&&(a=r[o].size);return i("convertGigabyteToBytes")(a)>n.available},e.numberOnly=function(e){var t=e.which?e.which:event.keyCode;t>31&&(t<48||t>57)&&e.preventDefault()},e.openOptions=function(t){angular.forEach(e.compose.obj.storage,function(e){e.showOptions=!1}),t.showOptions=!0,e.updateRequests()},e.closeOptions=function(e){e.showOptions=!1},e.closeStorageOptions=function(){angular.forEach(e.compose.obj.storage,function(e){e.showOptions=!1})},e.selectStoragePool=function(t,n,r){r||(n.pool=t,e.updateRequests())},e.getPodTypeTitle=function(){var t;for(t=0;t<e.power_types.length;t++){var n=e.power_types[t];if(n.name===e.pod.type)return n.description}return e.pod.type},e.canCompose=function(){return!(!angular.isObject(e.pod)||!angular.isArray(e.pod.permissions))&&(e.pod.permissions.indexOf("compose")>=0&&e.pod.capabilities.indexOf("composable")>=0)},e.composeMachine=function(){e.action.option=e.compose.action,e.updateRequests()},e.availableWithOvercommit=a.availableWithOvercommit,e.stripTrailingZero=function(e){if(e)return e.toString().replace(/[.,]0$/,"")},e.composePreProcess=function(t){(t=angular.copy(t)).id=e.pod.id;var n=e.compose.obj.storage.sort(function(e,t){return e.boot===t.boot?0:e.boot&&!t.boot?-1:1}),r=[];angular.forEach(n,function(t,n){var i=n+":"+t.size,a=t.tags.map(function(e){return e.text});"rsd"===e.pod.type?a.splice(0,0,t.type):"virsh"===e.pod.type&&a.splice(0,0,t.pool.name),i+="("+a.join(",")+")",r.push(i)}),t.storage=r.join(",");var i=[];return angular.forEach(e.compose.obj.interfaces,function(e){var t="";e.ipaddress?t="".concat(e.name,":ip=").concat(e.ipaddress):e.subnet&&(t="".concat(e.name,":subnet_cidr=").concat(e.subnet.cidr)),t&&i.push(t)}),t.interfaces=i.join(";"),t},e.copyToClipboard=function(e){var t=e.currentTarget.previousSibling.previousSibling.value,n=_.createElement("textarea");n.value=t,_.body.appendChild(n),n.select(),_.execCommand("copy"),_.body.removeChild(n)},e.cancelCompose=function(){e.compose.obj={storage:[{type:"local",size:8,tags:[],pool:e.getDefaultStoragePool(),boot:!0}],requests:[],interfaces:[e.defaultInterface]},e.action.option=null},e.hasMultipleRequests=function(e){return e.otherRequests>0},e.composeAddStorage=function(){var t={type:"local",size:8,tags:[],pool:e.getDefaultStoragePool(),boot:!1};e.closeStorageOptions(),e.pod.capabilities.indexOf("iscsi_storage")>=0&&(t.type="iscsi"),e.compose.obj.storage.push(t),e.updateRequests()},e.composeSetBootDisk=function(t){angular.forEach(e.compose.obj.storage,function(e){e.boot=!1}),t.boot=!0},e.getDefaultStoragePool=function(){var t={};return e.pod.storage_pools&&e.pod.default_storage_pool&&(t=e.pod.storage_pools.filter(function(t){return t.id==e.pod.default_storage_pool})[0]),e.selectedPoolId||(e.selectedPoolId=t.id),t},e.composeRemoveDisk=function(t){var n=e.compose.obj.storage.indexOf(t);n>=0&&e.compose.obj.storage.splice(n,1),e.updateRequests()},e.bySpace=function(e){return function(t){return e&&null!==t.space?t.space.name==e:e?void 0:!t.space}},e.hasSpacelessSubnets=function(){return e.availableSubnets.some(function(e){return!e.space})},e.selectSubnet=function(t,n){var r=e.compose.obj.interfaces.indexOf(n),i=e.compose.obj.interfaces[r];return i.subnet=t,i.space=t.space,i.vlan=t.vlan,i.fabric=t.fabric,i.pxe=e.pod.boot_vlans.includes(t.vlan.id),e.closeOptions(n),t},e.resetSubnetList=function(t){var n=e.availableSubnets;t.selectedSpace&&(n=n.filter(function(e){if(e.space)return e.space.name===t.selectedSpace})),n.length>0?t.subnet=e.selectSubnet(n[0],t):t.subnet=void 0},e.selectSubnetByIP=function(t){t.ipaddress&&angular.forEach(e.availableSubnets,function(n){v.validateIPInNetwork(t.ipaddress,n.cidr)&&(t.subnet=e.selectSubnet(n,t))})};e.composeAddInterface=function(){var t=e.compose.obj.interfaces.indexOf(e.defaultInterface);t>=0&&e.compose.obj.interfaces.splice(t,1);var n={name:"eth".concat(e.compose.obj.interfaces.length)};e.compose.obj.interfaces.push(n)},e.composeRemoveInterface=function(t){var n=e.compose.obj.interfaces.indexOf(t);n>=0&&e.compose.obj.interfaces.splice(n,1),0==e.compose.obj.interfaces.length&&e.compose.obj.interfaces.push(e.defaultInterface)},e.startWatching=function(){e.$watch("subnets",function(){angular.forEach(e.subnets,function(t){e.pod.attached_vlans.includes(t.vlan)&&e.availableSubnets.push(function(e){var t=Object.assign({},e);return t.name===t.cidr?t.displayName=t.cidr:t.displayName="".concat(t.cidr," (").concat(t.name,")"),t.vlan=g.getItemFromList(t.vlan),t.vlan&&(t.fabric=m.getItemFromList(t.vlan.fabric)),t.space=b.getItemFromList(t.space),t}(t))})}),e.$watch("pod.name",function(){t.title="Pod "+e.pod.name,w()}),e.$watch("pod.capabilities",function(){var t=e.action.options.indexOf(e.compose.action);e.canCompose()?-1===t&&e.action.options.splice(0,0,e.compose.action):t>=0&&e.action.options.splice(t,1)}),e.$watch("action.option",function(t,n){t&&"compose"===t.name&&(n&&"compose"===n.name||(e.compose.obj.domain=c.getDefaultDomain().id,e.compose.obj.zone=u.getDefaultZone(e.pod).id,e.compose.obj.pool=e.pod.default_pool))})},f.loadManagers(e,[a,o,s,c,u,l,h,p,g,m,b]).then(function(){e.spaces=b.getItems(),e.subnets=p.getItems(),e.availableSubnets=[];var t=a.getActiveItem();angular.isObject(t)&&t.id===parseInt(r.id,10)?(e.pod=t,e.compose.obj.storage[0].pool=e.getDefaultStoragePool(),e.loaded=!0,e.machinesSearch="pod-id:="+e.pod.id,e.startWatching()):a.setActiveItem(parseInt(r.id,10)).then(function(t){e.pod=t,e.compose.obj.storage[0].pool=e.getDefaultStoragePool(),e.loaded=!0,e.machinesSearch="pod-id:="+e.pod.id,e.startWatching()},function(e){d.raiseError(e)})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$location","$routeParams","$filter","PodsManager","GeneralManager","UsersManager","DomainsManager","ZonesManager","MachinesManager","ManagerHelperService","ErrorService","ResourcePoolsManager","SubnetsManager","VLANsManager","FabricsManager","SpacesManager","ValidationService","$log","$document"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l,f,d,h,p,g,m,b,v,y,_,w,S){var M={external:"External",dynamic:"Dynamic",static:"Static"};function E(e){var n=t.tabs[e].search.toLowerCase();return"in:(selected)"===n||"in:selected"===n}function A(e){t.tabs[e].previous_search=t.tabs[e].search,t.tabs[e].search="in:(Selected)"}function I(e){t.tabs.machines.suppressFailedTestsChecked=!1,E(e)&&(t.tabs[e].search=t.tabs[e].previous_search,t.updateFilters(e))}function k(e){if(0!==t.tabs[e].filtered_items.length){var n;for(n=0;n<t.tabs[e].filtered_items.length;n++)if(!t.tabs[e].filtered_items[n].$selected)return void(t.tabs[e].allViewableChecked=!1);t.tabs[e].allViewableChecked=!0}else t.tabs[e].allViewableChecked=!1}function O(e){j(e),I(e),t.tabs[e].actionOption=null,t.tabs[e].zoneSelection=null,t.tabs[e].poolSelection=null,t.tabs[e].poolAction="select-pool",t.tabs[e].newPool={},"machines"!==e&&"switches"!==e||(angular.isFunction(t.tabs[e].osSelection.$reset)&&t.tabs[e].osSelection.$reset(),t.tabs[e].commissionOptions.enableSSH=!1,t.tabs[e].commissionOptions.skipBMCConfig=!1,t.tabs[e].commissionOptions.skipNetworking=!1,t.tabs[e].commissionOptions.skipStorage=!1,t.tabs[e].commissionOptions.updateFirmware=!1,t.tabs[e].commissionOptions.configureHBA=!1,t.tabs[e].deployOptions.installKVM=!1),t.tabs[e].commissioningSelection=[],t.tabs[e].testSelection=[]}function x(e){0===t.tabs[e].selectedItems.length&&O(e),t.tabs[e].actionOption&&!E(e)&&(t.tabs[e].actionOption=null)}function P(e){0===t.tabs[e].filtered_items.length&&""!==t.tabs[e].search&&t.tabs[e].search===t.tabs[e].previous_search&&(t.tabs[e].search="",t.updateFilters(e))}function C(e){var n;for(t.tabs[e].actionErrorCount=0,n=0;n<t.tabs[e].selectedItems.length;n++){t.supportsAction(t.tabs[e].selectedItems[n],e)||(t.tabs[e].actionErrorCount+=1),t.tabs[e].selectedItems[n].action_failed=!1}t.updateFailedActionSentence(e)}function j(e){var n=t.tabs[e].actionProgress;n.completed=n.total=0,n.errors={},n.showing_confirmation=!1,n.confirmation_message="",n.confirmation_details=[],n.affected_nodes=0}function D(e,n,r){var i=t.tabs[e].actionProgress;i.completed+=1;var a=i.errors[n];angular.isUndefined(a)?i.errors[n]=[r]:a.push(r)}r.title="Machines",r.page="machines",t.MAAS_config=o.MAAS_config,t.machines=c.getItems(),t.zones=p.getItems(),t.pools=y.getItems(),t.devices=u.getItems(),t.controllers=l.getItems(),t.switches=v.getItems(),t.showswitches="on"===i.switches,t.currentpage="machines",t.osinfo={},t.scripts=b.getItems(),t.vlans=_.getItems(),t.loading=!0,t.tags=[],t.failedActionSentence="Action cannot be performed.",t.tagsAutocomplete=function(e){return w.autocomplete(e)},t.tabs={},t.pluralize=function(e){var n={machines:"machine",switches:"switch",devices:"device",controllers:"controller"}[e];return t.tabs[e].selectedItems.length>1&&(n=e),n},t.tabs.machines={},t.tabs.machines.pagetitle="Machines",t.tabs.machines.currentpage="machines",t.tabs.machines.manager=c,t.tabs.machines.previous_search="",t.tabs.machines.search="",t.tabs.machines.searchValid=!0,t.tabs.machines.selectedItems=c.getSelectedItems(),t.tabs.machines.metadata=c.getMetadata(),t.tabs.machines.filters=h.getEmptyFilter(),t.tabs.machines.actionOption=null,t.tabs.machines.takeActionOptions=[],t.tabs.machines.actionErrorCount=0,t.tabs.machines.actionProgress={total:0,completed:0,errors:{},showing_confirmation:!1,confirmation_message:"",confirmation_details:[],affected_nodes:0},t.tabs.machines.osSelection={osystem:null,release:null,hwe_kernel:null},t.tabs.machines.zoneSelection=null,t.tabs.machines.poolSelection=null,t.tabs.machines.poolAction="select-pool",t.tabs.machines.newPool={},t.tabs.machines.commissionOptions={enableSSH:!1,skipBMCConfig:!1,skipNetworking:!1,skipStorage:!1,updateFirmware:!1,configureHBA:!1},t.tabs.machines.deployOptions={installKVM:!1},t.tabs.machines.releaseOptions={},t.tabs.machines.commissioningSelection=[],t.tabs.machines.testSelection=[],t.tabs.machines.failedTests=[],t.tabs.machines.loadingFailedTests=!1,t.tabs.machines.suppressFailedTestsChecked=!1,t.tabs.pools={},t.tabs.pools.pagetitle="Machines",t.tabs.pools.currentpage="pools",t.tabs.pools.manager=y,t.tabs.pools.actionOption=!1,t.tabs.pools.newPool={name:null,description:null},t.tabs.pools.addPool=function(){t.tabs.pools.actionOption=!0},t.tabs.pools.cancelAddPool=function(){t.tabs.pools.actionOption=!1,t.tabs.pools.newPool={}},t.tabs.pools.activeTarget=null,t.tabs.pools.activeTargetAction=null,t.tabs.pools.actionErrorMessage=null,t.tabs.pools.initiatePoolAction=function(e,n){var r=t.tabs.pools;r.cancelPoolAction(),r.activeTargetAction=n,r.activeTarget=e,r.editingPool=e},t.tabs.pools.cancelPoolAction=function(){var e=t.tabs.pools;e.activeTargetAction=null,e.activeTarget=null,e.actionErrorMessage=null},t.tabs.pools.isPoolAction=function(e,n){var r=t.tabs.pools;return(angular.isUndefined(n)||r.activeTargetAction===n)&&null!==r.activeTarget&&r.activeTarget.id===e.id},t.tabs.pools.actionConfirmEditPool=function(){t.tabs.pools.cancelPoolAction()},t.tabs.pools.actionConfirmDeletePool=function(){var e=t.tabs.pools;e.manager.deleteItem(e.activeTarget).then(e.cancelPoolAction,function(e){t.tabs.pools.actionErrorMessage=e})},t.tabs.pools.goToPoolMachines=function(e){t.clearSearch("machines"),t.toggleFilter("pool",e.name,"machines"),t.toggleTab("machines"),a.path("/machines")},t.tabs.pools.isDefaultPool=function(e){return 0===e.id},t.nodesManager=c,t.tabs.devices={},t.tabs.devices.pagetitle="Devices",t.tabs.devices.currentpage="devices",t.tabs.devices.manager=u,t.tabs.devices.previous_search="",t.tabs.devices.search="",t.tabs.devices.searchValid=!0,t.tabs.devices.selectedItems=u.getSelectedItems(),t.tabs.devices.filtered_items=[],t.tabs.devices.predicate="fqdn",t.tabs.devices.allViewableChecked=!1,t.tabs.devices.metadata=u.getMetadata(),t.tabs.devices.filters=h.getEmptyFilter(),t.tabs.devices.column="fqdn",t.tabs.devices.actionOption=null,t.tabs.devices.takeActionOptions=[],t.tabs.devices.actionErrorCount=0,t.tabs.devices.actionProgress={total:0,completed:0,errors:{},showing_confirmation:!1,confirmation_message:"",confirmation_details:[],affected_nodes:0},t.tabs.devices.zoneSelection=null,t.tabs.devices.poolSelection=null,t.tabs.devices.poolAction="select-pool",t.tabs.devices.newPool={},t.tabs.controllers={},t.tabs.controllers.pagetitle="Controllers",t.tabs.controllers.currentpage="controllers",t.tabs.controllers.manager=l,t.tabs.controllers.previous_search="",t.tabs.controllers.search="",t.tabs.controllers.searchValid=!0,t.tabs.controllers.selectedItems=l.getSelectedItems(),t.tabs.controllers.filtered_items=[],t.tabs.controllers.predicate="fqdn",t.tabs.controllers.allViewableChecked=!1,t.tabs.controllers.metadata=l.getMetadata(),t.tabs.controllers.filters=h.getEmptyFilter(),t.tabs.controllers.column="fqdn",t.tabs.controllers.actionOption=null,t.tabs.controllers.takeActionOptions=[],t.tabs.controllers.actionErrorCount=0,t.tabs.controllers.actionProgress={total:0,completed:0,errors:{},showing_confirmation:!1,confirmation_message:"",confirmation_details:[],affected_nodes:0},t.tabs.controllers.zoneSelection=null,t.tabs.controllers.poolSelection=null,t.tabs.controllers.poolAction="select-pool",t.tabs.controllers.newPool={},t.tabs.controllers.syncStatuses={},t.tabs.controllers.addController=!1,t.tabs.controllers.registerUrl=o.MAAS_config.register_url,t.tabs.controllers.registerSecret=o.MAAS_config.register_secret,t.tabs.switches={},t.tabs.switches.pagetitle="Switches",t.tabs.switches.currentpage="switches",t.tabs.switches.manager=v,t.tabs.switches.previous_search="",t.tabs.switches.search="",t.tabs.switches.searchValid=!0,t.tabs.switches.selectedItems=v.getSelectedItems(),t.tabs.switches.predicate="fqdn",t.tabs.switches.allViewableChecked=!1,t.tabs.switches.metadata=v.getMetadata(),t.tabs.switches.filters=h.getEmptyFilter(),t.tabs.switches.column="fqdn",t.tabs.switches.actionOption=null,t.tabs.switches.takeActionOptions=[],t.tabs.switches.actionErrorCount=0,t.tabs.switches.actionProgress={total:0,completed:0,errors:{},showing_confirmation:!1,confirmation_message:"",confirmation_details:[],affected_nodes:0},t.tabs.switches.osSelection={osystem:null,release:null,hwe_kernel:null},t.tabs.switches.zoneSelection=null,t.tabs.switches.poolSelection=null,t.tabs.switches.poolAction="select-pool",t.tabs.switches.newPool={},t.tabs.switches.commissioningSelection=[],t.tabs.switches.commissionOptions={enableSSH:!1,skipBMCConfig:!1,skipNetworking:!1,skipStorage:!1,updateFirmware:!1,configureHBA:!1},t.tabs.switches.deployOptions={installKVM:!1},t.tabs.switches.releaseOptions={},t.addHardwareOption=null,t.addHardwareOptions=[{name:"machine",title:"Machine"},{name:"chassis",title:"Chassis"}],t.addHardwareScope=null,t.addDeviceScope=null,t.$on("addHardwareHidden",function(){t.addHardwareOption=null}),t.toggleTab=function(e){switch(r.title=t.tabs[e].pagetitle,r.page=e,t.currentpage=e,e){case"machines":t.osinfo=f.getData("osinfo"),t.tabs.machines.takeActionOptions=f.getData("machine_actions");break;case"devices":t.tabs.devices.takeActionOptions=f.getData("device_actions");break;case"controllers":t.tabs.controllers.takeActionOptions=f.getData("rack_controller_actions");break;case"switches":t.tabs.switches.takeActionOptions=f.getData("machine_actions")}},t.clearSearch=function(e){t.tabs[e].search="",t.updateFilters(e)},t.toggleChecked=function(e,n){"machines"!==n&&"switches"!==n&&(t.tabs[n].manager.isSelected(e.system_id)?t.tabs[n].manager.unselectItem(e.system_id):t.tabs[n].manager.selectItem(e.system_id),k(n)),C(n),x(n)},t.toggleCheckAll=function(e){"machines"!==e&&"switches"!==e&&(t.tabs[e].allViewableChecked?angular.forEach(t.tabs[e].filtered_items,function(n){t.tabs[e].manager.unselectItem(n.system_id)}):angular.forEach(t.tabs[e].filtered_items,function(n){t.tabs[e].manager.selectItem(n.system_id)}),k(e)),C(e),x(e)},t.updateAvailableActions=function(e){var n=t.tabs[e].selectedItems;t.tabs[e].takeActionOptions.forEach(function(e){var t=0;n.forEach(function(n){n.actions.indexOf(e.name)>-1&&(t+=1),e.available=t})})},t.unselectImpossibleNodes=function(e){var n=t.tabs[e],r=n.actionOption,i=n.manager;n.selectedItems.reduce(function(e,t){return t.actions.includes(r.name)||e.push(t),e},[]).forEach(function(e){i.unselectItem(e.system_id)}),t.tabs[e].search="in:(selected)"},t.onNodeListingChanged=function(e,n){0===e.length&&""!==t.tabs[n].search&&t.tabs[n].search===t.tabs[n].previous_search&&(t.tabs[n].search="",t.updateFilters(n))},t.$watchCollection("tabs.devices.filtered_items",function(){k("devices"),P("devices")}),t.$watchCollection("tabs.controllers.filtered_items",function(){k("controllers"),P("controllers")}),t.showSelected=function(e){A(e),t.updateFilters(e)},t.toggleFilter=function(e,n,r){angular.isObject(t.tabs[r].actionOption)||(t.tabs[r].filters=h.toggleFilter(t.tabs[r].filters,e,n,!0),t.tabs[r].search=h.filtersToString(t.tabs[r].filters))},t.isFilterActive=function(e,n,r){return h.isFilterActive(t.tabs[r].filters,e,n,!0)},t.updateFilters=function(e){var n=h.getCurrentFilters(t.tabs[e].search);null===n?(t.tabs[e].filters=h.getEmptyFilter(),t.tabs[e].searchValid=!1):(t.tabs[e].filters=n,t.tabs[e].searchValid=!0),x(e)},t.sortTable=function(e,n){t.tabs[n].predicate=e,t.tabs[n].reverse=!t.tabs[n].reverse},t.selectColumnOrSort=function(e,n){t.tabs[n].column!==e?t.tabs[n].column=e:t.sortTable(e,n)},t.supportsAction=function(e,n){return!t.tabs[n].actionOption||e.actions.indexOf(t.tabs[n].actionOption.name)>=0},t.getFailedTests=function(e){var n=t.tabs[e],r=n.selectedItems;n.failedTests=[],n.loadingFailedTests=!0,c.getLatestFailedTests(r).then(function(e){n.failedTests=e,n.loadingFailedTests=!1},function(e){var t=g.getAuthUser();angular.isObject(t)?S.createItem({message:"Unable to load tests: ".concat(e),category:"error",user:t.id}):s.error(e)})},t.getFailedTestCount=function(e){var n=t.tabs[e],r=n.selectedItems,i=n.failedTests;return r.reduce(function(e,t){return i[t.system_id]&&(e+=i[t.system_id].length),e},0)},t.actionOptionSelected=function(e){C(e),A(e),"machines"===e?angular.isObject(t.addHardwareScope)&&t.addHardwareScope.hide():"devices"===e&&angular.isObject(t.addDeviceScope)&&t.addDeviceScope.hide(),t.tabs[e].actionOption&&"override-failed-testing"===t.tabs[e].actionOption.name&&t.getFailedTests(e)},t.isActionError=function(e){return!(!angular.isObject(t.tabs[e].actionOption)||"deploy"!==t.tabs[e].actionOption.name||0!==t.tabs[e].actionErrorCount||0!==t.osinfo.osystems.length)||0!==t.tabs[e].actionErrorCount},t.isDeployError=function(e){return 0===t.tabs[e].actionErrorCount&&!(!angular.isObject(t.tabs[e].actionOption)||"deploy"!==t.tabs[e].actionOption.name||0!==t.osinfo.osystems.length)},t.isSSHKeyWarning=function(e){return 0===t.tabs[e].actionErrorCount&&!(!angular.isObject(t.tabs[e].actionOption)||"deploy"!==t.tabs[e].actionOption.name||0!==g.getSSHKeyCount())},t.actionCancel=function(e){j(e),I(e),t.tabs[e].actionOption=null,t.tabs[e].suppressFailedTestsChecked=!1},t.actionGo=function(n){var r,i,a=t.tabs[n],o={},s=e.defer(),c=s.promise;if(s.resolve(),"deploy"===a.actionOption.name&&angular.isString(a.osSelection.osystem)&&angular.isString(a.osSelection.release)){o.osystem=a.osSelection.osystem;var u=a.osSelection.release;u=(u=u.split("/"))[u.length-1],o.distro_series=u,angular.isString(a.osSelection.hwe_kernel)&&(a.osSelection.hwe_kernel.indexOf("hwe-")>=0||a.osSelection.hwe_kernel.indexOf("ga-")>=0)&&(o.hwe_kernel=a.osSelection.hwe_kernel);var l=a.deployOptions.installKVM;l&&(o.osystem="ubuntu",o.distro_series="bionic"),o.install_kvm=l}else if("set-zone"===a.actionOption.name&&angular.isNumber(a.zoneSelection.id))o.zone_id=a.zoneSelection.id;else if("set-pool"===a.actionOption.name)"create-pool"===a.poolAction&&angular.isDefined(a.newPool.name)?c=y.createItem({name:a.newPool.name}).then(function(e){o.pool_id=e.id}):angular.isNumber(a.poolSelection.id)&&(o.pool_id=a.poolSelection.id);else if("commission"===a.actionOption.name){for(o.enable_ssh=a.commissionOptions.enableSSH,o.skip_bmc_config=a.commissionOptions.skipBMCConfig,o.skip_networking=a.commissionOptions.skipNetworking,o.skip_storage=a.commissionOptions.skipStorage,o.commissioning_scripts=[],r=0;r<a.commissioningSelection.length;r++)o.commissioning_scripts.push(a.commissioningSelection[r].id);for(a.commissionOptions.updateFirmware&&o.commissioning_scripts.push("update_firmware"),a.commissionOptions.configureHBA&&o.commissioning_scripts.push("configure_hba"),0===o.commissioning_scripts.length&&o.commissioning_scripts.push("none"),o.testing_scripts=[],r=0;r<a.testSelection.length;r++)o.testing_scripts.push(a.testSelection[r].id);0===o.testing_scripts.length&&o.testing_scripts.push("none")}else if("test"===a.actionOption.name){if(!a.actionProgress.showing_confirmation){var f=a.actionProgress;for(r=0;r<a.selectedItems.length;r++)6===a.selectedItems[r].status_code&&f.affected_nodes++;if(0!=f.affected_nodes)return f.confirmation_message=f.affected_nodes+" of "+a.selectedItems.length+" "+t.page+" are in a deployed state.",void(f.showing_confirmation=!0)}for(o.enable_ssh=a.commissionOptions.enableSSH,o.testing_scripts=[],r=0;r<a.testSelection.length;r++)o.testing_scripts.push(a.testSelection[r].id);0===o.testing_scripts.length&&o.testing_scripts.push("none")}else if("release"===a.actionOption.name)o.erase=a.releaseOptions.erase,o.secure_erase=a.releaseOptions.secureErase,o.quick_erase=a.releaseOptions.quickErase;else if("delete"!==a.actionOption.name||"controllers"!==n||a.actionProgress.showing_confirmation){if("tag"===a.actionOption.name)o.tags=t.tags.map(function(e){return e.text}),t.tags=[];else if("override-failed-testing"===a.actionOption.name&&a.suppressFailedTestsChecked){var d=a.selectedItems,h=a.failedTests;d.forEach(function(e){h[e.system_id]&&a.manager.suppressTests(e,h[e.system_id])}),t.tabs.machines.suppressFailedTestsChecked=!1}}else{for(r=0;r<a.selectedItems.length;r++){var p=a.selectedItems[r];for(i=0;i<t.vlans.length;i++){var g=t.vlans[i];g.primary_rack===p.system_id&&(a.actionProgress.confirmation_details.push(p.fqdn+" is the primary rack controller for "+g.name),a.actionProgress.affected_nodes++),g.secondary_rack===p.system_id&&(a.actionProgress.confirmation_details.push(p.fqdn+" is the secondary rack controller for "+g.name),a.actionProgress.affected_nodes++)}}if(0!=a.actionProgress.affected_nodes)return 1===a.actionProgress.affected_nodes?a.actionProgress.confirmation_message="1 controller will be deleted.":a.actionProgress.confirmation_message=a.actionProgress.affected_nodes+" controllers will be deleted.",void(a.actionProgress.showing_confirmation=!0)}c.then(function(){j(n),a.actionProgress.total=a.selectedItems.length,angular.forEach(a.selectedItems,function(e){a.manager.performAction(e,a.actionOption.name,o).then(function(){a.actionProgress.completed+=1,e.action_failed=!1},function(t){D(n,t,e),e.action_failed=!0}).finally(function(){var e;e=n,t.hasActionsFailed(e)?angular.forEach(t.tabs[e].manager.getItems(),function(n){!1===n.action_failed&&t.tabs[e].manager.unselectItem(n.system_id)}):t.hasActionsInProgress(e)||(O(e),A(e))})})},function(e){D(n,e)})},t.hasActionsInProgress=function(e){var n=t.tabs[e].actionProgress;return n.total>0&&n.completed!==n.total},t.hasActionsFailed=function(e){return Object.keys(t.tabs[e].actionProgress.errors).length>0},t.addHardwareOptionChanged=function(){t.addHardwareOption&&t.addHardwareScope.show(t.addHardwareOption.name)},t.addDevice=function(){t.addDeviceScope.show()},t.cancelAddDevice=function(){t.addDeviceScope.cancel()},t.getDeviceIPAssignment=function(e){return M[e]},t.isSuperUser=function(){return g.isSuperUser()},t.canAddMachine=function(){return g.hasGlobalPermission("machine_create")},t.canCreateResourcePool=function(){return g.hasGlobalPermission("resource_pool_create")},t.showResourcePoolActions=function(){for(var e=0;e<t.pools.length;e++)if(t.pools[e].permissions&&t.pools[e].permissions.length>0)return!0;return!1},t.canEditResourcePool=function(e){return!(!e.permissions||-1===e.permissions.indexOf("edit"))},t.canDeleteResourcePool=function(){return g.hasGlobalPermission("resource_pool_delete")},t.hasCustomCommissioningScripts=function(){var e;for(e=0;e<t.scripts.length;e++)if(0===t.scripts[e].script_type)return!0;return!1},t.updateFailedActionSentence=function(e){var n=t.tabs[e],r=n.actionOption,i=n.actionErrorCount,a=i>1?"".concat(i," ").concat(e):"".concat(i," ").concat(e.slice(0,-1)),o="Action cannot be performed on ".concat(a,".");if(r&&r.name)switch(r.name){case"exit-rescue-mode":o="".concat(a," cannot exit rescue mode.");break;case"lock":o="".concat(a," cannot be locked.");break;case"override-failed-testing":o="Cannot override failed tests on ".concat(a,".");break;case"rescue-mode":o="".concat(a," cannot be put in rescue mode.");break;case"set-pool":o="Cannot set pool of ".concat(a,".");break;case"set-zone":o="Cannot set zone of ".concat(a,".");break;case"unlock":o="".concat(a," cannot be unlocked.");break;default:o="".concat(a," cannot be ").concat(r.sentence,".")}t.failedActionSentence=o},t.getHardwareTestErrorText=function(e,n){var r=t.tabs[n].selectedItems.length;if("Unable to run destructive test while deployed!"===e){var i=!1,a="";if(1===r)i=!0;return(a+=i?"1 machine":r+" machines")+" cannot run hardware testing. The selected hardware tests contain one or more destructive tests. Destructive tests cannot run on deployed machines."}return e},t.$on("$routeUpdate",function(){f.loadItems(["osinfo"])}),angular.forEach(["machines","pools","devices","controllers","switches"],function(e){-1!==a.path().indexOf("/"+e)&&t.toggleTab(e)});var N=[t.tabs[t.currentpage].manager];"machines"!==t.currentpage&&"controllers"!==t.currentpage||N.push(b),"controllers"===t.currentpage&&N.push(_),d.loadManagers(t,N.concat([f,p,g,y,m,w])).then(function(){t.loading=!1}),t.$on("$destroy",function(){n.cancel(t.statusPoll),h.storeFilters("machines",t.tabs.machines.filters),h.storeFilters("devices",t.tabs.devices.filters),h.storeFilters("controllers",t.tabs.controllers.filters),h.storeFilters("switches",t.tabs.switches.filters)});var R=h.retrieveFilters("machines");angular.isObject(R)&&(t.tabs.machines.search=h.filtersToString(R),t.updateFilters("machines"));var T=h.retrieveFilters("devices");angular.isObject(T)&&(t.tabs.devices.search=h.filtersToString(T),t.updateFilters("devices"));var B=h.retrieveFilters("controllers");angular.isObject(B)&&(t.tabs.controllers.search=h.filtersToString(B),t.updateFilters("controllers"));var L=h.retrieveFilters("switches");angular.isObject(L)&&(t.tabs.switches.search=h.filtersToString(L),t.updateFilters("switches"));var $=i.query;angular.isString($)&&(t.tabs[t.currentpage].search=$,t.updateFilters(t.currentpage))}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$q","$scope","$interval","$rootScope","$routeParams","$location","$window","$log","MachinesManager","DevicesManager","ControllersManager","GeneralManager","ManagerHelperService","SearchService","ZonesManager","UsersManager","ServicesManager","ScriptsManager","SwitchesManager","ResourcePoolsManager","VLANsManager","TagsManager","NotificationsManager"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(68);function i(e,t,n,i,a,o,s,c){function u(){var t,n=3===e.logs.availableOptions.length;if(e.logs.availableOptions.length=0,e.installation_results&&e.installation_results.length>0&&(6===e.node.status_code||9===e.node.status_code||11===e.node.status_code))for(t=0;t<e.installation_results.length;t++)if("/tmp/install.log"===e.installation_results[t].name){e.logs.availableOptions.push({title:"Installation output",id:e.installation_results[t].id});break}e.logs.availableOptions.push({title:"Machine output (YAML)",id:"summary_yaml"}),e.logs.availableOptions.push({title:"Machine output (XML)",id:"summary_xml"}),n||3!==e.logs.availableOptions.length?(!e.selectedLog||n&&2===e.logs.length)&&(e.logs.option=e.logs.availableOptions[0]):e.logs.option=e.logs.availableOptions[0]}function l(t){e.node=t,e.loaded=!0,e.nodeResultsManager=o.getManager(t,e.section.area),e.nodeResultsManager.loadItems().then(function(){e.commissioning_results=e.nodeResultsManager.commissioning_results,e.testing_results=e.nodeResultsManager.testing_results,e.installation_results=e.nodeResultsManager.installation_results,e.results=e.nodeResultsManager.results,"logs"===e.section.area&&(u(),e.$watch("installation_results",u,!0),e.$watch("installation_results",e.updateLogOutput,!0)),e.resultsLoaded=!0})}e.nodeResultsManager=null,e.commissioning_results=null,e.testing_results=null,e.installation_results=null,e.results=null,e.logs={option:null,availableOptions:[]},e.logOutput="Loading...",e.loaded=!1,e.resultsLoaded=!1,e.node=null,-1!==n.path().indexOf("/controller")?e.nodesManager=a:e.nodesManager=i,s.loadManager(e,e.nodesManager).then(function(){var n=e.nodesManager.getActiveItem();angular.isObject(n)&&n.system_id===t.system_id?l(n):e.nodesManager.setActiveItem(t.system_id).then(function(e){l(e)},function(e){c.raiseError(e)})}),e.updateLogOutput=function(){if(e.logOutput="Loading...",e.node)if("summary_xml"===e.logs.option.id)e.nodesManager.getSummaryXML(e.node).then(function(t){e.logOutput=t});else if("summary_yaml"===e.logs.option.id)e.nodesManager.getSummaryYAML(e.node).then(function(t){e.logOutput=t});else{var t,n=null;for(t=0;t<e.installation_results.length;t++)if(e.installation_results[t].id===e.logs.option.id){n=e.installation_results[t];break}switch(n.status){case 0:e.logOutput="System is booting...";break;case 1:e.logOutput="Installation has begun!";break;case 2:e.nodeResultsManager.get_result_data(n.id,"combined").then(function(t){e.logOutput=""===t?"Installation has succeeded but no output was given.":t});break;case 3:e.nodeResultsManager.get_result_data(n.id,"combined").then(function(t){e.logOutput=""===t?"Installation has failed and no output was given.":t});break;case 4:e.logOutput="Installation failed after 40 minutes.";break;case 5:e.logOutput="Installation was aborted.";break;default:e.logOutput="BUG: Unknown log status "+n.status}}},e.loadHistory=function(t){t.showing_results=!1,angular.isArray(t.history_list)?t.showing_history=!0:(t.loading_history=!0,e.nodeResultsManager.get_history(t.id).then(function(e){t.history_list=e,t.loading_history=!1,t.showing_history=!0}))},e.hasSuppressedTests=function(){return e.results.some(function(e){return Object.entries(e.results).some(function(e){return e[1].some(function(e){return e.suppressed})})})},e.isSuppressible=function(e){return e.status===r.ScriptStatus.FAILED||e.status===r.ScriptStatus.FAILED_INSTALLING||e.status===r.ScriptStatus.TIMEDOUT},e.getSuppressedCount=function(){var t=e.results.reduce(function(t,n){return Object.entries(n.results).forEach(function(n){n[1].forEach(function(n){e.isSuppressible(n)&&t.push(n)})}),t},[]),n=t.filter(function(e){return e.suppressed});return t.length===n.length?"All":n.length},e.toggleSuppressed=function(t){t.suppressed?e.nodesManager.unsuppressTests(e.node,[t]):e.nodesManager.suppressTests(e.node,[t])},e.$on("$destroy",function(){angular.isObject(e.nodeResultsManager)&&e.nodeResultsManager.destroy()})}i.$inject=["$scope","$routeParams","$location","MachinesManager","ControllersManager","NodeResultsManagerFactory","ManagerHelperService","ErrorService"];var a=i;t.default=a},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c){function u(r){e.node=r,e.loaded=!0;var i=o.getManager(e.node),a=parseInt(n.id,10);i.getItem(a).then(function(n){e.result=n,e.get_result_data(e.output),e.resultLoaded=!0,t.title=e.node.fqdn+" - "+e.result.name})}t.title="Loading...",e.loaded=!1,e.resultLoaded=!1,e.node=null,e.output="combined",e.result=null,e.get_result_data=function(t){e.output=t,e.data="Loading...",o.getManager(e.node).get_result_data(e.result.id,e.output).then(function(t){e.data=""===t?"Empty file.":t})},e.$watch("node.fqdn",function(){angular.isObject(e.node)&&angular.isObject(e.result)&&(t.title=e.node.fqdn+" - "+e.result.name)}),-1!==r.path().indexOf("/controller")?(e.nodesManager=a,e.type_name="controller",t.page="controllers"):(e.nodesManager=i,e.type_name="machine",t.page="machines"),s.loadManager(e,e.nodesManager).then(function(){var t=e.nodesManager.getActiveItem();angular.isObject(t)&&t.system_id===n.system_id?u(t):e.nodesManager.setActiveItem(n.system_id).then(function(e){u(e)},function(e){c.raiseError(e)})}),e.$on("$destroy",function(){var t=o.getManager(e.node);angular.isObject(t)&&t.destroy()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$location","MachinesManager","ControllersManager","NodeResultsManagerFactory","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c){var u=null;function l(n){e.node=n,e.loaded=!0,u=o.getManager(n.id),e.events=u.getItems(),e.days=u.getMaximumDays(),u.loadItems().then(function(){e.eventsLoaded=!0}),e.$watch("node.fqdn",function(){t.title=e.node.fqdn+" - events"})}t.title="Loading...",e.loaded=!1,e.node=null,e.events=[],e.eventsLoaded=!1,e.days=1,e.getEventText=function(e){var t=e.type.description;return angular.isString(e.description)&&e.description.length>0&&(t+=" - "+e.description),t},e.loadMore=function(){e.days+=1,u.loadMaximumDays(e.days)},-1!==r.path().indexOf("/controller")?(e.nodesManager=a,e.type_name="controller",t.page="controllers"):(e.nodesManager=i,e.type_name="machine",t.page="machines"),s.loadManager(e,e.nodesManager).then(function(){var t=e.nodesManager.getActiveItem();angular.isObject(t)&&t.system_id===n.system_id?l(t):e.nodesManager.setActiveItem(n.system_id).then(function(e){l(e)},function(e){c.raiseError(e)})}),e.$on("$destroy",function(){angular.isObject(u)&&u.destroy()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$location","MachinesManager","ControllersManager","EventsManagerFactory","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(68);function i(e,t,n,i,a,o,s,c,u,l,f,d,h,p,g,m,b,v,y,_,w){var S,M={external:"External",dynamic:"Dynamic",static:"Static"};function E(){e.node&&e.node.fqdn&&(t.title=e.node.fqdn)}function A(){if(!e.header.editing&&!e.header.editing_domain){e.header.hostname.value=e.node.fqdn;for(var t=0;t<e.header.domain.options.length;t++){var n=e.header.domain.options[t];if(n.id===e.node.domain.id){e.header.domain.selected=n;break}}}}function I(){if(angular.isObject(e.node)){var t={0:"machine_actions",1:"device_actions",2:"rack_controller_actions",3:"region_controller_actions",4:"region_and_rack_controller_actions"};u.isDataLoaded(t[e.node.node_type])?(e.action.allOptions=u.getData(t[e.node.node_type]),e.action.availableOptions.length=0,angular.forEach(e.action.allOptions,function(t){e.node.actions.indexOf(t.name)>=0&&"set-zone"!==t.name&&"set-pool"!==t.name&&"tag"!==t.name&&e.action.availableOptions.push(t)})):u.loadItems([t[e.node.node_type]]).then(I)}}function k(){if(!e.power.editing){e.power.type=null;for(var t=0;t<e.power_types.length;t++)if(e.node.power_type===e.power_types[t].name){e.power.type=e.power_types[t];break}e.power.bmc_node_count=e.node.power_bmc_node_count,e.power.parameters=angular.copy(e.node.power_parameters),angular.isObject(e.power.parameters)||(e.power.parameters={}),e.canEdit()&&""===e.node.power_type&&0===e.node.node_type&&(e.power.editing=!0),e.power.in_pod=angular.isDefined(e.node.pod)}}function O(){e.summary.editing||(angular.isObject(e.node.zone)&&(e.summary.zone.selected=c.getItemFromList(e.node.zone.id)),angular.isObject(e.node.pool)&&(e.summary.pool.selected=v.getItemFromList(e.node.pool.id)),e.summary.architecture.selected=e.node.architecture,e.summary.description=e.node.description,e.summary.min_hwe_kernel.selected=e.node.min_hwe_kernel,e.summary.tags=angular.copy(e.node.tags),e.canEdit()&&e.hasUsableArchitectures()&&e.hasInvalidArchitecture()&&(e.summary.editing=!0))}function x(){e.isController&&(e.services={},angular.forEach(s.getServices(e.node),function(t){e.services[t.name]=t}))}function P(){e.devices=[],angular.forEach(e.node.devices,function(t){var n={name:t.fqdn};angular.isArray(t.interfaces)&&t.interfaces.length>0?angular.forEach(t.interfaces,function(t,r){var i=angular.copy(n);i.mac_address=t.mac_address,r>0&&(i.name=""),angular.isArray(t.links)&&t.links.length>0?angular.forEach(t.links,function(t,n){var r=angular.copy(i);r.ip_address=t.ip_address,n>0&&(r.mac_address=""),e.devices.push(r)}):e.devices.push(i)}):e.devices.push(n)})}function C(t){e.node=t,e.loaded=!0,E(),O(),x(),angular.isObject(e.node)&&(e.$watch("node.fqdn",function(){E(),A()}),e.$watch("node.devices",P),e.$watch("node.actions",I),e.$watch("node.architecture",O),e.$watchCollection(e.summary.architecture.options,O),e.$watch("node.min_hwe_kernel",O),e.$watchCollection(e.summary.min_hwe_kernel.options,O),e.$watch("node.zone.id",O),e.$watchCollection(e.summary.zone.options,O),e.$watch("node.pool.id",O),e.$watchCollection(e.summary.pool.options,O),e.$watch("node.power_type",k),e.$watch("node.power_parameters",k),e.$watchCollection("power_types",k),e.$watch("node.service_ids",x)),angular.isObject(e.storageController)&&e.storageController.nodeLoaded(),angular.isObject(e.networkingController)&&e.networkingController.nodeLoaded(),angular.isObject(e.node.vlan)&&(e.vlan=y.getItemFromList(e.node.vlan.id))}t.title="Loading...",e.MAAS_config=w.MAAS_config,e.loaded=!1,e.node=null,e.action={option:null,allOptions:null,availableOptions:[],error:null,showing_confirmation:!1,confirmation_message:"",confirmation_details:[]},e.power_types=u.getData("power_types"),e.osinfo=u.getData("osinfo"),e.section={area:angular.isString(n.area)?n.area:"summary"},e.osSelection={osystem:null,release:null,hwe_kernel:null},e.commissionOptions={enableSSH:!1,skipBMCConfig:!1,skipNetworking:!1,skipStorage:!1,updateFirmware:!1,configureHBA:!1},e.deployOptions={installKVM:!1},e.commissioningSelection=[],e.testSelection=[],e.releaseOptions={},e.checkingPower=!1,e.devices=[],e.scripts=b.getItems(),e.vlans=y.getItems(),e.hideHighAvailabilityNotification=!1,e.failedUpdateError="",e.header={editing:!1,editing_domain:!1,hostname:{value:""},domain:{selected:null,options:d.getItems()}},e.summary={editing:!1,architecture:{selected:null,options:u.getData("architectures")},min_hwe_kernel:{selected:null,options:u.getData("min_hwe_kernels")},zone:{selected:null,options:c.getItems()},pool:{selected:null,options:v.getItems()},tags:[]},e.services={},e.power={editing:!1,type:null,bmc_node_count:0,parameters:{},in_pod:!1},e.dismissHighAvailabilityNotification=function(){e.hideHighAvailabilityNotification=!0,localStorage.setItem("hideHighAvailabilityNotification-".concat(e.vlan.id),!0)},e.getNotificationVLANText=function(){return e.node.vlan.name?e.node.vlan.name:e.node.vlan.id},e.showHighAvailabilityNotification=function(){return!(!(!e.hideHighAvailabilityNotification&&e.node.dhcp_on&&e.vlan&&e.vlan.rack_sids.length>1)||e.vlan.secondary_rack||e.node.node_type===r.NodeTypes.REGION_CONTROLLER||"summary"!==e.section.area&&"vlans"!==e.section.area)},e.getDeviceIPAssignment=function(e){return M[e]},e.events={limit:10},e.openSection=function(t){e.section.area=t,i.search("area",t)},e.updateNode=function(t,n){return angular.isUndefined(n)&&(n=!1),e.nodesManager.updateItem(t).then(function(){A(),O(),n&&e.checkPowerState(),e.failedUpdateError=""}).catch(function(t){_.error(t),A(),O(),e.node.power_parameters={},e.failedUpdateError=t})},e.tagsAutocomplete=function(e){return f.autocomplete(e)},e.getPowerStateClass=function(){return angular.isObject(e.node)?e.checkingPower?"checking":e.node.power_state:""},e.getPowerStateText=function(){return angular.isObject(e.node)?e.checkingPower?"Checking power":"unknown"===e.node.power_state?"":"Power "+e.node.power_state:""},e.canCheckPowerState=function(){return!!angular.isObject(e.node)&&("unknown"!==e.node.power_state&&!e.checkingPower)},e.checkPowerState=function(){e.checkingPower=!0,e.nodesManager.checkPowerState(e.node).then(function(){e.checkingPower=!1})},e.isUbuntuOS=function(){return!!angular.isObject(e.node)&&"ubuntu"===e.node.osystem},e.isUbuntuCoreOS=function(){return!!angular.isObject(e.node)&&"ubuntu-core"===e.node.osystem},e.isCentOS=function(){return!!angular.isObject(e.node)&&("centos"===e.node.osystem||"rhel"===e.node.osystem)},e.isCustomOS=function(){return!!angular.isObject(e.node)&&"custom"===e.node.osystem},e.isActionError=function(){return null!==e.action.error},e.isDeployError=function(){if(e.isActionError())return!1;var t=angular.isUndefined(e.osinfo.osystems)||0===e.osinfo.osystems.length;return!(!angular.isObject(e.action.option)||"deploy"!==e.action.option.name||!t)},e.isSSHKeyWarning=function(){return!e.isActionError()&&!(!angular.isObject(e.action.option)||"deploy"!==e.action.option.name||0!==l.getSSHKeyCount())},e.action.optionChanged=function(){e.action.error=null,e.action.showing_confirmation=!1,e.action.confirmation_message="",e.action.confirmation_details=[]},e.actionCancel=function(){e.action.option=null,e.action.error=null,e.action.showing_confirmation=!1,e.action.confirmation_message="",e.action.confirmation_details=[]},e.actionGo=function(){var t={};if("deploy"===e.action.option.name&&angular.isString(e.osSelection.osystem)&&angular.isString(e.osSelection.release)){t.osystem=e.osSelection.osystem;var n=e.osSelection.release;n=(n=n.split("/"))[n.length-1],t.distro_series=n,angular.isString(e.osSelection.hwe_kernel)&&(e.osSelection.hwe_kernel.indexOf("hwe-")>=0||e.osSelection.hwe_kernel.indexOf("ga-")>=0)&&(t.hwe_kernel=e.osSelection.hwe_kernel);var r=e.deployOptions.installKVM;r&&(t.osystem="ubuntu",t.distro_series="bionic"),t.install_kvm=r}else if("commission"===e.action.option.name){t.enable_ssh=e.commissionOptions.enableSSH,t.skip_bmc_config=e.commissionOptions.skipBMCConfig,t.skip_networking=e.commissionOptions.skipNetworking,t.skip_storage=e.commissionOptions.skipStorage,t.commissioning_scripts=[];for(var a=0;a<e.commissioningSelection.length;a++)t.commissioning_scripts.push(e.commissioningSelection[a].id);e.commissionOptions.updateFirmware&&t.commissioning_scripts.push("update_firmware"),e.commissionOptions.configureHBA&&t.commissioning_scripts.push("configure_hba"),0===t.commissioning_scripts.length&&t.commissioning_scripts.push("none"),t.testing_scripts=[];for(var o=0;o<e.testSelection.length;o++)t.testing_scripts.push(e.testSelection[o].id);0===t.testing_scripts.length&&t.testing_scripts.push("none")}else if("test"===e.action.option.name){if(6===e.node.status_code&&!e.action.showing_confirmation)return e.action.showing_confirmation=!0,void(e.action.confirmation_message=e.type_name_title+" is in a deployed state.");t.enable_ssh=e.commissionOptions.enableSSH,t.testing_scripts=[];for(var s=0;s<e.testSelection.length;s++)t.testing_scripts.push(e.testSelection[s].id);0===t.testing_scripts.length&&t.testing_scripts.push("none")}else if("release"===e.action.option.name)t.erase=e.releaseOptions.erase,t.secure_erase=e.releaseOptions.secureErase,t.quick_erase=e.releaseOptions.quickErase;else if("delete"===e.action.option.name&&"controller"===e.type_name&&!e.action.showing_confirmation){for(var c=0;c<e.vlans.length;c++){var u=e.vlans[c];u.primary_rack===e.node.system_id&&e.action.confirmation_details.push(e.node.fqdn+" is the primary rack controller for "+u.name),u.secondary_rack===e.node.system_id&&e.action.confirmation_details.push(e.node.fqdn+" is the secondary rack controller for "+u.name)}if(e.action.confirmation_details.length>0)return e.action.confirmation_message+=e.type_name_title+" will be deleted.",void(e.action.showing_confirmation=!0)}e.nodesManager.performAction(e.node,e.action.option.name,t).then(function(){"delete"===e.action.option.name&&i.path("/machines"),e.action.option=null,e.action.error=null,e.action.showing_confirmation=!1,e.action.confirmation_message="",e.osSelection.$reset(),e.commissionOptions.enableSSH=!1,e.commissionOptions.skipBMCConfig=!1,e.commissionOptions.skipNetworking=!1,e.commissionOptions.skipStorage=!1,e.commissionOptions.updateFirmware=!1,e.commissionOptions.configureHBA=!1,e.commissioningSelection=[],e.testSelection=[]},function(t){e.action.error=t})},e.isSuperUser=function(){return l.isSuperUser()},e.hasPermission=function(t){return!(!angular.isObject(e.node)||!angular.isArray(e.node.permissions))&&e.node.permissions.indexOf(t)>=0},e.hasUsableArchitectures=function(){return e.summary.architecture.options.length>0},e.getArchitecturePlaceholder=function(){return e.hasUsableArchitectures()?"Choose an architecture":"-- No usable architectures --"},e.hasInvalidArchitecture=function(){return!!angular.isObject(e.node)&&(!e.isDevice&&(""===e.node.architecture||-1===e.summary.architecture.options.indexOf(e.node.architecture)))},e.invalidArchitecture=function(){return!(e.isDevice||e.isController||""!==e.summary.architecture.selected&&-1!==e.summary.architecture.options.indexOf(e.summary.architecture.selected))},e.isRackControllerConnected=function(){return e.power_types.length>0},e.isLocked=function(){return null!==e.node&&e.node.locked},e.canEdit=function(){return e.isDevice?e.hasPermission("edit"):e.isRackControllerConnected()&&e.hasPermission("edit")&&!e.isLocked()},e.editHeaderDomain=function(){e.canEdit()||e.header.editing_domain||(e.header.editing=!1,e.header.editing_domain=!0,e.header.hostname.value=e.node.hostname)},e.editHeader=function(){e.canEdit()&&(e.header.editing||(e.header.editing=!0,e.header.editing_domain=!1,e.header.hostname.value=e.node.hostname))},e.editHeaderInvalid=function(){if(!e.header.editing&&!e.header.editing_domain)return!1;var t=e.header.hostname.value;return 0===t.length||!m.validateHostname(t)},e.cancelEditHeader=function(){e.header.editing=!1,e.header.editing_domain=!1,A()},e.saveEditHeader=function(){if(!e.editHeaderInvalid()){e.header.editing=!1,e.header.editing_domain=!1;var t=angular.copy(e.node);t.hostname=e.header.hostname.value,t.domain=e.header.domain.selected,e.updateNode(t)}},e.editSummary=function(){e.canEdit()&&(e.summary.editing=!0)},e.cancelEditSummary=function(){e.isDevice||e.isController?e.summary.editing=!1:e.hasInvalidArchitecture()||(e.summary.editing=!1)},e.saveEditSummary=function(){if(!e.invalidArchitecture()){e.summary.editing=!1;var t=angular.copy(e.node);t.zone=angular.copy(e.summary.zone.selected),t.pool=angular.copy(e.summary.pool.selected),t.description=angular.copy(e.summary.description),t.architecture=e.summary.architecture.selected,null===e.summary.min_hwe_kernel.selected?t.min_hwe_kernel="":t.min_hwe_kernel=e.summary.min_hwe_kernel.selected,t.tags=[],angular.forEach(e.summary.tags,function(e){t.tags.push(e.text)}),e.updateNode(t)}},e.invalidPowerType=function(){return!angular.isObject(e.power.type)},e.editPower=function(){e.canEdit()&&(e.power.editing=!0)},e.cancelEditPower=function(){0===e.node.node_type&&""===e.node.power_type||(e.power.editing=!1),k()},e.saveEditPower=function(){if(!e.invalidPowerType()){e.power.editing=!1;var t=angular.copy(e.node);t.power_type=e.power.type.name,t.power_parameters=angular.copy(e.power.parameters),e.updateNode(t,!0)}},e.allowShowMoreEvents=function(){return!!angular.isObject(e.node)&&(!!angular.isArray(e.node.events)&&(e.node.events.length>0&&e.node.events.length>e.events.limit&&e.events.limit<50))},e.showMoreEvents=function(){e.events.limit+=10},e.getEventText=function(e){var t=e.type.description;return angular.isString(e.description)&&e.description.length>0&&(t+=" - "+e.description),t},e.getPowerEventError=function(){var t;if(angular.isObject(e.node)&&angular.isArray(e.node.events))for(t=0;t<e.node.events.length;t++){var n=e.node.events[t];if("warning"===n.type.level&&"Failed to query node's BMC"===n.type.description)return n;if("info"===n.type.level&&"Queried node's BMC"===n.type.description)return}},e.hasPowerEventError=function(){var t=e.getPowerEventError();return angular.isObject(t)},e.getPowerEventErrorText=function(){var t=e.getPowerEventError();return angular.isObject(t)?t.description:""},e.hasActionPowerError=function(t){if(!e.hasPowerError())return!1;return!!(t&&["commission","deploy","on","off","release"].indexOf(t)>-1)},e.hasPowerError=function(){return!!angular.isObject(e.power.type)&&e.power.type.missing_packages.length>0},e.getPowerErrors=function(){var t,n="";if(angular.isObject(e.power.type)){var r=e.power.type.missing_packages;for(r.sort(),t=0;t<r.length;t++)n+=r[t],t+2<r.length?n+=", ":t+1<r.length&&(n+=" and ");n+=r.length>1?" packages":" package"}return n},e.getServiceClass=function(e){return angular.isObject(e)?"running"===e.status?"success":"dead"===e.status?"error":"degraded"===e.status?"warning":"none":"none"},e.hasCustomCommissioningScripts=function(){var t;for(t=0;t<e.scripts.length;t++)if(0===e.scripts[t].script_type)return!0;return!1},e.controllerLoaded=function(t,n){e[t]=n,angular.isObject(n.node)&&n.nodeLoaded()},e.showFailedTestWarning=function(){if(1===e.node.node_type||!e.node.status_code)return!1;switch(e.node.status_code){case 0:case 1:case 2:case 21:case 22:return!1}switch(e.node.testing_status){case-1:case 2:return!1}return!0},e.getCPUSubtext=function(){var t=e.node.cpu_count+" cores";return e.node.cpu_speed&&0!==e.node.cpu_speed?e.node.cpu_speed<1e3?t+" @ "+e.node.cpu_speed+" Mhz":t+" @ "+e.node.cpu_speed/1e3+" Ghz":t},e.getHardwareTestErrorText=function(e){return"Unable to run destructive test while deployed!"===e?"The selected hardware tests contain one or more destructive tests. Destructive tests cannot run on deployed machines.":e},e.powerParametersValid=function(e){if(!angular.isObject(e))return!1;if(0===Object.keys(e).length)return!1;var t=!1;return Object.keys(e).forEach(function(n){t=""!==e[n]}),!!t},e.$on("$routeUpdate",function(){u.loadItems(["osinfo","architectures","min_hwe_kernels"])}),-1!==i.path().indexOf("/controller")?(e.nodesManager=s,S=[s,b,y],e.isController=!0,e.isDevice=!1,e.type_name="controller",e.type_name_title="Controller",t.page="controllers"):-1!==i.path().indexOf("/device")?(e.nodesManager=a,S=[a],e.isController=!1,e.isDevice=!0,e.type_name="device",e.type_name_title="Device",t.page="devices"):(e.nodesManager=o,S=[o,b],e.isController=!1,e.isDevice=!1,e.type_name="machine",e.type_name_title="Machine",t.page="machines"),h.loadManagers(e,[c,u,l,f,d,p,v].concat(S)).then(function(){var t=e.nodesManager.getActiveItem();angular.isObject(t)&&t.system_id===n.system_id?C(t):(e.nodesManager.setActiveItem(n.system_id).then(function(t){C(t),angular.isObject(e.node.vlan)&&localStorage.getItem("hideHighAvailabilityNotification-".concat(e.node.vlan.id))&&(e.hideHighAvailabilityNotification=!0)},function(e){g.raiseError(e)}),t=e.nodesManager.getActiveItem()),e.isDevice&&(e.ip_assignment=t.ip_assignment)})}i.$inject=["$scope","$rootScope","$routeParams","$location","DevicesManager","MachinesManager","ControllersManager","ZonesManager","GeneralManager","UsersManager","TagsManager","DomainsManager","ManagerHelperService","ServicesManager","ErrorService","ValidationService","ScriptsManager","ResourcePoolsManager","VLANsManager","$log","$window"];var a=i;t.default=a},function(e,t,n){"use strict";function r(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)}}Object.defineProperty(t,"__esModule",{value:!0}),t.NodeFilesystemsController=a,t.NodeAddSpecialFilesystemController=o,o.$inject=["$scope","MachinesManager"],a.$inject=["$scope"];var i=function(){function e(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:null;!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.fstype=t,this.mountPoint="",this.mountOptions=""}var t,n,i;return t=e,(n=[{key:"isValid",value:function(){return this.mountPoint.startsWith("/")}},{key:"describe",value:function(){if(this.fstype){var e=[this.fstype];switch(this.mountPoint.startsWith("/")&&e.push("at "+this.mountPoint),this.fstype){case"tmpfs":var t=this.mountOptions.match(/\bsize=(\d+)(%?)/);null!==t&&("%"===t[2]?e.push("limited to "+t[1]+"% of memory"):e.push("limited to "+t[1]+" bytes"))}return e.join(" ")}}}])&&r(t.prototype,n),i&&r(t,i),e}();function a(e){e.dropdown=null,e.addSpecialFilesystem=function(){e.dropdown="special"},e.addSpecialFilesystemFinished=function(){"special"===e.dropdown&&(e.dropdown=null)}}function o(e,t){e.machineManager=t,e.specialFilesystemTypes=["tmpfs","ramfs"],e.newFilesystem={system_id:e.node.system_id},e.filesystem=new i,e.description=null;var n={fstype:"fstype",mountPoint:"mount_point",mountOptions:"mount_options"},r=function(t){e.$watch(function(){return e.newFilesystem.$maasForm.getValue(n[t])},function(n){e.filesystem[t]=n})};for(var a in n)r(a);e.$watch("filesystem",function(){e.filesystem&&(e.description=e.filesystem.describe())},!0),e.canMount=function(){return e.filesystem.isValid()},e.cancel=function(){e.filesystem=new i,e.addSpecialFilesystemFinished()}}},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u){var l=n("filterByVLAN"),f=n("filterByFabric"),d=n("filterBySpace"),h=n("filterByNullSpace");t.title="Subnets",t.page="networks",e.getURLParameters=function(){angular.isString(r.search().by)?e.groupBy=r.search().by:e.groupBy="fabric"},e.ADD_FABRIC_ACTION={name:"add_fabric",title:"Fabric",selectedTitle:"Add fabric",objectName:"fabric"},e.ADD_VLAN_ACTION={name:"add_vlan",title:"VLAN",selectedTitle:"Add VLAN",objectName:"vlan"},e.ADD_SPACE_ACTION={name:"add_space",title:"Space",selectedTitle:"Add space",objectName:"space"},e.ADD_SUBNET_ACTION={name:"add_subnet",title:"Subnet",selectedTitle:"Add subnet",objectName:"subnet"},e.getURLParameters(),e.subnetManager=i,e.subnets=i.getItems(),e.fabricManager=a,e.fabrics=a.getItems(),e.spaceManager=o,e.spaces=o.getItems(),e.vlanManager=s,e.vlans=s.getItems(),e.loading=!0,e.group={},e.group.fabrics={},e.group.spaces={},e.group.spaces.orphanVLANs=[];var p={fabric:function(){return{}},vlan:function(){return{fabric:e.fabrics[0].id}},space:function(){return{}},subnet:function(){return{vlan:e.fabrics[0].vlan_ids[0]}}};function g(e){return i.getName(e)}e.updateGroupBy=function(){var t,i,c;"space"===e.groupBy?(r.search("by","space"),t=[],i=n("orderBy")(e.spaces,["name"]),c={id:-1},angular.forEach(i,function(r){var i=d(e.subnets,r);i=n("orderBy")(i,["cidr"]);var o=0;angular.forEach(i,function(n){o++;var i=s.getItemFromList(n.vlan),u={fabric:a.getItemFromList(i.fabric),vlan:i,vlan_name:e.getVLANName(i),subnet:n,subnet_name:g(n),space:r,space_name:""};r.id!==c.id&&(c.id=r.id,u.space_name=r.name),t.push(u)}),0===o&&t.push({space:r,space_name:r.name})}),e.group.spaces.rows=t,function(){var t=[],r=h(e.subnets);r=n("orderBy")(r,["cidr"]),angular.forEach(r,function(n){var r=s.getItemFromList(n.vlan),i={fabric:a.getItemFromList(r.fabric),vlan:r,vlan_name:e.getVLANName(r),subnet:n,subnet_name:g(n),space:null};t.push(i)}),e.group.spaces.orphanVLANs=t}()):(r.search("by","fabric"),function(){var t=[],r={id:-1},i={id:-1},a=n("orderBy")(e.fabrics,["name"]);angular.forEach(a,function(a){var s=f(e.vlans,a);s=n("orderBy")(s,["vid"]),angular.forEach(s,function(n){var s=l(e.subnets,n);if(s.length>0)angular.forEach(s,function(s){var c=o.getItemFromList(s.space),u={fabric:a,fabric_name:"",vlan:n,vlan_name:"",space:c,subnet:s,subnet_name:g(s)};a.id!==r.id&&(r.id=a.id,u.fabric_name=a.name),n.id!==i.id&&(i.id=n.id,u.vlan_name=e.getVLANName(n)),t.push(u)});else{var c={fabric:a,fabric_name:"",vlan:n,vlan_name:e.getVLANName(n)};a.id!==r.id&&(r.id=a.id,c.fabric_name=a.name),t.push(c)}})}),e.group.fabrics.rows=t}())},e.updateActions=function(){c.isSuperUser()?e.actionOptions=[e.ADD_FABRIC_ACTION,e.ADD_VLAN_ACTION,e.ADD_SPACE_ACTION,e.ADD_SUBNET_ACTION]:e.actionOptions=[]},e.actionChanged=function(){e.newObject=p[e.actionOption.objectName]()},e.cancelAction=function(){e.actionOption=null,e.newObject=null},e.getVLANName=function(e){return s.getName(e)},e.getFabricNameById=function(e){return a.getName(a.getItemFromList(e))},e.actionSubnetPreSave=function(e){return e.fabric=s.getItemFromList(e.vlan).fabric,e},u.loadManagers(e,[i,a,o,s,c]).then(function(){e.loading=!1,e.updateActions(),e.$watch("[subnets, fabrics, spaces, vlans]",e.updateGroupBy,!0),e.$on("$routeUpdate",function(){e.getURLParameters(),e.updateGroupBy()}),e.updateGroupBy()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$filter","$location","SubnetsManager","FabricsManager","SpacesManager","VLANsManager","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s){if(e.page="intro",e.title="Welcome",t.loading=!0,t.configManager=i,t.repoManager=a,t.bootResources=o.getData(),t.hasImages=!1,t.maasName=null,t.upstreamDNS=null,t.mainArchive=null,t.portsArchive=null,t.httpProxy=null,e.skip=function(){t.clickContinue(!0)},t.welcomeInError=function(){var e=t.maasName.$maasForm;return!!angular.isObject(e)&&e.hasErrors()},t.networkInError=function(){var e=!1,n=[t.upstreamDNS,t.mainArchive,t.portsArchive,t.httpProxy];return angular.forEach(n,function(t){var n=t.$maasForm;angular.isObject(n)&&n.hasErrors()&&(e=!0)}),e},t.canContinue=function(){return!t.welcomeInError()&&!t.networkInError()&&t.hasImages},t.clickContinue=function(e){angular.isUndefined(e)&&(e=!1),(e||t.canContinue())&&i.updateItem({name:"completed_intro",value:!0}).then(function(){n.location.reload()})},MAAS_config.completed_intro)r.path("/");else{var c=[i,a];s.loadManagers(t,c).then(function(){t.loading=!1,t.maasName=i.getItemFromList("maas_name"),t.upstreamDNS=i.getItemFromList("upstream_dns"),t.httpProxy=i.getItemFromList("http_proxy"),t.mainArchive=a.getItems().filter(function(e){return e.default&&"main_archive"===e.name})[0],t.portsArchive=a.getItems().filter(function(e){return e.default&&"ports_archive"===e.name})[0]}),t.$watch("bootResources.resources",function(){angular.isArray(t.bootResources.resources)&&t.bootResources.resources.length>0?t.hasImages=!0:t.hasImages=!1})}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$rootScope","$scope","$window","$location","ConfigsManager","PackageRepositoriesManager","BootResourcesManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a){e.page="intro",e.title="Welcome",t.loading=!0,t.user=null,e.skip=function(){t.clickContinue(!0)},t.isSuperUser=function(){return i.isSuperUser()},t.canContinue=function(){return t.user.sshkeys_count>0},t.clickContinue=function(e){angular.isUndefined(e)&&(e=!1),(e||t.canContinue())&&i.markIntroComplete().then(function(){n.location.reload()})},MAAS_config.user_completed_intro?r.path("/"):a.loadManager(t,i).then(function(){t.loading=!1,t.user=i.getAuthUser()})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$rootScope","$scope","$window","$location","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a){e.page="images",e.title="Loading...",t.loading=!0,t.bootResources=n.getData(),t.configManager=r,t.autoImport=null,t.isSuperUser=function(){return i.isSuperUser()},a.loadManagers(t,[r,i]).then(function(){t.autoImport=r.getItemFromList("boot_images_auto_import")}),t.$watch("bootResources.resources",function(){angular.isArray(t.bootResources.resources)&&(t.loading=!1,e.title="Images")})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$rootScope","$scope","BootResourcesManager","ConfigsManager","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l,f,d){function h(n){angular.isObject(n)&&(e.fabric=n,t.title=e.fabric.name,e.$watch("vlans",p,!0),e.$watch("subnets",p,!0),e.$watch("controllers",p,!0),e.loaded=!0,e.predicate="['vlan_name', 'vlan.id', 'subnet_name']")}function p(){var t=[],n={};angular.forEach(r("filter")(e.vlans,{fabric:e.fabric.id},!0),function(i){var a=r("filter")(e.subnets,{vlan:i.id},!0);if(a.length>0)angular.forEach(a,function(e){var n=c.getItemFromList(e.space),r=null===n?"(undefined)":n.name,a={vlan:i,vlan_name:o.getName(i),subnet:e,subnet_name:s.getName(e),space:n,space_name:r};t.push(a)});else{var l={vlan:i,vlan_name:o.getName(i),subnet:null,subnet_name:null,space:null,space_name:null};t.push(l)}angular.forEach(i.rack_sids,function(e){var t=u.getItemFromList(e);angular.isObject(t)&&(n[t.system_id]=t)})}),e.rows=t,e.racks=Object.keys(n).map(function(e){return n[e]})}t.title="Loading...",t.page="networks",e.fabric=null,e.fabricManager=a,e.editSummary=!1,e.vlans=o.getItems(),e.subnets=s.getItems(),e.controllers=u.getItems(),e.loaded=!1,e.enterEditSummary=function(){e.editSummary=!0},e.exitEditSummary=function(){e.editSummary=!1},e.isSuperUser=function(){return l.isSuperUser()},e.isDefaultFabric=function(){return!!angular.isObject(e.fabric)&&0===e.fabric.id},e.canBeDeleted=function(){return!!angular.isObject(e.fabric)&&0!==e.fabric.id},e.deleteButton=function(){e.error=null,e.confirmingDelete=!0},e.cancelDeleteButton=function(){e.confirmingDelete=!1},e.deleteConfirmButton=function(){a.deleteFabric(e.fabric).then(function(){e.confirmingDelete=!1,i.path("/networks"),i.search("by","fabric")},function(t){e.error=f.parseValidationError(t.error)})},f.loadManagers(e,[a,o,s,c,u,l]).then(function(){var e=a.getActiveItem(),t=parseInt(n.fabric_id,10);isNaN(t)?d.raiseError("Invalid fabric identifier."):angular.isObject(e)&&e.id===t?h(e):a.setActiveItem(t).then(function(e){h(e)},function(e){d.raiseError(e)})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$filter","$location","FabricsManager","VLANsManager","SubnetsManager","SpacesManager","ControllersManager","UsersManager","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i){t.title="DNS",t.page="domains",e.domains=n.getItems(),e.currentpage="domains",e.predicate="name",e.reverse=!1,e.loading=!0,e.confirmSetDefaultRow=null,e.addDomainScope=null,e.addDomain=function(){e.addDomainScope.show()},e.cancelAddDomain=function(){e.addDomainScope.cancel()},e.isSuperUser=function(){return r.isSuperUser()},e.confirmSetDefault=function(t){e.confirmSetDefaultRow=t},e.cancelSetDefault=function(){e.confirmSetDefaultRow=null},e.setDefault=function(t){n.setDefault(t),e.confirmSetDefaultRow=null},i.loadManagers(e,[n,r]).then(function(){e.loading=!1})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","DomainsManager","UsersManager","ManagerHelperService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s){function c(n){e.domain=n,e.loaded=!0,t.title=e.domain.displayname}t.title="Loading...",t.page="domains",e.loaded=!1,e.domain=null,e.editSummary=!1,e.predicate="name",e.reverse=!1,e.action=null,e.editRow=null,e.deleteRow=null,e.domainsManager=i,e.newObject={},e.supportedRecordTypes=["A","AAAA","CNAME","MX","NS","SRV","SSHFP","TXT"],e.predicate="name",e.sortTable=function(t){e.predicate=t,e.reverse=!e.reverse},e.enterEditSummary=function(){e.editSummary=!0},e.exitEditSummary=function(){e.editSummary=!1},e.isRecordAutogenerated=function(e){return!e.dnsresource_id},e.editRecord=function(t){e.editRow=t,t.previous_rrdata=t.rrdata,t.previous_rrtype=t.rrtype,t.previous_name=t.name,t.previous_ttl=t.ttl,e.deleteRow=null},e.removeRecord=function(t){e.deleteRow=t,e.editRow=null},e.confirmRemoveRecord=function(t){t.domain=e.domain.id,e.domainsManager.deleteDNSRecord(t),e.stopEditingRow()},e.stopEditingRow=function(){e.editRow=null,e.deleteRow=null},e.isSuperUser=function(){return a.isSuperUser()},e.isDefaultDomain=function(){return!!angular.isObject(e.domain)&&0===e.domain.id},e.canBeDeleted=function(){return!!angular.isObject(e.domain)&&0===e.domain.rrsets.length},e.deleteButton=function(){e.error=null,e.actionInProgress=!0,e.action="delete"},e.addRecordButton=function(){e.error=null,e.actionInProgress=!0,e.action="add_record"},e.cancelAction=function(){e.actionInProgress=!1},e.deleteConfirmButton=function(){i.deleteDomain(e.domain).then(function(){e.actionInProgress=!1,r.path("/domains")},function(t){e.error=o.parseValidationError(t)})},o.loadManagers(e,[i,a]).then(function(){var e=i.getActiveItem(),t=parseInt(n.domain_id,10);isNaN(t)?s.raiseError("Invalid domain identifier."):angular.isObject(e)&&e.id===t?c(e):i.setActiveItem(t).then(function(e){c(e)},function(e){s.raiseError(e)})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$routeParams","$location","DomainsManager","UsersManager","ManagerHelperService","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u,l,f){var d=[["static","Static"],["dynamic","Dynamic"],["external","External"]];t.title="Dashboard",t.page="dashboard",e.loaded=!1,e.discoveredDevices=r.getItems(),e.domains=i.getItems(),e.machines=a.getItems(),e.devices=o.getItems(),e.configManager=u,e.networkDiscovery=null,e.column="mac",e.selectedDevice=null,e.convertTo=null,e.showClearDiscoveriesPanel=!1,e.removingDevices=!1,e.MAAS_VERSION_NUMBER=r.formatMAASVersionNumber(),e.search="",e.searchValid=!0,e.actionOption=null,e.filters=f.getEmptyFilter(),e.metadata={},e.filteredDevices=[],e.clearSearch=function(){e.search="",e.updateFilters()},e.filteredDevices=[],e.updateFilters=function(){var t=e.search,n=f.getCurrentFilters(t);null===n?(e.filters=f.getEmptyFilter(),e.searchValid=!1):(e.filters=n,e.searchValid=!0)},e.dedupeMetadata=function(t){return e.discoveredDevices.filter(function(e,n,r){return r.map(function(e){return e[t]}).indexOf(e[t])===n})},e.getCount=function(t,n){return e.discoveredDevices.filter(function(e){return e[t]===n}).length},e.setMetadata=function(){var t=e.dedupeMetadata("fabric_name").map(function(t){return{name:t.fabric_name,count:e.getCount("fabric_name",t.fabric_name)}}),n=e.dedupeMetadata("vlan").map(function(t){return{name:t.vlan,count:e.getCount("vlan",t.vlan)}}),r=e.dedupeMetadata("observer_hostname").map(function(t){return{name:t.observer_hostname,count:e.getCount("observer_hostname",t.observer_hostname)}}),i=e.dedupeMetadata("subnet_cidr").map(function(t){return{name:t.subnet_cidr,count:e.getCount("subnet_cidr",t.subnet_cidr)}});e.metadata={fabric:t,vlan:n,rack:r,subnet:i}},e.toggleFilter=function(t,n){e.filters=f.toggleFilter(e.filters,t,n,!0),e.search=f.filtersToString(e.filters)},e.isFilterActive=function(t,n){return f.isFilterActive(e.filters,t,n,!0)},e.formatMAASVersionNumber=function(){if(MAAS_config.version){var e=MAAS_config.version.split(" ")[0];if(e)return"0"===e.split(".")[2]?e.split(".")[0]+"."+e.split(".")[1]:e}},e.MAAS_VERSION_NUMBER=e.formatMAASVersionNumber(),e.predicate=e.last_seen,e.openClearDiscoveriesPanel=function(){e.showClearDiscoveriesPanel=!0},e.closeClearDiscoveriesPanel=function(){e.showClearDiscoveriesPanel=!1},e.sortTable=function(t){e.predicate=t,e.reverse=!e.reverse},e.proxyManager={updateItem:function(t){if("device"===e.convertTo.type)return o.createItem(t);if("interface"===e.convertTo.type)return o.createInterface(t);throw new Error("Unknown type: "+e.convertTo.type)}},e.getDiscoveryName=function(e){return null===e.hostname?"unknown":e.hostname},e.getSubnetName=function(e){var t=s.getItemFromList(e);return s.getName(t)},e.getVLANName=function(e){var t=c.getItemFromList(e);return c.getName(t)},e.removeDevice=function(e){e.isBeingRemoved=!0,r.removeDevice(e)},e.removeAllDevices=function(){e.removingDevices=!0,r.removeDevices(e.discoveredDevices).then(function(){e.discoveredDevices=r.getItems()})},e.toggleSelected=function(t){if(e.selectedDevice===t)e.selectedDevice=null;else{var n,a=r.getItemFromList(t),o=e.getDiscoveryName(a);"unknown"===o&&(o=""),o.indexOf(".")>0?(n=i.getDomainByName(o.slice(o.indexOf(".")+1)),o=o.split(".",1)[0],null===n&&(n=i.getDefaultDomain())):n=i.getDefaultDomain(),e.convertTo={type:"device",hostname:o,domain:n,parent:null,ip_assignment:"dynamic",goTo:!1,saved:!1,deviceIPOptions:d.filter(function(e){return!("static"===e[0]&&!angular.isNumber(a.subnet))})},e.selectedDevice=t}},e.preProcess=function(t){var n=r.getItemFromList(e.selectedDevice);return t=angular.copy(t),"device"===e.convertTo.type?(t.primary_mac=n.mac_address,t.extra_macs=[],t.interfaces=[{mac:n.mac_address,ip_assignment:t.ip_assignment,ip_address:n.ip,subnet:n.subnet}]):"interface"===e.convertTo.type&&(t.mac_address=n.mac_address,t.ip_address=n.ip,t.subnet=n.subnet),t},e.afterSave=function(t){r._removeItem(e.selectedDevice),e.selectedDevice=null,e.convertTo.hostname=t.hostname,e.convertTo.parent=t.parent,e.convertTo.saved=!0,e.convertTo.goTo&&(angular.isString(t.parent)?n.path("/device/"+t.parent):n.path("/devices/"))},l.loadManagers(e,[r,i,a,o,s,c,u]).then(function(){e.loaded=!0,e.networkDiscovery=u.getItemFromList("network_discovery"),e.setMetadata(),e.discoveredDevices.forEach(function(e){var t=new Date(e.last_seen);e.last_seen_timestamp=t.getTime()}),e.$watchCollection("discoveredDevices",function(){e.removingDevices=!1,e.closeClearDiscoveriesPanel()})})}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","$rootScope","$location","DiscoveriesManager","DomainsManager","MachinesManager","DevicesManager","SubnetsManager","VLANsManager","ConfigsManager","ManagerHelperService","SearchService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a,o,s,c,u){t.$parent.addHardwareScope=t,t.machineManager=a,t.newMachineObj={},t.viewable=!1,t.model="machine",t.zones=r.getItems(),t.pools=i.getItems(),t.domains=s.getItems(),t.architectures=o.getData("architectures"),t.architectures.push("Choose an architecture"),t.hwe_kernels=o.getData("hwe_kernels"),t.default_min_hwe_kernel=o.getData("default_min_hwe_kernel"),t.power_types=o.getData("power_types"),t.error=null,t.macAddressRegex=/^([0-9A-F]{2}[::]){5}([0-9A-F]{2})$/gim,t.machine=null,t.chassis=null;var l=[{name:"hostname",label:"Address",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!1},{name:"prefix_filter",label:"Prefix filter",field_type:"string",default:"",choices:[],required:!1}];function f(){if(0===t.architectures.length)return"";var e;for(e=0;e<t.architectures.length;e++)if("amd64/generic"===t.architectures[e])return t.architectures[e];return t.architectures[0]}function d(e){return angular.isObject(e)?{name:"",domain:e.domain,macs:[{mac:"",error:!1}],zone:e.zone,pool:e.pool,architecture:e.architecture,min_hwe_kernel:e.min_hwe_kernel,power:{type:e.power.type,parameters:{}}}:{name:"",domain:s.getDefaultDomain(),macs:[{mac:"",error:!1}],zone:0===t.zones.length?null:t.zones[0],pool:0===t.pools.length?null:t.pools[0],architecture:f(),min_hwe_kernel:t.default_min_hwe_kernel.text,power:{type:null,parameters:{}}}}function h(e){return angular.isObject(e)?{domain:e.domain,power:{type:null,parameters:{}}}:{domain:s.getDefaultDomain(),power:{type:null,parameters:{}}}}t.chassisPowerTypes=[{name:"mscm",description:"Moonshot Chassis Manager",fields:[{name:"hostname",label:"Host",field_type:"string",default:"",choices:[],required:!0},{name:"username",label:"Username",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!0}]},{name:"powerkvm",description:"PowerKVM",fields:l},{name:"recs_box",description:"Christmann RECS|Box",fields:[{name:"hostname",label:"Hostname",field_type:"string",default:"",choices:[],required:!0},{name:"port",label:"Port",field_type:"string",default:"80",choices:[],required:!1},{name:"username",label:"Username",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!0}]},{name:"seamicro15k",description:"SeaMicro 15000",fields:[{name:"hostname",label:"Hostname",field_type:"string",default:"",choices:[],required:!0},{name:"username",label:"Username",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!0},{name:"power_control",label:"Power Control",field_type:"choice",default:"restapi2",choices:[["restapi2","REST API V2.0"],["restapi","REST API V0.9"],["ipmi","IPMI"]],required:!0}]},{name:"ucsm",description:"UCS Chassis Manager",fields:[{name:"hostname",label:"URL",field_type:"string",default:"",choices:[],required:!0},{name:"username",label:"Username",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!0}]},{name:"virsh",description:"Virsh (virtual systems)",fields:l},{name:"vmware",description:"VMware",fields:[{name:"hostname",label:"Host",field_type:"string",default:"",choices:[],required:!0},{name:"username",label:"Username",field_type:"string",default:"",choices:[],required:!0},{name:"password",label:"Password",field_type:"string",default:"",choices:[],required:!0},{name:"prefix_filter",label:"Prefix filter",field_type:"string",default:"",choices:[],required:!1}]}],t.show=function(n){if(t.mode=n,!t.viewable){var i=!1,a=!1,u=e.defer();u.promise.then(function(){t.machine=d(t.machine),t.chassis=h(t.chassis),t.error=null,angular.isObject(t.machine)&&""===t.machine.architecture&&(t.machine.architecture=f()),t.viewable=!0}),o.loadItems(["architectures","hwe_kernels","default_min_hwe_kernel"]).then(function(){i=!0,a&&u.resolve()}),c.loadManagers(t,[r,s]).then(function(){a=!0,i&&u.resolve()})}},t.hide=function(){t.viewable=!1,c.unloadManagers(t,[r,s]),t.$emit("addHardwareHidden")},t.showMachine=function(){return 0!==t.architectures.length&&"machine"===t.mode},t.showChassis=function(){return 0!==t.architectures.length&&"chassis"===t.mode},t.addMac=function(){t.machine.macs.push({mac:"",error:!1})},t.removeMac=function(e){var n=t.machine.macs.indexOf(e);n>-1&&t.machine.macs.splice(n,1)},t.invalidName=function(){return 0!==t.machine.name.length&&!u.validateHostname(t.machine.name)},t.validateMac=function(e){""===e.mac?e.error=!1:e.error=!u.validateMAC(e.mac)},t.machineHasError=function(){var e,n=null===t.machine||null===t.machine.zone||null===t.machine.pool||"Choose an architecture"===t.machine.architecture&&"ipmi"!==t.machine.power.type.name||null===t.machine.power.type||t.invalidName(t.machine);if(n)return n;if(""===t.machine.macs[0].mac&&"ipmi"!==t.machine.power.type.name||t.machine.macs[0].error)return!0;for(e=1;e<t.machine.macs.length;e++){var r=t.machine.macs[e];if(""!==r.mac&&r.error)return!0}return!1},t.chassisHasErrors=function(){var e=null===t.chassis||null===t.chassis.power.type;return e||function(e,t){var n;for(n=0;n<e.fields.length;n++){var r=e.fields[n],i=t[r.name];if(r.required&&(angular.isUndefined(i)||""===i))return!0}return!1}(t.chassis.power.type,t.chassis.power.parameters)},t.cancel=function(){t.machine=d(),t.chassis=h(),t.hide(),t.showErrors=!1},t.saveMachine=function(e){var n,r,i,a;t.addAnother=e,t.showErrors=!0,t.newMachineObj=Object.assign(t.newMachineObj,(n=t.machine,r=angular.copy(n.macs),i=r.shift().mac,a=r.map(function(e){return e.mac}),{name:n.name,domain:n.domain,architecture:n.architecture,min_hwe_kernel:n.min_hwe_kernel,pxe_mac:i,extra_macs:a,power_type:n.power.type.name,power_parameters:angular.copy(n.power.parameters),zone:{id:n.zone.id,name:n.zone.name},pool:{id:n.pool.id,name:n.pool.name}}))},t.afterSaveMachine=function(){t.addAnother?t.machine=d(t.machine):(t.machine=d(),t.hide())},t.saveChassis=function(e){if(!t.chassisHasErrors()){t.error=null;var r=angular.copy(t.chassis.power.parameters);r.chassis_type=t.chassis.power.type.name,r.domain=t.chassis.domain.name,"powerkvm"!==r.chassis_type&&"virsh"!==r.chassis_type||delete r.username,n({method:"POST",url:"api/2.0/machines/?op=add_chassis",data:$.param(r),headers:{"Content-Type":"application/x-www-form-urlencoded"}}).then(function(){e?t.chassis=h(t.chassis):(t.chassis=h(),t.hide())},function(e){t.error=c.parseValidationError(e.data)})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$q","$scope","$http","ZonesManager","ResourcePoolsManager","MachinesManager","GeneralManager","DomainsManager","ManagerHelperService","ValidationService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){e.$parent.addDomainScope=e,e.viewable=!1,e.error=null,e.domain={name:"",authoritative:!0},e.show=function(){e.viewable||(e.domain={name:"",authoritative:!0},e.viewable=!0)},e.hide=function(){e.viewable=!1,e.$emit("addDomainHidden")},e.nameHasError=function(){return 0!==e.domain.name.length&&!r.validateDomainName(e.domain.name)},e.domainHasError=function(){return!(""!==e.domain.name&&!e.nameHasError())},e.cancel=function(){e.error=null,e.domain={name:"",authoritative:!0},e.hide()},e.save=function(r){if(!e.domainHasError()){e.error=null;var i=function(e){return angular.copy(e)}(e.domain);t.create(i).then(function(){e.domain={name:"",authoritative:!0},r||e.hide()},function(t){e.error=n.parseValidationError(t)})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","DomainsManager","ManagerHelperService","ValidationService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r,i,a){function o(e){return angular.isObject(e)?{name:"",domain:e.domain,interfaces:[{mac:"",ipAssignment:null,subnetId:null,ipAddress:""}]}:{name:"",domain:r.getDefaultDomain(),interfaces:[{mac:"",ipAssignment:null,subnetId:null,ipAddress:""}]}}e.$parent.addDeviceScope=e,e.subnets=n.getItems(),e.domains=r.getItems(),e.viewable=!1,e.error=null,e.ipAssignments=[{name:"external",title:"External"},{name:"dynamic",title:"Dynamic"},{name:"static",title:"Static"}],e.device=null,e.show=function(){e.viewable||i.loadManagers(e,[n,r]).then(function(){e.device=o(e.device),e.viewable=!0})},e.hide=function(){e.viewable=!1,i.unloadManagers(e,[n,r]),e.$emit("addDeviceHidden")},e.nameHasError=function(){return null!==e.device&&0!==e.device.name.length&&!a.validateHostname(e.device.name)},e.macHasError=function(t){if(0===t.mac.length)return!1;if(!a.validateMAC(t.mac))return!0;var n;for(n=0;n<e.device.interfaces.length;n++){if(!(e.device.interfaces[n]===t)&&e.device.interfaces[n].mac===t.mac)return!0}return!1},e.ipHasError=function(t){if(0===t.ipAddress.length)return!1;if(!a.validateIP(t.ipAddress))return!0;var r;if(angular.isObject(t.ipAssignment))if("external"===t.ipAssignment.name){for(r=0;r<e.subnets.length;r++)if(a.validateIPInNetwork(t.ipAddress,e.subnets[r].cidr))return!0}else if("static"===t.ipAssignment.name&&angular.isNumber(t.subnetId)){var i=n.getItemFromList(t.subnetId);if(!a.validateIPInNetwork(t.ipAddress,i.cidr))return!0}return!1},e.deviceHasError=function(){if(null===e.device||""===e.device.name||e.nameHasError())return!0;var t;for(t=0;t<e.device.interfaces.length;t++){var n=e.device.interfaces[t];if(""===n.mac||e.macHasError(n)||!angular.isObject(n.ipAssignment))return!0;var r="external"===n.ipAssignment.name&&(""===n.ipAddress||e.ipHasError(n)),i="static"===n.ipAssignment.name&&(!angular.isNumber(n.subnetId)||e.ipHasError(n));if(r||i)return!0}return!1},e.addInterface=function(){e.device.interfaces.push({mac:"",ipAssignment:null,subnetId:null,ipAddress:""})},e.isPrimaryInterface=function(t){return 0===e.device.interfaces.indexOf(t)},e.deleteInterface=function(t){e.isPrimaryInterface(t)||e.device.interfaces.splice(e.device.interfaces.indexOf(t),1)},e.cancel=function(){e.error=null,e.device=o(),e.hide()},e.save=function(n){if(!e.deviceHasError()){e.error=null;var r=function(e){var t,n={hostname:e.name,domain:e.domain,primary_mac:e.interfaces[0].mac,extra_macs:[],interfaces:[]};for(t=1;t<e.interfaces.length;t++)n.extra_macs.push(e.interfaces[t].mac);return angular.forEach(e.interfaces,function(e){n.interfaces.push({mac:e.mac,ip_assignment:e.ipAssignment.name,ip_address:e.ipAddress,subnet:e.subnetId})}),n}(e.device);t.create(r).then(function(t){n?e.device=o(e.device):(e.device=o(),e.hide())},function(t){e.error=i.parseValidationError(t)})}}}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$scope","DevicesManager","SubnetsManager","DomainsManager","ManagerHelperService","ValidationService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="zone";var n=this;e.registerNotifier("zone",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.getDefaultZone=function(e){var t,n=0,r=this._items.length;if(e&&(n=e.zone),0===r)return null;for(t=0;t<r;t++)if(this._items[t].id===n)return this._items[t];return this._items[0]},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="vlan";var n=this;e.registerNotifier("vlan",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.getName=function(e){var t=e.vid;return 0===e.vid?t="untagged":angular.isString(e.name)&&""!==e.name&&(t+=" ("+e.name+")"),t},n.prototype.deleteVLAN=function(t){return e.callMethod("vlan.delete",{id:t.id},!0)},n.prototype.addRackController=function(e,t){e.rack_sids.push(t.system_id)},n.prototype.configureDHCP=function(t,n,r,i){var a={id:t.id,controllers:n,extra:r};return(null===i||angular.isNumber(i))&&(a.relay_vlan=i),e.callMethod("vlan.configure_dhcp",a,!0)},n.prototype.disableDHCP=function(t){return e.callMethod("vlan.configure_dhcp",{id:t.id,controllers:[],relay_vlan:null},!0)},n.prototype.create=function(t){return e.callMethod("vlan.create",t)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){function r(){e.call(this),this._pk="id",this._handler="user",this._batchSize=200,this._authUser=null;var n=this;t.registerNotifier("user",function(e,t){n.onNotify(e,t)})}return r.prototype=new e,r.prototype.getAuthUser=function(){return this._authUser},r.prototype.isSuperUser=function(){var e=this.getAuthUser();return!!angular.isObject(e)&&e.is_superuser},r.prototype.getSSHKeyCount=function(){var e=this._authUser;return angular.isObject(e)?e.sshkeys_count:0},r.prototype._loadAuthUser=function(){var e=this;return t.callMethod("user.auth_user",{}).then(function(t){return angular.isObject(e._authUser)?angular.copy(t,e._authUser):e._authUser=t,e._authUser},function(e){n.raiseError(e)})},r.prototype._replaceItem=function(t){e.prototype._replaceItem.call(this,t),angular.isObject(this._authUser)&&this._authUser[this._pk]===t[this._pk]&&angular.copy(t,this._authUser)},r.prototype.loadItems=function(){return this._loadAuthUser(),e.prototype.loadItems.call(this)},r.prototype.reloadItems=function(){return this._loadAuthUser(),e.prototype.reloadItems.call(this)},r.prototype.markIntroComplete=function(){var e=this;return t.callMethod("user.mark_intro_complete",{}).then(function(t){return angular.isObject(e._authUser)?angular.copy(t,e._authUser):e._authUser=t,e._authUser},function(e){n.raiseError(e)})},r.prototype.createAuthorisationToken=function(){return t.callMethod("user.create_authorisation_token",{}).catch(function(e){n.raiseError(e)})},r.prototype.deleteAuthorisationToken=function(e){return t.callMethod("user.delete_authorisation_token",{key:e}).catch(function(e){n.raiseError(e)})},r.prototype.hasGlobalPermission=function(e){var t=this.getAuthUser();return!(!t||!t.global_permissions)&&-1!==t.global_permissions.indexOf(e)},new r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["Manager","RegionConnection","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="tag";var n=this;e.registerNotifier("tag",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.autocomplete=function(e){var t=[];return this._items.sort(function(e,t){var n=e.name,r=t.name;return n>r?1:n<r?-1:0}),angular.forEach(this._items,function(n){n.name.indexOf(e)>-1&&t.push(n.name)}),t},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="system_id",this._handler="switch",this._metadataAttributes={owner:null,subnets:null,tags:null,zone:function(e){return e.zone.name}};var n=this;e.registerNotifier("switch",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.create=function(t){return e.callMethod("switch.create",t)},n.prototype.performAction=function(t,n,r){return angular.isObject(r)||(r={}),e.callMethod("switch.action",{system_id:t.system_id,action:n,extra:r})},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","NodesManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="subnet";var n=this;e.registerNotifier("subnet",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.getName=function(e){if(!angular.isObject(e))return"";var t=e.cidr;return angular.isString(e.name)&&""!==e.name&&e.name!==e.cidr&&(t+=" ("+e.name+")"),t},n.prototype.getLargestRange=function(e){var t={num_addresses:0,start:"",end:""};return angular.forEach(e.statistics.ranges,function(e){angular.equals(e.purpose,["unused"])&&e.num_addresses>t.num_addresses&&(t=e)}),t},n.prototype.hasDynamicRange=function(e){var t;for(t=0;t<e.statistics.ranges.length;t++){if(-1!==e.statistics.ranges[t].purpose.indexOf("dynamic"))return!0}return!1},n.prototype.create=function(t){return e.callMethod("subnet.create",t)},n.prototype.deleteSubnet=function(t){return e.callMethod("subnet.delete",{id:t.id})},n.prototype.scanSubnet=function(t){return e.callMethod("subnet.scan",{id:t.id})},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="staticroute";var n=this;e.registerNotifier("staticroute",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="sshkey";var n=this;e.registerNotifier("sshkey",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.importKeys=function(t){return e.callMethod("sshkey.import_keys",t)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="space";var n=this;e.registerNotifier("space",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.create=function(t){return e.callMethod("space.create",t)},n.prototype.deleteSpace=function(t){return e.callMethod("space.delete",t)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="service";var n=this;e.registerNotifier("service",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="script";var n=this;e.registerNotifier("script",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="resourcepool";var n=this;e.registerNotifier("resourcepool",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.getDefaultPool=function(){var e;for(e=0;e<this._items.length;e++)if(0===this._items[e].id)return this._items[e]},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="pod";var n=this;e.registerNotifier("pod",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.refresh=function(t){var n=this;return e.callMethod("pod.refresh",t).then(function(e){return n._replaceItem(e),e})},n.prototype.compose=function(t){var n=this;return e.callMethod("pod.compose",t).then(function(e){return n._replaceItem(e),e})},n.prototype.availableWithOvercommit=function(e,t,n,r){return r?(e*n-t).toFixed(r).replace(/[.,]0$/,""):e*n-t},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="packagerepository";var n=this;e.registerNotifier("packagerepository",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.create=function(t){return e.callMethod(this._handler+".create",t,!0)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="notification",e.registerNotifier("notification",angular.bind(this,this.onNotify))}return n.prototype=new t,n.prototype.dismiss=function(t){return e.callMethod("notification.dismiss",{id:t.id})},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){function i(){t.call(this)}return i.prototype=new t,i.prototype.create=function(t){return e.callMethod(this._handler+".create",t)},i.prototype.performAction=function(t,n,r){return angular.isObject(r)||(r={}),e.callMethod(this._handler+".action",{system_id:t.system_id,action:n,extra:r})},i.prototype.checkPowerState=function(t){return e.callMethod(this._handler+".check_power",{system_id:t.system_id}).then(function(e){return t.power_state=e,e},function(e){return t.power_state="error",r.error(e),"error"})},i.prototype.createPhysicalInterface=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_physical",n)},i.prototype.createVLANInterface=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_vlan",n)},i.prototype.createBondInterface=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_bond",n)},i.prototype.createBridgeInterface=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_bridge",n)},i.prototype.updateInterface=function(t,n,r){return angular.isObject(r)||(r={}),r.system_id=t.system_id,r.interface_id=n,e.callMethod(this._handler+".update_interface",r)},i.prototype.updateInterfaceForm=function(t){return e.callMethod(this._handler+".update_interface",t)},i.prototype.deleteInterface=function(t,n){var r={system_id:t.system_id,interface_id:n};return e.callMethod(this._handler+".delete_interface",r)},i.prototype.linkSubnet=function(t,n,r){return angular.isObject(r)||(r={}),r.system_id=t.system_id,r.interface_id=n,e.callMethod(this._handler+".link_subnet",r)},i.prototype.unlinkSubnet=function(t,n,r){var i={system_id:t.system_id,interface_id:n,link_id:r};return e.callMethod(this._handler+".unlink_subnet",i)},i.prototype.updateFilesystem=function(t,n,r,i,a,o,s){var c=this._handler+".update_filesystem",u={system_id:t.system_id,block_id:n,partition_id:r,fstype:i,mount_point:a,mount_options:o,tags:s};return e.callMethod(c,u)},i.prototype.deleteDisk=function(t,n){var r=this._handler+".delete_disk",i={system_id:t.system_id,block_id:n};return e.callMethod(r,i)},i.prototype.deletePartition=function(t,n){var r=this._handler+".delete_partition",i={system_id:t.system_id,partition_id:n};return e.callMethod(r,i)},i.prototype.deleteVolumeGroup=function(t,n){var r=this._handler+".delete_volume_group",i={system_id:t.system_id,volume_group_id:n};return e.callMethod(r,i)},i.prototype.deleteCacheSet=function(t,n){var r=this._handler+".delete_cache_set",i={system_id:t.system_id,cache_set_id:n};return e.callMethod(r,i)},i.prototype.deleteFilesystem=function(t,n,r,i){var a=this._handler+".delete_filesystem",o={system_id:t.system_id,blockdevice_id:n,partition_id:r,filesystem_id:i};return e.callMethod(a,o)},i.prototype.createPartition=function(t){var n;n=angular.isObject(t.params)?t.params:{};var r=this._handler+".create_partition";return n.system_id=t.system_id,n.block_id=t.block_id,n.partition_size=t.partition_size,e.callMethod(r,n)},i.prototype.createCacheSet=function(t,n,r){var i=this._handler+".create_cache_set",a={system_id:t.system_id,block_id:n,partition_id:r};return e.callMethod(i,a)},i.prototype.createBcache=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_bcache",n)},i.prototype.createRAID=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_raid",n)},i.prototype.createVolumeGroup=function(t,n){return angular.isObject(n)||(n={}),n.system_id=t.system_id,e.callMethod(this._handler+".create_volume_group",n)},i.prototype.createLogicalVolume=function(t,n,r,i,a){angular.isObject(a)||(a={});var o=this._handler+".create_logical_volume";return a.system_id=t.system_id,a.volume_group_id=n,a.name=r,a.size=i,e.callMethod(o,a)},i.prototype.updateDisk=function(t,n,r){return angular.isObject(r)||(r={}),r.system_id=t.system_id,r.block_id=n,e.callMethod(this._handler+".update_disk",r)},i.prototype.setBootDisk=function(t,n){var r={system_id:t.system_id,block_id:n};return e.callMethod(this._handler+".set_boot_disk",r)},i.prototype.getSummaryXML=function(t){return e.callMethod(this._handler+".get_summary_xml",{system_id:t.system_id})},i.prototype.getSummaryYAML=function(t){return e.callMethod(this._handler+".get_summary_yaml",{system_id:t.system_id})},i.prototype.isModernUbuntu=function(e){return!!e&&("ubuntu"===e.osystem&&!n.includes(e.release))},i.prototype.suppressTests=function(t,n){return e.callMethod(this._handler+".set_script_result_suppressed",{system_id:t.system_id,script_result_ids:n.map(function(e){return e.id})})},i.prototype.unsuppressTests=function(t,n){return e.callMethod(this._handler+".set_script_result_unsuppressed",{system_id:t.system_id,script_result_ids:n.map(function(e){return e.id})})},i.prototype.getLatestFailedTests=function(t){return e.callMethod(this._handler+".get_latest_failed_testing_script_results",{system_ids:t.map(function(e){return e.system_id})}).then(function(e){return e},function(e){return e})},i}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager","KVMDeployOSBlacklist","$log"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r=n(68);function i(e,t){function n(n,i){t.call(this),this._pk="id",this._handler="noderesult",this._node=n,this._factory=i,this.commissioning_results=[{title:null,hardware_type:r.HardwareType.NODE,results:{}},{title:"CPU",hardware_type:r.HardwareType.CPU,results:{}},{title:"Memory",hardware_type:r.HardwareType.MEMORY,results:{}},{title:"Storage",hardware_type:r.HardwareType.STORAGE,results:{}}],this.testing_results=[{title:"CPU",hardware_type:r.HardwareType.CPU,results:{}},{title:"Memory",hardware_type:r.HardwareType.MEMORY,results:{}},{title:"Storage",hardware_type:r.HardwareType.STORAGE,results:{}},{title:"Other Results",hardware_type:r.HardwareType.NODE,results:{}}],this.installation_results=[];var a=this;e.registerNotifier("noderesult",function(e,t){a.onNotify(e,t)})}function i(){this._managers=[]}return n.prototype=new t,n.prototype._getStorageSubtext=function(e){var t="";return""!==e.model&&(t+="Model: "+e.model),""!==e.serial&&(""!==t&&(t+=", "),t+="Serial: "+e.serial),""!==t?"/dev/"+e.name+" ("+t+")":"/dev/"+e.name},n.prototype._updateObject=function(e,t){angular.forEach(t,function(t,n){e[n]!==t&&"showing_results"!==n&&"showing_history"!==n&&"showing_menu"!==n&&"$selected"!==n&&(e[n]=t)})},n.prototype._addOrReplace=function(e,t){var n;for(n=0;n<e.length;n++)if(e[n].name===t.name)return t.$selected=e[n].$selected,t.showing_results=e[n].showing_results,t.showing_history=e[n].showing_history,t.showing_menu=e[n].showing_menu,void angular.copy(t,e[n]);for(n=0;n<e.length;n++)if(e[n].name>t.name)return void e.splice(n,0,t);e.push(t)},n.prototype._processItem=function(e){var t,n;if(e.showing_results=!1,e.showing_history=!1,e.showing_menu=!1,e.result_section="scripts",0===e.result_type)t=this.commissioning_results;else{if(1===e.result_type)return void this._addOrReplace(this.installation_results,e);t=this.testing_results,e.result_section="tests"}var i,a,o=t[3];for(n=0;n<t.length;n++)if(t[n].hardware_type===e.hardware_type){o=t[n].results;break}if(e.hardware_type===r.HardwareType.STORAGE&&null!==e.physical_blockdevice&&this._node.disks){for(n=0;n<this._node.disks.length;n++)if((i=this._node.disks[n]).id===e.physical_blockdevice){a=this._getStorageSubtext(i),angular.isArray(o[a])||(o[a]=[]),this._addOrReplace(o[a],e);break}}else angular.isArray(o.null)||(o.null=[]),this._addOrReplace(o.null,e)},n.prototype._removeItem=function(e){var t=this._getIndexOfItem(this._items,e.id);t>=0&&this._updateMetadata(this._items[t],"delete"),this._removeItemByIdFromArray(this._items,e.id),this._removeItemByIdFromArray(this._selectedItems,e.id);var n=this;angular.forEach(this.commissioning_results,function(t){angular.forEach(t.results,function(r,i){n._removeItemByIdFromArray(r,e.id),0===r.length&&delete t.results[i]})}),angular.forEach(this.testing_results,function(t){angular.forEach(t.results,function(r,i){n._removeItemByIdFromArray(r,e.id),0===r.length&&delete t.results[i]})}),this._removeItemByIdFromArray(this.installation_results,e.id)},n.prototype._initBatchLoadParameters=function(){var e={system_id:this._node.system_id};return"summary"===this._area?(e.has_surfaced=!0,e.result_type=2):"testing"===this._area?e.result_type=2:"commissioning"===this._area?e.result_type=0:"logs"===this._area&&(e.result_type=1),e},n.prototype.destroy=function(){if(this._factory.destroyManager(this),this.isLoaded()){var t=this._handler+".clear";e.callMethod(t,{system_id:this._node.system_id})}},n.prototype.get_result_data=function(t,n){var r=this._handler+".get_result_data",i={id:t,data_type:n};return e.callMethod(r,i)},n.prototype.get_history=function(t){var n=this._handler+".get_history",r={id:t};return e.callMethod(n,r)},i.prototype._getManager=function(e){var t;for(t=0;t<this._managers.length;t++)if(this._managers[t]._node.system_id===e.system_id)return this._managers[t];return null},i.prototype.getManager=function(e,t){var r=this._getManager(e);return angular.isObject(r)||(r=new n(e,this),this._managers.push(r)),r._area=t,r.results="commissioning"===t?r.commissioning_results:"logs"===t?r.installation_results:r.testing_results,r},i.prototype.destroyManager=function(e){var t=this._managers.indexOf(e);t>=0&&this._managers.splice(t,1)},new i}i.$inject=["RegionConnection","Manager"];var a=i;t.default=a},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="system_id",this._handler="machine",this._batchSize=25,this._metadataAttributes={architecture:null,status:null,owner:null,tags:null,pod:function(e){return void 0===e.pod?"":e.pod.name},pool:function(e){return e.pool.name},zone:function(e){return e.zone.name},subnets:null,fabrics:null,spaces:null,storage_tags:null,release:function(e){return 6===e.status_code||9===e.status_code?e.osystem+"/"+e.distro_series:""}};var n=this;e.registerNotifier("machine",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.mountSpecialFilesystem=function(t){var n=this._handler+".mount_special",r={system_id:t.system_id,fstype:t.fstype,mount_point:t.mount_point,mount_options:t.mount_options};return e.callMethod(n,r)},n.prototype.unmountSpecialFilesystem=function(t,n){var r=this._handler+".unmount_special",i={system_id:t.system_id,mount_point:n};return e.callMethod(r,i)},n.prototype.applyStorageLayout=function(t){var n=this._handler+".apply_storage_layout";return e.callMethod(n,t)},n.prototype.createDatastore=function(t){var n=this._handler+".create_vmfs_datastore";return e.callMethod(n,t)},n.prototype.updateDatastore=function(t){var n=this._handler+".update_vmfs_datastore";return e.callMethod(n,t)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","NodesManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="iprange";var n=this;e.registerNotifier("iprange",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){function i(){this._data={machine_actions:{method:"general.machine_actions",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},device_actions:{method:"general.device_actions",data:[],request:!1,loaded:!1,polling:[],nextPromise:null},region_controller_actions:{method:"general.region_controller_actions",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},rack_controller_actions:{method:"general.rack_controller_actions",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},region_and_rack_controller_actions:{method:"general.region_and_rack_controller_actions",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},architectures:{method:"general.architectures",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},known_architectures:{method:"general.known_architectures",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},pockets_to_disable:{method:"general.pockets_to_disable",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},components_to_disable:{method:"general.components_to_disable",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},hwe_kernels:{method:"general.hwe_kernels",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},min_hwe_kernels:{method:"general.min_hwe_kernels",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null},default_min_hwe_kernel:{method:"general.default_min_hwe_kernel",data:{text:""},requested:!1,loaded:!1,polling:[],nextPromise:null,replaceData:function(e,t){e.text=t}},osinfo:{method:"general.osinfo",data:{},requested:!1,loaded:!1,polling:[],nextPromise:null,isEmpty:function(e){var t=e.osystems;return angular.isUndefined(t)||0===t.length},replaceData:function(e,t){angular.copy(t,e)}},bond_options:{method:"general.bond_options",data:{},requested:!1,loaded:!1,polling:[],nextPromise:null,replaceData:function(e,t){angular.copy(t,e)}},version:{method:"general.version",data:{text:null},requested:!1,loaded:!1,polling:[],nextPromise:null,replaceData:function(e,t){e.text=t}},power_types:{method:"general.power_types",data:[],requested:!1,loaded:!1,polling:[],nextPromise:null,replaceData:function(e,t){var n,r,i,a;for(n=0;n<t.length;n++){i=t[n];var o=!0;for(r=0;r<e.length;r++)if(a=e[r],i.name===a.name){o=!1;break}o&&e.push(i)}for(n=e.length-1;n>=0;n--){a=e[n];var s=!1;for(r=0;r<t.length;r++)if((i=t[r]).name===a.name){s=!0;break}s||e.splice(n,1)}}},release_options:{method:"general.release_options",data:{},requested:!1,loaded:!1,polling:[],nextPromise:null,replaceData:function(e,t){angular.copy(t,e)}}},this._pollTimeout=1e4,this._pollErrorTimeout=3e3,this._pollEmptyTimeout=3e3,this._autoReload=!1,this._type="notify",this._scopes=[]}return i.prototype._getInternalData=function(e){var t=this._data[e];if(angular.isUndefined(t))throw new Error("Unknown data: "+e);return t},i.prototype.getData=function(e){var t=this._getInternalData(e);return t.requested=!0,t.data},i.prototype.isLoaded=function(){var e=!0;return angular.forEach(this._data,function(t){t.loaded||(e=!1)}),e},i.prototype.isDataLoaded=function(e){return this._getInternalData(e).loaded},i.prototype.isPolling=function(){var e=!1;return angular.forEach(this._data,function(t){t.polling.length>0&&(e=!0)}),e},i.prototype.isDataPolling=function(e){return this._getInternalData(e).polling},i.prototype.startPolling=function(e,t){var n=this._getInternalData(t);-1===n.polling.indexOf(e)&&(n.polling.push(e),1===n.polling.length&&this._poll(n))},i.prototype.stopPolling=function(e,n){var r=this._getInternalData(n),i=r.polling.indexOf(e);i>=0&&r.polling.splice(i,1),0===r.polling.length&&angular.isObject(r.nextPromise)&&(t.cancel(r.nextPromise),r.nextPromise=null)},i.prototype._loadData=function(e,t){var i=e.replaceData;return t=t||!1,angular.isUndefined(i)&&(i=function(e,t){e.length=0,e.push.apply(e,t)}),n.callMethod(e.method).then(function(t){return i(e.data,t),e.loaded=!0,e.data},function(e){return t&&r.raiseError(e),e})},i.prototype._pollAgain=function(e,n){var r=this;e.nextPromise=t(function(){r._poll(e)},n)},i.prototype._poll=function(e){var t=this,r=e.isEmpty;if(angular.isUndefined(r)&&(r=function(e){return 0===e.length}),n.isConnected())return this._loadData(e,!1).then(function(n){var i=t._pollTimeout;return r(e.data)&&(i=t._pollEmptyTimeout),t._pollAgain(e,i),n},function(n){console.log(n),t._pollAgain(e,t._pollErrorTimeout)});this._pollAgain(e,this._pollErrorTimeout)},i.prototype.loadItems=function(t){var n=this,r=e.defer(),i=0;angular.isArray(t)?i=t.length:angular.forEach(this._data,function(e){e.requested&&i++});return angular.forEach(this._data,function(e,a){(angular.isArray(t)&&-1!==t.indexOf(a)||!angular.isArray(t)&&e.requested)&&n._loadData(e,!0).then(function(){0==(i-=1)&&r.resolve()})}),r.promise},i.prototype.enableAutoReload=function(){if(!this._autoReload){this._autoReload=!0;var e=this;this._reloadFunc=function(){e.loadItems()},n.registerHandler("open",this._reloadFunc)}},i.prototype.disableAutoReload=function(){this._autoReload&&(n.unregisterHandler("open",this._reloadFunc),this._reloadFunc=null,this._autoReload=!1)},new i}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$q","$timeout","RegionConnection","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getBakery=function(){return function(e){return new r.Bakery({storage:new r.BakeryStorage(localStorage,{}),visitPage:e})}},t.externalLogin=i,i.$inject=["$window","getBakery"];var r=n(162);function i(e,t){return n.$inject=["$scope","$element"],{restrict:"E",scope:{},template:['<a target="_blank" class="p-button--positive"',' href="{{ loginURL }}"',' title="Login through {{ externalAuthURL }}">'," Go to login page","</a>",'<div id="login-error" class="p-form-validation__message"',' ng-if="errorMessage">'," <strong>Error getting login link:</strong><br>"," {{ errorMessage }}","</div>"].join(""),controller:n};function n(n,r){n.errorMessage="",n.loginURL="#",n.externalAuthURL=r.attr("auth-url");var i=t(function(e){n.$apply(function(){n.loginURL=e.Info.VisitURL,n.errorMessage=""})}),a=r.attr("next-path");i.get("/MAAS/accounts/discharge-request/",{Accept:"application/json","Content-Type":"application/json"},function(t,r){200!=r.currentTarget.status?(n.$apply(function(){n.errorMessage=r.currentTarget.responseText}),localStorage.clear()):e.location.replace(a)})}}},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="fabric";var n=this;e.registerNotifier("fabric",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.getName=function(e){if(angular.isObject(e))return angular.isString(e.name)?e.name:this._handler+"-"+e[this._pk]},n.prototype.deleteFabric=function(t){return e.callMethod("fabric.delete",{id:t.id},!0)},n.prototype.create=function(t){return e.callMethod("fabric.create",t)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(e,n){t.call(this),this._pk="id",this._handler="event",this._nodeId=e,this._factory=n,this._maxDays=1}function r(){this._managers=[];var t=this;e.registerNotifier("event",function(e,n){t.onNotify(e,n)})}return n.prototype=new t,n.prototype._initBatchLoadParameters=function(){return{node_id:this._nodeId,max_days:this._maxDays}},n.prototype.destroy=function(){this._factory.destroyManager(this),this.isLoaded()&&e.callMethod("event.clear",{node_id:this._nodeId})},n.prototype.getMaximumDays=function(){return this._maxDays},n.prototype.loadMaximumDays=function(e){var t=this,n=function(){t._maxDays=e,t.loadItems()};this.isLoading()?this.loadItems().then(function(){n()}):n()},r.prototype._getManager=function(e){var t;for(t=0;t<this._managers.length;t++)if(this._managers[t]._nodeId===e)return this._managers[t];return null},r.prototype.getManager=function(e){var t=this._getManager(e);return angular.isObject(t)?t:(t=new n(e,this),this._managers.push(t),t)},r.prototype.destroyManager=function(e){var t=this._managers.indexOf(e);t>=0&&this._managers.splice(t,1)},r.prototype.onNotify=function(e,t){if("delete"===e)angular.forEach(this._managers,function(n){n.onNotify(e,t)});else if("create"===e||"update"===e){var n=this._getManager(t.node_id);angular.isObject(n)&&n.onNotify(e,t)}},new r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="domain";var n=this;e.registerNotifier("domain",function(e,t){n.onNotify(e,t)})}n.prototype=new t,n.prototype.create=function(t){return e.callMethod("domain.create",t)},n.prototype.deleteDomain=function(t){return e.callMethod("domain.delete",t)},n.prototype.createDNSRecord=function(t){return"A"===t.rrtype||"AAAA"===t.rrtype?(t.ip_addresses=t.rrdata.split(/[ ,]+/),e.callMethod("domain.create_address_record",t)):e.callMethod("domain.create_dnsdata",t)},n.prototype.updateDNSRecord=function(t){return"A"===t.rrtype||"AAAA"===t.rrtype?(t.ip_addresses=t.rrdata.split(/[ ,]+/),e.callMethod("domain.update_address_record",t)):e.callMethod("domain.update_dnsdata",t)},n.prototype.deleteDNSRecord=function(t){return"A"===t.rrtype||"AAAA"===t.rrtype?(t.ip_addresses=t.rrdata.split(/[ ,]+/),e.callMethod("domain.delete_dnsresource",t)):e.callMethod("domain.delete_dnsdata",t)},n.prototype.setDefault=function(t){e.callMethod("domain.set_default",{domain:t.id}).then(function(){r.reloadItems()})},n.prototype.getDefaultDomain=function(){if(0===this._items.length)return null;var e;for(e=0;e<this._items.length;e++)if(!0===this._items[e].is_default)return this._items[e];return this._items[0]},n.prototype.getDomainByName=function(e){var t;if(this._items.length>0)for(t=0;t<this._items.length;t++)if(this._items[t].name===e)return this._items[t];return null};var r=new n;return r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){function r(){n.call(this),this._pk="first_seen",this._batchKey="first_seen",this._handler="discovery",this._pollEmptyTimeout=5e3}return r.prototype=new n,r.prototype.removeDevice=function(e){return t.callMethod("discovery.delete_by_mac_and_ip",{ip:e.ip,mac:e.mac_address})},r.prototype.removeDevices=function(n){return e.all(n.map(function(e){return t.callMethod("discovery.delete_by_mac_and_ip",{ip:e.ip,mac:e.mac_address})}))},new r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$q","RegionConnection","PollingManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="id",this._handler="dhcpsnippet";var n=this;e.registerNotifier("dhcpsnippet",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.create=function(t){return e.callMethod(this._handler+".create",t,!0)},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="system_id",this._handler="device",this._metadataAttributes={owner:null,subnets:null,tags:null,zone:function(e){return e.zone.name}};var n=this;e.registerNotifier("device",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,n.prototype.create=function(t){return e.callMethod("device.create",t)},n.prototype.createInterface=function(t){var n=this;return e.callMethod("device.create_interface",t).then(function(e){return n._replaceItem(e),e})},n.prototype.performAction=function(t,n,r){return angular.isObject(r)||(r={}),e.callMethod("device.action",{system_id:t.system_id,action:n,extra:r})},new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","NodesManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n){function r(){t.call(this),this._pk="system_id",this._handler="controller";var n=this;e.registerNotifier("controller",function(e,t){n.onNotify(e,t)})}return r.prototype=new t,r.prototype.getServices=function(e){var t=[];return angular.forEach(e.service_ids,function(e){var r=n.getItemFromList(e);angular.isObject(r)&&t.push(r)}),t},r.prototype.checkImageStates=function(t){return e.callMethod(this._handler+".check_images",t)},new r}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","NodesManager","ServicesManager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t){function n(){t.call(this),this._pk="name",this._handler="config";var n=this;e.registerNotifier("config",function(e,t){n.onNotify(e,t)})}return n.prototype=new t,new n}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["RegionConnection","Manager"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e,t,n,r){function i(){this._loaded=!1,this._data={},this._polling=!1,this._nextPromise=null,this._pollTimeout=1e4,this._pollErrorTimeout=500,this._pollEmptyTimeout=3e3}return i.prototype.getData=function(){return this._data},i.prototype.isLoaded=function(){return this._loaded},i.prototype.isPolling=function(){return this._polling},i.prototype.startPolling=function(){return this._polling?this._nextPromise:(this._polling=!0,this._poll())},i.prototype.stopPolling=function(){this._polling=!1,angular.isObject(this._nextPromise)&&(t.cancel(this._nextPromise),this._nextPromise=null)},i.prototype._loadData=function(e){e=e||!1;var t=this;return n.callMethod("bootresource.poll").then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data},function(t){e&&r.raiseError(t)})},i.prototype._pollAgain=function(e){var n=this;return this._nextPromise=t(function(){n._poll()},e),this._nextPromise},i.prototype._poll=function(){var e=this;return n.isConnected()?this._loadData(!1).then(function(t){var n=e._pollTimeout;return angular.isObject(t)&&!t.connection_error&&angular.isArray(t.resources)&&0!==t.resources.length||(n=e._pollEmptyTimeout),e._pollAgain(n),t},function(t){console.log(t),e._pollAgain(e._pollErrorTimeout)}):this._pollAgain(this._pollErrorTimeout)},i.prototype.loadItems=function(){var t=e.defer();return this._loadData(!0).then(function(){t.resolve()}),t.promise},i.prototype.enableAutoReload=function(){},i.prototype.stopImport=function(e){var t=this;return n.callMethod("bootresource.stop_import",e).then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data})},i.prototype.saveUbuntu=function(e){var t=this;return n.callMethod("bootresource.save_ubuntu",e).then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data})},i.prototype.saveUbuntuCore=function(e){var t=this;return n.callMethod("bootresource.save_ubuntu_core",e).then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data})},i.prototype.saveOther=function(e){var t=this;return n.callMethod("bootresource.save_other",e).then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data})},i.prototype.fetch=function(e){return n.callMethod("bootresource.fetch",e)},i.prototype.deleteImage=function(e){var t=this;return n.callMethod("bootresource.delete_image",e).then(function(e){return angular.copy(angular.fromJson(e),t._data),t._loaded=!0,t._data})},new i}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,r.$inject=["$q","$timeout","RegionConnection","ErrorService"];var i=r;t.default=i},function(e,t,n){"use strict";function r(e){var t=/^([a-z\d]|[a-z\d][a-z\d-.]*[a-z\d])*$/i,n=/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])*$/,r=/^([0-9A-Fa-f]{2}:){5}([0-9A-Fa-f]{2})$/,i=new RegExp(["^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.","(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.","(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.","(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"].join(""));function a(e,t,n,r){for(var i=0;r>0;){var a=n-r;if(a<0&&(a=0),e[i]>>a!==t[i]>>a)return!1;r-=n,i+=1}return!0}this.validateDomainName=function(e){return!(!angular.isString(e)||0===e.length||e.length>253)&&t.test(e)},this.validateHostname=function(e){return!(!angular.isString(e)||0===e.length||e.length>63)&&n.test(e)},this.validateMAC=function(e){return!!angular.isString(e)&&r.test(e.trim())},this.validateIPv4=function(e){return!(!angular.isString(e)||0===e.length)&&i.test(e)},this.validateIPv6=function(t){if(!angular.isString(t)||0===t.length||-1===t.indexOf(":"))return!1;var n,r=e.ipv6Expand(t),i=e.ipv6ToGroups(r);if(8!==i.length)return!1;for(n=0;n<8;n++)if(isNaN(i[n])||i[n]<0||i[n]>65535)return!1;return!(i[0]<1||65280===i[0]||65152===i[0])},this.validateIP=function(e){return this.validateIPv4(e)||this.validateIPv6(e)},this.validateIPInNetwork=function(t,n){var r=n.split("/"),i=r[0],o=parseInt(r[1],10);return this.validateIPv4(t)&&this.validate

Subscribers

People subscribed via source and target branches