Full Code of kubernetes/kube-ui for AI

master a58748cf27b8 cached
719 files
6.9 MB
1.9M tokens
1777 symbols
1 requests
Download .txt
Showing preview only (7,407K chars total). Download the full file or copy to clipboard to get everything.
Repository: kubernetes/kube-ui
Branch: master
Commit: a58748cf27b8
Files: 719
Total size: 6.9 MB

Directory structure:
gitextract_ua0v_2q3/

├── .gitignore
├── .travis.yml
├── CONTRIBUTING.md
├── Dockerfile
├── Godeps/
│   ├── Godeps.json
│   ├── Readme
│   └── _workspace/
│       ├── .gitignore
│       └── src/
│           └── github.com/
│               └── elazarl/
│                   └── go-bindata-assetfs/
│                       ├── LICENSE
│                       ├── README.md
│                       ├── assetfs.go
│                       ├── doc.go
│                       └── go-bindata-assetfs/
│                           └── main.go
├── LICENSE
├── Makefile
├── README.md
├── build/
│   └── build-ui.sh
├── data/
│   └── datafile.go
├── docs/
│   └── ui.md
├── hooks/
│   └── boilerplate.go.txt
├── master/
│   ├── .bowerrc
│   ├── README.md
│   ├── bower.json
│   ├── components/
│   │   ├── README.md
│   │   └── dashboard/
│   │       ├── .gitkeep
│   │       ├── README.md
│   │       ├── config/
│   │       │   └── development.example.json
│   │       ├── img/
│   │       │   └── .gitkeep
│   │       ├── js/
│   │       │   ├── .gitkeep
│   │       │   └── modules/
│   │       │       ├── .gitkeep
│   │       │       ├── controllers/
│   │       │       │   ├── .gitkeep
│   │       │       │   ├── cAdvisorController.js
│   │       │       │   ├── dashboard.js
│   │       │       │   ├── groupController.js
│   │       │       │   ├── header.js
│   │       │       │   ├── listEventsController.js
│   │       │       │   ├── listMinionsController.js
│   │       │       │   ├── listPodsController.js
│   │       │       │   ├── listReplicationControllersController.js
│   │       │       │   ├── listServicesController.js
│   │       │       │   ├── nodeController.js
│   │       │       │   ├── podController.js
│   │       │       │   ├── replicationController.js
│   │       │       │   └── serviceController.js
│   │       │       ├── directives/
│   │       │       │   ├── .gitkeep
│   │       │       │   ├── d3MinionBarGauge.js
│   │       │       │   └── dashboard.js
│   │       │       └── services/
│   │       │           ├── d3.js
│   │       │           ├── podsMock.js
│   │       │           ├── replicationControllersMock.js
│   │       │           └── servicesMock.js
│   │       ├── less/
│   │       │   ├── .gitkeep
│   │       │   ├── dashboard/
│   │       │   │   ├── colors.less
│   │       │   │   ├── groups.less
│   │       │   │   ├── pods.less
│   │       │   │   ├── servers.less
│   │       │   │   └── tables.less
│   │       │   └── dashboard.less
│   │       ├── manifest.json
│   │       ├── pages/
│   │       │   ├── .gitkeep
│   │       │   ├── footer.html
│   │       │   ├── header.html
│   │       │   └── home.html
│   │       ├── protractor/
│   │       │   ├── .gitignore
│   │       │   └── smoke.spec.js
│   │       ├── test/
│   │       │   ├── .gitkeep
│   │       │   ├── controllers/
│   │       │   │   ├── .gitkeep
│   │       │   │   └── header.spec.js
│   │       │   ├── directives/
│   │       │   │   └── .gitkeep
│   │       │   └── services/
│   │       │       └── .gitkeep
│   │       └── views/
│   │           ├── .gitkeep
│   │           ├── groups.html
│   │           ├── listEvents.html
│   │           ├── listMinions.html
│   │           ├── listPods.html
│   │           ├── listPodsCards.html
│   │           ├── listPodsVisualizer.html
│   │           ├── listReplicationControllers.html
│   │           ├── listServices.html
│   │           ├── node.html
│   │           ├── partials/
│   │           │   ├── .gitkeep
│   │           │   ├── cadvisor.html
│   │           │   ├── groupBox.html
│   │           │   ├── groupItem.html
│   │           │   ├── podTilesByName.html
│   │           │   └── podTilesByServer.html
│   │           ├── pod.html
│   │           ├── replication.html
│   │           └── service.html
│   ├── gulpfile.js
│   ├── js/
│   │   ├── app.config.js
│   │   ├── app.directive.js
│   │   ├── app.init.js
│   │   ├── app.preinit.js
│   │   ├── app.run.js
│   │   ├── app.service.js
│   │   ├── app.skeleton.json
│   │   ├── sections.js
│   │   └── tabs.js
│   ├── karma.conf.js
│   ├── less/
│   │   └── app/
│   │       └── base.less
│   ├── package.json
│   ├── protractor/
│   │   ├── .gitkeep
│   │   ├── chrome/
│   │   │   ├── .gitkeep
│   │   │   └── smoke.spec.js
│   │   └── conf.js
│   ├── shared/
│   │   ├── assets/
│   │   │   └── .gitkeep
│   │   ├── config/
│   │   │   ├── development.example.json
│   │   │   ├── generated-config.js
│   │   │   └── production.json
│   │   ├── index.html
│   │   ├── js/
│   │   │   └── modules/
│   │   │       ├── config.js
│   │   │       ├── constants.js
│   │   │       ├── controllers/
│   │   │       │   ├── home-page.js
│   │   │       │   ├── main.js
│   │   │       │   └── tabs-global.js
│   │   │       ├── directives/
│   │   │       │   └── sidebar.js
│   │   │       └── services/
│   │   │           ├── cAdvisor.js
│   │   │           ├── k8sApiService.js
│   │   │           ├── pollK8sData.js
│   │   │           └── toggle-state.js
│   │   ├── vendor/
│   │   │   ├── .gitkeep
│   │   │   ├── angular-json-human/
│   │   │   │   └── dist/
│   │   │   │       └── angular-json-human.css
│   │   │   └── angular-material/
│   │   │       └── angular-material.css
│   │   └── views/
│   │       └── partials/
│   │           ├── 404.html
│   │           ├── kubernetes-ui-menu.tmpl.html
│   │           ├── md-table.tmpl.html
│   │           └── menu-toggle.tmpl.html
│   ├── test/
│   │   └── modules/
│   │       ├── controllers/
│   │       │   ├── .gitkeep
│   │       │   ├── cAdvisorController.spec.js
│   │       │   ├── groupController.spec.js
│   │       │   ├── listEventsController.spec.js
│   │       │   ├── listMinionsController.spec.js
│   │       │   ├── listPodsController.spec.js
│   │       │   ├── listReplicationControllersController.spec.js
│   │       │   ├── listServicesController.spec.js
│   │       │   ├── replicationController.js
│   │       │   └── serviceController.spec.js
│   │       ├── directives/
│   │       │   └── .gitkeep
│   │       └── services/
│   │           └── .gitkeep
│   ├── vendor.base.json
│   └── vendor.json
├── server/
│   ├── kube-ui.go
│   └── sidebar-menu.json
├── test/
│   └── e2e/
│       ├── protractor.conf.js
│       └── scenarios.js
└── third_party/
    └── ui/
        └── bower_components/
            ├── angular/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-csp.css
            │   ├── angular.js
            │   ├── angular.min.js.gzip
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-animate/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-animate.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-aria/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-aria.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-cookies/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-cookies.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-css/
            │   ├── .bower.json
            │   ├── Gruntfile.js
            │   ├── LICENSE.txt
            │   ├── README.md
            │   ├── angular-css.js
            │   └── bower.json
            ├── angular-filter/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .travis.yml
            │   ├── bower.json
            │   ├── dist/
            │   │   └── angular-filter.js
            │   └── license.md
            ├── angular-json-human/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   └── dist/
            │       ├── angular-json-human.css
            │       └── angular-json-human.js
            ├── angular-material/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── angular-material.css
            │   ├── angular-material.js
            │   ├── bower.json
            │   ├── default-theme.css
            │   ├── demos/
            │   │   └── gridList/
            │   │       ├── demoBasicUsage/
            │   │       │   └── style.scss
            │   │       ├── demoDynamicTiles/
            │   │       │   └── style.scss
            │   │       └── demoResponsiveUsage/
            │   │           └── style.scss
            │   ├── modules/
            │   │   ├── closure/
            │   │   │   ├── autocomplete/
            │   │   │   │   ├── autocomplete-default-theme.css
            │   │   │   │   ├── autocomplete.css
            │   │   │   │   └── autocomplete.js
            │   │   │   ├── backdrop/
            │   │   │   │   ├── backdrop-default-theme.css
            │   │   │   │   ├── backdrop.css
            │   │   │   │   └── backdrop.js
            │   │   │   ├── bottomSheet/
            │   │   │   │   ├── bottomSheet-default-theme.css
            │   │   │   │   ├── bottomSheet.css
            │   │   │   │   └── bottomSheet.js
            │   │   │   ├── button/
            │   │   │   │   ├── button-default-theme.css
            │   │   │   │   ├── button.css
            │   │   │   │   └── button.js
            │   │   │   ├── card/
            │   │   │   │   ├── card-default-theme.css
            │   │   │   │   ├── card.css
            │   │   │   │   └── card.js
            │   │   │   ├── checkbox/
            │   │   │   │   ├── checkbox-default-theme.css
            │   │   │   │   ├── checkbox.css
            │   │   │   │   └── checkbox.js
            │   │   │   ├── content/
            │   │   │   │   ├── content-default-theme.css
            │   │   │   │   ├── content.css
            │   │   │   │   └── content.js
            │   │   │   ├── core/
            │   │   │   │   ├── core.css
            │   │   │   │   ├── core.js
            │   │   │   │   └── default-theme.js
            │   │   │   ├── dialog/
            │   │   │   │   ├── dialog-default-theme.css
            │   │   │   │   ├── dialog.css
            │   │   │   │   └── dialog.js
            │   │   │   ├── divider/
            │   │   │   │   ├── divider-default-theme.css
            │   │   │   │   ├── divider.css
            │   │   │   │   └── divider.js
            │   │   │   ├── gridList/
            │   │   │   │   ├── gridList-default-theme.css
            │   │   │   │   ├── gridList.css
            │   │   │   │   └── gridList.js
            │   │   │   ├── icon/
            │   │   │   │   ├── icon-default-theme.css
            │   │   │   │   ├── icon.css
            │   │   │   │   └── icon.js
            │   │   │   ├── input/
            │   │   │   │   ├── input-default-theme.css
            │   │   │   │   ├── input.css
            │   │   │   │   └── input.js
            │   │   │   ├── list/
            │   │   │   │   ├── list.css
            │   │   │   │   └── list.js
            │   │   │   ├── menu/
            │   │   │   │   ├── menu.css
            │   │   │   │   └── menu.js
            │   │   │   ├── progressCircular/
            │   │   │   │   ├── progressCircular-default-theme.css
            │   │   │   │   ├── progressCircular.css
            │   │   │   │   └── progressCircular.js
            │   │   │   ├── progressLinear/
            │   │   │   │   ├── progressLinear-default-theme.css
            │   │   │   │   ├── progressLinear.css
            │   │   │   │   └── progressLinear.js
            │   │   │   ├── radioButton/
            │   │   │   │   ├── radioButton-default-theme.css
            │   │   │   │   ├── radioButton.css
            │   │   │   │   └── radioButton.js
            │   │   │   ├── select/
            │   │   │   │   ├── select-default-theme.css
            │   │   │   │   ├── select.css
            │   │   │   │   └── select.js
            │   │   │   ├── sidenav/
            │   │   │   │   ├── sidenav-default-theme.css
            │   │   │   │   ├── sidenav.css
            │   │   │   │   └── sidenav.js
            │   │   │   ├── slider/
            │   │   │   │   ├── slider-default-theme.css
            │   │   │   │   ├── slider.css
            │   │   │   │   └── slider.js
            │   │   │   ├── sticky/
            │   │   │   │   ├── sticky.css
            │   │   │   │   └── sticky.js
            │   │   │   ├── subheader/
            │   │   │   │   ├── subheader-default-theme.css
            │   │   │   │   ├── subheader.css
            │   │   │   │   └── subheader.js
            │   │   │   ├── swipe/
            │   │   │   │   └── swipe.js
            │   │   │   ├── switch/
            │   │   │   │   ├── switch-default-theme.css
            │   │   │   │   ├── switch.css
            │   │   │   │   └── switch.js
            │   │   │   ├── tabs/
            │   │   │   │   ├── tabs-default-theme.css
            │   │   │   │   ├── tabs.css
            │   │   │   │   └── tabs.js
            │   │   │   ├── textField/
            │   │   │   │   ├── textField-default-theme.css
            │   │   │   │   ├── textField.css
            │   │   │   │   └── textField.js
            │   │   │   ├── toast/
            │   │   │   │   ├── toast-default-theme.css
            │   │   │   │   ├── toast.css
            │   │   │   │   └── toast.js
            │   │   │   ├── toolbar/
            │   │   │   │   ├── toolbar-default-theme.css
            │   │   │   │   ├── toolbar.css
            │   │   │   │   └── toolbar.js
            │   │   │   ├── tooltip/
            │   │   │   │   ├── tooltip-default-theme.css
            │   │   │   │   ├── tooltip.css
            │   │   │   │   └── tooltip.js
            │   │   │   └── whiteframe/
            │   │   │       ├── whiteframe.css
            │   │   │       └── whiteframe.js
            │   │   ├── css/
            │   │   │   └── angular-material-layout.css
            │   │   └── js/
            │   │       ├── autocomplete/
            │   │       │   ├── autocomplete-default-theme.css
            │   │       │   ├── autocomplete.css
            │   │       │   ├── autocomplete.js
            │   │       │   └── bower.json
            │   │       ├── backdrop/
            │   │       │   ├── backdrop-default-theme.css
            │   │       │   ├── backdrop.css
            │   │       │   ├── backdrop.js
            │   │       │   └── bower.json
            │   │       ├── bottomSheet/
            │   │       │   ├── bottomSheet-default-theme.css
            │   │       │   ├── bottomSheet.css
            │   │       │   ├── bottomSheet.js
            │   │       │   └── bower.json
            │   │       ├── button/
            │   │       │   ├── bower.json
            │   │       │   ├── button-default-theme.css
            │   │       │   ├── button.css
            │   │       │   └── button.js
            │   │       ├── card/
            │   │       │   ├── bower.json
            │   │       │   ├── card-default-theme.css
            │   │       │   ├── card.css
            │   │       │   └── card.js
            │   │       ├── checkbox/
            │   │       │   ├── bower.json
            │   │       │   ├── checkbox-default-theme.css
            │   │       │   ├── checkbox.css
            │   │       │   └── checkbox.js
            │   │       ├── content/
            │   │       │   ├── bower.json
            │   │       │   ├── content-default-theme.css
            │   │       │   ├── content.css
            │   │       │   └── content.js
            │   │       ├── core/
            │   │       │   ├── bower.json
            │   │       │   ├── core.css
            │   │       │   ├── core.js
            │   │       │   └── default-theme.js
            │   │       ├── dialog/
            │   │       │   ├── bower.json
            │   │       │   ├── dialog-default-theme.css
            │   │       │   ├── dialog.css
            │   │       │   └── dialog.js
            │   │       ├── divider/
            │   │       │   ├── bower.json
            │   │       │   ├── divider-default-theme.css
            │   │       │   ├── divider.css
            │   │       │   └── divider.js
            │   │       ├── icon/
            │   │       │   ├── bower.json
            │   │       │   ├── icon.css
            │   │       │   └── icon.js
            │   │       ├── input/
            │   │       │   ├── bower.json
            │   │       │   ├── input-default-theme.css
            │   │       │   ├── input.css
            │   │       │   └── input.js
            │   │       ├── list/
            │   │       │   ├── bower.json
            │   │       │   ├── list.css
            │   │       │   └── list.js
            │   │       ├── menu/
            │   │       │   ├── bower.json
            │   │       │   ├── menu.css
            │   │       │   └── menu.js
            │   │       ├── progressCircular/
            │   │       │   ├── bower.json
            │   │       │   ├── progressCircular-default-theme.css
            │   │       │   ├── progressCircular.css
            │   │       │   └── progressCircular.js
            │   │       ├── progressLinear/
            │   │       │   ├── bower.json
            │   │       │   ├── progressLinear-default-theme.css
            │   │       │   ├── progressLinear.css
            │   │       │   └── progressLinear.js
            │   │       ├── radioButton/
            │   │       │   ├── bower.json
            │   │       │   ├── radioButton-default-theme.css
            │   │       │   ├── radioButton.css
            │   │       │   └── radioButton.js
            │   │       ├── sidenav/
            │   │       │   ├── bower.json
            │   │       │   ├── sidenav-default-theme.css
            │   │       │   ├── sidenav.css
            │   │       │   └── sidenav.js
            │   │       ├── slider/
            │   │       │   ├── bower.json
            │   │       │   ├── slider-default-theme.css
            │   │       │   ├── slider.css
            │   │       │   └── slider.js
            │   │       ├── sticky/
            │   │       │   ├── bower.json
            │   │       │   ├── sticky.css
            │   │       │   └── sticky.js
            │   │       ├── subheader/
            │   │       │   ├── bower.json
            │   │       │   ├── subheader-default-theme.css
            │   │       │   ├── subheader.css
            │   │       │   └── subheader.js
            │   │       ├── swipe/
            │   │       │   ├── bower.json
            │   │       │   └── swipe.js
            │   │       ├── switch/
            │   │       │   ├── bower.json
            │   │       │   ├── switch-default-theme.css
            │   │       │   ├── switch.css
            │   │       │   └── switch.js
            │   │       ├── tabs/
            │   │       │   ├── bower.json
            │   │       │   ├── tabs-default-theme.css
            │   │       │   ├── tabs.css
            │   │       │   └── tabs.js
            │   │       ├── textField/
            │   │       │   ├── bower.json
            │   │       │   ├── textField-default-theme.css
            │   │       │   ├── textField.css
            │   │       │   └── textField.js
            │   │       ├── toast/
            │   │       │   ├── bower.json
            │   │       │   ├── toast-default-theme.css
            │   │       │   ├── toast.css
            │   │       │   └── toast.js
            │   │       ├── toolbar/
            │   │       │   ├── bower.json
            │   │       │   ├── toolbar-default-theme.css
            │   │       │   ├── toolbar.css
            │   │       │   └── toolbar.js
            │   │       ├── tooltip/
            │   │       │   ├── bower.json
            │   │       │   ├── tooltip-default-theme.css
            │   │       │   ├── tooltip.css
            │   │       │   └── tooltip.js
            │   │       └── whiteframe/
            │   │           ├── bower.json
            │   │           ├── whiteframe.css
            │   │           └── whiteframe.js
            │   └── package.json
            ├── angular-mocks/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-mocks.js
            │   ├── bower.json
            │   ├── ngAnimateMock.js
            │   ├── ngMock.js
            │   ├── ngMockE2E.js
            │   └── package.json
            ├── angular-route/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-route.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angularjs-jasmine-matchers/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   └── dist/
            │       └── matchers.js
            ├── d3/
            │   ├── .bower.json
            │   ├── .gitattributes
            │   ├── CONTRIBUTING.md
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   ├── d3.js
            │   └── package.js
            ├── d3-context-menu/
            │   ├── .bower.json
            │   ├── LICENSE.txt
            │   ├── bower.json
            │   ├── css/
            │   │   └── d3-context-menu.css
            │   └── js/
            │       └── d3-context-menu.js
            ├── hammerjs/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .gitignore
            │   ├── .jscsrc
            │   ├── .jshintrc
            │   ├── .travis.yml
            │   ├── CHANGELOG.md
            │   ├── CONTRIBUTING.md
            │   ├── Gruntfile.coffee
            │   ├── LICENSE.md
            │   ├── README.md
            │   ├── bower.json
            │   ├── component.json
            │   ├── hammer.js
            │   └── package.json
            ├── jquery/
            │   ├── .bower.json
            │   ├── MIT-LICENSE.txt
            │   ├── bower.json
            │   ├── dist/
            │   │   └── jquery.js
            │   └── src/
            │       ├── ajax/
            │       │   ├── jsonp.js
            │       │   ├── load.js
            │       │   ├── parseJSON.js
            │       │   ├── parseXML.js
            │       │   ├── script.js
            │       │   ├── var/
            │       │   │   ├── nonce.js
            │       │   │   └── rquery.js
            │       │   └── xhr.js
            │       ├── ajax.js
            │       ├── attributes/
            │       │   ├── attr.js
            │       │   ├── classes.js
            │       │   ├── prop.js
            │       │   ├── support.js
            │       │   └── val.js
            │       ├── attributes.js
            │       ├── callbacks.js
            │       ├── core/
            │       │   ├── access.js
            │       │   ├── init.js
            │       │   ├── parseHTML.js
            │       │   ├── ready.js
            │       │   └── var/
            │       │       └── rsingleTag.js
            │       ├── core.js
            │       ├── css/
            │       │   ├── addGetHookIf.js
            │       │   ├── curCSS.js
            │       │   ├── defaultDisplay.js
            │       │   ├── hiddenVisibleSelectors.js
            │       │   ├── support.js
            │       │   ├── swap.js
            │       │   └── var/
            │       │       ├── cssExpand.js
            │       │       ├── getStyles.js
            │       │       ├── isHidden.js
            │       │       ├── rmargin.js
            │       │       └── rnumnonpx.js
            │       ├── css.js
            │       ├── data/
            │       │   ├── Data.js
            │       │   ├── accepts.js
            │       │   └── var/
            │       │       ├── data_priv.js
            │       │       └── data_user.js
            │       ├── data.js
            │       ├── deferred.js
            │       ├── deprecated.js
            │       ├── dimensions.js
            │       ├── effects/
            │       │   ├── Tween.js
            │       │   └── animatedSelector.js
            │       ├── effects.js
            │       ├── event/
            │       │   ├── ajax.js
            │       │   ├── alias.js
            │       │   └── support.js
            │       ├── event.js
            │       ├── exports/
            │       │   ├── amd.js
            │       │   └── global.js
            │       ├── intro.js
            │       ├── jquery.js
            │       ├── manipulation/
            │       │   ├── _evalUrl.js
            │       │   ├── support.js
            │       │   └── var/
            │       │       └── rcheckableType.js
            │       ├── manipulation.js
            │       ├── offset.js
            │       ├── outro.js
            │       ├── queue/
            │       │   └── delay.js
            │       ├── queue.js
            │       ├── selector-native.js
            │       ├── selector-sizzle.js
            │       ├── selector.js
            │       ├── serialize.js
            │       ├── sizzle/
            │       │   └── dist/
            │       │       └── sizzle.js
            │       ├── traversing/
            │       │   ├── findFilter.js
            │       │   └── var/
            │       │       └── rneedsContext.js
            │       ├── traversing.js
            │       ├── var/
            │       │   ├── arr.js
            │       │   ├── class2type.js
            │       │   ├── concat.js
            │       │   ├── hasOwn.js
            │       │   ├── indexOf.js
            │       │   ├── pnum.js
            │       │   ├── push.js
            │       │   ├── rnotwhite.js
            │       │   ├── slice.js
            │       │   ├── strundefined.js
            │       │   ├── support.js
            │       │   └── toString.js
            │       └── wrap.js
            ├── jsonpath/
            │   ├── .bower.json
            │   ├── .gitignore
            │   ├── .npmignore
            │   ├── .travis.yml
            │   ├── CHANGES.md
            │   ├── README.md
            │   ├── lib/
            │   │   └── jsonpath.js
            │   ├── package.json
            │   └── test/
            │       ├── test.arr.js
            │       ├── test.at_and_dollar.js
            │       ├── test.eval.js
            │       ├── test.examples.js
            │       ├── test.html
            │       ├── test.intermixed.arr.js
            │       └── test.parent-selector.js
            ├── lodash/
            │   ├── .bower.json
            │   ├── LICENSE.txt
            │   ├── bower.json
            │   └── dist/
            │       ├── lodash.compat.js
            │       ├── lodash.js
            │       └── lodash.underscore.js
            ├── modernizr/
            │   ├── .bower.json
            │   ├── .editorconfig
            │   ├── .gitignore
            │   ├── .travis.yml
            │   ├── feature-detects/
            │   │   ├── a-download.js
            │   │   ├── audio-audiodata-api.js
            │   │   ├── audio-webaudio-api.js
            │   │   ├── battery-api.js
            │   │   ├── battery-level.js
            │   │   ├── blob-constructor.js
            │   │   ├── canvas-todataurl-type.js
            │   │   ├── contenteditable.js
            │   │   ├── contentsecuritypolicy.js
            │   │   ├── contextmenu.js
            │   │   ├── cookies.js
            │   │   ├── cors.js
            │   │   ├── css-backgroundposition-shorthand.js
            │   │   ├── css-backgroundposition-xy.js
            │   │   ├── css-backgroundrepeat.js
            │   │   ├── css-backgroundsizecover.js
            │   │   ├── css-boxsizing.js
            │   │   ├── css-calc.js
            │   │   ├── css-cubicbezierrange.js
            │   │   ├── css-displayrunin.js
            │   │   ├── css-displaytable.js
            │   │   ├── css-filters.js
            │   │   ├── css-hyphens.js
            │   │   ├── css-lastchild.js
            │   │   ├── css-mask.js
            │   │   ├── css-mediaqueries.js
            │   │   ├── css-objectfit.js
            │   │   ├── css-overflow-scrolling.js
            │   │   ├── css-pointerevents.js
            │   │   ├── css-positionsticky.js
            │   │   ├── css-regions.js
            │   │   ├── css-remunit.js
            │   │   ├── css-resize.js
            │   │   ├── css-scrollbars.js
            │   │   ├── css-shapes.js
            │   │   ├── css-subpixelfont.js
            │   │   ├── css-supports.js
            │   │   ├── css-userselect.js
            │   │   ├── css-vhunit.js
            │   │   ├── css-vmaxunit.js
            │   │   ├── css-vminunit.js
            │   │   ├── css-vwunit.js
            │   │   ├── custom-protocol-handler.js
            │   │   ├── dart.js
            │   │   ├── dataview-api.js
            │   │   ├── dom-classlist.js
            │   │   ├── dom-createElement-attrs.js
            │   │   ├── dom-dataset.js
            │   │   ├── dom-microdata.js
            │   │   ├── elem-datalist.js
            │   │   ├── elem-details.js
            │   │   ├── elem-output.js
            │   │   ├── elem-progress-meter.js
            │   │   ├── elem-ruby.js
            │   │   ├── elem-time.js
            │   │   ├── elem-track.js
            │   │   ├── emoji.js
            │   │   ├── es5-strictmode.js
            │   │   ├── event-deviceorientation-motion.js
            │   │   ├── exif-orientation.js
            │   │   ├── file-api.js
            │   │   ├── file-filesystem.js
            │   │   ├── forms-fileinput.js
            │   │   ├── forms-formattribute.js
            │   │   ├── forms-inputnumber-l10n.js
            │   │   ├── forms-placeholder.js
            │   │   ├── forms-speechinput.js
            │   │   ├── forms-validation.js
            │   │   ├── fullscreen-api.js
            │   │   ├── gamepad.js
            │   │   ├── getusermedia.js
            │   │   ├── ie8compat.js
            │   │   ├── iframe-sandbox.js
            │   │   ├── iframe-seamless.js
            │   │   ├── iframe-srcdoc.js
            │   │   ├── img-apng.js
            │   │   ├── img-webp.js
            │   │   ├── json.js
            │   │   ├── lists-reversed.js
            │   │   ├── mathml.js
            │   │   ├── network-connection.js
            │   │   ├── network-eventsource.js
            │   │   ├── network-xhr2.js
            │   │   ├── notification.js
            │   │   ├── performance.js
            │   │   ├── pointerlock-api.js
            │   │   ├── quota-management-api.js
            │   │   ├── requestanimationframe.js
            │   │   ├── script-async.js
            │   │   ├── script-defer.js
            │   │   ├── style-scoped.js
            │   │   ├── svg-filters.js
            │   │   ├── unicode.js
            │   │   ├── url-data-uri.js
            │   │   ├── userdata.js
            │   │   ├── vibration.js
            │   │   ├── web-intents.js
            │   │   ├── webgl-extensions.js
            │   │   ├── websockets-binary.js
            │   │   ├── window-framed.js
            │   │   ├── workers-blobworkers.js
            │   │   ├── workers-dataworkers.js
            │   │   └── workers-sharedworkers.js
            │   ├── grunt.js
            │   ├── media/
            │   │   ├── Modernizr 2 Logo.ai
            │   │   └── Modernizr 2 Logo.eps
            │   ├── modernizr.js
            │   ├── readme.md
            │   └── test/
            │       ├── basic.html
            │       ├── caniuse.html
            │       ├── caniuse_files/
            │       │   ├── Windsong-webfont.otf
            │       │   ├── form_validation.html
            │       │   ├── ga.js
            │       │   ├── hashchange.html
            │       │   ├── mathml.html
            │       │   ├── pushstate.html
            │       │   ├── style.css
            │       │   ├── svg-img.svg.1
            │       │   └── xhtml.html
            │       ├── index.html
            │       ├── js/
            │       │   ├── basic.html
            │       │   ├── dumpdata.js
            │       │   ├── lib/
            │       │   │   ├── detect-global.js
            │       │   │   ├── jquery-1.7b2.js
            │       │   │   ├── jsonselect.js
            │       │   │   ├── polyfills.js
            │       │   │   └── uaparser.js
            │       │   ├── setup.js
            │       │   ├── unit-caniuse.js
            │       │   └── unit.js
            │       └── qunit/
            │           ├── qunit.css
            │           ├── qunit.js
            │           └── run-qunit.js
            ├── ng-lodash/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .editorconfig
            │   ├── .gitignore
            │   ├── .jscsrc
            │   ├── .jshintrc
            │   ├── .travis.yml
            │   ├── CONTRIBUTING.md
            │   ├── License.txt
            │   ├── README.md
            │   ├── bower.json
            │   ├── build/
            │   │   └── ng-lodash.js
            │   └── package.json
            ├── sprintf/
            │   ├── .bower.json
            │   ├── .gitignore
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   ├── demo/
            │   │   └── angular.html
            │   ├── gruntfile.js
            │   ├── package.json
            │   ├── src/
            │   │   ├── angular-sprintf.js
            │   │   └── sprintf.js
            │   └── test/
            │       └── test.js
            └── string-format-js/
                ├── .bower.json
                ├── Gruntfile.js
                ├── LICENSE.txt
                ├── README.md
                ├── bower.json
                ├── format.js
                └── package.json

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
# OSX leaves these everywhere on SMB shares
._*

# OSX trash
.DS_Store

# Eclipse files
.classpath
.project
.settings/**

# This is where the result of the go build goes
/output/**
/output
/_output/**
/_output

# Emacs save files
*~
\#*\#
.\#*

# Vim-related files
[._]*.s[a-w][a-z]
[._]s[a-w][a-z]
*.un~
Session.vim
.netrwhist

# Go test binaries
*.test
/hack/.test-cmd-auth

# JUnit test output from ginkgo e2e tests
/junit*.xml

# Mercurial files
**/.hg
**/.hg*

# Vagrant
.vagrant
network_closure.sh

# Compiled binaries in third_party
/third_party/pkg

# Also ignore etcd installed by hack/install-etcd.sh
/third_party/etcd*

# User cluster configs
.kubeconfig

.tags*

# Web UI
master/node_modules/
master/npm-debug.log
master/shared/config/development.json
npm-debug.log

# Karma output
test_out

# precommit temporary directories created by ./hack/verify-gendocs.sh and ./hack/lib/util.sh
_tmp/
doc_tmp/

# binaries
kube-ui

# artifacts
master/npm-11278-00d1fb62/
master/phantomjs/
master/npm-5364-70388efc/
.idea
/app/


================================================
FILE: .travis.yml
================================================
language: node_js
sudo: false
node_js:
- '0.12'

cache:
  directories:
    - master/node_modules

before_install:
  - export CHROME_BIN=chromium-browser
  - export DISPLAY=:99.0
  - sh -e /etc/init.d/xvfb start

install:
  # Update npm
  - npm install -g npm@2.9.1
  - npm --version
  - cd master 
  - npm install
  # todo: activate next line when E2E tests are fixed
  # - ./node_modules/.bin/webdriver-manager update

script:
- npm run build
# run unit tests
- ./node_modules/.bin/karma start karma.conf.js --singleRun=true --autoWatch=false
# todo: fix E2E tests
# - cd ../app && ../master/node_modules/.bin/http-server -p 8000 &
# - cd ../master && node_modules/.bin/protractor protractor/conf.js


================================================
FILE: CONTRIBUTING.md
================================================
# How to become a contributor and submit your own code

## Contributor License Agreements

We'd love to accept your patches! Before we can take them, we have to jump a couple of legal hurdles.

Please fill out either the individual or corporate Contributor License Agreement (CLA).

  * If you are an individual writing original source code and you're sure you own the intellectual property, then you'll need to sign an [individual CLA](http://code.google.com/legal/individual-cla-v1.0.html).
  * If you work for a company that wants to allow you to contribute your work, then you'll need to sign a [corporate CLA](http://code.google.com/legal/corporate-cla-v1.0.html).

Follow either of the two links above to access the appropriate CLA and instructions for how to sign and return it. Once we receive it, we'll be able to accept your pull requests.

## Contributing A Patch

1. Submit an issue describing your proposed change to the repo in question.
1. The repo owner will respond to your issue promptly.
1. If your proposed change is accepted, and you haven't already done so, sign a Contributor License Agreement (see details above).
1. Fork the desired repo, develop and test your code changes.
1. Submit a pull request.

## Protocols for Collaborative Development

Please read [this doc](docs/devel/collab.md) for information on how we're running development for the project.
Also take a look at the [development guide](docs/devel/development.md) for information on how to set up your environment, run tests, manage dependencies, etc.

## Adding dependencies

If your patch depends on new packages, add that package with [`godep`](https://github.com/tools/godep).  Follow the [instructions to add a dependency](docs/devel/development.md#godep-and-dependency-management).


[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/CONTRIBUTING.md?pixel)]()


================================================
FILE: Dockerfile
================================================
# Copyright 2015 The Kubernetes Authors. All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

FROM scratch
MAINTAINER Tim St. Clair <stclair@google.com>
ADD kube-ui kube-ui
EXPOSE 8080
ENTRYPOINT ["/kube-ui"]


================================================
FILE: Godeps/Godeps.json
================================================
{
	"ImportPath": "k8s.io/kube-ui",
	"GoVersion": "go1.4.2",
	"Packages": [
		"./..."
	],
	"Deps": [
		{
			"ImportPath": "github.com/elazarl/go-bindata-assetfs",
			"Rev": "c57a80f1ab2ad67bafa83f5fd0b4c2ecbd253dd5"
		}
	]
}


================================================
FILE: Godeps/Readme
================================================
This directory tree is generated automatically by godep.

Please do not edit.

See https://github.com/tools/godep for more information.


================================================
FILE: Godeps/_workspace/.gitignore
================================================
/pkg
/bin


================================================
FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/LICENSE
================================================
Copyright (c) 2014, Elazar Leibovich
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

* Redistributions of source code must retain the above copyright notice, this
  list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright notice,
  this list of conditions and the following disclaimer in the documentation
  and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.


================================================
FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/README.md
================================================
# go-bindata-assetfs

Serve embedded files from [jteeuwen/go-bindata](https://github.com/jteeuwen/go-bindata) with `net/http`.

[GoDoc](http://godoc.org/github.com/elazarl/go-bindata-assetfs)

### Installation

Install with

    $ go get github.com/jteeuwen/go-bindata/...
    $ go get github.com/elazarl/go-bindata-assetfs/...

### Creating embedded data

Usage is identical to [jteeuwen/go-bindata](https://github.com/jteeuwen/go-bindata) usage,
instead of running `go-bindata` run `go-bindata-assetfs`.

The tool will create a `bindata_assetfs.go` file, which contains the embedded data.

A typical use case is

    $ go-bindata-assetfs data/...

### Using assetFS in your code

The generated file provides an `assetFS()` function that returns a `http.Filesystem`
wrapping the embedded files. What you usually want to do is:

    http.Handle("/", http.FileServer(assetFS()))

This would run an HTTP server serving the embedded files.

## Without running binary tool

You can always just run the `go-bindata` tool, and then

use

     import "github.com/elazarl/go-bindata-assetfs"
     ...
     http.Handle("/",
        http.FileServer(
        &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: "data"}))

to serve files embedded from the `data` directory.


================================================
FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/assetfs.go
================================================
package assetfs

import (
	"bytes"
	"errors"
	"io"
	"io/ioutil"
	"net/http"
	"os"
	"path"
	"path/filepath"
	"time"
)

var (
	fileTimestamp = time.Now()
)

// FakeFile implements os.FileInfo interface for a given path and size
type FakeFile struct {
	// Path is the path of this file
	Path string
	// Dir marks of the path is a directory
	Dir bool
	// Len is the length of the fake file, zero if it is a directory
	Len int64
}

func (f *FakeFile) Name() string {
	_, name := filepath.Split(f.Path)
	return name
}

func (f *FakeFile) Mode() os.FileMode {
	mode := os.FileMode(0644)
	if f.Dir {
		return mode | os.ModeDir
	}
	return mode
}

func (f *FakeFile) ModTime() time.Time {
	return fileTimestamp
}

func (f *FakeFile) Size() int64 {
	return f.Len
}

func (f *FakeFile) IsDir() bool {
	return f.Mode().IsDir()
}

func (f *FakeFile) Sys() interface{} {
	return nil
}

// AssetFile implements http.File interface for a no-directory file with content
type AssetFile struct {
	*bytes.Reader
	io.Closer
	FakeFile
}

func NewAssetFile(name string, content []byte) *AssetFile {
	return &AssetFile{
		bytes.NewReader(content),
		ioutil.NopCloser(nil),
		FakeFile{name, false, int64(len(content))}}
}

func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error) {
	return nil, errors.New("not a directory")
}

func (f *AssetFile) Size() int64 {
	return f.FakeFile.Size()
}

func (f *AssetFile) Stat() (os.FileInfo, error) {
	return f, nil
}

// AssetDirectory implements http.File interface for a directory
type AssetDirectory struct {
	AssetFile
	ChildrenRead int
	Children     []os.FileInfo
}

func NewAssetDirectory(name string, children []string, fs *AssetFS) *AssetDirectory {
	fileinfos := make([]os.FileInfo, 0, len(children))
	for _, child := range children {
		_, err := fs.AssetDir(filepath.Join(name, child))
		fileinfos = append(fileinfos, &FakeFile{child, err == nil, 0})
	}
	return &AssetDirectory{
		AssetFile{
			bytes.NewReader(nil),
			ioutil.NopCloser(nil),
			FakeFile{name, true, 0},
		},
		0,
		fileinfos}
}

func (f *AssetDirectory) Readdir(count int) ([]os.FileInfo, error) {
	if count <= 0 {
		return f.Children, nil
	}
	if f.ChildrenRead+count > len(f.Children) {
		count = len(f.Children) - f.ChildrenRead
	}
	rv := f.Children[f.ChildrenRead : f.ChildrenRead+count]
	f.ChildrenRead += count
	return rv, nil
}

func (f *AssetDirectory) Stat() (os.FileInfo, error) {
	return f, nil
}

// AssetFS implements http.FileSystem, allowing
// embedded files to be served from net/http package.
type AssetFS struct {
	// Asset should return content of file in path if exists
	Asset func(path string) ([]byte, error)
	// AssetDir should return list of files in the path
	AssetDir func(path string) ([]string, error)
	// Prefix would be prepended to http requests
	Prefix string
}

func (fs *AssetFS) Open(name string) (http.File, error) {
	name = path.Join(fs.Prefix, name)
	if len(name) > 0 && name[0] == '/' {
		name = name[1:]
	}
	if children, err := fs.AssetDir(name); err == nil {
		return NewAssetDirectory(name, children, fs), nil
	}
	b, err := fs.Asset(name)
	if err != nil {
		return nil, err
	}
	return NewAssetFile(name, b), nil
}


================================================
FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/doc.go
================================================
// assetfs allows packages to serve static content embedded
// with the go-bindata tool with the standard net/http package.
//
// See https://github.com/jteeuwen/go-bindata for more information
// about embedding binary data with go-bindata.
//
// Usage example, after running
//    $ go-bindata data/...
// use:
//     http.Handle("/",
//        http.FileServer(
//        &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: "data"}))
package assetfs


================================================
FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs/main.go
================================================
package main

import (
	"bufio"
	"bytes"
	"fmt"
	"os"
	"os/exec"
)

const bindatafile = "bindata.go"

func main() {
	if _, err := exec.LookPath("go-bindata"); err != nil {
		fmt.Println("Cannot find go-bindata executable in path")
		fmt.Println("Maybe you need: go get github.com/elazarl/go-bindata-assetfs/...")
		os.Exit(1)
	}
	cmd := exec.Command("go-bindata", os.Args[1:]...)
	cmd.Stdin = os.Stdin
	cmd.Stdout = os.Stdout
	cmd.Stderr = os.Stderr
	if err := cmd.Run(); err != nil {
		os.Exit(1)
	}
	in, err := os.Open(bindatafile)
	if err != nil {
		fmt.Fprintln(os.Stderr, "Cannot read", bindatafile, err)
		return
	}
	out, err := os.Create("bindata_assetfs.go")
	if err != nil {
		fmt.Fprintln(os.Stderr, "Cannot write 'bindata_assetfs.go'", err)
		return
	}
	r := bufio.NewReader(in)
	done := false
	for line, isPrefix, err := r.ReadLine(); err == nil; line, isPrefix, err = r.ReadLine() {
		line = append(line, '\n')
		if _, err := out.Write(line); err != nil {
			fmt.Fprintln(os.Stderr, "Cannot write to 'bindata_assetfs.go'", err)
			return
		}
		if !done && !isPrefix && bytes.HasPrefix(line, []byte("import (")) {
			fmt.Fprintln(out, "\t\"github.com/elazarl/go-bindata-assetfs\"")
			done = true
		}
	}
	fmt.Fprintln(out, `
func assetFS() *assetfs.AssetFS {
	for k := range _bintree.Children {
		return &assetfs.AssetFS{Asset: Asset, AssetDir: AssetDir, Prefix: k}
	}
	panic("unreachable")
}`)
	// Close files BEFORE remove calls (don't use defer).
	in.Close()
	out.Close()
	if err := os.Remove(bindatafile); err != nil {
		fmt.Fprintln(os.Stderr, "Cannot remove", bindatafile, err)
	}
}


================================================
FILE: LICENSE
================================================

                                 Apache License
                           Version 2.0, January 2004
                        http://www.apache.org/licenses/

   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION

   1. Definitions.

      "License" shall mean the terms and conditions for use, reproduction,
      and distribution as defined by Sections 1 through 9 of this document.

      "Licensor" shall mean the copyright owner or entity authorized by
      the copyright owner that is granting the License.

      "Legal Entity" shall mean the union of the acting entity and all
      other entities that control, are controlled by, or are under common
      control with that entity. For the purposes of this definition,
      "control" means (i) the power, direct or indirect, to cause the
      direction or management of such entity, whether by contract or
      otherwise, or (ii) ownership of fifty percent (50%) or more of the
      outstanding shares, or (iii) beneficial ownership of such entity.

      "You" (or "Your") shall mean an individual or Legal Entity
      exercising permissions granted by this License.

      "Source" form shall mean the preferred form for making modifications,
      including but not limited to software source code, documentation
      source, and configuration files.

      "Object" form shall mean any form resulting from mechanical
      transformation or translation of a Source form, including but
      not limited to compiled object code, generated documentation,
      and conversions to other media types.

      "Work" shall mean the work of authorship, whether in Source or
      Object form, made available under the License, as indicated by a
      copyright notice that is included in or attached to the work
      (an example is provided in the Appendix below).

      "Derivative Works" shall mean any work, whether in Source or Object
      form, that is based on (or derived from) the Work and for which the
      editorial revisions, annotations, elaborations, or other modifications
      represent, as a whole, an original work of authorship. For the purposes
      of this License, Derivative Works shall not include works that remain
      separable from, or merely link (or bind by name) to the interfaces of,
      the Work and Derivative Works thereof.

      "Contribution" shall mean any work of authorship, including
      the original version of the Work and any modifications or additions
      to that Work or Derivative Works thereof, that is intentionally
      submitted to Licensor for inclusion in the Work by the copyright owner
      or by an individual or Legal Entity authorized to submit on behalf of
      the copyright owner. For the purposes of this definition, "submitted"
      means any form of electronic, verbal, or written communication sent
      to the Licensor or its representatives, including but not limited to
      communication on electronic mailing lists, source code control systems,
      and issue tracking systems that are managed by, or on behalf of, the
      Licensor for the purpose of discussing and improving the Work, but
      excluding communication that is conspicuously marked or otherwise
      designated in writing by the copyright owner as "Not a Contribution."

      "Contributor" shall mean Licensor and any individual or Legal Entity
      on behalf of whom a Contribution has been received by Licensor and
      subsequently incorporated within the Work.

   2. Grant of Copyright License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      copyright license to reproduce, prepare Derivative Works of,
      publicly display, publicly perform, sublicense, and distribute the
      Work and such Derivative Works in Source or Object form.

   3. Grant of Patent License. Subject to the terms and conditions of
      this License, each Contributor hereby grants to You a perpetual,
      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
      (except as stated in this section) patent license to make, have made,
      use, offer to sell, sell, import, and otherwise transfer the Work,
      where such license applies only to those patent claims licensable
      by such Contributor that are necessarily infringed by their
      Contribution(s) alone or by combination of their Contribution(s)
      with the Work to which such Contribution(s) was submitted. If You
      institute patent litigation against any entity (including a
      cross-claim or counterclaim in a lawsuit) alleging that the Work
      or a Contribution incorporated within the Work constitutes direct
      or contributory patent infringement, then any patent licenses
      granted to You under this License for that Work shall terminate
      as of the date such litigation is filed.

   4. Redistribution. You may reproduce and distribute copies of the
      Work or Derivative Works thereof in any medium, with or without
      modifications, and in Source or Object form, provided that You
      meet the following conditions:

      (a) You must give any other recipients of the Work or
          Derivative Works a copy of this License; and

      (b) You must cause any modified files to carry prominent notices
          stating that You changed the files; and

      (c) You must retain, in the Source form of any Derivative Works
          that You distribute, all copyright, patent, trademark, and
          attribution notices from the Source form of the Work,
          excluding those notices that do not pertain to any part of
          the Derivative Works; and

      (d) If the Work includes a "NOTICE" text file as part of its
          distribution, then any Derivative Works that You distribute must
          include a readable copy of the attribution notices contained
          within such NOTICE file, excluding those notices that do not
          pertain to any part of the Derivative Works, in at least one
          of the following places: within a NOTICE text file distributed
          as part of the Derivative Works; within the Source form or
          documentation, if provided along with the Derivative Works; or,
          within a display generated by the Derivative Works, if and
          wherever such third-party notices normally appear. The contents
          of the NOTICE file are for informational purposes only and
          do not modify the License. You may add Your own attribution
          notices within Derivative Works that You distribute, alongside
          or as an addendum to the NOTICE text from the Work, provided
          that such additional attribution notices cannot be construed
          as modifying the License.

      You may add Your own copyright statement to Your modifications and
      may provide additional or different license terms and conditions
      for use, reproduction, or distribution of Your modifications, or
      for any such Derivative Works as a whole, provided Your use,
      reproduction, and distribution of the Work otherwise complies with
      the conditions stated in this License.

   5. Submission of Contributions. Unless You explicitly state otherwise,
      any Contribution intentionally submitted for inclusion in the Work
      by You to the Licensor shall be under the terms and conditions of
      this License, without any additional terms or conditions.
      Notwithstanding the above, nothing herein shall supersede or modify
      the terms of any separate license agreement you may have executed
      with Licensor regarding such Contributions.

   6. Trademarks. This License does not grant permission to use the trade
      names, trademarks, service marks, or product names of the Licensor,
      except as required for reasonable and customary use in describing the
      origin of the Work and reproducing the content of the NOTICE file.

   7. Disclaimer of Warranty. Unless required by applicable law or
      agreed to in writing, Licensor provides the Work (and each
      Contributor provides its Contributions) on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
      implied, including, without limitation, any warranties or conditions
      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
      PARTICULAR PURPOSE. You are solely responsible for determining the
      appropriateness of using or redistributing the Work and assume any
      risks associated with Your exercise of permissions under this License.

   8. Limitation of Liability. In no event and under no legal theory,
      whether in tort (including negligence), contract, or otherwise,
      unless required by applicable law (such as deliberate and grossly
      negligent acts) or agreed to in writing, shall any Contributor be
      liable to You for damages, including any direct, indirect, special,
      incidental, or consequential damages of any character arising as a
      result of this License or out of the use or inability to use the
      Work (including but not limited to damages for loss of goodwill,
      work stoppage, computer failure or malfunction, or any and all
      other commercial damages or losses), even if such Contributor
      has been advised of the possibility of such damages.

   9. Accepting Warranty or Additional Liability. While redistributing
      the Work or Derivative Works thereof, You may choose to offer,
      and charge a fee for, acceptance of support, warranty, indemnity,
      or other liability obligations and/or rights consistent with this
      License. However, in accepting such obligations, You may act only
      on Your own behalf and on Your sole responsibility, not on behalf
      of any other Contributor, and only if You agree to indemnify,
      defend, and hold each Contributor harmless for any liability
      incurred by, or claims asserted against, such Contributor by reason
      of your accepting any such warranty or additional liability.

   END OF TERMS AND CONDITIONS

   APPENDIX: How to apply the Apache License to your work.

      To apply the Apache License to your work, attach the following
      boilerplate notice, with the fields enclosed by brackets "[]"
      replaced with your own identifying information. (Don't include
      the brackets!)  The text should be enclosed in the appropriate
      comment syntax for the file format. We also recommend that a
      file or class name and description of purpose be included on the
      same "printed page" as the copyright notice for easier
      identification within third-party archives.

   Copyright [yyyy] [name of copyright owner]

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.


================================================
FILE: Makefile
================================================
# Makefile for the Docker image gcr.io/kube-ui/kube-ui
# MAINTAINER: Tim St. Clair <stclair@google.com>
# If you update this image please check the tag value before pushing.

.PHONY: all bindata container push clean

# Keep this at dev, so no one accidentally blows away the latest published version.
TAG = dev # current version: v5
PREFIX = staging-k8s.gcr.io

all: push

bindata: data/datafile.go
	./build/build-ui.sh

kube-ui: bindata server/kube-ui.go
	CGO_ENABLED=0 GOOS=linux godep go build -a -installsuffix cgo -ldflags '-w' ./server/kube-ui.go

container: kube-ui
	docker build -t $(PREFIX)/kube-ui:$(TAG) .

push: container
	gcloud docker push $(PREFIX)/kube-ui:$(TAG)

clean:
	rm -f kube-ui


================================================
FILE: README.md
================================================

Join the UI discussion at: https://groups.google.com/forum/#!forum/kubernetes-sig-ui

Also please check out the new Dashboard for Kubernetes available at: https://github.com/kubernetes/dashboard

This codebase will be retired once the new and improved Dashboard is production ready.

# Working with the Kubernetes UI
This document explains how to work with the Kubernetes UI. For information on how to access and use it, see [docs/ui.md](docs/ui.md).

## Installing dependencies
There are two kinds of dependencies in the UI project: tools and frameworks. The tools help
us manage and test the application. They are not part of the application. The frameworks, on the other hand, become part of the application, as described below.

* We get the tools via `npm`, the [node package manager](https://www.npmjs.com/). 
* We get the frameworks via `bower`, a [client-side package manager](http://bower.io/).

Before you build the application for the first time, run this command from the `master` directory:

```
npm install
```

It creates a new directory, `master/node_modules`, which contains the tool dependencies.

## Building and serving the app

### Building the app for development
To build the application for development, run this command from the `master` directory:

```
npm start
```

It runs `bower install` to install and/or update the framework dependencies, and then `gulp`, a [JavaScript build system](http://gulpjs.com/), to generate a development version of the application.

Bower creates a new directory, `third_party/ui/bower_components`, which contains the framework dependencies. Each of them should be referenced in one of the `vendor.json` files below:

* `master/vendor.base.json` - 3rd party vendor javascript files required to start the app. All of the dependencies referenced by this file are compiled into `base.js` and loaded before `app.js`.
* `master/vendor.json` - 3rd party vendor js or css files required to make the app work, usually by lazy loading. All of the dependencies referenced by this file are compiled into `app/vendor`. (Note: some framework dependencies have been hand edited and checked into source control under `master/shared/vendor`.)

The default `gulp` target builds the application for development (e.g., without uglification of js files or minification of css files), and then starts a file watcher that rebuilds the generated files every time the source files are updated. (Note: the file watcher does not support adding or deleting files. It must be stopped and restarted to pick up additions or deletions).

The `app` directory and its contents are generated by the build. All of the other files are source or project files, such as tests, scripts, documentation and package manifests. (Note: the build output checked into source control is the production version, built with uglification and minification, as described below, so expect the build output to change if you build for development.)

### Serving the app during development

For development you can serve the files locally by installing a web server as follows:

```
sudo npm install -g http-server
```

The server can then be launched from the `app` directory as follows:

```
cd app
http-server -a localhost -p 8001
```

`http-server` is convenient, since we're already using `npm`, but any web server hosting the `app` directory should work.

Note that you'll need to tell the application where to find the api server by setting the value of the `k8sApiServer` configuration parameter in `master/shared/config/development.json` and then rebuilding the application. For example, for a cluster running locally at `localhost:8080`, as described [here](https://github.com/GoogleCloudPlatform/kubernetes/tree/master/docs/getting-started-guides/locally.md), you'll want to set it as follows:

```
"k8sApiServer": "http://localhost:8080/api/v1beta3"
```

### Building the app for production
To build the application for production, run this command from the `master` directory:

```
npm run build
```

Like `npm start`, it runs `bower install` to install and/or update the framework dependencies, but then it runs `gulp build` to generate a production version of the application. The `build` target builds the application for production (e.g., with uglification of js files and minification of css files), and does not run a file watcher, so that it can be used in automated build environments.

### Serving the app in production
The app is served in production by `kube-apiserver` at:

```
https://<kubernetes-master>/ui/
```

which redirects to:

```
https://<kubernetes-master>/api/v1/proxy/namespaces/kube-system/services/kube-ui/
```

## Configuration
### Configuration settings
A json file can be used by `gulp` to automatically create angular constants. This is useful for setting per environment variables such as api endpoints.

`master/shared/config/development.json` and `master/shared/config/production.json` are used for application wide configuration in development and production, respectively.

* `master/shared/config/production.json` is kept under source control with default values for production.
* `master/shared/config/development.json` is not kept under source control. Each developer can create a local version of the file by copy, paste and rename from `master/shared/config/development.example.json`, which is kept under source control with default values for development.

The configuration files for the current build environment are compiled into the intermediary `master/shared/config/generated-config.js`, which is then compiled into `app.js`.

* Component configuration added to `master/components/<component name>/config/<environment>.json` is combined with the application wide configuration during the build.

The generated angular constant is named `ENV`. The shared configuration and component configurations each generate a nested object within it. For example:

```
master
├── shared/config/development.json
└── components
    ├── dashboard/config/development.json
    └── my_component/config/development.json
```
generates the following in `master/shared/config/generated-config.js`:

```
angular.module('kubernetesApp.config', [])
.constant('ENV', {
  '/': <master/shared/config/development.json>,
  'dashboard': <master/components/dashboard/config/development.json>,
  'my_component': <master/components/my_component/config/development.json>
});
```

### Kubernetes server configuration
**RECOMMENDED**: The Kubernetes api server does not enable CORS by default, so `kube-apiserver` must be started with `--cors_allowed_origins=http://<your
  host here>` or `--cors_allowed_origins=.*`.

**NOT RECOMMENDED**: If you don't want to/cannot restart the Kubernetes api server, you can start your browser with web security disabled. For example, you can [launch Chrome](http://www.chromium.org/developers/how-tos/run-chromium-with-flags) with flag `--disable-web-security`. Be careful not to visit untrusted web sites when running your browser in this mode.

## Building a new visualizer or component
See [master/components/README.md](master/components/README.md).

## Testing
Currently, the UI project includes both unit-testing with [Karma](http://karma-runner.github.io/0.12/index.html) and end-to-end testing with [Protractor](http://angular.github.io/protractor/#/).

### Unit testing with Karma
To run the existing Karma tests:

* Edit the Karma configuration in `master/karma.config.js`, if necessary.
* Run the tests. The console should show the test results.

```
cd master
node node_modules/.bin/karma start karma.conf.js
```

To run new Karma tests for a component, put new `*.spec.js` files under the appropriate `master/components/**/test/modules/*` directories.

To test the chrome, put new `*.spec.js` files under the appropriate `master/test/modules/*` directories.

### End-to-end testing with Protractor
To run the existing Protractor tests:

* Install the CLIs.

```
sudo npm install -g protractor
```

* Edit the test configuration in `master/protractor/conf.js`, if necessary.
* Start the webdriver server.

```
sudo webdriver-manager start
```

* Start the application (see instructions above), running at port 8000.
* Run the tests. The console should show the test results.

```
cd master/protractor
protractor conf.js
```

To run new protractor tests for a component, put new `*.spec.js` files in the appropriate `master/components/**/protractor/*` directories.

To test the chrome, put new `*.spec.js` files under the `master/protractor/chrome` directory.

[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/www/README.md?pixel)]()


================================================
FILE: build/build-ui.sh
================================================
#!/bin/bash

# Copyright 2014 The Kubernetes Authors All rights reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script builds ui assets into a single go datafile

set -o errexit
set -o nounset
set -o pipefail

KUBE_ROOT=$(dirname "${BASH_SOURCE}")/..
# source "${KUBE_ROOT}/hack/lib/init.sh"

cd "${KUBE_ROOT}"

if ! which go-bindata > /dev/null 2>&1 ; then
	echo "Cannot find go-bindata. Install with \"go get github.com/jteeuwen/go-bindata/...\""
	exit 1
fi

readonly TMP_DATAFILE="/tmp/datafile.go"
readonly DASHBOARD_SRC="app/..."
readonly DASHBOARD_PKG="data"

function kube::hack::build_ui() {
  local pkg="$1"
  local src="$2"
  local output_file="${pkg}/datafile.go"

  go-bindata -nocompress -o "${output_file}" -prefix ${PWD} -pkg "${pkg}" "${src}"

  local year=$(date +%Y)
  cat hooks/boilerplate.go.txt | sed "s/YEAR/${year}/" > "${TMP_DATAFILE}"
  echo -e "// generated by hack/build-ui.sh; DO NOT EDIT\n" >> "${TMP_DATAFILE}"
  cat "${output_file}" >> "${TMP_DATAFILE}"

  gofmt -s -w "${TMP_DATAFILE}"

  mv "${TMP_DATAFILE}" "${output_file}"

}

kube::hack::build_ui "${DASHBOARD_PKG}" "${DASHBOARD_SRC}"


================================================
FILE: data/datafile.go
================================================
/*
Copyright 2016 The Kubernetes Authors All rights reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/

// generated by hack/build-ui.sh; DO NOT EDIT

// Code generated by go-bindata.
// sources:
// app/assets/css/app.css
// app/assets/img/docArrow.png
// app/assets/img/ic_arrow_drop_down_24px.svg
// app/assets/img/ic_arrow_drop_up_24px.svg
// app/assets/img/ic_keyboard_arrow_left_24px.svg
// app/assets/img/ic_keyboard_arrow_right_24px.svg
// app/assets/img/icons/arrow-back.png
// app/assets/img/icons/favicon.png
// app/assets/img/icons/ic_arrow_forward_24px.svg
// app/assets/img/icons/ic_cancel_24px.svg
// app/assets/img/icons/ic_close_24px.svg
// app/assets/img/icons/ic_menu.svg
// app/assets/img/icons/ic_menu_24px.svg
// app/assets/img/icons/list_control_down.png
// app/assets/img/kubernetes.svg
// app/assets/js/app.js
// app/assets/js/base.js
// app/components/dashboard/img/icons/ic_arrow_drop_down_18px.svg
// app/components/dashboard/img/icons/ic_arrow_drop_down_24px.svg
// app/components/dashboard/img/icons/ic_close_18px.svg
// app/components/dashboard/img/icons/ic_close_24px.svg
// app/components/dashboard/manifest.json
// app/components/dashboard/pages/footer.html
// app/components/dashboard/pages/header.html
// app/components/dashboard/pages/home.html
// app/components/dashboard/views/groups.html
// app/components/dashboard/views/listEvents.html
// app/components/dashboard/views/listMinions.html
// app/components/dashboard/views/listPods.html
// app/components/dashboard/views/listPodsCards.html
// app/components/dashboard/views/listPodsVisualizer.html
// app/components/dashboard/views/listReplicationControllers.html
// app/components/dashboard/views/listServices.html
// app/components/dashboard/views/node.html
// app/components/dashboard/views/partials/cadvisor.html
// app/components/dashboard/views/partials/groupBox.html
// app/components/dashboard/views/partials/groupItem.html
// app/components/dashboard/views/partials/podTilesByName.html
// app/components/dashboard/views/partials/podTilesByServer.html
// app/components/dashboard/views/pod.html
// app/components/dashboard/views/replication.html
// app/components/dashboard/views/service.html
// app/index.html
// app/vendor/angular-json-human/dist/angular-json-human.css
// app/vendor/angular-material/angular-material.css
// app/vendor/d3/d3.min.js
// app/views/partials/404.html
// app/views/partials/kubernetes-ui-menu.tmpl.html
// app/views/partials/md-table.tmpl.html
// app/views/partials/menu-toggle.tmpl.html
// DO NOT EDIT!

package data

import (
	"fmt"
	"io/ioutil"
	"os"
	"path/filepath"
	"strings"
	"time"
)

type asset struct {
	bytes []byte
	info  os.FileInfo
}

type bindataFileInfo struct {
	name    string
	size    int64
	mode    os.FileMode
	modTime time.Time
}

func (fi bindataFileInfo) Name() string {
	return fi.name
}
func (fi bindataFileInfo) Size() int64 {
	return fi.size
}
func (fi bindataFileInfo) Mode() os.FileMode {
	return fi.mode
}
func (fi bindataFileInfo) ModTime() time.Time {
	return fi.modTime
}
func (fi bindataFileInfo) IsDir() bool {
	return false
}
func (fi bindataFileInfo) Sys() interface{} {
	return nil
}

var _appAssetsCssAppCss = []byte(`.nav-back{width:80px;font-size:14px;padding-left:14px;line-height:15px;background-size:14px 14px;background-repeat:no-repeat;display:block}a{text-decoration:none}.main-fab{position:absolute;z-index:20;font-size:30px;top:100px;left:24px;transform:scale(.88,.88)}.md-breadcrumb{padding-left:16px}.md-table{min-width:100%;border-collapse:collapse}.md-table tbody tr:focus,.md-table tbody tr:hover{cursor:pointer;background-color:rgba(63,81,181,.2)}.md-table-header{border-bottom:1px solid #e6e6e6;color:#828282;text-align:left;font-size:.75em;font-weight:700;padding:16px 16px 16px 0}.md-table-header a{text-decoration:none;color:inherit}.md-table-caret{display:inline-block;vertical-align:middle}.md-table-content{font-size:.8em;padding:16px 16px 16px 0;height:72px}.md-table-td-more{max-width:72px;width:72px;padding:16px}.md-table-thumbs{max-width:104px;width:104px;padding:16px 32px}.md-table-thumbs div{overflow:hidden;width:40px;height:40px;border-radius:20px;border:1px solid rgba(0,0,0,.2);background-size:cover;box-shadow:0 8px 10px rgba(0,0,0,.3);-webkit-box-shadow:0 8px 10px rgba(0,0,0,.1)}.md-table-footer{height:40px}.md-table-count-info{line-height:40px;font-size:.75em}.md-table-footer-item{width:40px;height:40px;vertical-align:middle}.bold,.md-table-active-page{font-weight:700}.gray,.grey{color:#888}md-input-container.md-default-theme .md-input{color:#fff;border-color:#fff;margin-top:24px}.dashboard-subnav{font-size:.9em;min-height:38px;max-height:38px;background-color:#09c1d1!important}.dashboard-subnav md-select.md-default-theme:focus .md-select-label{border-bottom:none;color:#fff}.selectSubPages p{text-align:center;color:#fff}.selectSubPages .md-default-theme .md-select-label.md-placeholder{color:#fff}.selectSubPages .md-select-label{padding-top:0;font-size:1em;line-height:1em;border-bottom:none;padding-bottom:0}.selectSubPages md-select{margin-top:10px;margin-right:80px;padding:0}md-select-menu{max-height:none}.md-toolbar-tools{padding-left:8px;padding-right:8px}.md-toolbar-small{height:38px;min-height:38px}.md-toolbar-tools-small{background-color:#09c1d1}.kubernetes-ui-menu,.kubernetes-ui-menu ul{list-style:none;padding:0}.kubernetes-ui-menu li{margin:0}.kubernetes-ui-menu>li{border-top:1px solid rgba(0,0,0,.12)}.kubernetes-ui-menu .md-button{border-radius:0;color:inherit;cursor:pointer;font-weight:400;line-height:40px;margin:0;max-height:40px;overflow:hidden;padding:0 16px;text-align:left;text-decoration:none;white-space:normal;width:100%}.kubernetes-ui-menu a.md-button{display:block}.kubernetes-ui-menu button.md-button::-moz-focus-inner{padding:0}.kubernetes-ui-menu .md-button.active{color:#03a9f4}.menu-heading{color:#888;display:block;font-size:inherit;font-weight:500;line-height:40px;margin:0;padding:0 16px;text-align:left;width:100%}.kubernetes-ui-menu li.parentActive,.kubernetes-ui-menu li.parentActive .menu-toggle-list{background-color:#f6f6f6}.menu-toggle-list{background:#fff;max-height:999px;overflow:hidden;position:relative;z-index:1;-webkit-transition:.75s cubic-bezier(.35,0,.25,1);-webkit-transition-property:max-height;-moz-transition:.75s cubic-bezier(.35,0,.25,1);-moz-transition-property:max-height;transition:.75s cubic-bezier(.35,0,.25,1);transition-property:max-height}.menu-toggle-list.ng-hide{max-height:0}.kubernetes-ui-menu .menu-toggle-list a.md-button{display:block;padding:0 16px 0 32px;text-transform:none}.md-button-toggle .md-toggle-icon{background:url(../img/icons/list_control_down.png) center center no-repeat;background-size:100% auto;display:inline-block;height:24px;margin:auto 0 auto auto;speak:none;width:24px;transition:transform .3s ease-in-out;-webkit-transition:-webkit-transform .3s ease-in-out}.md-button-toggle .md-toggle-icon.toggled{transform:rotate(180deg);-webkit-transform:rotate(180deg)}.menu-icon{background:0 0;border:none;margin-right:16px;padding:0}.whiteframedemoBasicUsage md-whiteframe{background:#fff;margin:2px;padding:2px}.tabsDefaultTabs{height:100%;width:100%}.tabsDefaultTabs .remove-tab{margin-bottom:40px}.tabsDefaultTabs .home-buttons .md-button{display:block;max-height:30px}.tabsDefaultTabs .home-buttons .md-button.add-tab{margin-top:20px;max-height:30px!important}.tabsDefaultTabs .demo-tab{display:block;position:relative;background:#fff;border:0 solid #000;min-height:0;width:100%}.tabsDefaultTabs .tab0,.tabsDefaultTabs .tab1,.tabsDefaultTabs .tab2,.tabsDefaultTabs .tab3{background-color:#bbdefb}.tabsDefaultTabs .md-header{background-color:#1976D2!important}.tabsDefaultTabs md-tab{color:#90caf9!important}.tabsDefaultTabs md-tab.active,.tabsDefaultTabs md-tab:focus{color:#fff!important}.tabsDefaultTabs md-tab[disabled]{opacity:.5}.tabsDefaultTabs .md-header .md-ripple{border-color:#FFFF8D!important}.tabsDefaultTabs md-tabs-ink-bar{background-color:#FFFF8D!important}.tabsDefaultTabs .title{padding-top:8px;padding-right:8px;text-align:left;text-transform:uppercase;color:#888;margin-top:24px}.tabsDefaultTabs [layout-align]>*,.tabsDefaultTabs form>[layout]>*{margin-left:8px}.tabsDefaultTabs .long>input{width:264px}.menuBtn{background-color:transparent;border:none;height:38px;margin:16px;position:absolute;width:36px}md-toolbar h1{margin:auto}md-list .md-button{color:inherit;font-weight:500;text-align:left;width:100%}md-list .md-button.selected{color:#03a9f4}#content{overflow:hidden}#content md-content{padding-left:0;padding-right:0;padding-top:0}#content .md-button.action{background-color:transparent;border:none;height:38px;margin:8px auto 16px 0;position:absolute;top:10px;right:25px;width:36px}#content img{display:block;height:auto;max-width:500px}.content-wrapper{position:relative}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}md-toolbar h1{font-size:1.25em;font-weight:400}.menuBtn{background:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB2ZXJzaW9uPSIxLjEiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMjRweCIgaGVpZ2h0PSIyNHB4IiB2aWV3Qm94PSIwIDAgMjQgMjQiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDI0IDI0IiB4bWw6c3BhY2U9InByZXNlcnZlIj4KPGcgaWQ9IkhlYWRlciI+CiAgICA8Zz4KICAgICAgICA8cmVjdCB4PSItNjE4IiB5PSItMjIzMiIgZmlsbD0ibm9uZSIgd2lkdGg9IjE0MDAiIGhlaWdodD0iMzYwMCIvPgogICAgPC9nPgo8L2c+CjxnIGlkPSJMYWJlbCI+CjwvZz4KPGcgaWQ9Ikljb24iPgogICAgPGc+CiAgICAgICAgPHJlY3QgZmlsbD0ibm9uZSIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0Ii8+CiAgICAgICAgPHBhdGggZD0iTTMsMThoMTh2LTJIM1YxOHogTTMsMTNoMTh2LTJIM1YxM3ogTTMsNnYyaDE4VjZIM3oiIHN0eWxlPSJmaWxsOiNmM2YzZjM7Ii8+CiAgICA8L2c+CjwvZz4KPGcgaWQ9IkdyaWQiIGRpc3BsYXk9Im5vbmUiPgogICAgPGcgZGlzcGxheT0iaW5saW5lIj4KICAgIDwvZz4KPC9nPgo8L3N2Zz4=) center center no-repeat}.actionBtn{background:url(data:image/svg+xml;charset=utf-8;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDM2IDM2Ij4NCiAgICA8cGF0aCBkPSJNMCAwaDM2djM2aC0zNnoiIGZpbGw9Im5vbmUiLz4NCiAgICA8cGF0aCBkPSJNNCAyN2gyOHYtM2gtMjh2M3ptMC04aDI4di0zaC0yOHYzem0wLTExdjNoMjh2LTNoLTI4eiIvPg0KPC9zdmc+) center center no-repeat}.kubernetes-ui-logo{background-image:url(../img/kubernetes.svg);background-size:40px 40px;width:40px;height:40px}.kubernetes-ui-text{line-height:40px;vertical-align:middle;padding:2px}md-select-menu.md-default-theme md-option:focus:not([selected]){background:#eee}md-select-menu md-option{transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),-webkit-transform .4s cubic-bezier(.25,.8,.25,1);transition:box-shadow .4s cubic-bezier(.25,.8,.25,1),background-color .4s cubic-bezier(.25,.8,.25,1),transform .4s cubic-bezier(.25,.8,.25,1)}md-select-menu md-option:not([disabled]):focus,md-select-menu md-option:not([disabled]):hover{background-color:rgba(158,158,158,.2)}.dashboard .body-wrapper{padding:25px}.dashboard [flex-align-self=end]{-webkit-align-self:flex-end;-ms-flex-align-self:end;align-self:flex-end}.dashboard .back{font-size:18px;line-height:27px;margin-bottom:30px}.dashboard .heading{font-size:18px;line-height:21px;color:#222;margin-bottom:25px}.dashboard .heading .label{color:#777}.dashboard .clear-bg{background-color:transparent}.dashboard .list-pods .pod-group{margin:25px}.dashboard .list-pods .pod-group md-grid-list{margin-top:50px;color:#fff}.dashboard .list-pods .pod-group md-grid-list figcaption{width:100%}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-header{padding-left:10px}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-header .labels{width:100%}.dashboard .list-pods .pod-group md-grid-list md-grid-tile{transition:all 700ms ease-in 50ms}.dashboard .list-pods .pod-group md-grid-list .inner-box{padding-left:10px;padding-right:10px}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-footer{background:rgba(0,0,0,.5)}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-footer .pod-title{margin-left:10px}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-footer .pod-host{text-align:right;padding-right:15px}.dashboard .list-pods .pod-group md-grid-list md-grid-tile-footer a{color:#fff}.dashboard .list-pods .pod-group md-grid-list .restarts{width:100%;text-align:right;padding-right:10px}.dashboard .list-pods .pod-group md-grid-list .restarts .restart-button,.dashboard .list-pods .pod-group md-grid-list .restarts .restart-button:focus,.dashboard .list-pods .pod-group md-grid-list .restarts .restart-button:hover,.dashboard .list-pods .pod-group md-grid-list .restarts .restart-button:not([disabled]):focus,.dashboard .list-pods .pod-group md-grid-list .restarts .restart-button:not([disabled]):hover{background-color:#ff1744;width:30px;height:30px}.dashboard .list-pods .gray{background:#f5f5f5}.dashboard .list-pods .dark-overlay{background-color:#292935;opacity:.5}.dashboard .list-pods .light-overlay{background-color:#FFF;opacity:.2}.dashboard .list-pods .color-1{background-color:#2962ff;fill:#2962ff;stroke:#2962ff}.dashboard .list-pods .color-max-1{background-color:#dce5ff;border-color:#dce5ff;fill:#dce5ff}.dashboard .list-pods md-grid-list.list-color-1 md-grid-tile.colored{background-color:#2962ff}.dashboard .list-pods .color-2{background-color:#a0f;fill:#a0f;stroke:#a0f}.dashboard .list-pods .color-max-2{background-color:#e6b3ff;border-color:#e6b3ff;fill:#e6b3ff}.dashboard .list-pods md-grid-list.list-color-2 md-grid-tile.colored{background-color:#a0f}.dashboard .list-pods .color-3{background-color:#00c853;fill:#00c853;stroke:#00c853}.dashboard .list-pods .color-max-3{background-color:#7cffb2;border-color:#7cffb2;fill:#7cffb2}.dashboard .list-pods md-grid-list.list-color-3 md-grid-tile.colored{background-color:#00c853}.dashboard .list-pods .color-4{background-color:#304ffe;fill:#304ffe;stroke:#304ffe}.dashboard .list-pods .color-max-4{background-color:#e2e6ff;border-color:#e2e6ff;fill:#e2e6ff}.dashboard .list-pods md-grid-list.list-color-4 md-grid-tile.colored{background-color:#304ffe}.dashboard .list-pods .color-5{background-color:#0091ea;fill:#0091ea;stroke:#0091ea}.dashboard .list-pods .color-max-5{background-color:#9edaff;border-color:#9edaff;fill:#9edaff}.dashboard .list-pods md-grid-list.list-color-5 md-grid-tile.colored{background-color:#0091ea}.dashboard .list-pods .color-6{background-color:#ff6d00;fill:#ff6d00;stroke:#ff6d00}.dashboard .list-pods .color-max-6{background-color:#ffd3b3;border-color:#ffd3b3;fill:#ffd3b3}.dashboard .list-pods md-grid-list.list-color-6 md-grid-tile.colored{background-color:#ff6d00}.dashboard .list-pods .color-7{background-color:#00bfa5;fill:#00bfa5;stroke:#00bfa5}.dashboard .list-pods .color-max-7{background-color:#72ffec;border-color:#72ffec;fill:#72ffec}.dashboard .list-pods md-grid-list.list-color-7 md-grid-tile.colored{background-color:#00bfa5}.dashboard .list-pods .color-8{background-color:#c51162;fill:#c51162;stroke:#c51162}.dashboard .list-pods .color-max-8{background-color:#f693bf;border-color:#f693bf;fill:#f693bf}.dashboard .list-pods md-grid-list.list-color-8 md-grid-tile.colored{background-color:#c51162}.dashboard .list-pods .color-9{background-color:#64dd17;fill:#64dd17;stroke:#64dd17}.dashboard .list-pods .color-max-9{background-color:#cbf7b0;border-color:#cbf7b0;fill:#cbf7b0}.dashboard .list-pods md-grid-list.list-color-9 md-grid-tile.colored{background-color:#64dd17}.dashboard .list-pods .color-10{background-color:#6200ea;fill:#6200ea;stroke:#6200ea}.dashboard .list-pods .color-max-10{background-color:#c69eff;border-color:#c69eff;fill:#c69eff}.dashboard .list-pods md-grid-list.list-color-10 md-grid-tile.colored{background-color:#6200ea}.dashboard .list-pods .color-11{background-color:#ffd600;fill:#ffd600;stroke:#ffd600}.dashboard .list-pods .color-max-11{background-color:#fff3b3;border-color:#fff3b3;fill:#fff3b3}.dashboard .list-pods md-grid-list.list-color-11 md-grid-tile.colored{background-color:#ffd600}.dashboard .list-pods .color-12{background-color:#00b8d4;fill:#00b8d4;stroke:#00b8d4}.dashboard .list-pods .color-max-12{background-color:#87efff;border-color:#87efff;fill:#87efff}.dashboard .list-pods md-grid-list.list-color-12 md-grid-tile.colored{background-color:#00b8d4}.dashboard .list-pods .color-13{background-color:#ffab00;fill:#ffab00;stroke:#ffab00}.dashboard .list-pods .color-max-13{background-color:#ffe6b3;border-color:#ffe6b3;fill:#ffe6b3}.dashboard .list-pods md-grid-list.list-color-13 md-grid-tile.colored{background-color:#ffab00}.dashboard .list-pods .color-14{background-color:#dd2c00;fill:#dd2c00;stroke:#dd2c00}.dashboard .list-pods .color-max-14{background-color:#ffa791;border-color:#ffa791;fill:#ffa791}.dashboard .list-pods md-grid-list.list-color-14 md-grid-tile.colored{background-color:#dd2c00}.dashboard .list-pods .color-15{background-color:#2979ff;fill:#2979ff;stroke:#2979ff}.dashboard .list-pods .color-max-15{background-color:#dce9ff;border-color:#dce9ff;fill:#dce9ff}.dashboard .list-pods md-grid-list.list-color-15 md-grid-tile.colored{background-color:#2979ff}.dashboard .list-pods .color-16{background-color:#d500f9;fill:#d500f9;stroke:#d500f9}.dashboard .list-pods .color-max-16{background-color:#f3acff;border-color:#f3acff;fill:#f3acff}.dashboard .list-pods md-grid-list.list-color-16 md-grid-tile.colored{background-color:#d500f9}.dashboard .list-pods .color-17{background-color:#00e676;fill:#00e676;stroke:#00e676}.dashboard .list-pods .color-max-17{background-color:#9affce;border-color:#9affce;fill:#9affce}.dashboard .list-pods md-grid-list.list-color-17 md-grid-tile.colored{background-color:#00e676}.dashboard .list-pods .color-18{background-color:#3d5afe;fill:#3d5afe;stroke:#3d5afe}.dashboard .list-pods .color-max-18{background-color:#eff1ff;border-color:#eff1ff;fill:#eff1ff}.dashboard .list-pods md-grid-list.list-color-18 md-grid-tile.colored{background-color:#3d5afe}.dashboard .list-pods .color-19{background-color:#00b0ff;fill:#00b0ff;stroke:#00b0ff}.dashboard .list-pods .color-max-19{background-color:#b3e7ff;border-color:#b3e7ff;fill:#b3e7ff}.dashboard .list-pods md-grid-list.list-color-19 md-grid-tile.colored{background-color:#00b0ff}.dashboard .list-pods .color-20{background-color:#ff9100;fill:#ff9100;stroke:#ff9100}.dashboard .list-pods .color-max-20{background-color:#ffdeb3;border-color:#ffdeb3;fill:#ffdeb3}.dashboard .list-pods md-grid-list.list-color-20 md-grid-tile.colored{background-color:#ff9100}.dashboard .list-pods .color-21{background-color:#1de9b6;fill:#1de9b6;stroke:#1de9b6}.dashboard .list-pods .color-max-21{background-color:#c0f9eb;border-color:#c0f9eb;fill:#c0f9eb}.dashboard .list-pods md-grid-list.list-color-21 md-grid-tile.colored{background-color:#1de9b6}.dashboard .list-pods .color-22{background-color:#f50057;fill:#f50057;stroke:#f50057}.dashboard .list-pods .color-max-22{background-color:#ffa8c7;border-color:#ffa8c7;fill:#ffa8c7}.dashboard .list-pods md-grid-list.list-color-22 md-grid-tile.colored{background-color:#f50057}.dashboard .list-pods .color-23{background-color:#76ff03;fill:#76ff03;stroke:#76ff03}.dashboard .list-pods .color-max-23{background-color:#d7ffb5;border-color:#d7ffb5;fill:#d7ffb5}.dashboard .list-pods md-grid-list.list-color-23 md-grid-tile.colored{background-color:#76ff03}.dashboard .list-pods .color-24{background-color:#651fff;fill:#651fff;stroke:#651fff}.dashboard .list-pods .color-max-24{background-color:#e0d2ff;border-color:#e0d2ff;fill:#e0d2ff}.dashboard .list-pods md-grid-list.list-color-24 md-grid-tile.colored{background-color:#651fff}.dashboard .list-pods .color-25{background-color:#ffea00;fill:#ffea00;stroke:#ffea00}.dashboard .list-pods .color-max-25{background-color:#fff9b3;border-color:#fff9b3;fill:#fff9b3}.dashboard .list-pods md-grid-list.list-color-25 md-grid-tile.colored{background-color:#ffea00}.dashboard .list-pods .color-26{background-color:#00e5ff;fill:#00e5ff;stroke:#00e5ff}.dashboard .list-pods .color-max-26{background-color:#b3f7ff;border-color:#b3f7ff;fill:#b3f7ff}.dashboard .list-pods md-grid-list.list-color-26 md-grid-tile.colored{background-color:#00e5ff}.dashboard .list-pods .color-27{background-color:#ffc400;fill:#ffc400;stroke:#ffc400}.dashboard .list-pods .color-max-27{background-color:#ffedb3;border-color:#ffedb3;fill:#ffedb3}.dashboard .list-pods md-grid-list.list-color-27 md-grid-tile.colored{background-color:#ffc400}.dashboard .list-pods .color-28{background-color:#ff3d00;fill:#ff3d00;stroke:#ff3d00}.dashboard .list-pods .color-max-28{background-color:#ffc5b3;border-color:#ffc5b3;fill:#ffc5b3}.dashboard .list-pods md-grid-list.list-color-28 md-grid-tile.colored{background-color:#ff3d00}.dashboard .list-pods .color-29{background-color:#448aff;fill:#448aff;stroke:#448aff}.dashboard .list-pods .color-max-29{background-color:#f6faff;border-color:#f6faff;fill:#f6faff}.dashboard .list-pods md-grid-list.list-color-29 md-grid-tile.colored{background-color:#448aff}.dashboard .list-pods .color-30{background-color:#e040fb;fill:#e040fb;stroke:#e040fb}.dashboard .list-pods .color-max-30{background-color:#fcefff;border-color:#fcefff;fill:#fcefff}.dashboard .list-pods md-grid-list.list-color-30 md-grid-tile.colored{background-color:#e040fb}.dashboard .list-pods .color-31{background-color:#69f0ae;fill:#69f0ae;stroke:#69f0ae}.dashboard .list-pods .color-max-31{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .list-pods md-grid-list.list-color-31 md-grid-tile.colored{background-color:#69f0ae}.dashboard .list-pods .color-32{background-color:#536dfe;fill:#536dfe;stroke:#536dfe}.dashboard .list-pods .color-max-32{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .list-pods md-grid-list.list-color-32 md-grid-tile.colored{background-color:#536dfe}.dashboard .list-pods .color-33{background-color:#40c4ff;fill:#40c4ff;stroke:#40c4ff}.dashboard .list-pods .color-max-33{background-color:#f3fbff;border-color:#f3fbff;fill:#f3fbff}.dashboard .list-pods md-grid-list.list-color-33 md-grid-tile.colored{background-color:#40c4ff}.dashboard .list-pods .color-34{background-color:#ffab40;fill:#ffab40;stroke:#ffab40}.dashboard .list-pods .color-max-34{background-color:#fffaf3;border-color:#fffaf3;fill:#fffaf3}.dashboard .list-pods md-grid-list.list-color-34 md-grid-tile.colored{background-color:#ffab40}.dashboard .list-pods .color-35{background-color:#64ffda;fill:#64ffda;stroke:#64ffda}.dashboard .list-pods .color-max-35{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .list-pods md-grid-list.list-color-35 md-grid-tile.colored{background-color:#64ffda}.dashboard .list-pods .color-36{background-color:#ff4081;fill:#ff4081;stroke:#ff4081}.dashboard .list-pods .color-max-36{background-color:#fff3f7;border-color:#fff3f7;fill:#fff3f7}.dashboard .list-pods md-grid-list.list-color-36 md-grid-tile.colored{background-color:#ff4081}.dashboard .list-pods .color-37{background-color:#b2ff59;fill:#b2ff59;stroke:#b2ff59}.dashboard .list-pods .color-max-37{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .list-pods md-grid-list.list-color-37 md-grid-tile.colored{background-color:#b2ff59}.dashboard .list-pods .color-38{background-color:#7c4dff;fill:#7c4dff;stroke:#7c4dff}.dashboard .list-pods .color-max-38{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .list-pods md-grid-list.list-color-38 md-grid-tile.colored{background-color:#7c4dff}.dashboard .list-pods .color-39{background-color:#ff0;fill:#ff0;stroke:#ff0}.dashboard .list-pods .color-max-39{background-color:#ffffb3;border-color:#ffffb3;fill:#ffffb3}.dashboard .list-pods md-grid-list.list-color-39 md-grid-tile.colored{background-color:#ff0}.dashboard .list-pods .color-40{background-color:#18ffff;fill:#18ffff;stroke:#18ffff}.dashboard .list-pods .color-max-40{background-color:#cbffff;border-color:#cbffff;fill:#cbffff}.dashboard .list-pods md-grid-list.list-color-40 md-grid-tile.colored{background-color:#18ffff}.dashboard .list-pods .color-41{background-color:#ffd740;fill:#ffd740;stroke:#ffd740}.dashboard .list-pods .color-max-41{background-color:#fffcf3;border-color:#fffcf3;fill:#fffcf3}.dashboard .list-pods md-grid-list.list-color-41 md-grid-tile.colored{background-color:#ffd740}.dashboard .list-pods .color-42{background-color:#ff6e40;fill:#ff6e40;stroke:#ff6e40}.dashboard .list-pods .color-max-42{background-color:#fff6f3;border-color:#fff6f3;fill:#fff6f3}.dashboard .list-pods md-grid-list.list-color-42 md-grid-tile.colored{background-color:#ff6e40}.dashboard .list-pods .color-warning{background-color:#ff9800!important;border-color:#ff9800!important;fill:#ff9800!important;stroke:#ff9800!important}.dashboard .list-pods .color-critical{background-color:#f44336!important;border-color:#f44336!important;fill:#f44336!important;stroke:#f44336!important}.dashboard .list-pods .status-waiting{background-color:#2e2e3b!important;border-color:#dad462!important;border-width:2px!important;border-style:solid!important}.dashboard .list-pods .status-terminated,.dashboard .list-pods .status-unknown{background-color:#ff1744!important;border-color:#e3002c!important;border-width:1px!important;border-style:solid!important}.dashboard .dash-table{min-width:100%;border-collapse:collapse}.dashboard .dash-table tbody tr:focus:not(.no-link),.dashboard .dash-table tbody tr:hover:not(.no-link){cursor:pointer;background-color:rgba(63,81,181,.2)}.dashboard .dash-table .dash-table-header{border-bottom:1px solid #e6e6e6;color:#828282;text-align:left;font-size:.75em;font-weight:700;padding:16px 16px 16px 0}.dashboard .dash-table .dash-table-header a{text-decoration:none;color:inherit}.dashboard .dash-table .dash-table-caret{display:inline-block;vertical-align:middle}.dashboard .dash-table .dash-table-content{font-size:.8em;padding:16px 16px 16px 0;height:72px}.dashboard .dash-table .dash-table-td-more{max-width:72px;width:72px;padding:16px}.dashboard .dash-table .dash-table-thumbs{max-width:104px;width:104px;padding:16px 32px}.dashboard .dash-table .dash-table-thumbs div{overflow:hidden;width:40px;height:40px;border-radius:20px;border:1px solid rgba(0,0,0,.2);background-size:cover;box-shadow:0 8px 10px rgba(0,0,0,.3);-webkit-box-shadow:0 8px 10px rgba(0,0,0,.1)}.dashboard .dash-table .dash-table-footer{height:40px}.dashboard .dash-table .dash-table-count-info{line-height:40px;font-size:.75em}.dashboard .dash-table .dash-table-footer-item{width:40px;height:40px;vertical-align:middle}.dashboard .dash-table .bold,.dashboard .dash-table .dash-table-active-page{font-weight:700}.dashboard .dash-table .grey{color:grey}.dashboard .dash-table md-input-container.md-default-theme .md-input{color:#fff;border-color:#fff;margin-top:24px}.dashboard .server-overview .dark-overlay{background-color:#292935;opacity:.5}.dashboard .server-overview .light-overlay{background-color:#FFF;opacity:.2}.dashboard .server-overview md-grid-list.list-color-1 md-grid-tile.colored{background-color:#2962ff}.dashboard .server-overview md-grid-list.list-color-2 md-grid-tile.colored{background-color:#a0f}.dashboard .server-overview md-grid-list.list-color-3 md-grid-tile.colored{background-color:#00c853}.dashboard .server-overview .color-4{background-color:#304ffe;fill:#304ffe;stroke:#304ffe}.dashboard .server-overview .color-max-4{background-color:#e2e6ff;border-color:#e2e6ff;fill:#e2e6ff}.dashboard .server-overview md-grid-list.list-color-4 md-grid-tile.colored{background-color:#304ffe}.dashboard .server-overview .color-5{background-color:#0091ea;fill:#0091ea;stroke:#0091ea}.dashboard .server-overview .color-max-5{background-color:#9edaff;border-color:#9edaff;fill:#9edaff}.dashboard .server-overview md-grid-list.list-color-5 md-grid-tile.colored{background-color:#0091ea}.dashboard .server-overview .color-6{background-color:#ff6d00;fill:#ff6d00;stroke:#ff6d00}.dashboard .server-overview .color-max-6{background-color:#ffd3b3;border-color:#ffd3b3;fill:#ffd3b3}.dashboard .server-overview md-grid-list.list-color-6 md-grid-tile.colored{background-color:#ff6d00}.dashboard .server-overview .color-7{background-color:#00bfa5;fill:#00bfa5;stroke:#00bfa5}.dashboard .server-overview .color-max-7{background-color:#72ffec;border-color:#72ffec;fill:#72ffec}.dashboard .server-overview md-grid-list.list-color-7 md-grid-tile.colored{background-color:#00bfa5}.dashboard .server-overview .color-8{background-color:#c51162;fill:#c51162;stroke:#c51162}.dashboard .server-overview .color-max-8{background-color:#f693bf;border-color:#f693bf;fill:#f693bf}.dashboard .server-overview md-grid-list.list-color-8 md-grid-tile.colored{background-color:#c51162}.dashboard .server-overview .color-9{background-color:#64dd17;fill:#64dd17;stroke:#64dd17}.dashboard .server-overview .color-max-9{background-color:#cbf7b0;border-color:#cbf7b0;fill:#cbf7b0}.dashboard .server-overview md-grid-list.list-color-9 md-grid-tile.colored{background-color:#64dd17}.dashboard .server-overview .color-10{background-color:#6200ea;fill:#6200ea;stroke:#6200ea}.dashboard .server-overview .color-max-10{background-color:#c69eff;border-color:#c69eff;fill:#c69eff}.dashboard .server-overview md-grid-list.list-color-10 md-grid-tile.colored{background-color:#6200ea}.dashboard .server-overview .color-11{background-color:#ffd600;fill:#ffd600;stroke:#ffd600}.dashboard .server-overview .color-max-11{background-color:#fff3b3;border-color:#fff3b3;fill:#fff3b3}.dashboard .server-overview md-grid-list.list-color-11 md-grid-tile.colored{background-color:#ffd600}.dashboard .server-overview .color-12{background-color:#00b8d4;fill:#00b8d4;stroke:#00b8d4}.dashboard .server-overview .color-max-12{background-color:#87efff;border-color:#87efff;fill:#87efff}.dashboard .server-overview md-grid-list.list-color-12 md-grid-tile.colored{background-color:#00b8d4}.dashboard .server-overview .color-13{background-color:#ffab00;fill:#ffab00;stroke:#ffab00}.dashboard .server-overview .color-max-13{background-color:#ffe6b3;border-color:#ffe6b3;fill:#ffe6b3}.dashboard .server-overview md-grid-list.list-color-13 md-grid-tile.colored{background-color:#ffab00}.dashboard .server-overview .color-14{background-color:#dd2c00;fill:#dd2c00;stroke:#dd2c00}.dashboard .server-overview .color-max-14{background-color:#ffa791;border-color:#ffa791;fill:#ffa791}.dashboard .server-overview md-grid-list.list-color-14 md-grid-tile.colored{background-color:#dd2c00}.dashboard .server-overview .color-15{background-color:#2979ff;fill:#2979ff;stroke:#2979ff}.dashboard .server-overview .color-max-15{background-color:#dce9ff;border-color:#dce9ff;fill:#dce9ff}.dashboard .server-overview md-grid-list.list-color-15 md-grid-tile.colored{background-color:#2979ff}.dashboard .server-overview .color-16{background-color:#d500f9;fill:#d500f9;stroke:#d500f9}.dashboard .server-overview .color-max-16{background-color:#f3acff;border-color:#f3acff;fill:#f3acff}.dashboard .server-overview md-grid-list.list-color-16 md-grid-tile.colored{background-color:#d500f9}.dashboard .server-overview .color-17{background-color:#00e676;fill:#00e676;stroke:#00e676}.dashboard .server-overview .color-max-17{background-color:#9affce;border-color:#9affce;fill:#9affce}.dashboard .server-overview md-grid-list.list-color-17 md-grid-tile.colored{background-color:#00e676}.dashboard .server-overview .color-18{background-color:#3d5afe;fill:#3d5afe;stroke:#3d5afe}.dashboard .server-overview .color-max-18{background-color:#eff1ff;border-color:#eff1ff;fill:#eff1ff}.dashboard .server-overview md-grid-list.list-color-18 md-grid-tile.colored{background-color:#3d5afe}.dashboard .server-overview .color-19{background-color:#00b0ff;fill:#00b0ff;stroke:#00b0ff}.dashboard .server-overview .color-max-19{background-color:#b3e7ff;border-color:#b3e7ff;fill:#b3e7ff}.dashboard .server-overview md-grid-list.list-color-19 md-grid-tile.colored{background-color:#00b0ff}.dashboard .server-overview .color-20{background-color:#ff9100;fill:#ff9100;stroke:#ff9100}.dashboard .server-overview .color-max-20{background-color:#ffdeb3;border-color:#ffdeb3;fill:#ffdeb3}.dashboard .server-overview md-grid-list.list-color-20 md-grid-tile.colored{background-color:#ff9100}.dashboard .server-overview .color-21{background-color:#1de9b6;fill:#1de9b6;stroke:#1de9b6}.dashboard .server-overview .color-max-21{background-color:#c0f9eb;border-color:#c0f9eb;fill:#c0f9eb}.dashboard .server-overview md-grid-list.list-color-21 md-grid-tile.colored{background-color:#1de9b6}.dashboard .server-overview .color-22{background-color:#f50057;fill:#f50057;stroke:#f50057}.dashboard .server-overview .color-max-22{background-color:#ffa8c7;border-color:#ffa8c7;fill:#ffa8c7}.dashboard .server-overview md-grid-list.list-color-22 md-grid-tile.colored{background-color:#f50057}.dashboard .server-overview .color-23{background-color:#76ff03;fill:#76ff03;stroke:#76ff03}.dashboard .server-overview .color-max-23{background-color:#d7ffb5;border-color:#d7ffb5;fill:#d7ffb5}.dashboard .server-overview md-grid-list.list-color-23 md-grid-tile.colored{background-color:#76ff03}.dashboard .server-overview .color-24{background-color:#651fff;fill:#651fff;stroke:#651fff}.dashboard .server-overview .color-max-24{background-color:#e0d2ff;border-color:#e0d2ff;fill:#e0d2ff}.dashboard .server-overview md-grid-list.list-color-24 md-grid-tile.colored{background-color:#651fff}.dashboard .server-overview .color-25{background-color:#ffea00;fill:#ffea00;stroke:#ffea00}.dashboard .server-overview .color-max-25{background-color:#fff9b3;border-color:#fff9b3;fill:#fff9b3}.dashboard .server-overview md-grid-list.list-color-25 md-grid-tile.colored{background-color:#ffea00}.dashboard .server-overview .color-26{background-color:#00e5ff;fill:#00e5ff;stroke:#00e5ff}.dashboard .server-overview .color-max-26{background-color:#b3f7ff;border-color:#b3f7ff;fill:#b3f7ff}.dashboard .server-overview md-grid-list.list-color-26 md-grid-tile.colored{background-color:#00e5ff}.dashboard .server-overview .color-27{background-color:#ffc400;fill:#ffc400;stroke:#ffc400}.dashboard .server-overview .color-max-27{background-color:#ffedb3;border-color:#ffedb3;fill:#ffedb3}.dashboard .server-overview md-grid-list.list-color-27 md-grid-tile.colored{background-color:#ffc400}.dashboard .server-overview .color-28{background-color:#ff3d00;fill:#ff3d00;stroke:#ff3d00}.dashboard .server-overview .color-max-28{background-color:#ffc5b3;border-color:#ffc5b3;fill:#ffc5b3}.dashboard .server-overview md-grid-list.list-color-28 md-grid-tile.colored{background-color:#ff3d00}.dashboard .server-overview .color-29{background-color:#448aff;fill:#448aff;stroke:#448aff}.dashboard .server-overview .color-max-29{background-color:#f6faff;border-color:#f6faff;fill:#f6faff}.dashboard .server-overview md-grid-list.list-color-29 md-grid-tile.colored{background-color:#448aff}.dashboard .server-overview .color-30{background-color:#e040fb;fill:#e040fb;stroke:#e040fb}.dashboard .server-overview .color-max-30{background-color:#fcefff;border-color:#fcefff;fill:#fcefff}.dashboard .server-overview md-grid-list.list-color-30 md-grid-tile.colored{background-color:#e040fb}.dashboard .server-overview .color-31{background-color:#69f0ae;fill:#69f0ae;stroke:#69f0ae}.dashboard .server-overview .color-max-31{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .server-overview md-grid-list.list-color-31 md-grid-tile.colored{background-color:#69f0ae}.dashboard .server-overview .color-32{background-color:#536dfe;fill:#536dfe;stroke:#536dfe}.dashboard .server-overview .color-max-32{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .server-overview md-grid-list.list-color-32 md-grid-tile.colored{background-color:#536dfe}.dashboard .server-overview .color-33{background-color:#40c4ff;fill:#40c4ff;stroke:#40c4ff}.dashboard .server-overview .color-max-33{background-color:#f3fbff;border-color:#f3fbff;fill:#f3fbff}.dashboard .server-overview md-grid-list.list-color-33 md-grid-tile.colored{background-color:#40c4ff}.dashboard .server-overview .color-34{background-color:#ffab40;fill:#ffab40;stroke:#ffab40}.dashboard .server-overview .color-max-34{background-color:#fffaf3;border-color:#fffaf3;fill:#fffaf3}.dashboard .server-overview md-grid-list.list-color-34 md-grid-tile.colored{background-color:#ffab40}.dashboard .server-overview .color-35{background-color:#64ffda;fill:#64ffda;stroke:#64ffda}.dashboard .server-overview .color-max-35{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .server-overview md-grid-list.list-color-35 md-grid-tile.colored{background-color:#64ffda}.dashboard .server-overview .color-36{background-color:#ff4081;fill:#ff4081;stroke:#ff4081}.dashboard .server-overview .color-max-36{background-color:#fff3f7;border-color:#fff3f7;fill:#fff3f7}.dashboard .server-overview md-grid-list.list-color-36 md-grid-tile.colored{background-color:#ff4081}.dashboard .server-overview .color-37{background-color:#b2ff59;fill:#b2ff59;stroke:#b2ff59}.dashboard .server-overview .color-max-37{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .server-overview md-grid-list.list-color-37 md-grid-tile.colored{background-color:#b2ff59}.dashboard .server-overview .color-38{background-color:#7c4dff;fill:#7c4dff;stroke:#7c4dff}.dashboard .server-overview .color-max-38{background-color:#fff;border-color:#fff;fill:#fff}.dashboard .server-overview md-grid-list.list-color-38 md-grid-tile.colored{background-color:#7c4dff}.dashboard .server-overview .color-39{background-color:#ff0;fill:#ff0;stroke:#ff0}.dashboard .server-overview .color-max-39{background-color:#ffffb3;border-color:#ffffb3;fill:#ffffb3}.dashboard .server-overview md-grid-list.list-color-39 md-grid-tile.colored{background-color:#ff0}.dashboard .server-overview .color-40{background-color:#18ffff;fill:#18ffff;stroke:#18ffff}.dashboard .server-overview .color-max-40{background-color:#cbffff;border-color:#cbffff;fill:#cbffff}.dashboard .server-overview md-grid-list.list-color-40 md-grid-tile.colored{background-color:#18ffff}.dashboard .server-overview .color-41{background-color:#ffd740;fill:#ffd740;stroke:#ffd740}.dashboard .server-overview .color-max-41{background-color:#fffcf3;border-color:#fffcf3;fill:#fffcf3}.dashboard .server-overview md-grid-list.list-color-41 md-grid-tile.colored{background-color:#ffd740}.dashboard .server-overview .color-42{background-color:#ff6e40;fill:#ff6e40;stroke:#ff6e40}.dashboard .server-overview .color-max-42{background-color:#fff6f3;border-color:#fff6f3;fill:#fff6f3}.dashboard .server-overview md-grid-list.list-color-42 md-grid-tile.colored{background-color:#ff6e40}.dashboard .server-overview .color-warning{background-color:#ff9800!important;border-color:#ff9800!important;fill:#ff9800!important;stroke:#ff9800!important}.dashboard .server-overview .color-critical{background-color:#f44336!important;border-color:#f44336!important;fill:#f44336!important;stroke:#f44336!important}.dashboard .server-overview .status-waiting{background-color:#2e2e3b!important;border-color:#dad462!important;border-width:2px!important;border-style:solid!important}.dashboard .server-overview .status-terminated,.dashboard .server-overview .status-unknown{background-color:#ff1744!important;border-color:#e3002c!important;border-width:1px!important;border-style:solid!important}.dashboard .server-overview .color-1{background-color:#512DA8;border-color:#512DA8;fill:#512DA8;stroke:#512DA8}.dashboard .server-overview .color-2{background-color:#9C27B0;border-color:#9C27B0;fill:#9C27B0;stroke:#9C27B0}.dashboard .server-overview .color-3{background-color:#00BCD4;border-color:#00BCD4;fill:#00BCD4;stroke:#00BCD4}.dashboard .server-overview .color-max-1{background-color:#b6a2e6;border-color:#b6a2e6;fill:#b6a2e6}.dashboard .server-overview .color-max-2{background-color:#dfa0ea;border-color:#dfa0ea;fill:#dfa0ea}.dashboard .server-overview .color-max-3{background-color:#87f1ff;border-color:#87f1ff;fill:#87f1ff}.dashboard .server-overview .color-max-warning{background-color:#ffd699!important;border-color:#ffd699!important;fill:#ffd699!important}.dashboard .server-overview .color-max-critical{background-color:#fccbc7!important;border-color:#fccbc7!important;fill:#fccbc7!important}.dashboard .server-overview .max_tick_arc{stroke:#FFF!important}.dashboard .server-overview .concentricchart .bg-circle{background:#F9F9F9;fill:#F9F9F9;stroke:#FFF;stroke-width:1px}.dashboard .server-overview .concentricchart text{font-size:12px;font-family:Roboto,sans-serif}.dashboard .server-overview .concentricchart .value_group{fill:#fff}.dashboard .server-overview .concentricchart .legend_group rect{opacity:.8}.dashboard .server-overview svg.legend{height:auto}.dashboard .server-overview svg.legend text{font-size:12px;font-family:Roboto,sans-serif}.dashboard .server-overview svg.legend .hostName{font-size:16px}.dashboard .server-overview .minion-name{text-align:center;vertical-align:bottom;width:100%}.dashboard .server-overview .chart_area{width:325px;height:auto}.dashboard .groups{font-size:13px}.dashboard .groups .header{line-height:21px}.dashboard .groups .header a{padding-left:5px;padding-right:5px}.dashboard .groups .header .selector-area .filter-text{font-size:13px;margin-left:10px}.dashboard .groups .header .selector-area .cancel-button{width:18px;height:18px;padding:0}.dashboard .groups .header .selector-area .cancel-button:focus,.dashboard .groups .header .selector-area .cancel-button:hover{background-color:none!important}.dashboard .groups .header .selector-area .cancel-icon{width:15px;height:15px;fill:#777}.dashboard .groups .select-group-by{min-width:110px;margin-left:10px;margin-right:40px}.dashboard .groups .select-group-by .md-select-label{padding-top:6px;font-size:13px}.dashboard .groups .group-item{padding-top:20px}.dashboard .groups .group-item .filter-button{height:18px;width:18px}.dashboard .groups .group-item .filter-button .filter-icon{width:18px;height:18px}.dashboard .groups .icon-area{min-width:34px}.dashboard .groups .icon-area .group-icon{border-radius:21px;width:21px;height:21px}.dashboard .groups .group-main-area .subtype{line-height:21px}.dashboard .groups md-divider{margin-top:40px;margin-bottom:30px}.dashboard .groups .group-name{padding-top:10px}.dashboard .groups .selectFilter{padding-top:10px;margin-right:30px}.dashboard .groups .selectFilter .md-select-label{border-bottom:none!important;width:17px;min-width:17px;padding-right:0}.dashboard .groups md-select-menu{min-height:40px;max-height:40px}.dashboard .groups .group-link-area{padding-left:15px;padding-bottom:15px}.dashboard .groups .group-link-area button{line-height:12px}.dashboard .groups .group-type-circle{width:21px;height:21px}.dashboard .groups md-select{margin-top:0}.dashboard .detail{color:#222}.dashboard .detail .back{font-size:18px;line-height:27px;margin-bottom:30px}.dashboard .detail .heading{font-size:18px;line-height:21px;color:#222;margin-bottom:25px}.dashboard .detail .heading .label{color:#777}.dashboard .detail td.name{font-size:14px;color:#222;line-height:24px}.dashboard .detail td.value{margin-left:50px;font-size:14px;color:#888;line-height:24px}.dashboard .detail .containerTable td{padding-right:20px}.dashboard .align-top tbody{vertical-align:top}`)

func appAssetsCssAppCssBytes() ([]byte, error) {
	return _appAssetsCssAppCss, nil
}

func appAssetsCssAppCss() (*asset, error) {
	bytes, err := appAssetsCssAppCssBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/css/app.css", size: 39868, mode: os.FileMode(420), modTime: time.Unix(1454116418, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgDocarrowPng = []byte("\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00!\x00\x00\x00\"\b\x06\x00\x00\x00\xd1p\xb0\xc1\x00\x00\x00\x04sBIT\b\b\b\b|\bd\x88\x00\x00\x00\tpHYs\x00\x00\x15\xfd\x00\x00\x15\xfd\x01\xcdpQa\x00\x00\x00\x1ctEXtSoftware\x00Adobe Fireworks CS6\u8f32\x8c\x00\x00\x00\xefIDATX\x85\xd5\xd71\x0e\xc20\f\x05\u0406\xebq\x0568\x01\x8c\x1c\x80\xeep\x1aV\x18Y`\x05\xc1\x19\x10e\x81\xe13\x05UU\xab\xd8\xf1\xb7\xa2~\xc9K\x87\xf4)\x8e\xea4\x00\xa8JgR\x1aPUcB\x84\x10\xfeU\xef.X\xac\x8eh?KU2\x00\x92\x15\xb3\u065e\x01\x00\xaf\xe6\x83\xf9\xf2 >L\xc9\xf5\xa5\x88\b\x88\xd1@(\x88u}B_\xa4\x10\nb:\xdb\xe3\xf6xfCh\xed\xb0@h\b\v\x84\x8a\u0205\xd0\x119\x10\x17\x84\x16\xe2\x86\xd0@\\\x11R\x88;\x82\x01\xa1 \xac\x10\xea(\x1f\xf2&')\xab\x1d\xd7{\xff.4\xef\xaf\u007f;\xac\x003B\x02\x90\xec\xb6\xe9c%\x01\xb8!4\x00\x17\x84\x16@G\xe4\x00\xa8\x88\\\x00\ra\x01\xd0\x10C\x17]\t\x80\u068e\xee\x95_\n\xa0\"\xda\x10\r\x80\x8e\x88\x10\r@\x82\b\u0757\x94\xc8x\xfe\u02bd\xf3\x03\xba\v\x18\x94\x12\x8b\x872\x00\x00\x00\x00IEND\xaeB`\x82")

func appAssetsImgDocarrowPngBytes() ([]byte, error) {
	return _appAssetsImgDocarrowPng, nil
}

func appAssetsImgDocarrowPng() (*asset, error) {
	bytes, err := appAssetsImgDocarrowPngBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/docArrow.png", size: 373, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIc_arrow_drop_down_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
    <path d="M7 10l5 5 5-5z"/>
    <path d="M0 0h24v24h-24z" fill="none"/>
</svg>
`)

func appAssetsImgIc_arrow_drop_down_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIc_arrow_drop_down_24pxSvg, nil
}

func appAssetsImgIc_arrow_drop_down_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIc_arrow_drop_down_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/ic_arrow_drop_down_24px.svg", size: 166, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIc_arrow_drop_up_24pxSvg = []byte(`<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
	 height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Header">
	<g>
		<rect x="-618" y="-952" fill="none" width="1400" height="3600"/>
	</g>
</g>
<g id="Label">
</g>
<g id="Icon">
	<g>
		<g>
			<polygon points="7,14 12,9 17,14 			"/>
		</g>
		<rect fill="none" width="24" height="24"/>
	</g>
</g>
<g id="Grid" display="none">
	<g display="inline">
	</g>
</g>
</svg>
`)

func appAssetsImgIc_arrow_drop_up_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIc_arrow_drop_up_24pxSvg, nil
}

func appAssetsImgIc_arrow_drop_up_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIc_arrow_drop_up_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/ic_arrow_drop_up_24px.svg", size: 795, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIc_keyboard_arrow_left_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z"/></svg>`)

func appAssetsImgIc_keyboard_arrow_left_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIc_keyboard_arrow_left_24pxSvg, nil
}

func appAssetsImgIc_keyboard_arrow_left_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIc_keyboard_arrow_left_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/ic_keyboard_arrow_left_24px.svg", size: 151, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIc_keyboard_arrow_right_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z"/></svg>`)

func appAssetsImgIc_keyboard_arrow_right_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIc_keyboard_arrow_right_24pxSvg, nil
}

func appAssetsImgIc_keyboard_arrow_right_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIc_keyboard_arrow_right_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/ic_keyboard_arrow_right_24px.svg", size: 149, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsArrowBackPng = []byte("\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x80\x00\x00\x00\x80\b\x06\x00\x00\x00\xc3>a\xcb\x00\x00\x00\x06bKGD\x00\xff\x00\xff\x00\xff\xa0\xbd\xa7\x93\x00\x00\x020IDATx\x9c\xed\xddIn\x13q\x10F\xf1\u05c4\x05\xd7\xe0f\t\xc3\x166\x1c\xc0\x10\xa60\xc5!\x90\x046\x84Ab\xba\v7r`aY2\x02B\xecj\xf7_\xd5\xf5~\x92\x97\x91Jz_za\xc96H\x92$I\x92$I\x92$I\x92$I\x92$I\x92\xa4\xac\xb6Z\x1f\x90\xdc\x1ep\x15\xf8\xd1\xfa\x10\r\xab\x03\xde\x00?\x813\xe0V\xdbs4\xa4\xe5\xf8\x8b\x97#(\xa2\x03N\xf8=\xbe#(\xa2\x03\xa6\xfc=\xfe\xf2\bn\xb7:P\x9bs\x91\xf8\x8e`\xa4V\x89\xef\bF\xa6\x03\xf6Y-\xbe#\x18\x91\x87\xac\x17\u007f\xf1:\x1a\xfed\xf5e\xdd\xff\xfc\xc5k\xca\xfc\t\xa2\x84\xa2\xf1\x0f0~Z\xc6/,\x1a\xff%\xc6O\xeb\x05\xc6/+\x1a\xff\x10\xe3\xa7e\xfc\u008c_\xd8sb\xf1_a\xfc\xb4\x8c_X4\xfek\x8c\x9f\x96\xf1\v3~a\u03c8\xc5?\xc2\xf8i\x19\xbf0\xe3\x17\x16\x8d\u007f\x8c\xf1\xd3z\x8a\xf1\u02ca\xc6?\xc1\xf8iE\xe3\x9f\x02\x97\x86>Z\xfd0~aO0~Y\xd1\xf8\xef1~Z}\xc4\xf7;\x12\x922~a{\xc4\xe2\u007f\xc0\xf8i\x19\xbf\xb0h\xfc\x8f\x18?-\xe3\x17\xf6\x18\xe3\x975!\x16\xff\x13\xc6\xff\xa7\fo\x80\\\t\xfe\xfd\x8c\xf9\x10\x94\u0604\xd8S\xe0;py\xe8\xa3\u056f\t\x8e\xa0\xbc\t\xb1\x11|\xc3\x11\xa4w\x17GP\x9e#\x90#\x90#\x10p\x0fGP^t\x04_q\x04\xe99\x029\x02\xc1.\x8e\xa0<G G G \xe0>\x8e\xa0<G\xa0\xf0\b\xbe\xe0\b\xd2s\x04r\x04\x82\a8\x82\xf2\x1c\x81\x1c\x81\xe2#\xf8\x8c#H/\xfa\x03\x91\x8e`\x04\xfa\x18\x81\x1fAK\xce\x11\xc8\x11\b\x1e\x11\x1b\xc1)9>x\xabsDG\xf0\x0eG\x90Z\xc7\xfc\xeb\xe2##\xf0\xe7\xe3G`\xdd'\xc1\f\xd8\x1e\xfe\\m\u00aa_Qc\xfc\x11\xba\xe8\bf\xc0N\xa3\x1b\xb5A\x1d0\xe5\xff\xf1\xaf\xb5:P\x9bw\xde\bf\xc0\xf5v\xa7i(\x1dp\xc0\x9f\xf1o\xb4<J\xc3Z\x1e\xc1\x19p\xb3\xed9j\xa1\x03\xde\x02wZ\x1f\"I\x92$I\x92$I\x92$I\x92$I\x92$I\x92j\xfa\x05\xe7\xe1x\xb9\xc1\tI\xe0\x00\x00\x00\x00IEND\xaeB`\x82")

func appAssetsImgIconsArrowBackPngBytes() ([]byte, error) {
	return _appAssetsImgIconsArrowBackPng, nil
}

func appAssetsImgIconsArrowBackPng() (*asset, error) {
	bytes, err := appAssetsImgIconsArrowBackPngBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/arrow-back.png", size: 635, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsFaviconPng = []byte("\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x00\x10\x00\x00\x00\x10\b\x06\x00\x00\x00\x1f\xf3\xffa\x00\x00\x00\x19tEXtSoftware\x00Adobe ImageReadyq\xc9e<\x00\x00\x03!iTXtXML:com.adobe.xmp\x00\x00\x00\x00\x00<?xpacket begin=\"\ufeff\" id=\"W5M0MpCehiHzreSzNTczkc9d\"?> <x:xmpmeta xmlns:x=\"adobe:ns:meta/\" x:xmptk=\"Adobe XMP Core 5.5-c014 79.151481, 2013/03/13-12:09:15        \"> <rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"> <rdf:Description rdf:about=\"\" xmlns:xmpMM=\"http://ns.adobe.com/xap/1.0/mm/\" xmlns:stRef=\"http://ns.adobe.com/xap/1.0/sType/ResourceRef#\" xmlns:xmp=\"http://ns.adobe.com/xap/1.0/\" xmpMM:DocumentID=\"xmp.did:756CA584644F11E4939EE4369DBF39D4\" xmpMM:InstanceID=\"xmp.iid:756CA583644F11E4939EE4369DBF39D4\" xmp:CreatorTool=\"Adobe Photoshop CC (Windows)\"> <xmpMM:DerivedFrom stRef:instanceID=\"xmp.iid:62F2AD71555711E48EAC88F7A4D19BF1\" stRef:documentID=\"xmp.did:62F2AD72555711E48EAC88F7A4D19BF1\"/> </rdf:Description> </rdf:RDF> </x:xmpmeta> <?xpacket end=\"r\"?>\xf7#U\x14\x00\x00\x02\xf4IDATx\xda|SkHSa\x18~\xce\u0659\xd3m\xce\xcd\xcdL\x99I\xf7D\xa2?QXYBBZ\x19i\xa8\xe4\r\xaa\x95\x18*\x95B\xa4T&\bQZa\x96\x81\x05I\x14R\x96\x81H\x17B\xbbHY\x16d\x14\xa5\xa2&\xe4e\xe66\xdd\u0699\xbb\x9c\xad\xef\x9cyL\xff\xf4\xfd\xfa.\xcf\xf3\xbc\xcfy\xde\xf7P\x98\xb7|>\x9f\xba\u007f\xd4}\xd1h\xf1&5<\xb5\xe9\xbf\x0e\xbb\x85\xfb\xd8%R\x18\x92\x94\xa3a!\x92\xe71Q\xd2R\x8a\xa2L\"\x87\x9a%\ua18c\x9e\x9a\x91I.\xf1z\x9b-\xb2\xf7\x97\x9f\xa8\x92\xd3\b`\x80I\xabW8\xaf\xd6Kq$Yi\x8c\xd0H\xda\u027e\x98\bMR&+\x1778\xeeyx\xa1y:b`\xcc3\xdf\x106\xc5\xc8\x10\xa9\x95\xa0\xb9\x93]p\xbfl1\x83\x924\xd5D\xb8F\x92N\xf5\x8d\xb8\x9e\x1c\xbclJb\x9d\xbe\x05\xa0\xd8h)\xf6m\x96#(\x80B\xd3k\x16=\x83\xae\x05\xef\xfc\xfd\x8d\"\xed\v\xc6\xe6\xf0\xe9Er}a(\xeaZm0\xecPb\xdd\xd2\x00\x98\xff\xf8\xadW\x1f\u0480wW\xd7j\xc5\xf1T\x15\xf2\xaf\x9a\xe0p\xf9`c\xbdzz\xcc\xcciE\xd5\xf2\xc6)\xd4\x15\x84B\xafc\xb0\xeb\xec\x04\xda{f\xd0\xf5\u0749\xdd\x15\x13$\x0f\n7\x8fiQF0\x1e\u038f\x1f1q:\xa6\xeb\x87S'\n\x90\x94A\x1c\x91\xe0(T\xe6\xaa!\x93R\xc2\xfe\\\x8e\x1a\xc1$\xd0q3G\xc4%0Z\xfc\n\xdd}N-\xf3y\xc0%\x15\x056\xac\n@\xdb\a\a\x1et\xdaq\xfb\x84\x0er\x19E:\x04\xc1\xae\xe1\x8a\t)\x1b\x83\x84`?\xf5\xfb\xf3\xe8\x19rS\u0328\x99\x9b\v\x86\xaf\x12\x1d\u01a0\"[\x8dp\xb5\x04\x8f\u07f1\u012e\x0f\xe9\xf1\n\x9c\xca\b\x81\xc7\xeb\u00f4\xdd;\x87\xff=\u0341\x11\xfb}\xfe\x80ZH\x96'\xde{i\x17B\xcb\u06ee\x10\x80w;\xec\xe0\ve%(0E\x82\xad1hp\xa9\xc5\xcag\xe0\x17\xb0\xb2^\x1c\xbdf\x16,7\x97\x87\xe1}\xaf\v\xfb\x13\xe4h\xebv\x80#\x0e\xb4*\x1a-oY\xe4'+q\xb8\xd62\x97\x01\xbf\x98\x8cx9{\xff\r+\xe7\x0f|;\xab\x9a\xa6Q[\xa0Ap\x10\x8d\xbc\xeaIp\xc4q\xd3I\x1d\u05af\x94\tU\xe7\x93\xf7\xc6\u025d\xd4O\xa3\xfb\xd9\xe9;S\x89\u07c6\u0774\xf8@D\x91\xb9U\x01\x9dJ\x02\x8a\f\xfb\x04\xf9V\xbe\x9d\u054f\xacs\xe45QRT\xe6\xa8;\x98\xe8ELjY\x9a\xac\xb7\xb0\x81\xd3[f\ag\xdb\xda@\xe4\x92\xea\xe2\x80\xf1\"\xb7\xc8\f\u0424\x84\xd7\xeb\xcf\xecLV\xc8\xe0\xf2\b&\x85&?\x04\xfb\xf1nmiU\xb6\xc2L\xd3\xff\x06j\xfeh\xf3\xad,i\xb0\bd\x1eS\x95\xab\xb4\x90\xb0w\x12\xae\x9d\x12A#&O\xe6\xab/3\xf5\u0126\x06\xffY\xc5{\x82m[b\x03\x8bVDJ\x1b\xf9\xf3_\x01\x06\x00\xf19?q\xaaE\xa0\xa4\x00\x00\x00\x00IEND\xaeB`\x82")

func appAssetsImgIconsFaviconPngBytes() ([]byte, error) {
	return _appAssetsImgIconsFaviconPng, nil
}

func appAssetsImgIconsFaviconPng() (*asset, error) {
	bytes, err := appAssetsImgIconsFaviconPngBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/favicon.png", size: 1663, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsIc_arrow_forward_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/></svg>`)

func appAssetsImgIconsIc_arrow_forward_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIconsIc_arrow_forward_24pxSvg, nil
}

func appAssetsImgIconsIc_arrow_forward_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIconsIc_arrow_forward_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/ic_arrow_forward_24px.svg", size: 158, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsIc_cancel_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"/></svg>`)

func appAssetsImgIconsIc_cancel_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIconsIc_cancel_24pxSvg, nil
}

func appAssetsImgIconsIc_cancel_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIconsIc_cancel_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/ic_cancel_24px.svg", size: 276, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsIc_close_24pxSvg = []byte(`<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>`)

func appAssetsImgIconsIc_close_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIconsIc_close_24pxSvg, nil
}

func appAssetsImgIconsIc_close_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIconsIc_close_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/ic_close_24px.svg", size: 202, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsIc_menuSvg = []byte(`<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 18.1.1, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
	 viewBox="0 0 10 10" style="enable-background:new 0 0 10 10;" xml:space="preserve">
	<g>
		<path style="fill:#010002;" d="M9.5,4.5h-9C0.224,4.5,0,4.724,0,5s0.224,0.5,0.5,0.5h9C9.775,5.5,10,5.276,10,5
			S9.775,4.5,9.5,4.5z"/>
		<path style="fill:#010002;" d="M0.5,2.5h9C9.775,2.5,10,2.276,10,2S9.775,1.5,9.5,1.5h-9C0.224,1.5,0,1.724,0,2
			S0.224,2.5,0.5,2.5z"/>
		<path style="fill:#010002;" d="M9.5,7.5h-9C0.224,7.5,0,7.725,0,8s0.224,0.5,0.5,0.5h9C9.775,8.5,10,8.275,10,8
			S9.775,7.5,9.5,7.5z"/>
	</g>
</svg>
`)

func appAssetsImgIconsIc_menuSvgBytes() ([]byte, error) {
	return _appAssetsImgIconsIc_menuSvg, nil
}

func appAssetsImgIconsIc_menuSvg() (*asset, error) {
	bytes, err := appAssetsImgIconsIc_menuSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/ic_menu.svg", size: 791, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsIc_menu_24pxSvg = []byte(`<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="24px"
     height="24px" viewBox="0 0 24 24" enable-background="new 0 0 24 24" xml:space="preserve">
<g id="Header">
    <g>
        <rect x="-618" y="-2232" fill="none" width="1400" height="3600"/>
    </g>
</g>
<g id="Label">
</g>
<g id="Icon">
    <g>
        <rect fill="none" width="24" height="24"/>
        <path d="M3,18h18v-2H3V18z M3,13h18v-2H3V13z M3,6v2h18V6H3z" style="fill:#f3f3f3;"/>
    </g>
</g>
<g id="Grid" display="none">
    <g display="inline">
    </g>
</g>
</svg>
`)

func appAssetsImgIconsIc_menu_24pxSvgBytes() ([]byte, error) {
	return _appAssetsImgIconsIc_menu_24pxSvg, nil
}

func appAssetsImgIconsIc_menu_24pxSvg() (*asset, error) {
	bytes, err := appAssetsImgIconsIc_menu_24pxSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/ic_menu_24px.svg", size: 841, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgIconsList_control_downPng = []byte("\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x000\x00\x00\x000\b\x03\x00\x00\x00`\xdc\t\xb5\x00\x00\x00\x19tEXtSoftware\x00Adobe ImageReadyq\xc9e<\x00\x00\x00'PLTE\xa8\xa8\xa8\xfc\xfc\xfc\xc0\xc0\xc0\xb6\xb6\xb6\xf7\xf7\xf7\xaa\xaa\xaa\xf6\xf6\xf6\xe6\xe6\xe6\xe8\xe8\u8d75\xb5\xc3\xc3\xc3\xe5\xe5\xe5\xff\xff\xffZLu\xde\x00\x00\x00\rtRNS\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00=\xe8\"\x86\x00\x00\x00\x8bIDATx\xda\xec\xd4I\x12\x80 \fD\xd1\x04\x04\x9c\xee\u007f^\u02c1\xd2`\xb7\x96k\xc3\xd2\xfao\xa1\t\xca\xfc\xf1\x88\x03\a\xbf\x01}\xd7\x06\xb9\u007f\x02S\x8a\x8d\xc8C*\x1c\x94$bE\x1eD\xac0`\x14\xb1\"\xc7\xf5\xc9H\x81\x06+\xba\xad\x0f\xca\xdf\xc1\n\u0537_\xe9*`\u007f\x9b\xc3)p\u007f\x1f\\\x15\xa4\a\x93>\x04\xe9\xd1j\xec\x82\xf4p\x97\xaa@=^\xbe]\xc0\x9el\xeb*p\xcf\xd6[\x03\xe9\xe9}P\xf5\x9f\x80\x03\a\xafg\x11`\x00\xb0\xe4e\a\x17\x87\xea}\x00\x00\x00\x00IEND\xaeB`\x82")

func appAssetsImgIconsList_control_downPngBytes() ([]byte, error) {
	return _appAssetsImgIconsList_control_downPng, nil
}

func appAssetsImgIconsList_control_downPng() (*asset, error) {
	bytes, err := appAssetsImgIconsList_control_downPngBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/icons/list_control_down.png", size: 309, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsImgKubernetesSvg = []byte(`<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg width="140px" height="139px" viewBox="0 0 140 139" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <path d="M69.564453,0.890625 C67.679438,0.97633863 65.83265,1.45183502 64.140625,2.2871094 L64.150425,2.2714844 L19.492222,24.177734 C15.776058,26.000423 13.087287,29.410414 12.181675,33.449219 L1.1484375,82.683594 C0.25354487,86.675977 1.1961448,90.859257 3.7167969,94.082031 L34.617188,133.57031 C37.204703,136.87615 41.169115,138.80794 45.367188,138.80859 L94.929688,138.81459 C99.128112,138.81501 103.09331,136.88391 105.68164,133.57826 L136.58984,94.097796 C139.11186,90.875671 140.05591,86.692328 139.16211,82.699359 L128.13867,33.462891 C127.23402,29.423742 124.54596,26.013013 120.83008,24.189453 L76.177734,2.2734375 C74.123956,1.26576975 71.849913,0.79027587 69.564453,0.890625 L69.564453,0.890625 Z" fill="#FFFFFF"></path>
  <path d="M69.785156,5.9277344 C68.596708,5.9813144 67.432255,6.2805743 66.365234,6.8066406 L66.371134,6.7988306 L21.712931,28.705081 C19.369578,29.854918 17.674286,32.00564 17.103556,34.552737 L6.0683594,83.785156 C5.504042,86.303482 6.0990134,88.942143 7.6894531,90.974609 L38.587891,130.46289 C40.219821,132.54737 42.719874,133.76535 45.367188,133.76562 L94.931641,133.77162 C97.578956,133.77135 100.079009,132.55338 101.71094,130.46889 L132.61914,90.990374 C134.20958,88.957907 134.80455,86.319246 134.24023,83.800921 L123.2168,34.564453 C122.6465,32.017743 120.95198,29.867093 118.60938,28.716797 L73.957031,6.8007812 C72.661541,6.1647578 71.22697,5.8645457 69.785156,5.9277344 L69.785156,5.9277344 Z" fill="#336EE5"></path>
  <path d="M70.158203,22.609375 C68.693809,22.609375 67.509033,23.95463 67.490234,25.621094 L67.486328,25.621094 C67.487016,25.861935 67.475646,26.208085 67.484375,26.439453 C67.519875,27.411433 67.725984,28.156904 67.849609,29.052734 C68.074983,30.968571 68.264312,32.557063 68.148438,34.033203 C68.042186,34.772109 67.626171,35.064535 67.279297,35.40625 L67.345703,35.451172 L67.275391,35.451172 L67.275391,35.455078 L67.208984,36.648438 C58.699449,37.421316 50.808823,41.403848 45.007812,47.625 L44.009766,46.898438 L43.964844,46.955078 L43.972656,46.871094 C43.495282,46.936971 43.014968,47.090461 42.386719,46.714844 C41.190848,45.887846 40.100492,44.745117 38.78125,43.369141 C38.178242,42.711651 37.740935,42.081769 37.023438,41.447266 C36.866687,41.309245 36.631678,41.126067 36.451172,40.980469 C36.443613,40.974161 36.437316,40.967191 36.429688,40.960938 C35.147441,39.910367 33.360321,40.0198 32.439453,41.205078 C31.527048,42.380511 31.812064,44.16996 33.066406,45.224609 L33.064453,45.228516 C33.248323,45.378891 33.50537,45.605709 33.6875,45.744141 C34.448628,46.321756 35.145669,46.619167 35.904297,47.078125 C37.502293,48.092354 38.829491,48.929643 39.880859,49.943359 C40.376858,50.488741 40.338814,51.005958 40.382812,51.498047 L40.457031,51.472656 L40.414062,51.529297 L41.300781,52.34375 C38.981079,55.873171 37.23995,59.878341 36.261719,64.253906 C35.291509,68.592614 35.15021,72.93213 35.71875,77.101562 L34.681641,77.408203 L34.697266,77.474609 L34.640625,77.419922 C34.393376,77.844336 34.208378,78.327212 33.53125,78.597656 C32.156134,79.042104 30.606646,79.207233 28.738281,79.408203 C27.861034,79.483198 27.107482,79.439514 26.177734,79.621094 C25.967973,79.661512 25.672514,79.741581 25.447266,79.794922 C25.443964,79.795686 25.440802,79.7961 25.4375,79.796875 C25.434011,79.797691 25.431218,79.799955 25.427734,79.800781 C25.419505,79.802709 25.408389,79.804799 25.400391,79.806641 L25.400391,79.808594 C23.823377,80.19742 22.811243,81.68559 23.136719,83.152344 C23.462521,84.618785 25.002575,85.507142 26.587891,85.15625 L26.587891,85.158203 C26.599278,85.155524 26.615088,85.153125 26.626953,85.150391 C26.631045,85.149431 26.634588,85.147459 26.638672,85.146484 C26.864586,85.094713 27.164032,85.034947 27.369141,84.978516 C28.282888,84.727334 28.943998,84.354858 29.765625,84.03125 C31.534121,83.379283 32.998915,82.836501 34.425781,82.625 C35.150409,82.56593 35.520136,82.917596 35.921875,83.189453 L35.949219,83.113281 L35.964844,83.183594 L37.03125,82.998047 C39.605936,91.246292 45.067458,98.389215 52.492188,102.85938 L52.046875,103.96289 L52.111328,103.99414 L52.029297,104.00586 C52.197542,104.46842 52.451249,104.91582 52.234375,105.62891 C51.714876,107.01143 50.8732,108.35796 49.861328,109.98438 C49.371579,110.73613 48.870608,111.3141 48.427734,112.17383 C48.330344,112.36321 48.209485,112.64157 48.111328,112.85547 C48.107725,112.863 48.103166,112.86938 48.099609,112.87695 C48.095681,112.88534 48.093699,112.89394 48.089844,112.90234 C48.087972,112.90637 48.085834,112.91205 48.083984,112.91602 L48.085938,112.91602 C47.40097,114.42514 47.900428,116.16537 49.21875,116.81836 C50.548871,117.47649 52.203768,116.77883 52.916016,115.26172 C52.91995,115.25333 52.921921,115.24473 52.925781,115.23633 C53.02742,115.02423 53.164417,114.75327 53.248047,114.55859 C53.626421,113.66636 53.753782,112.90269 54.019531,112.04102 C54.626529,110.21405 55.127221,108.70063 55.855469,107.42188 C56.263218,106.80303 56.761002,106.72716 57.21875,106.57422 L57.175781,106.50195 L57.240234,106.5332 L57.820312,105.45703 C59.279187,106.01887 60.786912,106.49484 62.349609,106.85938 C69.289342,108.47785 76.223872,107.82482 82.423828,105.39453 L83.060547,106.57812 L83.123047,106.54688 L83.082031,106.61719 C83.539779,106.77051 84.037813,106.84797 84.445312,107.4668 C85.173436,108.74441 85.674627,110.25896 86.28125,112.08594 C86.547374,112.94761 86.67361,113.71282 87.052734,114.60352 C87.135308,114.79955 87.272056,115.06752 87.373047,115.2793 C87.376902,115.2877 87.378886,115.2963 87.382812,115.30469 C88.09406,116.82295 89.750582,117.52154 91.080078,116.86328 C92.399875,116.21158 92.900929,114.47045 92.214844,112.96094 L92.216797,112.95898 C92.212007,112.94874 92.20611,112.9345 92.201172,112.92383 C92.200152,112.92165 92.198289,112.92014 92.197266,112.91797 C92.097824,112.70281 91.972439,112.41327 91.873047,112.21875 C91.430548,111.35862 90.929451,110.78092 90.439453,110.0293 C89.427455,108.40317 88.58578,107.0552 88.066406,105.67383 C87.849532,104.96074 88.102109,104.51449 88.271484,104.05078 L88.191406,104.03906 L88.255859,104.00781 L87.751953,102.75391 C94.885105,98.433344 100.514721,91.548722 103.20703,83.046875 L104.34961,83.246094 L104.36523,83.177734 L104.39258,83.253906 C104.79508,82.981665 105.16405,82.62843 105.88867,82.6875 C107.31516,82.899001 108.77997,83.441782 110.54883,84.09375 C111.37046,84.417358 112.03081,84.791017 112.94531,85.042969 C113.15137,85.098644 113.45395,85.160732 113.67969,85.212891 C113.68234,85.21352 113.68484,85.21422 113.6875,85.214844 C113.69016,85.21547 113.69265,85.216178 113.69531,85.216797 C113.70411,85.218846 113.71609,85.220642 113.72461,85.222656 L113.72461,85.220703 C115.30963,85.574117 116.85106,84.68396 117.17773,83.216797 C117.5032,81.75119 116.49071,80.262994 114.91406,79.873047 L114.91406,79.871094 C114.90306,79.868505 114.88838,79.864067 114.87695,79.861328 C114.87365,79.860551 114.87049,79.860141 114.86719,79.859375 C114.64143,79.805066 114.34542,79.726689 114.13672,79.685547 C113.20586,79.504737 112.45342,79.545569 111.57617,79.470703 C109.7078,79.268962 108.15808,79.104989 106.7832,78.660156 C106.10509,78.389969 105.92278,77.908918 105.67578,77.484375 L105.61719,77.541016 L105.63281,77.472656 L104.54883,77.150391 C105.81818,68.221389 103.69598,59.45007 99.085938,52.347656 L99.919922,51.580078 L99.876953,51.525391 L99.953125,51.550781 C99.99675,51.058563 99.957001,50.541477 100.453125,49.996094 C101.504,48.982379 102.83132,48.144575 104.42969,47.130859 C105.18869,46.672543 105.88537,46.374233 106.64648,45.796875 C106.8146,45.669733 107.03986,45.470697 107.21875,45.322266 C107.22551,45.316815 107.2335,45.314108 107.24023,45.308594 C108.52261,44.258023 108.81553,42.445045 107.89453,41.259766 C106.98249,40.083783 105.21899,39.970689 103.93945,40.992188 L103.9375,40.990234 C103.75362,41.141636 103.48363,41.347442 103.3125,41.5 C102.59501,42.134118 102.15686,42.765696 101.55273,43.423828 C100.234996,44.799034 99.143138,45.940579 97.947266,46.767578 C97.319018,47.143708 96.838576,46.989705 96.361328,46.923828 L96.369141,47.003906 L96.326172,46.949219 L95.417969,47.611328 C90.871424,42.674999 84.900337,39.013547 77.949219,37.392578 C76.33103,37.015067 74.713896,36.769878 73.105469,36.632812 L73.041016,35.455078 L73.041016,35.451172 L72.970703,35.451172 L73.037109,35.40625 C72.690235,35.064535 72.274344,34.772109 72.167969,34.033203 C72.052094,32.557063 72.239845,30.968571 72.464844,29.052734 C72.588844,28.156904 72.796281,27.411433 72.832031,26.439453 C72.84076,26.208085 72.829514,25.861935 72.830078,25.621094 L72.826172,25.621094 C72.80646,23.955428 71.622757,22.610521 70.158203,22.609375 L70.158203,22.609375 Z M73.501953,43.830078 C74.442204,43.947675 75.386211,44.113788 76.330078,44.333984 C81.549591,45.551151 86.083352,48.217305 89.625,51.828125 L78.119141,60.203125 L78.095703,60.191406 C77.706579,60.483038 77.226529,60.654297 76.707031,60.654297 C75.439284,60.654297 74.408969,59.62693 74.355469,58.337891 L74.298828,58.310547 L73.501953,43.830078 L73.501953,43.830078 Z M66.8125,43.837891 L66.013672,58.285156 L66.001953,58.291016 C65.981453,58.78606 65.81178,59.278861 65.488281,59.695312 C64.698158,60.713394 63.27156,60.900719 62.257812,60.140625 L62.216797,60.160156 L50.775391,51.826172 C55.08706,47.449717 60.722164,44.609096 66.8125,43.837891 L66.8125,43.837891 Z M46.615234,57.228516 L57.050781,66.820312 L57.044922,66.847656 C57.408796,67.172676 57.677719,67.614939 57.792969,68.134766 C58.074593,69.404543 57.32781,70.665429 56.117188,71.005859 L56.105469,71.058594 L42.640625,75.048828 C42.352667,72.040886 42.518719,68.93035 43.216797,65.808594 C43.915022,62.685476 45.081605,59.808054 46.615234,57.228516 L46.615234,57.228516 Z M93.769531,57.232422 C96.851248,62.438943 98.312826,68.673365 97.626953,75.097656 L84.234375,71.125 L84.224609,71.078125 C83.759736,70.947141 83.329733,70.669176 83.005859,70.251953 C82.216486,69.234642 82.354861,67.762405 83.302734,66.916016 L83.291016,66.859375 L93.769531,57.232422 L93.769531,57.232422 Z M68.058594,67.533203 L72.259766,67.533203 L74.945312,70.976562 L73.974609,75.330078 L70.160156,77.208984 L66.345703,75.332031 L65.375,70.976562 L68.058594,67.533203 L68.058594,67.533203 Z M58.345703,79.349609 C58.70919,79.339282 59.08083,79.416193 59.431641,79.589844 C59.554043,79.650391 59.664377,79.724576 59.771484,79.802734 L59.771484,79.925781 L60.085938,80.080078 C60.738857,80.764053 60.958553,81.803391 60.572266,82.726562 L60.589844,82.75 L55.193359,96.148438 C50.016365,92.739684 46.1366,87.648057 44.101562,81.767578 L57.960938,79.357422 L57.986328,79.388672 C58.104765,79.366199 58.224541,79.353052 58.345703,79.349609 L58.345703,79.349609 Z M81.904297,79.40625 C82.055953,79.404147 82.209001,79.418067 82.363281,79.447266 L82.384766,79.419922 L96.111328,81.810547 C93.985653,87.866972 90.034121,92.797189 85.068359,96.089844 L79.732422,82.832031 L79.771484,82.78125 C79.58086,82.326915 79.52475,81.806936 79.640625,81.287109 C79.887484,80.176167 80.842701,79.420971 81.904297,79.40625 L81.904297,79.40625 Z M70.025391,85.224609 C70.918397,85.170809 71.796516,85.646772 72.240234,86.5 L72.240234,86.494141 L72.246094,86.494141 L79.035156,99.101562 C74.341871,100.754225 69.160794,101.12885 63.96875,99.917969 C63.033715,99.69985 62.119901,99.435009 61.230469,99.126953 L68.035156,86.496094 L68.087891,86.496094 C68.31564,86.059993 68.674829,85.692087 69.142578,85.460938 C69.427827,85.319776 69.727722,85.242543 70.025391,85.224609 L70.025391,85.224609 Z" fill="#FFFFFF"></path>
</svg>`)

func appAssetsImgKubernetesSvgBytes() ([]byte, error) {
	return _appAssetsImgKubernetesSvg, nil
}

func appAssetsImgKubernetesSvg() (*asset, error) {
	bytes, err := appAssetsImgKubernetesSvgBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/img/kubernetes.svg", size: 11663, mode: os.FileMode(416), modTime: time.Unix(1454116395, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsJsAppJs = []byte(`function ReplicationController(){}function ServiceController(){}var componentNamespaces=["kubernetesApp.components.dashboard"],app=angular.module("kubernetesApp",["ngRoute","ngMaterial","ngLodash","door3.css","kubernetesApp.config","kubernetesApp.services","angular.filter"].concat(componentNamespaces));app.factory("menu",["$location","$rootScope","sections","$route",function(e,t,a,n){function r(){var e=n.current.originalPath,t=function(t,a){(e===a.url||e===a.url+"/")&&(o.selectSection(t),o.selectPage(t,a))};a.forEach(function(e){e.children?e.children.forEach(function(e){e.pages&&e.pages.forEach(function(a){t(e,a)})}):e.pages?e.pages.forEach(function(a){t(e,a)}):"link"===e.type&&t(e,e)})}var o;return t.$on("$locationChangeSuccess",r),o={sections:a,setSections:function(e){this.sections=e},selectSection:function(e){o.openedSection=e},toggleSelectSection:function(e){o.openedSection=o.openedSection===e?null:e},isSectionSelected:function(e){return o.openedSection===e},selectPage:function(e,t){o.currentSection=e,o.currentPage=t},isPageSelected:function(e){return o.currentPage===e}}}]),angular.module("kubernetesApp.config",[]),angular.module("kubernetesApp.services",["kubernetesApp.config"]),app.config(["$routeProvider",function(e){e.when("/404",{templateUrl:"views/partials/404.html"}).otherwise({redirectTo:"/404"})}]).config(["$routeProvider","manifestRoutes",function(e,t){angular.forEach(t,function(t){var a={templateUrl:t.templateUrl};t.controller&&(a.controller=t.controller),t.css&&(a.css=t.css),e.when(t.url,a)})}]),app.value("sections",[{name:"Dashboard",url:"/dashboard",type:"link",templateUrl:"/components/dashboard/pages/home.html"},{name:"Dashboard",type:"heading",children:[{name:"Dashboard",type:"toggle",url:"/dashboard",templateUrl:"/components/dashboard/pages/home.html",pages:[{name:"Pods",url:"/dashboard/pods",templateUrl:"/components/dashboard/views/listPods.html",type:"link"},{name:"Pod Visualizer",url:"/dashboard/visualpods",templateUrl:"/components/dashboard/views/listPodsVisualizer.html",type:"link"},{name:"Services",url:"/dashboard/services",templateUrl:"/components/dashboard/views/listServices.html",type:"link"},{name:"Replication Controllers",url:"/dashboard/replicationcontrollers",templateUrl:"/components/dashboard/views/listReplicationControllers.html",type:"link"},{name:"Events",url:"/dashboard/events",templateUrl:"/components/dashboard/views/listEvents.html",type:"link"},{name:"Nodes",url:"/dashboard/nodes",templateUrl:"/components/dashboard/views/listMinions.html",type:"link"},{name:"Replication Controller",url:"/dashboard/replicationcontrollers/:replicationControllerId",templateUrl:"/components/dashboard/views/replication.html",type:"link"},{name:"Service",url:"/dashboard/services/:serviceId",templateUrl:"/components/dashboard/views/service.html",type:"link"},{name:"Node",url:"/dashboard/nodes/:nodeId",templateUrl:"/components/dashboard/views/node.html",type:"link"},{name:"Explore",url:"/dashboard/groups/:grouping*?/selector/:selector*?",templateUrl:"/components/dashboard/views/groups.html",type:"link"},{name:"Pod",url:"/dashboard/pods/:podId",templateUrl:"/components/dashboard/views/pod.html",type:"link"}]}]},{name:"Graph",url:"/graph",type:"link",templateUrl:"/components/graph/pages/home.html"},{name:"Graph",url:"/graph/inspect",type:"link",templateUrl:"/components/graph/pages/inspect.html",css:"/components/graph/css/show-details-table.css"},{name:"Graph",type:"heading",children:[{name:"Graph",type:"toggle",url:"/graph",templateUrl:"/components/graph/pages/home.html",pages:[{name:"Test",url:"/graph/test",type:"link",templateUrl:"/components/graph/pages/home.html"}]}]}]),app.directive("includeReplace",function(){"use strict";return{require:"ngInclude",restrict:"A",link:function(e,t,a){t.replaceWith(t.children())}}}).directive("compile",["$compile",function(e){"use strict";return function(t,a,n){t.$watch(function(e){return e.$eval(n.compile)},function(n){a.html(n),e(a.contents())(t)})}}]).directive("kubernetesUiMenu",function(){"use strict";return{templateUrl:"views/partials/kubernetes-ui-menu.tmpl.html"}}).directive("menuToggle",function(){"use strict";return{scope:{section:"="},templateUrl:"views/partials/menu-toggle.tmpl.html",link:function(e,t){var a=t.parent().controller();e.isOpen=function(){return a.isOpen(e.section)},e.toggle=function(){a.toggleOpen(e.section)};var n=t[0].parentNode.parentNode.parentNode;if(n.classList.contains("parent-list-item")){var r=n.querySelector("h2");t[0].firstChild.setAttribute("aria-describedby",r.id)}}}}),app.filter("startFrom",function(){"use strict";return function(e,t){return e.slice(t)}}).filter("nospace",function(){"use strict";return function(e){return e?e.replace(/ /g,""):""}}),app.run(["$route",angular.noop]).run(["lodash",function(e){window._=e}]),app.service("SidebarService",["$rootScope",function(e){var t=this;t.sidebarItems=[],t.clearSidebarItems=function(){t.sidebarItems=[]},t.renderSidebar=function(){var a="";t.sidebarItems.forEach(function(e){a+=e.Html}),a&&(e.sidenavLeft='<div layout="column">'+a+"</div>")},t.addSidebarItem=function(e){t.sidebarItems.push(e),t.sidebarItems.sort(function(e,t){return e.order>t.order?1:t.order>e.order?-1:0})}}]),app.value("tabs",[{component:"dashboard",title:"Dashboard"}]),app.constant("manifestRoutes",[{description:"Dashboard visualization.",url:"/dashboard/",templateUrl:"components/dashboard/pages/home.html"},{description:"Pods",url:"/dashboard/pods",templateUrl:"components/dashboard/views/listPods.html"},{description:"Services",url:"/dashboard/services",templateUrl:"components/dashboard/views/listServices.html"},{description:"Replication Controllers",url:"/dashboard/replicationcontrollers",templateUrl:"components/dashboard/views/listReplicationControllers.html"},{description:"Events",url:"/dashboard/events",templateUrl:"components/dashboard/views/listEvents.html"},{description:"Nodes",url:"/dashboard/nodes",templateUrl:"components/dashboard/views/listMinions.html"},{description:"Replication Controller",url:"/dashboard/replicationcontrollers/:namespaceId/:replicationControllerId",templateUrl:"components/dashboard/views/replication.html"},{description:"Service",url:"/dashboard/services/:namespaceId/:serviceId",templateUrl:"components/dashboard/views/service.html"},{description:"Node",url:"/dashboard/nodes/:nodeId",templateUrl:"components/dashboard/views/node.html"},{description:"Explore",url:"/dashboard/groups/:grouping*?/selector/:selector*?",templateUrl:"components/dashboard/views/groups.html"},{description:"Pod",url:"/dashboard/pods/:namespaceId/:podId",templateUrl:"components/dashboard/views/pod.html"}]),angular.module("kubernetesApp.config",[]).constant("ENV",{"/":{k8sApiServer:"/api/v1",k8sDataService:"/cluster-insight",k8sDataServicePortName:":cluster-insight",k8sDataServiceEndpoint:"/cluster",k8sDataPollMinIntervalSec:10,k8sDataPollMaxIntervalSec:120,k8sDataPollErrorThreshold:5,cAdvisorProxy:"",cAdvisorPort:"4194"}}).constant("ngConstant",!0),app.controller("PageCtrl",["$scope","$timeout","$mdSidenav","menu","$rootScope",function(e,t,a,n,r){function o(){return v}function s(){e.showKubernetesUiMenu=!e.showKubernetesUiMenu}function i(){t(function(){a("left").close()})}function c(){t(function(){v=!a("left").isOpen(),a("left").toggle()})}function l(){return $location.path()}function u(e){n.selectPage(null,null),$location.path("/")}function d(){e.closeMenu(),h.focus()}function p(e){return n.isPageSelected(e)}function m(e){var t=!1,a=n.openedSection;return a===e?t=!0:e.children&&e.children.forEach(function(e){e===a&&(t=!0)}),t}function f(e){return n.isSectionSelected(e)}function g(e){n.toggleSelectSection(e)}e.menu=n,e.path=l,e.goHome=u,e.openMenu=c,r.openMenu=c,e.closeMenu=i,e.isSectionSelected=m,r.$on("$locationChangeSuccess",d),this.isOpen=f,this.isSelected=p,this.toggleOpen=g,this.shouldLockOpen=o,e.toggleKubernetesUiMenu=s;var h=document.querySelector("[role='main']"),v=(document.querySelector("[role='kubernetes-ui-menu']"),!1);e.showKubernetesUiMenu=!1}]).filter("humanizeDoc",function(){return function(e){return e?"directive"===e.type?e.name.replace(/([A-Z])/g,function(e){return"-"+e.toLowerCase()}):e.label||e.name:void 0}}),app.controller("TabCtrl",["$scope","$location","tabs",function(e,t,a){e.tabs=a,e.switchTab=function(e){var n=t.path(),r=a[e];if(r){var o="/%s".format(r.component);-1==n.indexOf(o)&&t.path(o)}}}]),function(){"use strict";angular.module("kubernetesApp.services").service("cAdvisorService",["$http","$q","ENV","k8sApi",function(e,t,a,n){function r(a){var n=m(a)+"machine",r=t.defer();return e.get(n).success(function(e){r.resolve(e)}).error(function(e,t){r.reject("There was an error")}),r.promise}function o(a,n){n="undefined"==typeof n?"/":n;var r=m(a)+"containers"+n,o=t.defer(),s={num_stats:10,num_samples:0};return e.post(r,s).success(function(e){o.resolve(e)}).error(function(){o.reject("There was an error")}),o.promise}function s(e,t,a){var n;for(n=a.pop();a.length&&e>=t;n=a.pop())e/=t;return[e,n]}function i(e){var t=s(e,1e3,["TB","GB","MB","KB","Bytes"]);return t[0].toFixed(2)+" "+t[1]}function c(e,t){return e.stats.length>0&&e.stats[0][t]}function l(e,t){var a=new Date(e),n=new Date(t);return 1e6*(a.getTime()-n.getTime())}function u(e,t){var a=t.stats[t.stats.length-1],n=0;if(t.spec.has_cpu&&t.stats.length>=2){var r=t.stats[t.stats.length-2],o=a.cpu.usage.total-r.cpu.usage.total,s=l(a.timestamp,r.timestamp);n=Math.round(o/s/e.num_cores*100),n>100&&(n=100)}return{cpuPercentUsage:n}}function d(e,t){var a=t.stats[t.stats.length-1];if(a.filesystem){for(var n=[],r=0;r<a.filesystem.length;r++){var o=a.filesystem[r],s=(Math.floor(100*o.usage/o.capacity),{device:o.device,filesystemNumber:r+1,usage:o.usage,usageDescription:i(o.usage),capacity:o.capacity,capacityDescription:i(o.capacity),totalUsage:Math.floor(100*o.usage/o.capacity)});n.push(s)}return n}}function p(e,t){if(!t.spec.has_memory||c(t,"memory")){for(var a=[],n=0;n<t.stats.length;n++){var r=t.stats[n],o=[];o.push(r.timestamp),o.push(r.memory.usage/f),o.push(r.memory.working_set/f),a.push(o)}var s=e.memory_capacity;t.spec.memory.limit&&t.spec.memory.limit<s&&(s=t.spec.memory.limit);var r=t.stats[t.stats.length-1],l={current:{memoryUsage:r.memory.usage,workingMemoryUsage:r.memory.working_set,memoryLimit:s,memoryUsageDescription:i(r.memory.usage),workingMemoryUsageDescription:i(r.memory.working_set),memoryLimitDescription:i(s)},historical:a};return l}}var m=function(e){var t=a["/"].cAdvisorPort||"8081",r=a["/"].cAdvisorProxy||n.getUrlBase()+"/proxy/nodes/";return r+e+":"+t+"/api/v1.0/"};this.getMachineInfo=r,this.getContainerInfo=o,this.getDataForMinion=function(e,a){var n,s,i=t.defer();if(a){t.all([r(e),o(e)]).then(function(e){n=e[0],s=e[1];var t=p(n,s),a=u(n,s),r=d(n,s);i.resolve({memoryData:t,cpuData:a,filesystemData:r,machineData:n,containerData:s})},function(e){i.reject(e)})}else i.resolve({memoryData:{current:{memoryUsage:0,workingMemoryUsage:0,memoryLimit:1,memoryUsageDescription:"-",memoryLimitDescription:"-"},historical:{}},cpuData:{cpuPercentUsage:""},filesystemData:[],machineData:{},containerData:{}});return i.promise};var f=1048576}])}(),function(){"use strict";angular.module("kubernetesApp.services").provider("k8sApi",function(){var e="",t=void 0;this.setUrlBase=function(t){e=t},this.setNamespace=function(e){t=e},this.getNamespace=function(){return t};var a=function(e,t,a){var n=t;return void 0!==a&&(n+="/"+a),e.get(n)};this.$get=["$http","$q",function(n,r){var o={};return o.getUrlBase=function(){return e},o.getNamespacedUrlBase=function(a){var n=a||t;return n?e+"/namespaces/"+n:e},o.getPods=function(e,t){return a(n,o.getNamespacedUrlBase(t)+"/pods",e)},o.getNodes=function(t){return a(n,e+"/nodes",t)},o.getMinions=o.getNodes,o.getServices=function(e,t){return a(n,o.getNamespacedUrlBase(t)+"/services",e)},o.getReplicationControllers=function(e,t){return a(n,o.getNamespacedUrlBase(t)+"/replicationcontrollers",e)},o.getEvents=function(e){return a(n,o.getNamespacedUrlBase()+"/events",e)},o}]}).config(["k8sApiProvider","ENV",function(e,t){if(t&&t["/"]&&t["/"].k8sApiServer){var a=t["/"].k8sApiServer;if("/"==a[0]){var n=window.location.pathname.lastIndexOf(a);-1!=n&&(a=window.location.pathname.substr(0,n+a.length))}e.setUrlBase(a)}}])}(),function(){"use strict";var e=function(e){var t=!1;this.setUseSampleData=function(e){t=e};var a=[];this.setSampleDataFiles=function(e){a=e};var n="/api/v1/proxy/namespaces/default/services",r=void 0,o="/cluster-insight";this.setDataService=function(e){r=e},this.getDataService=function(){return r||o};var s=this.getDataService,i=void 0,c=":cluster-insight";this.setDataServicePortName=function(e){i=e},this.getDataServicePortName=function(){return i||c};var l=this.getDataServicePortName,u=void 0,d="/cluster";this.setDataServiceEndpoint=function(e){u=e},this.getDataServiceEndpoint=function(){return u||d};var p=this.getDataServiceEndpoint,m=void 0,f=10;this.setPollMinIntervalSec=function(e){m=e},this.getPollMinIntervalSec=function(){return m||f};var g=this.getPollMinIntervalSec,h=void 0,v=120;this.setPollMaxIntervalSec=function(e){h=e},this.getPollMaxIntervalSec=function(){return h||v};var b=this.getPollMaxIntervalSec,y=void 0,k=5;this.setPollErrorThreshold=function(e){y=e},this.getPollErrorThreshold=function(){return y||k};var S=this.getPollErrorThreshold;this.$get=function(r,o){var i={data:void 0,sequenceNumber:0,useSampleData:t},c=0,u=void 0,d=g(),m=d,f=function(){d=g(),m=d},h=function(){c++,c%S()===0&&console.log("Error: "+c+" consecutive polling errors for "+s()+".");var e=m;m=d,d+=e,d>b()&&f()},v=function(t){var a=function(t){if(t.resources){var a=function(e){return e.id};t.resources=e.chain(t.resources).sortBy(a).uniq(!0,a).value()}if(t.relations){var n=function(e){return e.source+e.target};t.relations=e.chain(t.relations).sortBy(n).uniq(!0,n).value()}};a(t);var n=JSON.stringify(t),r="";i.data&&(r=JSON.stringify(i.data)),n!==r&&(i.data=t,i.sequenceNumber++),c=0,f()},y=0,k=function(){var e="";return a.length>0&&(e=a[y%a.length],++y),e},P=function(){return n+s()+l()+p()},D=function(e,t){var a=i.useSampleData?k():P();a&&$.getJSON(a).done(function(a,n,r){return a&&a.success?(delete a.success,delete a.timestamp,v(a),e.$apply(),void(u=t?o(function(){D(e,!0)},1e3*d):void 0)):(h(),void(u=t?o(function(){D(e,!0)},1e3*d):void 0))}).fail(function(a,n,r){h(),u=t?o(function(){D(e,!0)},1e3*d):void 0})},x=function(){return u?!0:!1},A=function(e){f(),u||(i.data=void 0,D(e,!0))},w=function(){u&&(o.cancel(u),u=void 0)},C=function(e){w(),f(),i.data=void 0,D(e,!1)};return{k8sdatamodel:i,isPolling:x,refresh:C,start:A,stop:w}}};angular.module("kubernetesApp.services").provider("pollK8sDataService",["lodash",e]).config(["pollK8sDataServiceProvider","ENV",function(e,t){t&&t["/"]&&(t["/"].k8sDataService&&e.setDataService(t["/"].k8sDataService),t["/"].k8sDataServicePortName&&e.setDataServicePortName(t["/"].k8sDataServicePortName),t["/"].k8sDataServiceEndpoint&&e.setDataServiceEndpoint(t["/"].k8sDataServiceEndpoint),t["/"].k8sDataPollIntervalMinSec&&e.setPollIntervalSec(t["/"].k8sDataPollIntervalMinSec),t["/"].k8sDataPollIntervalMaxSec&&e.setPollIntervalSec(t["/"].k8sDataPollIntervalMaxSec),t["/"].k8sDataPollErrorThreshold&&e.setPollErrorThreshold(t["/"].k8sDataPollErrorThreshold))}])}(),app.controller("cAdvisorController",["$scope","$routeParams","k8sApi","lodash","cAdvisorService","$q","$interval",function(e,t,a,n,r,o,s){function i(e,t){var a="color-"+(e+1);return t&&t>=90?a+=" color-critical":t&&t>=80&&(a+=" color-warning"),a}function c(e,t){var a="color-max-"+(e+1);return t&&t>=90?a+=" color-max-critical":t&&t>=80&&(a+=" color-max-warning"),a}function l(t,a,n,r){void 0===e.maxDataByById[t]&&(e.maxDataByById[t]={});var o=a.current,s=n,l=[];(void 0===e.maxDataByById[t].cpu||e.maxDataByById[t].cpu<s.cpuPercentUsage)&&(e.maxDataByById[t].cpu=s.cpuPercentUsage),l.push({maxValue:e.maxDataByById[t].cpu,maxTickClassNames:i(0,e.maxDataByById[t].cpu),maxClassNames:c(0,e.maxDataByById[t].cpu)});var u=Math.floor(100*o.memoryUsage/o.memoryLimit);(void 0===e.maxDataByById[t].mem||e.maxDataByById[t].mem<u)&&(e.maxDataByById[t].mem=u),l.push({maxValue:e.maxDataByById[t].mem,maxTickClassNames:i(1,e.maxDataByById[t].mem),maxClassNames:c(1,e.maxDataByById[t].mem)});for(var d=0;d<r.length;d++){var p=r[d],m="FS #"+p.filesystemNumber;(void 0===e.maxDataByById[t][m]||e.maxDataByById[t][m]<p.totalUsage)&&(e.maxDataByById[t][m]=p.totalUsage),l.push({maxValue:e.maxDataByById[t][m],maxTickClassNames:i(2+d,e.maxDataByById[t][m]),maxClassNames:c(2+d,e.maxDataByById[t][m])})}return l}function u(e,t,a,n,r,o){var s=e.current,c=t,l=[];l.push({label:"CPU",stats:c.cpuPercentUsage+"% / "+o+" CPU",value:c.cpuPercentUsage,classNames:i(0,c.cpuPercentUsage),maxData:n[0],hostName:r});var u=Math.floor(100*s.memoryUsage/s.memoryLimit);l.push({label:"Memory",stats:s.memoryUsageDescription+" / "+s.memoryLimitDescription,value:u,classNames:i(1,u),maxData:n[1],hostName:r});for(var d=0;d<a.length;d++){var p=a[d];l.push({label:"Filesystem #"+p.filesystemNumber,stats:p.usageDescription+" / "+p.capacityDescription,value:p.totalUsage,classNames:i(2+d,p.totalUsage),maxData:n[2+d],hostName:r})}var m=[],f={segments:l};return m.push(f),m}e.k8sApi=a,e.activeMinionDataById={},e.maxDataByById={},e.getData=function(){e.loading=!0,a.getMinions().success(angular.bind(this,function(t){e.minions=t;var a=n.map(t.items,function(e){var t=e.status.conditions.filter(function(e){return"Ready"===e.type})[0];return r.getDataForMinion(e.metadata.name,t&&"True"===t.status)["catch"](function(e){return null})});o.all(a).then(function(a){n.each(a,function(a,n){if(a){var r=t.items[n],o=l(r.metadata.name,a.memoryData,a.cpuData,a.filesystemData);r.status.addresses?hostname=r.status.addresses[0].address:hostname=r.metadata.name,cpu=r.status.capacity?r.status.capacity.cpu:"-",e.activeMinionDataById[r.metadata.name]=u(a.memoryData,a.cpuData,a.filesystemData,o,hostname,cpu)}})},function(){e.loading=!1}),e.loading=!1}))["finally"](function(){e.loading=!1})};var d=s(e.getData,3e3);e.$on("$destroy",function(){angular.isDefined(d)&&(s.cancel(d),d=void 0)}),e.getData()}]),app.controller("DashboardCtrl",["$scope",function(e){}]),app.controller("GroupCtrl",["$scope","$route","$interval","$routeParams","k8sApi","$rootScope","$location","lodash",function(e,t,a,n,r,o,s,i){"use strict";function c(){return[{name:"Type",value:"type"},{name:"Name",value:"name"}]}function l(){var t=e.groups,a=c(),n=i.map(t.items,function(e){return i.map(e,function(e){return i.keys(e.metadata.labels)})});return n=i.reject(i.uniq(i.flattenDeep(n)),function(e){return"name"==e||"type"==e||""==e}),n=i.map(n,function(e){return{name:e,value:e}}),a=a.concat(n)}e.doTheBack=function(){window.history.back()},e.capitalize=function(e){return i.capitalize(e)},o.doTheBack=e.doTheBack,e.resetGroupLayout=function(e){delete e.settings},e.handlePath=function(e){var t=e.split("/");t=t.slice(1),0!==t.length&&this.handleGroups(t.slice(1))},e.getState=function(e){return Object.keys(e)[0]},e.clearSelector=function(e){s.path("/dashboard/groups/"+e+"/selector/")},e.changeGroupBy=function(){var t=e.selectedGroupBy,a=i.clone(s.search());e.routeParams.grouping!=t&&s.path("/dashboard/groups/"+t+"/selector/").search(a)},e.createBarrier=function(e,t){var a=e,n=angular.bind(this,function(e){a--,0===a&&t&&t()});return n},e.handleGroups=function(t,a){e.groupBy=t,e.loading=!0,e.selector=a;var o=[],s="";if(a&&a.length>0){e.selectorPieces=a.split(",");for(var i=[],c=[],u=0;u<e.selectorPieces.length;u++){var d=e.selectorPieces[u];if("$"==d[0])c.push(d.slice(2));else if(0===d.indexOf("type=")){var p=d.split("=");p.length>1&&(s=p[1])}else i.push(d)}i.length>0&&o.push("labels="+encodeURI(i.join(","))),c.length>0&&o.push("fields="+encodeURI(c.join(",")))}var m="?"+o.join("&"),f=[],g=s.length>0?1:3,h=e.createBarrier(g,function(){e.groups=e.groupData(f,0),e.loading=!1,e.groupByOptions=l(),e.selectedGroupBy=n.grouping});(""===s||"pod"==s)&&r.getPods(m).success(function(t){e.addLabel("type","pod",t.items);for(var a=0;t.items&&a<t.items.length;++a)t.items[a].metadata.labels.host=t.items[a].spec.host,f.push(t.items[a]);h()}).error(e.handleError),(""===s||"service"==s)&&r.getServices(m).success(function(t){e.addLabel("type","service",t.items);for(var a=0;t.items&&a<t.items.length;++a)f.push(t.items[a]);h()}).error(e.handleError),(""===s||"replicationController"==s)&&r.getReplicationControllers(m).success(angular.bind(this,function(t){e.addLabel("type","replicationController",t.items);for(var a=0;t.items&&a<t.items.length;++a)f.push(t.items[a]);h()})).error(e.handleError)},e.addLabel=function(e,t,a){if(a)for(var n=0;n<a.length;n++)a[n].metadata.labels||(a[n].metadata.labels=[]),a[n].metadata.labels[e]=t},e.groupData=function(t,a){for(var n={items:{},kind:"grouping"},r=0;r<t.length;r++){s=t[r].metadata.labels[e.groupBy[a]],s||(s="");var o=n.items[s];o||(o=[],n.items[s]=o),o.push(t[r])}if(a+1<e.groupBy.length)for(var s in n.items)n.items[s]=e.groupData(n.items[s],a+1);return n},e.getGroupColor=function(e){return"pod"===e?"#6193F0":"replicationController"===e?"#E008FE":"service"===e?"#7C43FF":void 0};var u=n.grouping;u||(u=""),e.routeParams=n,e.route=t,e.handleGroups(u.split("/"),n.selector),e.handleError=function(e,t,a,n){console.log("Error ("+t+"): "+e),$scope_.loading=!1},e.changeFilterBy=function(t){var a=(e.selectedGroupBy,i.clone(s.search()));e.routeParams.selector!=t&&s.path("/dashboard/groups/"+e.routeParams.grouping+"/selector/"+t).search(a)}}]),angular.module("kubernetesApp.components.dashboard",[]).controller("HeaderCtrl",["$scope","$location",function(e,t){"use strict";e.$watch("Pages",function(e,a){"undefined"!=typeof e&&t.path(e)}),e.subPages=[{category:"dashboard",name:"Explore",value:"/dashboard/groups/type/selector/"},{category:"dashboard",name:"Pods",value:"/dashboard/pods"},{category:"dashboard",name:"Nodes",value:"/dashboard/nodes"},{category:"dashboard",name:"Replication Controllers",value:"/dashboard/replicationcontrollers"},{category:"dashboard",name:"Services",value:"/dashboard/services"},{category:"dashboard",name:"Events",value:"/dashboard/events"}]}]),app.controller("ListEventsCtrl",["$scope","$routeParams","k8sApi","$location","$filter",function(e,t,a,n,r){"use strict";function o(){e.loading=!0,a.getEvents().success(function(t){e.loading=!1;t.items.forEach(function(t){var a="";t.source&&(a=t.source.component+" "+t.source.host),e.content.push({firstSeen:r("date")(t.firstTimestamp,"medium"),lastSeen:r("date")(t.lastTimestamp,"medium"),count:t.count,name:t.involvedObject.name,kind:t.involvedObject.kind,subObject:t.involvedObject.fieldPath,reason:t.reason,source:a,message:t.message})})}).error(e.handleError)}e.getData=o,e.loading=!0,e.k8sApi=a,e.pods=null,e.groupedPods=null,e.serverView=!1,e.headers=[{name:"First Seen",field:"firstSeen"},{name:"Last Seen",field:"lastSeen"},{name:"Count",field:"count"},{name:"Name",field:"name"},{name:"Kind",field:"kind"},{name:"SubObject",field:"subObject"},{name:"Reason",field:"reason"},{name:"Source",field:"source"},{name:"Message",field:"message"}],e.sortable=["firstSeen","lastSeen","count","name","kind","subObject","reason","source"],e.count=10,e.content=[],o()}]),app.controller("ListMinionsCtrl",["$scope","$routeParams","k8sApi","$location",function(e,t,a,n){"use strict";function r(){e.loading=!0,a.getMinions().success(function(t){e.loading=!1;t.items.forEach(function(t){var a="";t.status.conditions&&Object.keys(t.status.conditions).forEach(function(e){"True"==t.status.conditions[e].status&&(a+=t.status.conditions[e].type)}),e.content.push({name:t.metadata.name,addresses:_.map(t.status.addresses,function(e){return e.address}).join(", "),status:a})})}).error(e.handleError)}e.getData=r,e.loading=!0,e.k8sApi=a,e.pods=null,e.groupedPods=null,e.serverView=!1,e.headers=[{name:"Name",field:"name"},{name:"Addresses",field:"addresses"},{name:"Status",field:"status"}],e.custom={name:"",status:"grey",ip:"grey"},e.sortable=["name","status","ip"],e.thumbs="thumb",e.count=10,e.go=function(e){n.path("/dashboard/nodes/"+e.name)},e.content=[],r()}]),app.controller("ListPodsCtrl",["$scope","$routeParams","k8sApi","lodash","$location",function(e,t,a,n,r){function o(t,a,n,r){console.log("Error ("+a+"): "+t),e.loading=!1}function s(e){return c.has(e.metadata.labels,"name")?e.metadata.labels.name:e.metadata.name}function i(){e.loading=!0,a.getPods().success(angular.bind(this,function(t){e.loading=!1;var a=function(e){return","==e.substring(0,1)?e.substring(1):e};t.items.forEach(function(t){var n="",r="",o="",s="";t.spec&&Object.keys(t.spec.containers).forEach(function(e){n+=", "+t.spec.containers[e].name,r+=", "+t.spec.containers[e].image}),t.metadata.labels&&Object.keys(t.metadata.labels).forEach(function(e){"name"==e&&(o+=", "+t.metadata.labels[e]),"uses"==e&&(s+=", "+t.metadata.labels[e])}),e.content.push({pod:t.metadata.name,ip:t.status.podIP,containers:a(n),images:a(r),host:t.spec.host,labels:a(o)+":"+a(s),status:t.status.phase,namespace:t.metadata.namespace})})})).error(angular.bind(this,o))}var c=n;e.getData=i,e.loading=!0,e.k8sApi=a,e.pods=null,e.groupedPods=null,e.serverView=!1,e.headers=[{name:"Pod",field:"pod"},{name:"IP",field:"ip"},{name:"Status",field:"status"},{name:"Containers",field:"containers"},{name:"Images",field:"images"},{name:"Namespace",field:"namespace"},{name:"Host",field:"host"},{name:"Labels",field:"labels"}],e.custom={pod:"",ip:"grey",containers:"grey",images:"grey",host:"grey",labels:"grey",status:"grey"},e.sortable=["pod","ip","status"],e.count=10,e.go=function(e){r.path("/dashboard/pods/"+e.namespace+"/"+e.pod)};var l=[];e.content=[],e.getPodRestarts=function(e){var t=null,a=c.first(e.spec.containers);return a&&(t=e.status.containerStatuses[a.name].restartCount),t},e.otherLabels=function(e){return c.omit(e,"name")},e.podStatusClass=function(e){var t=e.status.phase.toLowerCase();return"running"==t||"succeeded"==t?null:"status-"+t},e.podIndexFromName=function(e){var t=s(e);return c.indexOf(l,t)+1},i()}]),app.controller("ListReplicationControllersCtrl",["$scope","$routeParams","k8sApi","$location",function(e,t,a,n){"use strict";function r(){e.loading=!0,a.getReplicationControllers().success(function(t){e.loading=!1;t.items.forEach(function(t){var a="",n="";t.spec.template.spec.containers&&Object.keys(t.spec.template.spec.containers).forEach(function(e){a+=t.spec.template.spec.containers[e].name,n+=t.spec.template.spec.containers[e].image});var r="";t.spec.selector&&(r=_.map(t.spec.selector,function(e,t){return t+"="+e}).join(", ")),e.content.push({controller:t.metadata.name,containers:a,images:n,selector:r,replicas:t.status.replicas,namespace:t.metadata.namespace})})}).error(e.handleError)}e.getData=r,e.loading=!0,e.k8sApi=a,e.pods=null,e.groupedPods=null,e.serverView=!1,e.headers=[{name:"Controller",field:"controller"},{name:"Containers",field:"containers"},{name:"Images",field:"images"},{name:"Selector",field:"selector"},{name:"Replicas",field:"replicas"},{name:"Namespace",field:"namespace"}],e.custom={controller:"",containers:"grey",images:"grey",selector:"grey",replicas:"grey",namespace:"grey"},e.sortable=["controller","containers","images","namespace"],e.thumbs="thumb",e.count=10,e.go=function(e){n.path("/dashboard/replicationcontrollers/"+e.namespace+"/"+e.controller)},e.content=[],r()}]),app.controller("ListServicesCtrl",["$scope","$interval","$routeParams","k8sApi","$rootScope","$location",function(e,t,a,n,r,o){"use strict";e.doTheBack=function(){window.history.back()},e.headers=[{name:"Name",field:"name"},{name:"Labels",field:"labels"},{name:"Selector",field:"selector"},{name:"IP",field:"ip"},{name:"Namespace",field:"namespace"}],e.custom={name:"",ip:"grey",selector:"grey",port:"grey",labels:"grey",namespace:"grey"},e.sortable=["name","ip","port","namespace"],e.count=10,e.go=function(e){o.path("/dashboard/services/"+e.namespace+"/"+e.name)},e.content=[],r.doTheBack=e.doTheBack,e.handleError=function(e,t,a,n){console.log("Error ("+t+"): "+e),$scope_.loading=!1},e.getData=function(){e.loading=!0,n.getServices().success(angular.bind(this,function(t){e.services=t,e.loading=!1;t.items.constructor===Array&&t.items.forEach(function(t){var a="";t.metadata.labels&&(a=_.map(t.metadata.labels,function(e,t){return t+"="+e}).join(", "));var n="";t.spec.selector&&(n=_.map(t.spec.selector,function(e,t){return t+"="+e}).join(", "));var r="";t.spec.ports&&(r=_.map(t.spec.ports,function(e){var t="";return e.name&&(t=e.name+": "),t+=e.port}).join(", ")),e.content.push({name:t.metadata.name,ip:t.spec.portalIP,port:r,selector:n,labels:a,namespace:t.metadata.namespace})})})).error(e.handleError)},e.getData()}]),app.controller("NodeCtrl",["$scope","$interval","$routeParams","k8sApi","$rootScope",function(e,t,a,n,r){"use strict";e.doTheBack=function(){window.history.back()},r.doTheBack=e.doTheBack,e.handleError=function(e,t,a,n){console.log("Error ("+t+"): "+e),$scope_.loading=!1},e.handleNode=function(t){e.loading=!0,n.getNodes(t).success(angular.bind(this,function(t){e.node=t,e.loading=!1})).error(e.handleError)},e.handleNode(a.nodeId)}]),app.controller("PodCtrl",["$scope","$interval","$routeParams","k8sApi","$rootScope",function(e,t,a,n,r){"use strict";e.doTheBack=function(){window.history.back()},r.doTheBack=e.doTheBack,e.handleError=function(e,t,a,n){console.log("Error ("+t+"): "+e),$scope_.loading=!1},e.handlePod=function(t,a){e.loading=!0,n.getPods(t,a).success(angular.bind(this,function(t){e.pod=t,e.loading=!1})).error(e.handleError)},e.handlePod(a.podId,a.namespaceId)}]),ReplicationController.prototype.getData=function(e,t){this.scope.loading=!0,this.k8sApi.getReplicationControllers(e,t).success(angular.bind(this,function(e){this.scope.replicationController=e,this.scope.loading=!1})).error(angular.bind(this,this.handleError))},ReplicationController.prototype.handleError=function(e,t,a,n){console.log("error ("+t+"): "+e),this.scope.loading=!1},app.controller("ReplicationControllerCtrl",["$scope","$routeParams","k8sApi",function(e,t,a){e.controller=new ReplicationController,e.controller.k8sApi=a,e.controller.scope=e,e.controller.getData(t.replicationControllerId,t.namespaceId),e.doTheBack=function(){window.history.back()},e.getSelectorUrlFragment=function(e){return _.map(e,function(e,t){return t+"="+e}).join(",")}}]),ServiceController.prototype.getData=function(e,t){this.scope.loading=!0,this.k8sApi.getServices(e,t).success(angular.bind(this,function(e){this.scope.service=e,this.scope.loading=!1})).error(angular.bind(this,this.handleError))},ServiceController.prototype.handleError=function(e,t,a,n){console.log("Error ("+t+"): "+e),this.scope.loading=!1},app.controller("ServiceCtrl",["$scope","$routeParams","k8sApi","$location",function(e,t,a,n){e.controller=new ServiceController,e.controller.k8sApi=a,e.controller.scope=e,e.controller.getData(t.serviceId,t.namespaceId),e.doTheBack=function(){window.history.back()},e.go=function(e){n.path("/dashboard/services/"+e.metadata.name)},e.getSelectorUrlFragment=function(e){return _.map(e,function(e,t){return t+"="+e}).join(",")}}]),function(){"use strict";angular.module("kubernetesApp.components.dashboard").directive("d3MinionBarGauge",["d3DashboardService",function(e){return{restrict:"E",scope:{data:"=",thickness:"@",graphWidth:"@",graphHeight:"@"},link:function(t,a,n){var r=function(e){function n(e,a){return null===a||void 0===a?t.render(e):s(a,e)}function r(e){var t=e.data,a=c(t);o(a,e.width,e.height)}function o(t,n,r){v=e.select(a[0]).append("svg").attr("width","100%"),b=e.select(a[0]).append("svg").attr("width","100%");var o=v.attr("class","chart").attr("width",n).attr("height",r-25).append("svg:g").attr("class","concentricchart").attr("transform","translate("+n/2+","+r/4+")");b.attr("class","legend").attr("width",n);y=Math.min(n,r)/2;var s=(b.append("text").attr("class","hostName").attr("transform","translate("+(n-120)/2+",15)"),b.append("svg:g").attr("class","label_legend_area").attr("transform","translate("+(n-215)/2+",35)"));s.append("svg:g").attr("class","legend_group"),
s.append("svg:g").attr("class","label_group").attr("transform","translate(25,11)"),s.append("svg:g").attr("class","stats_group").attr("transform","translate(115,11)"),o.append("svg:g").attr("class","path_group").attr("transform","translate(0,"+r/4+")"),o.append("svg:g").attr("class","value_group").attr("transform","translate("+-(.205*n)+","+-(.1*r)+")");l(o,t)}function s(e,t){if(void 0!==t&&null!==t){var a=jQuery.extend(!0,{},t),n=jQuery.extend(!0,{},e),r=c(a);k=c(n),i(r)}}function i(e){l(null,e)}function c(e){var t=(2*Math.PI*y,[]);return $.each(e[0].segments,function(t,a){function n(e){var t=200;e>t&&(e=t);var a=e,n=a/t,r=4*n*Math.PI,o=r,s=2*Math.PI,i=s+o;return{startAngle:s,endAngle:i}}var r=n(a.value);e[0].segments[t].startAngle=r.startAngle,e[0].segments[t].endAngle=r.endAngle;var o=a.maxData,s=n(o.maxValue+.2);e[0].segments[t].maxTickStartAngle=s.startAngle,e[0].segments[t].maxTickEndAngle=s.endAngle;var i=n(o.maxValue);e[0].segments[t].maxArcStartAngle=i.startAngle,e[0].segments[t].maxArcEndAngle=i.endAngle,e[0].segments[t].index=t}),t.push(e[0].segments),t[0]}function l(e,a){var n=v,r=750;$.each(a,function(e,t){void 0!==k[e]?a[e].previousEndAngle=k[e].endAngle:a[e].previousEndAngle=0});var o=parseInt(t.thickness,10),s=parseInt(t.graphWidth,10)/3,i=v.select(".path_group"),c=i.selectAll(".arc_group").data(a),l=c.enter().append("g").attr("class","arc_group");l.append("path").attr("class","bg-circle").attr("d",h(o,s)),l.append("path").attr("class",function(e,t){return"max_tick_arc "+e.maxData.maxTickClassNames}),l.append("path").attr("class",function(e,t){return"max_bg_arc "+e.maxData.maxClassNames}),l.append("path").attr("class",function(e,t){return"value_arc "+e.classNames});var f=c.select(".max_tick_arc");f.transition().attr("class",function(e,t){return"max_tick_arc "+e.maxData.maxTickClassNames}).attr("d",function(e){var t=d(o,s);return t.startAngle(e.maxTickStartAngle),t.endAngle(e.maxTickEndAngle),t(e)});var g=c.select(".max_bg_arc");g.transition().attr("class",function(e,t){return"max_bg_arc "+e.maxData.maxClassNames}).attr("d",function(e){var t=d(o,s);return t.startAngle(e.maxArcStartAngle),t.endAngle(e.maxArcEndAngle),t(e)});var b=c.select(".value_arc");b.transition().ease("exp").attr("class",function(e,t){return"value_arc "+e.classNames}).duration(r).attrTween("d",function(e){return u(e,o,s)}),c.exit().select(".value_arc").transition().ease("exp").duration(r).attrTween("d",function(e){return u(e,o,s)}).remove(),p(n,a,s,o),m(n,a)}function u(t,a,n){var r=JSON.parse(JSON.stringify(t));r.endAngle=t.previousEndAngle;var o=e.interpolate(r,t);return function(e){return g(a,n)(o(e))}}function d(t,a){var n=e.svg.arc().innerRadius(function(e){return f(a,e.index)}).outerRadius(function(e){return f(a+t,e.index)});return n}function p(e,t,a,n){v.select(".value_group").selectAll("*").remove();var r=(t.length,e.select(".value_group")),o=r.selectAll("text.value").data(t);o.enter().append("svg:text").attr("class","value").attr("dx",function(e,t){return 68}).attr("dy",function(e,t){return(n+3)*t}).attr("text-anchor",function(e){return"start"}).text(function(e){return e.value}),o.transition().duration(300).attrTween("d",function(e){return u(e,n,a)}),o.exit().remove()}function m(e,t){var a=b;a.select(".label_group").selectAll("*").remove(),a.select(".legend_group").selectAll("*").remove(),a.select(".stats_group").selectAll("*").remove();var n=a.select(".hostName"),r=a.select(".label_group"),o=a.select(".stats_group");n.text(t[0].hostName),n=a.selectAll("text.hostName").data(t),n.attr("text-anchor",function(e){return"start"}).text(function(e){return e.hostName}),n.exit().remove();var s=r.selectAll("text.labels").data(t);s.enter().append("svg:text").attr("class","labels").attr("dy",function(e,t){return 19*t}).attr("text-anchor",function(e){return"start"}).text(function(e){return e.label}),s.exit().remove();var i=o.selectAll("text.stats").data(t);i.enter().append("svg:text").attr("class","stats").attr("dy",function(e,t){return 19*t}).attr("text-anchor",function(e){return"start"}).text(function(e){return e.stats}),i.exit().remove();var c=a.select(".legend_group"),l=c.selectAll("rect").data(t);l.enter().append("svg:rect").attr("x",2).attr("y",function(e,t){return 19*t}).attr("width",13).attr("height",13).attr("class",function(e,t){return"rect "+e.classNames}),l.exit().remove()}function f(e,t){return e-20*t}function g(t,a){var n=e.svg.arc().innerRadius(function(e){return f(a,e.index)}).outerRadius(function(e){return f(a+t,e.index)}).startAngle(function(e,t){return e.startAngle}).endAngle(function(e,t){return e.endAngle});return n}function h(t,a){var n=e.svg.arc().innerRadius(function(e){return f(a,e.index)}).outerRadius(function(e){return f(a+t,e.index)}).startAngle(0).endAngle(function(){return 2*Math.PI});return n}var v=e.select("svg.chart"),b=e.select("svg.legend");window.onresize=function(){return t.$apply()},t.$watch(function(){return angular.element(window)[0].innerWidth},function(){return t.render(t.data)}),t.$watch("data",function(e,t){return n(e,t)},!0);var y=100,k=[];t.render=function(n){if(void 0!==n&&null!==n){e.select(a[0]).select("svg.chart").remove(),e.select(a[0]).select("svg.legend").remove();var o=($(a[0]),t.graphWidth),s=t.graphHeight,i={data:n,width:o,height:s};r(i)}}};e.d3().then(r)}}}])}(),function(){"use strict";angular.module("kubernetesApp.components.dashboard").directive("dashboardHeader",function(){return{restrict:"A",replace:!0,scope:{user:"="},templateUrl:"components/dashboard/pages/header.html",controller:["$scope","$filter","$location","menu","$rootScope",function(e,t,a,n,r){e.menu=n,e.$watch("page",function(e,t){"undefined"!=typeof e&&a.path(e)}),e.subpages=[{category:"dashboard",name:"Explore",value:"/dashboard/groups/type/selector/",id:"groupsView"},{category:"dashboard",name:"Pods",value:"/dashboard/pods",id:"podsView"},{category:"dashboard",name:"Nodes",value:"/dashboard/nodes",id:"minionsView"},{category:"dashboard",name:"Replication Controllers",value:"/dashboard/replicationcontrollers",id:"rcView"},{category:"dashboard",name:"Services",value:"/dashboard/services",id:"servicesView"},{category:"dashboard",name:"Events",value:"/dashboard/events",id:"eventsView"}]}]}}).directive("dashboardFooter",function(){return{restrict:"A",replace:!0,templateUrl:"components/dashboard/pages/footer.html",controller:["$scope","$filter",function(e,t){}]}}).directive("mdTable",function(){return{restrict:"E",scope:{headers:"=",content:"=",sortable:"=",filters:"=",customClass:"=customClass",thumbs:"=",count:"=",doSelect:"&onSelect"},transclude:!0,controller:["$scope","$filter","$window","$location",function(e,t,a,n){var r=t("orderBy");e.currentPage=0,e.nbOfPages=function(){return Math.ceil(e.content.length/e.count)},e.handleSort=function(t){return e.sortable.indexOf(t)>-1?!0:!1},e.order=function(t,a){e.content=r(e.content,t,a),e.predicate=t},e.order(e.sortable[0],!1),e.getNumber=function(e){return new Array(e)},e.goToPage=function(t){e.currentPage=t},e.showMore=function(){return angular.isDefined(e.moreClick)}}],templateUrl:"views/partials/md-table.tmpl.html"}})}(),angular.module("kubernetesApp.components.dashboard").factory("d3DashboardService",["$document","$q","$rootScope",function(e,t,a){function n(){a.$apply(function(){r.resolve(window.d3)})}var r=t.defer(),o=e[0].createElement("script");o.type="text/javascript",o.async=!0,o.src="vendor/d3/d3.min.js",o.onreadystatechange=function(){"complete"==this.readyState&&n()},o.onload=n;var s=e[0].getElementsByTagName("body")[0];return s.appendChild(o),{d3:function(){return r.promise}}}]),function(){"use strict";function e(e){var t={kind:"Pod",apiVersion:"v1",metadata:{name:"redis-master-c0r1n",generateName:"redis-master-",namespace:"default",selfLink:"/api/v1/namespaces/default/pods/redis-master-c0r1n",uid:"f12ddfaf-ff77-11e4-8f2d-080027213276",resourceVersion:"39",creationTimestamp:"2015-05-21T05:12:14Z",labels:{name:"redis-master"},annotations:{"kubernetes.io/created-by":'{"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicationController","namespace":"default","name":"redis-master","uid":"f12969e0-ff77-11e4-8f2d-080027213276","apiVersion":"v1","resourceVersion":"26"}}'}},spec:{volumes:[{name:"default-token-zb4rq",secret:{secretName:"default-token-zb4rq"}}],containers:[{name:"master",image:"redis",ports:[{containerPort:6379,protocol:"TCP"}],resources:{},volumeMounts:[{name:"default-token-zb4rq",readOnly:!0,mountPath:"/var/run/secrets/kubernetes.io/serviceaccount"}],terminationMessagePath:"/dev/termination-log",imagePullPolicy:"IfNotPresent",capabilities:{},securityContext:{capabilities:{},privileged:!1}}],restartPolicy:"Always",dnsPolicy:"ClusterFirst",serviceAccount:"default",host:"127.0.0.1"},status:{phase:"Running",Condition:[{type:"Ready",status:"True"}],hostIP:"127.0.0.1",podIP:"172.17.0.1",startTime:"2015-05-21T05:12:14Z",containerStatuses:[{name:"master",state:{running:{startedAt:"2015-05-21T05:12:14Z"}},lastState:{},ready:!0,restartCount:0,image:"redis",imageID:"docker://95af5842ddb9b03f7c6ec7601e65924cec516fcedd7e590ae31660057085cf67",containerID:"docker://ae2a1e0a91a8b1015191a0b8e2ce8c55a86fb1a9a2b1e8e3b29430c9d93c8c09"}]}};return{loadAll:function(){return e.when(t)}}}angular.module("pods",[]).service("podService",["$q",e])}(),function(){"use strict";function e(e){var t={kind:"List",apiVersion:"v1",metadata:{},items:[{kind:"ReplicationController",apiVersion:"v1",metadata:{name:"redis-master",namespace:"default",selfLink:"/api/v1/namespaces/default/replicationcontrollers/redis-master",uid:"f12969e0-ff77-11e4-8f2d-080027213276",resourceVersion:"28",creationTimestamp:"2015-05-21T05:12:14Z",labels:{name:"redis-master"}},spec:{replicas:1,selector:{name:"redis-master"},template:{metadata:{creationTimestamp:null,labels:{name:"redis-master"}},spec:{containers:[{name:"master",image:"redis",ports:[{containerPort:6379,protocol:"TCP"}],resources:{},terminationMessagePath:"/dev/termination-log",imagePullPolicy:"IfNotPresent",capabilities:{},securityContext:{capabilities:{},privileged:!1}}],restartPolicy:"Always",dnsPolicy:"ClusterFirst",serviceAccount:""}}},status:{replicas:1}}]};return{loadAll:function(){return e.when(t)}}}angular.module("replicationControllers",[]).service("replicationControllerService",["$q",e])}(),function(){"use strict";function e(e){var t={kind:"List",apiVersion:"v1",metadata:{},items:[{kind:"Service",apiVersion:"v1",metadata:{name:"kubernetes",namespace:"default",selfLink:"/api/v1/namespaces/default/services/kubernetes",resourceVersion:"6",creationTimestamp:null,labels:{component:"apiserver",provider:"kubernetes"}},spec:{ports:[{protocol:"TCP",port:443,targetPort:443}],portalIP:"10.0.0.2",sessionAffinity:"None"},status:{}},{kind:"Service",apiVersion:"v1",metadata:{name:"kubernetes-ro",namespace:"default",selfLink:"/api/v1/namespaces/default/services/kubernetes-ro",resourceVersion:"8",creationTimestamp:null,labels:{component:"apiserver",provider:"kubernetes"}},spec:{ports:[{protocol:"TCP",port:80,targetPort:80}],portalIP:"10.0.0.1",sessionAffinity:"None"},status:{}},{kind:"Service",apiVersion:"v1",metadata:{name:"redis-master",namespace:"default",selfLink:"/api/v1/namespaces/default/services/redis-master",uid:"a6fde246-ff78-11e4-8f2d-080027213276",resourceVersion:"72",creationTimestamp:"2015-05-21T05:17:19Z",labels:{name:"redis-master"}},spec:{ports:[{protocol:"TCP",port:6379,targetPort:6379}],selector:{name:"redis-master"},portalIP:"10.0.0.124",sessionAffinity:"None"},status:{}}]};return{loadAll:function(){return e.when(t)}}}angular.module("services",[]).service("serviceService",["$q",e])}();`)

func appAssetsJsAppJsBytes() ([]byte, error) {
	return _appAssetsJsAppJs, nil
}

func appAssetsJsAppJs() (*asset, error) {
	bytes, err := appAssetsJsAppJsBytes()
	if err != nil {
		return nil, err
	}

	info := bindataFileInfo{name: "app/assets/js/app.js", size: 43636, mode: os.FileMode(420), modTime: time.Unix(1454116418, 0)}
	a := &asset{bytes: bytes, info: info}
	return a, nil
}

var _appAssetsJsBaseJs = []byte(`!function(e,t){"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){function n(e){var t=e.length,n=Z.type(e);return"function"===n||Z.isWindow(e)?!1:1===e.nodeType&&t?!0:"array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e}function r(e,t,n){if(Z.isFunction(t))return Z.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return Z.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ae.test(t))return Z.filter(t,e,n);t=Z.filter(t,e)}return Z.grep(e,function(e){return U.call(t,e)>=0!==n})}function i(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function o(e){var t=he[e]={};return Z.each(e.match(de)||[],function(e,n){t[n]=!0}),t}function s(){J.removeEventListener("DOMContentLoaded",s,!1),e.removeEventListener("load",s,!1),Z.ready()}function a(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=Z.expando+a.uid++}function u(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(be,"-$1").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n?!0:"false"===n?!1:"null"===n?null:+n+""===n?+n:xe.test(n)?Z.parseJSON(n):n}catch(i){}ye.set(e,t,n)}else n=void 0;return n}function l(){return!0}function c(){return!1}function f(){try{return J.activeElement}catch(e){}}function p(e,t){return Z.nodeName(e,"table")&&Z.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody")):e}function d(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function h(e){var t=Pe.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function g(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",!t||ve.get(t[n],"globalEval"))}function m(e,t){var n,r,i,o,s,a,u,l;if(1===t.nodeType){if(ve.hasData(e)&&(o=ve.access(e),s=ve.set(t,o),l=o.events)){delete s.handle,s.events={};for(i in l)for(n=0,r=l[i].length;r>n;n++)Z.event.add(t,i,l[i][n])}ye.hasData(e)&&(a=ye.access(e),u=Z.extend({},a),ye.set(t,u))}}function v(e,t){var n=e.getElementsByTagName?e.getElementsByTagName(t||"*"):e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&Z.nodeName(e,t)?Z.merge([e],n):n}function y(e,t){var n=t.nodeName.toLowerCase();"input"===n&&Ne.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function x(t,n){var r,i=Z(n.createElement(t)).appendTo(n.body),o=e.getDefaultComputedStyle&&(r=e.getDefaultComputedStyle(i[0]))?r.display:Z.css(i[0],"display");return i.detach(),o}function b(e){var t=J,n=$e[e];return n||(n=x(e,t),"none"!==n&&n||(We=(We||Z("<iframe frameborder='0' width='0' height='0'/>")).appendTo(t.documentElement),t=We[0].contentDocument,t.write(),t.close(),n=x(e,t),We.detach()),$e[e]=n),n}function w(e,t,n){var r,i,o,s,a=e.style;return n=n||_e(e),n&&(s=n.getPropertyValue(t)||n[t]),n&&(""!==s||Z.contains(e.ownerDocument,e)||(s=Z.style(e,t)),Be.test(s)&&Ie.test(t)&&(r=a.width,i=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=s,s=n.width,a.width=r,a.minWidth=i,a.maxWidth=o)),void 0!==s?s+"":s}function T(e,t){return{get:function(){return e()?void delete this.get:(this.get=t).apply(this,arguments)}}}function C(e,t){if(t in e)return t;for(var n=t[0].toUpperCase()+t.slice(1),r=t,i=Ge.length;i--;)if(t=Ge[i]+n,t in e)return t;return r}function N(e,t,n){var r=Xe.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function k(e,t,n,r,i){for(var o=n===(r?"border":"content")?4:"width"===t?1:0,s=0;4>o;o+=2)"margin"===n&&(s+=Z.css(e,n+Te[o],!0,i)),r?("content"===n&&(s-=Z.css(e,"padding"+Te[o],!0,i)),"margin"!==n&&(s-=Z.css(e,"border"+Te[o]+"Width",!0,i))):(s+=Z.css(e,"padding"+Te[o],!0,i),"padding"!==n&&(s+=Z.css(e,"border"+Te[o]+"Width",!0,i)));return s}function E(e,t,n){var r=!0,i="width"===t?e.offsetWidth:e.offsetHeight,o=_e(e),s="border-box"===Z.css(e,"boxSizing",!1,o);if(0>=i||null==i){if(i=w(e,t,o),(0>i||null==i)&&(i=e.style[t]),Be.test(i))return i;r=s&&(Q.boxSizingReliable()||i===e.style[t]),i=parseFloat(i)||0}return i+k(e,t,n||(s?"border":"content"),r,o)+"px"}function S(e,t){for(var n,r,i,o=[],s=0,a=e.length;a>s;s++)r=e[s],r.style&&(o[s]=ve.get(r,"olddisplay"),n=r.style.display,t?(o[s]||"none"!==n||(r.style.display=""),""===r.style.display&&Ce(r)&&(o[s]=ve.access(r,"olddisplay",b(r.nodeName)))):(i=Ce(r),"none"===n&&i||ve.set(r,"olddisplay",i?n:Z.css(r,"display"))));for(s=0;a>s;s++)r=e[s],r.style&&(t&&"none"!==r.style.display&&""!==r.style.display||(r.style.display=t?o[s]||"":"none"));return e}function D(e,t,n,r,i){return new D.prototype.init(e,t,n,r,i)}function j(){return setTimeout(function(){Qe=void 0}),Qe=Z.now()}function A(e,t){var n,r=0,i={height:e};for(t=t?1:0;4>r;r+=2-t)n=Te[r],i["margin"+n]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function L(e,t,n){for(var r,i=(nt[t]||[]).concat(nt["*"]),o=0,s=i.length;s>o;o++)if(r=i[o].call(n,t,e))return r}function q(e,t,n){var r,i,o,s,a,u,l,c,f=this,p={},d=e.style,h=e.nodeType&&Ce(e),g=ve.get(e,"fxshow");n.queue||(a=Z._queueHooks(e,"fx"),null==a.unqueued&&(a.unqueued=0,u=a.empty.fire,a.empty.fire=function(){a.unqueued||u()}),a.unqueued++,f.always(function(){f.always(function(){a.unqueued--,Z.queue(e,"fx").length||a.empty.fire()})})),1===e.nodeType&&("height"in t||"width"in t)&&(n.overflow=[d.overflow,d.overflowX,d.overflowY],l=Z.css(e,"display"),c="none"===l?ve.get(e,"olddisplay")||b(e.nodeName):l,"inline"===c&&"none"===Z.css(e,"float")&&(d.display="inline-block")),n.overflow&&(d.overflow="hidden",f.always(function(){d.overflow=n.overflow[0],d.overflowX=n.overflow[1],d.overflowY=n.overflow[2]}));for(r in t)if(i=t[r],Ke.exec(i)){if(delete t[r],o=o||"toggle"===i,i===(h?"hide":"show")){if("show"!==i||!g||void 0===g[r])continue;h=!0}p[r]=g&&g[r]||Z.style(e,r)}else l=void 0;if(Z.isEmptyObject(p))"inline"===("none"===l?b(e.nodeName):l)&&(d.display=l);else{g?"hidden"in g&&(h=g.hidden):g=ve.access(e,"fxshow",{}),o&&(g.hidden=!h),h?Z(e).show():f.done(function(){Z(e).hide()}),f.done(function(){var t;ve.remove(e,"fxshow");for(t in p)Z.style(e,t,p[t])});for(r in p)s=L(h?g[r]:0,r,f),r in g||(g[r]=s.start,h&&(s.end=s.start,s.start="width"===r||"height"===r?1:0))}}function H(e,t){var n,r,i,o,s;for(n in e)if(r=Z.camelCase(n),i=t[r],o=e[n],Z.isArray(o)&&(i=o[1],o=e[n]=o[0]),n!==r&&(e[r]=o,delete e[n]),s=Z.cssHooks[r],s&&"expand"in s){o=s.expand(o),delete e[r];for(n in o)n in e||(e[n]=o[n],t[n]=i)}else t[r]=i}function O(e,t,n){var r,i,o=0,s=tt.length,a=Z.Deferred().always(function(){delete u.elem}),u=function(){if(i)return!1;for(var t=Qe||j(),n=Math.max(0,l.startTime+l.duration-t),r=n/l.duration||0,o=1-r,s=0,u=l.tweens.length;u>s;s++)l.tweens[s].run(o);return a.notifyWith(e,[l,o,n]),1>o&&u?n:(a.resolveWith(e,[l]),!1)},l=a.promise({elem:e,props:Z.extend({},t),opts:Z.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:Qe||j(),duration:n.duration,tweens:[],createTween:function(t,n){var r=Z.Tween(e,l.opts,t,n,l.opts.specialEasing[t]||l.opts.easing);return l.tweens.push(r),r},stop:function(t){var n=0,r=t?l.tweens.length:0;if(i)return this;for(i=!0;r>n;n++)l.tweens[n].run(1);return t?a.resolveWith(e,[l,t]):a.rejectWith(e,[l,t]),this}}),c=l.props;for(H(c,l.opts.specialEasing);s>o;o++)if(r=tt[o].call(l,e,c,l.opts))return r;return Z.map(c,L,l),Z.isFunction(l.opts.start)&&l.opts.start.call(e,l),Z.fx.timer(Z.extend(u,{elem:e,anim:l,queue:l.opts.queue})),l.progress(l.opts.progress).done(l.opts.done,l.opts.complete).fail(l.opts.fail).always(l.opts.always)}function F(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(de)||[];if(Z.isFunction(n))for(;r=o[i++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function P(e,t,n,r){function i(a){var u;return o[a]=!0,Z.each(e[a]||[],function(e,a){var l=a(t,n,r);return"string"!=typeof l||s||o[l]?s?!(u=l):void 0:(t.dataTypes.unshift(l),i(l),!1)}),u}var o={},s=e===xt;return i(t.dataTypes[0])||!o["*"]&&i("*")}function R(e,t){var n,r,i=Z.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&Z.extend(!0,e,r),e}function M(e,t,n){for(var r,i,o,s,a=e.contents,u=e.dataTypes;"*"===u[0];)u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in a)if(a[i]&&a[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}s||(s=i)}o=o||s}return o?(o!==u[0]&&u.unshift(o),n[o]):void 0}function W(e,t,n,r){var i,o,s,a,u,l={},c=e.dataTypes.slice();if(c[1])for(s in e.converters)l[s.toLowerCase()]=e.converters[s];for(o=c.shift();o;)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(s=l[u+" "+o]||l["* "+o],!s)for(i in l)if(a=i.split(" "),a[1]===o&&(s=l[u+" "+a[0]]||l["* "+a[0]])){s===!0?s=l[i]:l[i]!==!0&&(o=a[0],c.unshift(a[1]));break}if(s!==!0)if(s&&e["throws"])t=s(t);else try{t=s(t)}catch(f){return{state:"parsererror",error:s?f:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}function $(e,t,n,r){var i;if(Z.isArray(t))Z.each(t,function(t,i){n||Nt.test(e)?r(e,i):$(e+"["+("object"==typeof i?t:"")+"]",i,n,r)});else if(n||"object"!==Z.type(t))r(e,t);else for(i in t)$(e+"["+i+"]",t[i],n,r)}function I(e){return Z.isWindow(e)?e:9===e.nodeType&&e.defaultView}var B=[],_=B.slice,z=B.concat,X=B.push,U=B.indexOf,V={},Y=V.toString,G=V.hasOwnProperty,Q={},J=e.document,K="2.1.3",Z=function(e,t){return new Z.fn.init(e,t)},ee=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,te=/^-ms-/,ne=/-([\da-z])/gi,re=function(e,t){return t.toUpperCase()};Z.fn=Z.prototype={jquery:K,constructor:Z,selector:"",length:0,toArray:function(){return _.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:_.call(this)},pushStack:function(e){var t=Z.merge(this.constructor(),e);return t.prevObject=this,t.context=this.context,t},each:function(e,t){return Z.each(this,e,t)},map:function(e){return this.pushStack(Z.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(_.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:X,sort:B.sort,splice:B.splice},Z.extend=Z.fn.extend=function(){var e,t,n,r,i,o,s=arguments[0]||{},a=1,u=arguments.length,l=!1;for("boolean"==typeof s&&(l=s,s=arguments[a]||{},a++),"object"==typeof s||Z.isFunction(s)||(s={}),a===u&&(s=this,a--);u>a;a++)if(null!=(e=arguments[a]))for(t in e)n=s[t],r=e[t],s!==r&&(l&&r&&(Z.isPlainObject(r)||(i=Z.isArray(r)))?(i?(i=!1,o=n&&Z.isArray(n)?n:[]):o=n&&Z.isPlainObject(n)?n:{},s[t]=Z.extend(l,o,r)):void 0!==r&&(s[t]=r));return s},Z.extend({expando:"jQuery"+(K+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===Z.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){return!Z.isArray(e)&&e-parseFloat(e)+1>=0},isPlainObject:function(e){return"object"!==Z.type(e)||e.nodeType||Z.isWindow(e)?!1:e.constructor&&!G.call(e.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?V[Y.call(e)]||"object":typeof e},globalEval:function(e){var t,n=eval;e=Z.trim(e),e&&(1===e.indexOf("use strict")?(t=J.createElement("script"),t.text=e,J.head.appendChild(t).parentNode.removeChild(t)):n(e))},camelCase:function(e){return e.replace(te,"ms-").replace(ne,re)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t,r){var i,o=0,s=e.length,a=n(e);if(r){if(a)for(;s>o&&(i=t.apply(e[o],r),i!==!1);o++);else for(o in e)if(i=t.apply(e[o],r),i===!1)break}else if(a)for(;s>o&&(i=t.call(e[o],o,e[o]),i!==!1);o++);else for(o in e)if(i=t.call(e[o],o,e[o]),i===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(ee,"")},makeArray:function(e,t){var r=t||[];return null!=e&&(n(Object(e))?Z.merge(r,"string"==typeof e?[e]:e):X.call(r,e)),r},inArray:function(e,t,n){return null==t?-1:U.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,i=e.length;n>r;r++)e[i++]=t[r];return e.length=i,e},grep:function(e,t,n){for(var r,i=[],o=0,s=e.length,a=!n;s>o;o++)r=!t(e[o],o),r!==a&&i.push(e[o]);return i},map:function(e,t,r){var i,o=0,s=e.length,a=n(e),u=[];if(a)for(;s>o;o++)i=t(e[o],o,r),null!=i&&u.push(i);else for(o in e)i=t(e[o],o,r),null!=i&&u.push(i);return z.apply([],u)},guid:1,proxy:function(e,t){var n,r,i;return"string"==typeof t&&(n=e[t],t=e,e=n),Z.isFunction(e)?(r=_.call(arguments,2),i=function(){return e.apply(t||this,r.concat(_.call(arguments)))},i.guid=e.guid=e.guid||Z.guid++,i):void 0},now:Date.now,support:Q}),Z.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(e,t){V["[object "+t+"]"]=t.toLowerCase()});var ie=function(e){function t(e,t,n,r){var i,o,s,a,u,l,f,d,h,g;if((t?t.ownerDocument||t:$)!==q&&L(t),t=t||q,n=n||[],a=t.nodeType,"string"!=typeof e||!e||1!==a&&9!==a&&11!==a)return n;if(!r&&O){if(11!==a&&(i=ye.exec(e)))if(s=i[1]){if(9===a){if(o=t.getElementById(s),!o||!o.parentNode)return n;if(o.id===s)return n.push(o),n}else if(t.ownerDocument&&(o=t.ownerDocument.getElementById(s))&&M(t,o)&&o.id===s)return n.push(o),n}else{if(i[2])return K.apply(n,t.getElementsByTagName(e)),n;if((s=i[3])&&w.getElementsByClassName)return K.apply(n,t.getElementsByClassName(s)),n}if(w.qsa&&(!F||!F.test(e))){if(d=f=W,h=t,g=1!==a&&e,1===a&&"object"!==t.nodeName.toLowerCase()){for(l=k(e),(f=t.getAttribute("id"))?d=f.replace(be,"\\$&"):t.setAttribute("id",d),d="[id='"+d+"'] ",u=l.length;u--;)l[u]=d+p(l[u]);h=xe.test(e)&&c(t.parentNode)||t,g=l.join(",")}if(g)try{return K.apply(n,h.querySelectorAll(g)),n}catch(m){}finally{f||t.removeAttribute("id")}}}return S(e.replace(ue,"$1"),t,n,r)}function n(){function e(n,r){return t.push(n+" ")>T.cacheLength&&delete e[t.shift()],e[n+" "]=r}var t=[];return e}function r(e){return e[W]=!0,e}function i(e){var t=q.createElement("div");try{return!!e(t)}catch(n){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function o(e,t){for(var n=e.split("|"),r=e.length;r--;)T.attrHandle[n[r]]=t}function s(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&(~t.sourceIndex||V)-(~e.sourceIndex||V);if(r)return r;if(n)for(;n=n.nextSibling;)if(n===t)return-1;return e?1:-1}function a(e){return function(t){var n=t.nodeName.toLowerCase();return"input"===n&&t.type===e}}function u(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function l(e){return r(function(t){return t=+t,r(function(n,r){for(var i,o=e([],n.length,t),s=o.length;s--;)n[i=o[s]]&&(n[i]=!(r[i]=n[i]))})})}function c(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}function f(){}function p(e){for(var t=0,n=e.length,r="";n>t;t++)r+=e[t].value;return r}function d(e,t,n){var r=t.dir,i=n&&"parentNode"===r,o=B++;return t.first?function(t,n,o){for(;t=t[r];)if(1===t.nodeType||i)return e(t,n,o)}:function(t,n,s){var a,u,l=[I,o];if(s){for(;t=t[r];)if((1===t.nodeType||i)&&e(t,n,s))return!0}else for(;t=t[r];)if(1===t.nodeType||i){if(u=t[W]||(t[W]={}),(a=u[r])&&a[0]===I&&a[1]===o)return l[2]=a[2];if(u[r]=l,l[2]=e(t,n,s))return!0}}}function h(e){return e.length>1?function(t,n,r){for(var i=e.length;i--;)if(!e[i](t,n,r))return!1;return!0}:e[0]}function g(e,n,r){for(var i=0,o=n.length;o>i;i++)t(e,n[i],r);return r}function m(e,t,n,r,i){for(var o,s=[],a=0,u=e.length,l=null!=t;u>a;a++)(o=e[a])&&(!n||n(o,r,i))&&(s.push(o),l&&t.push(a));return s}function v(e,t,n,i,o,s){return i&&!i[W]&&(i=v(i)),o&&!o[W]&&(o=v(o,s)),r(function(r,s,a,u){var l,c,f,p=[],d=[],h=s.length,v=r||g(t||"*",a.nodeType?[a]:a,[]),y=!e||!r&&t?v:m(v,p,e,a,u),x=n?o||(r?e:h||i)?[]:s:y;if(n&&n(y,x,a,u),i)for(l=m(x,d),i(l,[],a,u),c=l.length;c--;)(f=l[c])&&(x[d[c]]=!(y[d[c]]=f));if(r){if(o||e){if(o){for(l=[],c=x.length;c--;)(f=x[c])&&l.push(y[c]=f);o(null,x=[],l,u)}for(c=x.length;c--;)(f=x[c])&&(l=o?ee(r,f):p[c])>-1&&(r[l]=!(s[l]=f))}}else x=m(x===s?x.splice(h,x.length):x),o?o(null,s,x,u):K.apply(s,x)})}function y(e){for(var t,n,r,i=e.length,o=T.relative[e[0].type],s=o||T.relative[" "],a=o?1:0,u=d(function(e){return e===t},s,!0),l=d(function(e){return ee(t,e)>-1},s,!0),c=[function(e,n,r){var i=!o&&(r||n!==D)||((t=n).nodeType?u(e,n,r):l(e,n,r));return t=null,i}];i>a;a++)if(n=T.relative[e[a].type])c=[d(h(c),n)];else{if(n=T.filter[e[a].type].apply(null,e[a].matches),n[W]){for(r=++a;i>r&&!T.relative[e[r].type];r++);return v(a>1&&h(c),a>1&&p(e.slice(0,a-1).concat({value:" "===e[a-2].type?"*":""})).replace(ue,"$1"),n,r>a&&y(e.slice(a,r)),i>r&&y(e=e.slice(r)),i>r&&p(e))}c.push(n)}return h(c)}function x(e,n){var i=n.length>0,o=e.length>0,s=function(r,s,a,u,l){var c,f,p,d=0,h="0",g=r&&[],v=[],y=D,x=r||o&&T.find.TAG("*",l),b=I+=null==y?1:Math.random()||.1,w=x.length;for(l&&(D=s!==q&&s);h!==w&&null!=(c=x[h]);h++){if(o&&c){for(f=0;p=e[f++];)if(p(c,s,a)){u.push(c);break}l&&(I=b)}i&&((c=!p&&c)&&d--,r&&g.push(c))}if(d+=h,i&&h!==d){for(f=0;p=n[f++];)p(g,v,s,a);if(r){if(d>0)for(;h--;)g[h]||v[h]||(v[h]=Q.call(u));v=m(v)}K.apply(u,v),l&&!r&&v.length>0&&d+n.length>1&&t.uniqueSort(u)}return l&&(I=b,D=y),g};return i?r(s):s}var b,w,T,C,N,k,E,S,D,j,A,L,q,H,O,F,P,R,M,W="sizzle"+1*new Date,$=e.document,I=0,B=0,_=n(),z=n(),X=n(),U=function(e,t){return e===t&&(A=!0),0},V=1<<31,Y={}.hasOwnProperty,G=[],Q=G.pop,J=G.push,K=G.push,Z=G.slice,ee=function(e,t){for(var n=0,r=e.length;r>n;n++)if(e[n]===t)return n;return-1},te="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ne="[\\x20\\t\\r\\n\\f]",re="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",ie=re.replace("w","w#"),oe="\\["+ne+"*("+re+")(?:"+ne+"*([*^$|!~]?=)"+ne+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+ie+"))|)"+ne+"*\\]",se=":("+re+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+oe+")*)|.*)\\)|)",ae=new RegExp(ne+"+","g"),ue=new RegExp("^"+ne+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ne+"+$","g"),le=new RegExp("^"+ne+"*,"+ne+"*"),ce=new RegExp("^"+ne+"*([>+~]|"+ne+")"+ne+"*"),fe=new RegExp("="+ne+"*([^\\]'\"]*?)"+ne+"*\\]","g"),pe=new RegExp(se),de=new RegExp("^"+ie+"$"),he={ID:new RegExp("^#("+re+")"),CLASS:new RegExp("^\\.("+re+")"),TAG:new RegExp("^("+re.replace("w","w*")+")"),ATTR:new RegExp("^"+oe),PSEUDO:new RegExp("^"+se),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ne+"*(even|odd|(([+-]|)(\\d*)n|)"+ne+"*(?:([+-]|)"+ne+"*(\\d+)|))"+ne+"*\\)|)","i"),bool:new RegExp("^(?:"+te+")$","i"),needsContext:new RegExp("^"+ne+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ne+"*((?:-\\d)?\\d*)"+ne+"*\\)|)(?=[^-]|$)","i")},ge=/^(?:input|select|textarea|button)$/i,me=/^h\d$/i,ve=/^[^{]+\{\s*\[native \w/,ye=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,xe=/[+~]/,be=/'|\\/g,we=new RegExp("\\\\([\\da-f]{1,6}"+ne+"?|("+ne+")|.)","ig"),Te=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:0>r?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},Ce=function(){L()};try{K.apply(G=Z.call($.childNodes),$.childNodes),G[$.childNodes.length].nodeType}catch(Ne){K={apply:G.length?function(e,t){J.apply(e,Z.call(t))}:function(e,t){for(var n=e.length,r=0;e[n++]=t[r++];);e.length=n-1}}}w=t.support={},N=t.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?"HTML"!==t.nodeName:!1},L=t.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:$;return r!==q&&9===r.nodeType&&r.documentElement?(q=r,H=r.documentElement,n=r.defaultView,n&&n!==n.top&&(n.addEventListener?n.addEventListener("unload",Ce,!1):n.attachEvent&&n.attachEvent("onunload",Ce)),O=!N(r),w.attributes=i(function(e){return e.className="i",!e.getAttribute("className")}),w.getElementsByTagName=i(function(e){return e.appendChild(r.createComment("")),!e.getElementsByTagName("*").length}),w.getElementsByClassName=ve.test(r.getElementsByClassName),w.getById=i(function(e){return H.appendChild(e).id=W,!r.getElementsByName||!r.getElementsByName(W).length}),w.getById?(T.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&O){var n=t.getElementById(e);return n&&n.parentNode?[n]:[]}},T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){return e.getAttribute("id")===t}}):(delete T.find.ID,T.filter.ID=function(e){var t=e.replace(we,Te);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}}),T.find.TAG=w.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):w.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){for(;n=o[i++];)1===n.nodeType&&r.push(n);return r}return o},T.find.CLASS=w.getElementsByClassName&&function(e,t){return O?t.getElementsByClassName(e):void 0},P=[],F=[],(w.qsa=ve.test(r.querySelectorAll))&&(i(function(e){H.appendChild(e).innerHTML="<a id='"+W+"'></a><select id='"+W+"-\f]' msallowcapture=''><option selected=''></option></select>",e.querySelectorAll("[msallowcapture^='']").length&&F.push("[*^$]="+ne+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||F.push("\\["+ne+"*(?:value|"+te+")"),e.querySelectorAll("[id~="+W+"-]").length||F.push("~="),e.querySelectorAll(":checked").length||F.push(":checked"),e.querySelectorAll("a#"+W+"+*").length||F.push(".#.+[+~]")}),i(function(e){var t=r.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&F.push("name"+ne+"*[*^$|!~]?="),e.querySelectorAll(":enabled").length||F.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),F.push(",.*:")})),(w.matchesSelector=ve.test(R=H.matches||H.webkitMatchesSelector||H.mozMatchesSelector||H.oMatchesSelector||H.msMatchesSelector))&&i(function(e){w.disconnectedMatch=R.call(e,"div"),R.call(e,"[s!='']:x"),P.push("!=",se)}),F=F.length&&new RegExp(F.join("|")),P=P.length&&new RegExp(P.join("|")),t=ve.test(H.compareDocumentPosition),M=t||ve.test(H.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)for(;t=t.parentNode;)if(t===e)return!0;return!1},U=t?function(e,t){if(e===t)return A=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n||!w.sortDetached&&t.compareDocumentPosition(e)===n?e===r||e.ownerDocument===$&&M($,e)?-1:t===r||t.ownerDocument===$&&M($,t)?1:j?ee(j,e)-ee(j,t):0:4&n?-1:1)}:function(e,t){if(e===t)return A=!0,0;var n,i=0,o=e.parentNode,a=t.parentNode,u=[e],l=[t];if(!o||!a)return e===r?-1:t===r?1:o?-1:a?1:j?ee(j,e)-ee(j,t):0;if(o===a)return s(e,t);for(n=e;n=n.parentNode;)u.unshift(n);for(n=t;n=n.parentNode;)l.unshift(n);for(;u[i]===l[i];)i++;return i?s(u[i],l[i]):u[i]===$?-1:l[i]===$?1:0},r):q},t.matches=function(e,n){return t(e,null,null,n)},t.matchesSelector=function(e,n){if((e.ownerDocument||e)!==q&&L(e),n=n.replace(fe,"='$1']"),!(!w.matchesSelector||!O||P&&P.test(n)||F&&F.test(n)))try{var r=R.call(e,n);if(r||w.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(i){}return t(n,q,null,[e]).length>0},t.contains=function(e,t){return(e.ownerDocument||e)!==q&&L(e),M(e,t)},t.attr=function(e,t){(e.ownerDocument||e)!==q&&L(e);var n=T.attrHandle[t.toLowerCase()],r=n&&Y.call(T.attrHandle,t.toLowerCase())?n(e,t,!O):void 0;return void 0!==r?r:w.attributes||!O?e.getAttribute(t):(r=e.getAttributeNode(t))&&r.specified?r.value:null},t.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},t.uniqueSort=function(e){var t,n=[],r=0,i=0;if(A=!w.detectDuplicates,j=!w.sortStable&&e.slice(0),e.sort(U),A){for(;t=e[i++];)t===e[i]&&(r=n.push(i));for(;r--;)e.splice(n[r],1)}return j=null,e},C=t.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(1===i||9===i||11===i){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=C(e)}else if(3===i||4===i)return e.nodeValue}else for(;t=e[r++];)n+=C(t);return n},T=t.selectors={cacheLength:50,createPseudo:r,match:he,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(we,Te),e[3]=(e[3]||e[4]||e[5]||"").replace(we,Te),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||t.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&t.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return he.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&pe.test(n)&&(t=k(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(we,Te).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=_[e+" "];return t||(t=new RegExp("(^|"+ne+")"+e+"("+ne+"|$)"))&&_(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,n,r){return function(i){var o=t.attr(i,e);return null==o?"!="===n:n?(o+="","="===n?o===r:"!="===n?o!==r:"^="===n?r&&0===o.indexOf(r):"*="===n?r&&o.indexOf(r)>-1:"$="===n?r&&o.slice(-r.length)===r:"~="===n?(" "+o.replace(ae," ")+" ").indexOf(r)>-1:"|="===n?o===r||o.slice(0,r.length+1)===r+"-":!1):!0}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),s="last"!==e.slice(-4),a="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==s?"nextSibling":"previousSibling",m=t.parentNode,v=a&&t.nodeName.toLowerCase(),y=!u&&!a;if(m){if(o){for(;g;){for(f=t;f=f[g];)if(a?f.nodeName.toLowerCase()===v:1===f.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[s?m.firstChild:m.lastChild],s&&y){for(c=m[W]||(m[W]={}),l=c[e]||[],d=l[0]===I&&l[1],p=l[0]===I&&l[2],f=d&&m.childNodes[d];f=++d&&f&&f[g]||(p=d=0)||h.pop();)if(1===f.nodeType&&++p&&f===t){c[e]=[I,d,p];break}}else if(y&&(l=(t[W]||(t[W]={}))[e])&&l[0]===I)p=l[1];else for(;(f=++d&&f&&f[g]||(p=d=0)||h.pop())&&((a?f.nodeName.toLowerCase()!==v:1!==f.nodeType)||!++p||(y&&((f[W]||(f[W]={}))[e]=[I,p]),f!==t)););return p-=i,p===r||p%r===0&&p/r>=0}}},PSEUDO:function(e,n){var i,o=T.pseudos[e]||T.setFilters[e.toLowerCase()]||t.error("unsupported pseudo: "+e);return o[W]?o(n):o.length>1?(i=[e,e,"",n],T.setFilters.hasOwnProperty(e.toLowerCase())?r(function(e,t){for(var r,i=o(e,n),s=i.length;s--;)r=ee(e,i[s]),e[r]=!(t[r]=i[s])}):function(e){return o(e,0,i)}):o}},pseudos:{not:r(function(e){var t=[],n=[],i=E(e.replace(ue,"$1"));return i[W]?r(function(e,t,n,r){for(var o,s=i(e,null,r,[]),a=e.length;a--;)(o=s[a])&&(e[a]=!(t[a]=o))}):function(e,r,o){return t[0]=e,i(t,null,o,n),t[0]=null,!n.pop()}}),has:r(function(e){return function(n){return t(e,n).length>0}}),contains:r(function(e){return e=e.replace(we,Te),function(t){return(t.textContent||t.innerText||C(t)).indexOf(e)>-1}}),lang:r(function(e){return de.test(e||"")||t.error("unsupported lang: "+e),e=e.replace(we,Te).toLowerCase(),function(t){var n;do if(n=O?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return n=n.toLowerCase(),n===e||0===n.indexOf(e+"-");while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===H},focus:function(e){return e===q.activeElement&&(!q.hasFocus||q.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!T.pseudos.empty(e)},header:function(e){return me.test(e.nodeName)},input:function(e){return ge.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:l(function(){return[0]}),last:l(function(e,t){return[t-1]}),eq:l(function(e,t,n){return[0>n?n+t:n]}),even:l(function(e,t){for(var n=0;t>n;n+=2)e.push(n);return e}),odd:l(function(e,t){for(var n=1;t>n;n+=2)e.push(n);return e}),lt:l(function(e,t,n){for(var r=0>n?n+t:n;--r>=0;)e.push(r);return e}),gt:l(function(e,t,n){for(var r=0>n?n+t:n;++r<t;)e.push(r);return e})}},T.pseudos.nth=T.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})T.pseudos[b]=a(b);for(b in{submit:!0,reset:!0})T.pseudos[b]=u(b);return f.prototype=T.filters=T.pseudos,T.setFilters=new f,k=t.tokenize=function(e,n){var r,i,o,s,a,u,l,c=z[e+" "];if(c)return n?0:c.slice(0);for(a=e,u=[],l=T.preFilter;a;){(!r||(i=le.exec(a)))&&(i&&(a=a.slice(i[0].length)||a),u.push(o=[])),r=!1,(i=ce.exec(a))&&(r=i.shift(),o.push({value:r,type:i[0].replace(ue," ")}),a=a.slice(r.length));for(s in T.filter)!(i=he[s].exec(a))||l[s]&&!(i=l[s](i))||(r=i.shift(),o.push({value:r,type:s,matches:i}),a=a.slice(r.length));if(!r)break}return n?a.length:a?t.error(e):z(e,u).slice(0)},E=t.compile=function(e,t){var n,r=[],i=[],o=X[e+" "];if(!o){for(t||(t=k(e)),n=t.length;n--;)o=y(t[n]),o[W]?r.push(o):i.push(o);o=X(e,x(i,r)),o.selector=e}return o},S=t.select=function(e,t,n,r){var i,o,s,a,u,l="function"==typeof e&&e,f=!r&&k(e=l.selector||e);if(n=n||[],1===f.length){if(o=f[0]=f[0].slice(0),o.length>2&&"ID"===(s=o[0]).type&&w.getById&&9===t.nodeType&&O&&T.relative[o[1].type]){if(t=(T.find.ID(s.matches[0].replace(we,Te),t)||[])[0],!t)return n;l&&(t=t.parentNode),e=e.slice(o.shift().value.length)}for(i=he.needsContext.test(e)?0:o.length;i--&&(s=o[i],!T.relative[a=s.type]);)if((u=T.find[a])&&(r=u(s.matches[0].replace(we,Te),xe.test(o[0].type)&&c(t.parentNode)||t))){if(o.splice(i,1),e=r.length&&p(o),!e)return K.apply(n,r),n;break}}return(l||E(e,f))(r,t,!O,n,xe.test(e)&&c(t.parentNode)||t),n},w.sortStable=W.split("").sort(U).join("")===W,w.detectDuplicates=!!A,L(),w.sortDetached=i(function(e){return 1&e.compareDocumentPosition(q.createElement("div"))}),i(function(e){return e.innerHTML="<a href='#'></a>","#"===e.firstChild.getAttribute("href")})||o("type|href|height|width",function(e,t,n){return n?void 0:e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),w.attributes&&i(function(e){return e.innerHTML="<input/>",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||o("value",function(e,t,n){return n||"input"!==e.nodeName.toLowerCase()?void 0:e.defaultValue}),i(function(e){return null==e.getAttribute("disabled")})||o(te,function(e,t,n){var r;return n?void 0:e[t]===!0?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),t}(e);Z.find=ie,Z.expr=ie.selectors,Z.expr[":"]=Z.expr.pseudos,Z.unique=ie.uniqueSort,Z.text=ie.getText,Z.isXMLDoc=ie.isXML,Z.contains=ie.contains;var oe=Z.expr.match.needsContext,se=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,ae=/^.[^:#\[\.,]*$/;Z.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?Z.find.matchesSelector(r,e)?[r]:[]:Z.find.matches(e,Z.grep(t,function(e){return 1===e.nodeType}))},Z.fn.extend({find:function(e){var t,n=this.length,r=[],i=this;if("string"!=typeof e)return this.pushStack(Z(e).filter(function(){
for(t=0;n>t;t++)if(Z.contains(i[t],this))return!0}));for(t=0;n>t;t++)Z.find(e,i[t],r);return r=this.pushStack(n>1?Z.unique(r):r),r.selector=this.selector?this.selector+" "+e:e,r},filter:function(e){return this.pushStack(r(this,e||[],!1))},not:function(e){return this.pushStack(r(this,e||[],!0))},is:function(e){return!!r(this,"string"==typeof e&&oe.test(e)?Z(e):e||[],!1).length}});var ue,le=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,ce=Z.fn.init=function(e,t){var n,r;if(!e)return this;if("string"==typeof e){if(n="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:le.exec(e),!n||!n[1]&&t)return!t||t.jquery?(t||ue).find(e):this.constructor(t).find(e);if(n[1]){if(t=t instanceof Z?t[0]:t,Z.merge(this,Z.parseHTML(n[1],t&&t.nodeType?t.ownerDocument||t:J,!0)),se.test(n[1])&&Z.isPlainObject(t))for(n in t)Z.isFunction(this[n])?this[n](t[n]):this.attr(n,t[n]);return this}return r=J.getElementById(n[2]),r&&r.parentNode&&(this.length=1,this[0]=r),this.context=J,this.selector=e,this}return e.nodeType?(this.context=this[0]=e,this.length=1,this):Z.isFunction(e)?"undefined"!=typeof ue.ready?ue.ready(e):e(Z):(void 0!==e.selector&&(this.selector=e.selector,this.context=e.context),Z.makeArray(e,this))};ce.prototype=Z.fn,ue=Z(J);var fe=/^(?:parents|prev(?:Until|All))/,pe={children:!0,contents:!0,next:!0,prev:!0};Z.extend({dir:function(e,t,n){for(var r=[],i=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(i&&Z(e).is(n))break;r.push(e)}return r},sibling:function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n}}),Z.fn.extend({has:function(e){var t=Z(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(Z.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,i=this.length,o=[],s=oe.test(e)||"string"!=typeof e?Z(e,t||this.context):0;i>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(s?s.index(n)>-1:1===n.nodeType&&Z.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?Z.unique(o):o)},index:function(e){return e?"string"==typeof e?U.call(Z(e),this[0]):U.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(Z.unique(Z.merge(this.get(),Z(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),Z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return Z.dir(e,"parentNode")},parentsUntil:function(e,t,n){return Z.dir(e,"parentNode",n)},next:function(e){return i(e,"nextSibling")},prev:function(e){return i(e,"previousSibling")},nextAll:function(e){return Z.dir(e,"nextSibling")},prevAll:function(e){return Z.dir(e,"previousSibling")},nextUntil:function(e,t,n){return Z.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return Z.dir(e,"previousSibling",n)},siblings:function(e){return Z.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return Z.sibling(e.firstChild)},contents:function(e){return e.contentDocument||Z.merge([],e.childNodes)}},function(e,t){Z.fn[e]=function(n,r){var i=Z.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=Z.filter(r,i)),this.length>1&&(pe[e]||Z.unique(i),fe.test(e)&&i.reverse()),this.pushStack(i)}});var de=/\S+/g,he={};Z.Callbacks=function(e){e="string"==typeof e?he[e]||o(e):Z.extend({},e);var t,n,r,i,s,a,u=[],l=!e.once&&[],c=function(o){for(t=e.memory&&o,n=!0,a=i||0,i=0,s=u.length,r=!0;u&&s>a;a++)if(u[a].apply(o[0],o[1])===!1&&e.stopOnFalse){t=!1;break}r=!1,u&&(l?l.length&&c(l.shift()):t?u=[]:f.disable())},f={add:function(){if(u){var n=u.length;!function o(t){Z.each(t,function(t,n){var r=Z.type(n);"function"===r?e.unique&&f.has(n)||u.push(n):n&&n.length&&"string"!==r&&o(n)})}(arguments),r?s=u.length:t&&(i=n,c(t))}return this},remove:function(){return u&&Z.each(arguments,function(e,t){for(var n;(n=Z.inArray(t,u,n))>-1;)u.splice(n,1),r&&(s>=n&&s--,a>=n&&a--)}),this},has:function(e){return e?Z.inArray(e,u)>-1:!(!u||!u.length)},empty:function(){return u=[],s=0,this},disable:function(){return u=l=t=void 0,this},disabled:function(){return!u},lock:function(){return l=void 0,t||f.disable(),this},locked:function(){return!l},fireWith:function(e,t){return!u||n&&!l||(t=t||[],t=[e,t.slice?t.slice():t],r?l.push(t):c(t)),this},fire:function(){return f.fireWith(this,arguments),this},fired:function(){return!!n}};return f},Z.extend({Deferred:function(e){var t=[["resolve","done",Z.Callbacks("once memory"),"resolved"],["reject","fail",Z.Callbacks("once memory"),"rejected"],["notify","progress",Z.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return Z.Deferred(function(n){Z.each(t,function(t,o){var s=Z.isFunction(e[t])&&e[t];i[o[1]](function(){var e=s&&s.apply(this,arguments);e&&Z.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[o[0]+"With"](this===r?n.promise():this,s?[e]:arguments)})}),e=null}).promise()},promise:function(e){return null!=e?Z.extend(e,r):r}},i={};return r.pipe=r.then,Z.each(t,function(e,o){var s=o[2],a=o[3];r[o[1]]=s.add,a&&s.add(function(){n=a},t[1^e][2].disable,t[2][2].lock),i[o[0]]=function(){return i[o[0]+"With"](this===i?r:this,arguments),this},i[o[0]+"With"]=s.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t,n,r,i=0,o=_.call(arguments),s=o.length,a=1!==s||e&&Z.isFunction(e.promise)?s:0,u=1===a?e:Z.Deferred(),l=function(e,n,r){return function(i){n[e]=this,r[e]=arguments.length>1?_.call(arguments):i,r===t?u.notifyWith(n,r):--a||u.resolveWith(n,r)}};if(s>1)for(t=new Array(s),n=new Array(s),r=new Array(s);s>i;i++)o[i]&&Z.isFunction(o[i].promise)?o[i].promise().done(l(i,r,o)).fail(u.reject).progress(l(i,n,t)):--a;return a||u.resolveWith(r,o),u.promise()}});var ge;Z.fn.ready=function(e){return Z.ready.promise().done(e),this},Z.extend({isReady:!1,readyWait:1,holdReady:function(e){e?Z.readyWait++:Z.ready(!0)},ready:function(e){(e===!0?--Z.readyWait:Z.isReady)||(Z.isReady=!0,e!==!0&&--Z.readyWait>0||(ge.resolveWith(J,[Z]),Z.fn.triggerHandler&&(Z(J).triggerHandler("ready"),Z(J).off("ready"))))}}),Z.ready.promise=function(t){return ge||(ge=Z.Deferred(),"complete"===J.readyState?setTimeout(Z.ready):(J.addEventListener("DOMContentLoaded",s,!1),e.addEventListener("load",s,!1))),ge.promise(t)},Z.ready.promise();var me=Z.access=function(e,t,n,r,i,o,s){var a=0,u=e.length,l=null==n;if("object"===Z.type(n)){i=!0;for(a in n)Z.access(e,t,a,n[a],!0,o,s)}else if(void 0!==r&&(i=!0,Z.isFunction(r)||(s=!0),l&&(s?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(Z(e),n)})),t))for(;u>a;a++)t(e[a],n,s?r:r.call(e[a],a,t(e[a],n)));return i?e:l?t.call(e):u?t(e[0],n):o};Z.acceptData=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType},a.uid=1,a.accepts=Z.acceptData,a.prototype={key:function(e){if(!a.accepts(e))return 0;var t={},n=e[this.expando];if(!n){n=a.uid++;try{t[this.expando]={value:n},Object.defineProperties(e,t)}catch(r){t[this.expando]=n,Z.extend(e,t)}}return this.cache[n]||(this.cache[n]={}),n},set:function(e,t,n){var r,i=this.key(e),o=this.cache[i];if("string"==typeof t)o[t]=n;else if(Z.isEmptyObject(o))Z.extend(this.cache[i],t);else for(r in t)o[r]=t[r];return o},get:function(e,t){var n=this.cache[this.key(e)];return void 0===t?n:n[t]},access:function(e,t,n){var r;return void 0===t||t&&"string"==typeof t&&void 0===n?(r=this.get(e,t),void 0!==r?r:this.get(e,Z.camelCase(t))):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r,i,o=this.key(e),s=this.cache[o];if(void 0===t)this.cache[o]={};else{Z.isArray(t)?r=t.concat(t.map(Z.camelCase)):(i=Z.camelCase(t),t in s?r=[t,i]:(r=i,r=r in s?[r]:r.match(de)||[])),n=r.length;for(;n--;)delete s[r[n]]}},hasData:function(e){return!Z.isEmptyObject(this.cache[e[this.expando]]||{})},discard:function(e){e[this.expando]&&delete this.cache[e[this.expando]]}};var ve=new a,ye=new a,xe=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,be=/([A-Z])/g;Z.extend({hasData:function(e){return ye.hasData(e)||ve.hasData(e)},data:function(e,t,n){return ye.access(e,t,n)},removeData:function(e,t){ye.remove(e,t)},_data:function(e,t,n){return ve.access(e,t,n)},_removeData:function(e,t){ve.remove(e,t)}}),Z.fn.extend({data:function(e,t){var n,r,i,o=this[0],s=o&&o.attributes;if(void 0===e){if(this.length&&(i=ye.get(o),1===o.nodeType&&!ve.get(o,"hasDataAttrs"))){for(n=s.length;n--;)s[n]&&(r=s[n].name,0===r.indexOf("data-")&&(r=Z.camelCase(r.slice(5)),u(o,r,i[r])));ve.set(o,"hasDataAttrs",!0)}return i}return"object"==typeof e?this.each(function(){ye.set(this,e)}):me(this,function(t){var n,r=Z.camelCase(e);if(o&&void 0===t){if(n=ye.get(o,e),void 0!==n)return n;if(n=ye.get(o,r),void 0!==n)return n;if(n=u(o,r,void 0),void 0!==n)return n}else this.each(function(){var n=ye.get(this,r);ye.set(this,r,t),-1!==e.indexOf("-")&&void 0!==n&&ye.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){ye.remove(this,e)})}}),Z.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ve.get(e,t),n&&(!r||Z.isArray(n)?r=ve.access(e,t,Z.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=Z.queue(e,t),r=n.length,i=n.shift(),o=Z._queueHooks(e,t),s=function(){Z.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,s,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ve.get(e,n)||ve.access(e,n,{empty:Z.Callbacks("once memory").add(function(){ve.remove(e,[t+"queue",n])})})}}),Z.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length<n?Z.queue(this[0],e):void 0===t?this:this.each(function(){var n=Z.queue(this,e,t);Z._queueHooks(this,e),"fx"===e&&"inprogress"!==n[0]&&Z.dequeue(this,e)})},dequeue:function(e){return this.each(function(){Z.dequeue(this,e)})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,t){var n,r=1,i=Z.Deferred(),o=this,s=this.length,a=function(){--r||i.resolveWith(o,[o])};for("string"!=typeof e&&(t=e,e=void 0),e=e||"fx";s--;)n=ve.get(o[s],e+"queueHooks"),n&&n.empty&&(r++,n.empty.add(a));return a(),i.promise(t)}});var we=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Te=["Top","Right","Bottom","Left"],Ce=function(e,t){return e=t||e,"none"===Z.css(e,"display")||!Z.contains(e.ownerDocument,e)},Ne=/^(?:checkbox|radio)$/i;!function(){var e=J.createDocumentFragment(),t=e.appendChild(J.createElement("div")),n=J.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),Q.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="<textarea>x</textarea>",Q.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var ke="undefined";Q.focusinBubbles="onfocusin"in e;var Ee=/^key/,Se=/^(?:mouse|pointer|contextmenu)|click/,De=/^(?:focusinfocus|focusoutblur)$/,je=/^([^.]*)(?:\.(.+)|)$/;Z.event={global:{},add:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,m=ve.get(e);if(m)for(n.handler&&(o=n,n=o.handler,i=o.selector),n.guid||(n.guid=Z.guid++),(u=m.events)||(u=m.events={}),(s=m.handle)||(s=m.handle=function(t){return typeof Z!==ke&&Z.event.triggered!==t.type?Z.event.dispatch.apply(e,arguments):void 0}),t=(t||"").match(de)||[""],l=t.length;l--;)a=je.exec(t[l])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d&&(f=Z.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=Z.event.special[d]||{},c=Z.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&Z.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||(p=u[d]=[],p.delegateCount=0,f.setup&&f.setup.call(e,r,h,s)!==!1||e.addEventListener&&e.addEventListener(d,s,!1)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),Z.event.global[d]=!0)},remove:function(e,t,n,r,i){var o,s,a,u,l,c,f,p,d,h,g,m=ve.hasData(e)&&ve.get(e);if(m&&(u=m.events)){for(t=(t||"").match(de)||[""],l=t.length;l--;)if(a=je.exec(t[l])||[],d=g=a[1],h=(a[2]||"").split(".").sort(),d){for(f=Z.event.special[d]||{},d=(r?f.delegateType:f.bindType)||d,p=u[d]||[],a=a[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),s=o=p.length;o--;)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||a&&!a.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));s&&!p.length&&(f.teardown&&f.teardown.call(e,h,m.handle)!==!1||Z.removeEvent(e,d,m.handle),delete u[d])}else for(d in u)Z.event.remove(e,d+t[l],n,r,!0);Z.isEmptyObject(u)&&(delete m.handle,ve.remove(e,"events"))}},trigger:function(t,n,r,i){var o,s,a,u,l,c,f,p=[r||J],d=G.call(t,"type")?t.type:t,h=G.call(t,"namespace")?t.namespace.split("."):[];if(s=a=r=r||J,3!==r.nodeType&&8!==r.nodeType&&!De.test(d+Z.event.triggered)&&(d.indexOf(".")>=0&&(h=d.split("."),d=h.shift(),h.sort()),l=d.indexOf(":")<0&&"on"+d,t=t[Z.expando]?t:new Z.Event(d,"object"==typeof t&&t),t.isTrigger=i?2:3,t.namespace=h.join("."),t.namespace_re=t.namespace?new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=r),n=null==n?[t]:Z.makeArray(n,[t]),f=Z.event.special[d]||{},i||!f.trigger||f.trigger.apply(r,n)!==!1)){if(!i&&!f.noBubble&&!Z.isWindow(r)){for(u=f.delegateType||d,De.test(u+d)||(s=s.parentNode);s;s=s.parentNode)p.push(s),a=s;a===(r.ownerDocument||J)&&p.push(a.defaultView||a.parentWindow||e)}for(o=0;(s=p[o++
Download .txt
gitextract_ua0v_2q3/

├── .gitignore
├── .travis.yml
├── CONTRIBUTING.md
├── Dockerfile
├── Godeps/
│   ├── Godeps.json
│   ├── Readme
│   └── _workspace/
│       ├── .gitignore
│       └── src/
│           └── github.com/
│               └── elazarl/
│                   └── go-bindata-assetfs/
│                       ├── LICENSE
│                       ├── README.md
│                       ├── assetfs.go
│                       ├── doc.go
│                       └── go-bindata-assetfs/
│                           └── main.go
├── LICENSE
├── Makefile
├── README.md
├── build/
│   └── build-ui.sh
├── data/
│   └── datafile.go
├── docs/
│   └── ui.md
├── hooks/
│   └── boilerplate.go.txt
├── master/
│   ├── .bowerrc
│   ├── README.md
│   ├── bower.json
│   ├── components/
│   │   ├── README.md
│   │   └── dashboard/
│   │       ├── .gitkeep
│   │       ├── README.md
│   │       ├── config/
│   │       │   └── development.example.json
│   │       ├── img/
│   │       │   └── .gitkeep
│   │       ├── js/
│   │       │   ├── .gitkeep
│   │       │   └── modules/
│   │       │       ├── .gitkeep
│   │       │       ├── controllers/
│   │       │       │   ├── .gitkeep
│   │       │       │   ├── cAdvisorController.js
│   │       │       │   ├── dashboard.js
│   │       │       │   ├── groupController.js
│   │       │       │   ├── header.js
│   │       │       │   ├── listEventsController.js
│   │       │       │   ├── listMinionsController.js
│   │       │       │   ├── listPodsController.js
│   │       │       │   ├── listReplicationControllersController.js
│   │       │       │   ├── listServicesController.js
│   │       │       │   ├── nodeController.js
│   │       │       │   ├── podController.js
│   │       │       │   ├── replicationController.js
│   │       │       │   └── serviceController.js
│   │       │       ├── directives/
│   │       │       │   ├── .gitkeep
│   │       │       │   ├── d3MinionBarGauge.js
│   │       │       │   └── dashboard.js
│   │       │       └── services/
│   │       │           ├── d3.js
│   │       │           ├── podsMock.js
│   │       │           ├── replicationControllersMock.js
│   │       │           └── servicesMock.js
│   │       ├── less/
│   │       │   ├── .gitkeep
│   │       │   ├── dashboard/
│   │       │   │   ├── colors.less
│   │       │   │   ├── groups.less
│   │       │   │   ├── pods.less
│   │       │   │   ├── servers.less
│   │       │   │   └── tables.less
│   │       │   └── dashboard.less
│   │       ├── manifest.json
│   │       ├── pages/
│   │       │   ├── .gitkeep
│   │       │   ├── footer.html
│   │       │   ├── header.html
│   │       │   └── home.html
│   │       ├── protractor/
│   │       │   ├── .gitignore
│   │       │   └── smoke.spec.js
│   │       ├── test/
│   │       │   ├── .gitkeep
│   │       │   ├── controllers/
│   │       │   │   ├── .gitkeep
│   │       │   │   └── header.spec.js
│   │       │   ├── directives/
│   │       │   │   └── .gitkeep
│   │       │   └── services/
│   │       │       └── .gitkeep
│   │       └── views/
│   │           ├── .gitkeep
│   │           ├── groups.html
│   │           ├── listEvents.html
│   │           ├── listMinions.html
│   │           ├── listPods.html
│   │           ├── listPodsCards.html
│   │           ├── listPodsVisualizer.html
│   │           ├── listReplicationControllers.html
│   │           ├── listServices.html
│   │           ├── node.html
│   │           ├── partials/
│   │           │   ├── .gitkeep
│   │           │   ├── cadvisor.html
│   │           │   ├── groupBox.html
│   │           │   ├── groupItem.html
│   │           │   ├── podTilesByName.html
│   │           │   └── podTilesByServer.html
│   │           ├── pod.html
│   │           ├── replication.html
│   │           └── service.html
│   ├── gulpfile.js
│   ├── js/
│   │   ├── app.config.js
│   │   ├── app.directive.js
│   │   ├── app.init.js
│   │   ├── app.preinit.js
│   │   ├── app.run.js
│   │   ├── app.service.js
│   │   ├── app.skeleton.json
│   │   ├── sections.js
│   │   └── tabs.js
│   ├── karma.conf.js
│   ├── less/
│   │   └── app/
│   │       └── base.less
│   ├── package.json
│   ├── protractor/
│   │   ├── .gitkeep
│   │   ├── chrome/
│   │   │   ├── .gitkeep
│   │   │   └── smoke.spec.js
│   │   └── conf.js
│   ├── shared/
│   │   ├── assets/
│   │   │   └── .gitkeep
│   │   ├── config/
│   │   │   ├── development.example.json
│   │   │   ├── generated-config.js
│   │   │   └── production.json
│   │   ├── index.html
│   │   ├── js/
│   │   │   └── modules/
│   │   │       ├── config.js
│   │   │       ├── constants.js
│   │   │       ├── controllers/
│   │   │       │   ├── home-page.js
│   │   │       │   ├── main.js
│   │   │       │   └── tabs-global.js
│   │   │       ├── directives/
│   │   │       │   └── sidebar.js
│   │   │       └── services/
│   │   │           ├── cAdvisor.js
│   │   │           ├── k8sApiService.js
│   │   │           ├── pollK8sData.js
│   │   │           └── toggle-state.js
│   │   ├── vendor/
│   │   │   ├── .gitkeep
│   │   │   ├── angular-json-human/
│   │   │   │   └── dist/
│   │   │   │       └── angular-json-human.css
│   │   │   └── angular-material/
│   │   │       └── angular-material.css
│   │   └── views/
│   │       └── partials/
│   │           ├── 404.html
│   │           ├── kubernetes-ui-menu.tmpl.html
│   │           ├── md-table.tmpl.html
│   │           └── menu-toggle.tmpl.html
│   ├── test/
│   │   └── modules/
│   │       ├── controllers/
│   │       │   ├── .gitkeep
│   │       │   ├── cAdvisorController.spec.js
│   │       │   ├── groupController.spec.js
│   │       │   ├── listEventsController.spec.js
│   │       │   ├── listMinionsController.spec.js
│   │       │   ├── listPodsController.spec.js
│   │       │   ├── listReplicationControllersController.spec.js
│   │       │   ├── listServicesController.spec.js
│   │       │   ├── replicationController.js
│   │       │   └── serviceController.spec.js
│   │       ├── directives/
│   │       │   └── .gitkeep
│   │       └── services/
│   │           └── .gitkeep
│   ├── vendor.base.json
│   └── vendor.json
├── server/
│   ├── kube-ui.go
│   └── sidebar-menu.json
├── test/
│   └── e2e/
│       ├── protractor.conf.js
│       └── scenarios.js
└── third_party/
    └── ui/
        └── bower_components/
            ├── angular/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-csp.css
            │   ├── angular.js
            │   ├── angular.min.js.gzip
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-animate/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-animate.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-aria/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-aria.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-cookies/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-cookies.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angular-css/
            │   ├── .bower.json
            │   ├── Gruntfile.js
            │   ├── LICENSE.txt
            │   ├── README.md
            │   ├── angular-css.js
            │   └── bower.json
            ├── angular-filter/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .travis.yml
            │   ├── bower.json
            │   ├── dist/
            │   │   └── angular-filter.js
            │   └── license.md
            ├── angular-json-human/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   └── dist/
            │       ├── angular-json-human.css
            │       └── angular-json-human.js
            ├── angular-material/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── angular-material.css
            │   ├── angular-material.js
            │   ├── bower.json
            │   ├── default-theme.css
            │   ├── demos/
            │   │   └── gridList/
            │   │       ├── demoBasicUsage/
            │   │       │   └── style.scss
            │   │       ├── demoDynamicTiles/
            │   │       │   └── style.scss
            │   │       └── demoResponsiveUsage/
            │   │           └── style.scss
            │   ├── modules/
            │   │   ├── closure/
            │   │   │   ├── autocomplete/
            │   │   │   │   ├── autocomplete-default-theme.css
            │   │   │   │   ├── autocomplete.css
            │   │   │   │   └── autocomplete.js
            │   │   │   ├── backdrop/
            │   │   │   │   ├── backdrop-default-theme.css
            │   │   │   │   ├── backdrop.css
            │   │   │   │   └── backdrop.js
            │   │   │   ├── bottomSheet/
            │   │   │   │   ├── bottomSheet-default-theme.css
            │   │   │   │   ├── bottomSheet.css
            │   │   │   │   └── bottomSheet.js
            │   │   │   ├── button/
            │   │   │   │   ├── button-default-theme.css
            │   │   │   │   ├── button.css
            │   │   │   │   └── button.js
            │   │   │   ├── card/
            │   │   │   │   ├── card-default-theme.css
            │   │   │   │   ├── card.css
            │   │   │   │   └── card.js
            │   │   │   ├── checkbox/
            │   │   │   │   ├── checkbox-default-theme.css
            │   │   │   │   ├── checkbox.css
            │   │   │   │   └── checkbox.js
            │   │   │   ├── content/
            │   │   │   │   ├── content-default-theme.css
            │   │   │   │   ├── content.css
            │   │   │   │   └── content.js
            │   │   │   ├── core/
            │   │   │   │   ├── core.css
            │   │   │   │   ├── core.js
            │   │   │   │   └── default-theme.js
            │   │   │   ├── dialog/
            │   │   │   │   ├── dialog-default-theme.css
            │   │   │   │   ├── dialog.css
            │   │   │   │   └── dialog.js
            │   │   │   ├── divider/
            │   │   │   │   ├── divider-default-theme.css
            │   │   │   │   ├── divider.css
            │   │   │   │   └── divider.js
            │   │   │   ├── gridList/
            │   │   │   │   ├── gridList-default-theme.css
            │   │   │   │   ├── gridList.css
            │   │   │   │   └── gridList.js
            │   │   │   ├── icon/
            │   │   │   │   ├── icon-default-theme.css
            │   │   │   │   ├── icon.css
            │   │   │   │   └── icon.js
            │   │   │   ├── input/
            │   │   │   │   ├── input-default-theme.css
            │   │   │   │   ├── input.css
            │   │   │   │   └── input.js
            │   │   │   ├── list/
            │   │   │   │   ├── list.css
            │   │   │   │   └── list.js
            │   │   │   ├── menu/
            │   │   │   │   ├── menu.css
            │   │   │   │   └── menu.js
            │   │   │   ├── progressCircular/
            │   │   │   │   ├── progressCircular-default-theme.css
            │   │   │   │   ├── progressCircular.css
            │   │   │   │   └── progressCircular.js
            │   │   │   ├── progressLinear/
            │   │   │   │   ├── progressLinear-default-theme.css
            │   │   │   │   ├── progressLinear.css
            │   │   │   │   └── progressLinear.js
            │   │   │   ├── radioButton/
            │   │   │   │   ├── radioButton-default-theme.css
            │   │   │   │   ├── radioButton.css
            │   │   │   │   └── radioButton.js
            │   │   │   ├── select/
            │   │   │   │   ├── select-default-theme.css
            │   │   │   │   ├── select.css
            │   │   │   │   └── select.js
            │   │   │   ├── sidenav/
            │   │   │   │   ├── sidenav-default-theme.css
            │   │   │   │   ├── sidenav.css
            │   │   │   │   └── sidenav.js
            │   │   │   ├── slider/
            │   │   │   │   ├── slider-default-theme.css
            │   │   │   │   ├── slider.css
            │   │   │   │   └── slider.js
            │   │   │   ├── sticky/
            │   │   │   │   ├── sticky.css
            │   │   │   │   └── sticky.js
            │   │   │   ├── subheader/
            │   │   │   │   ├── subheader-default-theme.css
            │   │   │   │   ├── subheader.css
            │   │   │   │   └── subheader.js
            │   │   │   ├── swipe/
            │   │   │   │   └── swipe.js
            │   │   │   ├── switch/
            │   │   │   │   ├── switch-default-theme.css
            │   │   │   │   ├── switch.css
            │   │   │   │   └── switch.js
            │   │   │   ├── tabs/
            │   │   │   │   ├── tabs-default-theme.css
            │   │   │   │   ├── tabs.css
            │   │   │   │   └── tabs.js
            │   │   │   ├── textField/
            │   │   │   │   ├── textField-default-theme.css
            │   │   │   │   ├── textField.css
            │   │   │   │   └── textField.js
            │   │   │   ├── toast/
            │   │   │   │   ├── toast-default-theme.css
            │   │   │   │   ├── toast.css
            │   │   │   │   └── toast.js
            │   │   │   ├── toolbar/
            │   │   │   │   ├── toolbar-default-theme.css
            │   │   │   │   ├── toolbar.css
            │   │   │   │   └── toolbar.js
            │   │   │   ├── tooltip/
            │   │   │   │   ├── tooltip-default-theme.css
            │   │   │   │   ├── tooltip.css
            │   │   │   │   └── tooltip.js
            │   │   │   └── whiteframe/
            │   │   │       ├── whiteframe.css
            │   │   │       └── whiteframe.js
            │   │   ├── css/
            │   │   │   └── angular-material-layout.css
            │   │   └── js/
            │   │       ├── autocomplete/
            │   │       │   ├── autocomplete-default-theme.css
            │   │       │   ├── autocomplete.css
            │   │       │   ├── autocomplete.js
            │   │       │   └── bower.json
            │   │       ├── backdrop/
            │   │       │   ├── backdrop-default-theme.css
            │   │       │   ├── backdrop.css
            │   │       │   ├── backdrop.js
            │   │       │   └── bower.json
            │   │       ├── bottomSheet/
            │   │       │   ├── bottomSheet-default-theme.css
            │   │       │   ├── bottomSheet.css
            │   │       │   ├── bottomSheet.js
            │   │       │   └── bower.json
            │   │       ├── button/
            │   │       │   ├── bower.json
            │   │       │   ├── button-default-theme.css
            │   │       │   ├── button.css
            │   │       │   └── button.js
            │   │       ├── card/
            │   │       │   ├── bower.json
            │   │       │   ├── card-default-theme.css
            │   │       │   ├── card.css
            │   │       │   └── card.js
            │   │       ├── checkbox/
            │   │       │   ├── bower.json
            │   │       │   ├── checkbox-default-theme.css
            │   │       │   ├── checkbox.css
            │   │       │   └── checkbox.js
            │   │       ├── content/
            │   │       │   ├── bower.json
            │   │       │   ├── content-default-theme.css
            │   │       │   ├── content.css
            │   │       │   └── content.js
            │   │       ├── core/
            │   │       │   ├── bower.json
            │   │       │   ├── core.css
            │   │       │   ├── core.js
            │   │       │   └── default-theme.js
            │   │       ├── dialog/
            │   │       │   ├── bower.json
            │   │       │   ├── dialog-default-theme.css
            │   │       │   ├── dialog.css
            │   │       │   └── dialog.js
            │   │       ├── divider/
            │   │       │   ├── bower.json
            │   │       │   ├── divider-default-theme.css
            │   │       │   ├── divider.css
            │   │       │   └── divider.js
            │   │       ├── icon/
            │   │       │   ├── bower.json
            │   │       │   ├── icon.css
            │   │       │   └── icon.js
            │   │       ├── input/
            │   │       │   ├── bower.json
            │   │       │   ├── input-default-theme.css
            │   │       │   ├── input.css
            │   │       │   └── input.js
            │   │       ├── list/
            │   │       │   ├── bower.json
            │   │       │   ├── list.css
            │   │       │   └── list.js
            │   │       ├── menu/
            │   │       │   ├── bower.json
            │   │       │   ├── menu.css
            │   │       │   └── menu.js
            │   │       ├── progressCircular/
            │   │       │   ├── bower.json
            │   │       │   ├── progressCircular-default-theme.css
            │   │       │   ├── progressCircular.css
            │   │       │   └── progressCircular.js
            │   │       ├── progressLinear/
            │   │       │   ├── bower.json
            │   │       │   ├── progressLinear-default-theme.css
            │   │       │   ├── progressLinear.css
            │   │       │   └── progressLinear.js
            │   │       ├── radioButton/
            │   │       │   ├── bower.json
            │   │       │   ├── radioButton-default-theme.css
            │   │       │   ├── radioButton.css
            │   │       │   └── radioButton.js
            │   │       ├── sidenav/
            │   │       │   ├── bower.json
            │   │       │   ├── sidenav-default-theme.css
            │   │       │   ├── sidenav.css
            │   │       │   └── sidenav.js
            │   │       ├── slider/
            │   │       │   ├── bower.json
            │   │       │   ├── slider-default-theme.css
            │   │       │   ├── slider.css
            │   │       │   └── slider.js
            │   │       ├── sticky/
            │   │       │   ├── bower.json
            │   │       │   ├── sticky.css
            │   │       │   └── sticky.js
            │   │       ├── subheader/
            │   │       │   ├── bower.json
            │   │       │   ├── subheader-default-theme.css
            │   │       │   ├── subheader.css
            │   │       │   └── subheader.js
            │   │       ├── swipe/
            │   │       │   ├── bower.json
            │   │       │   └── swipe.js
            │   │       ├── switch/
            │   │       │   ├── bower.json
            │   │       │   ├── switch-default-theme.css
            │   │       │   ├── switch.css
            │   │       │   └── switch.js
            │   │       ├── tabs/
            │   │       │   ├── bower.json
            │   │       │   ├── tabs-default-theme.css
            │   │       │   ├── tabs.css
            │   │       │   └── tabs.js
            │   │       ├── textField/
            │   │       │   ├── bower.json
            │   │       │   ├── textField-default-theme.css
            │   │       │   ├── textField.css
            │   │       │   └── textField.js
            │   │       ├── toast/
            │   │       │   ├── bower.json
            │   │       │   ├── toast-default-theme.css
            │   │       │   ├── toast.css
            │   │       │   └── toast.js
            │   │       ├── toolbar/
            │   │       │   ├── bower.json
            │   │       │   ├── toolbar-default-theme.css
            │   │       │   ├── toolbar.css
            │   │       │   └── toolbar.js
            │   │       ├── tooltip/
            │   │       │   ├── bower.json
            │   │       │   ├── tooltip-default-theme.css
            │   │       │   ├── tooltip.css
            │   │       │   └── tooltip.js
            │   │       └── whiteframe/
            │   │           ├── bower.json
            │   │           ├── whiteframe.css
            │   │           └── whiteframe.js
            │   └── package.json
            ├── angular-mocks/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-mocks.js
            │   ├── bower.json
            │   ├── ngAnimateMock.js
            │   ├── ngMock.js
            │   ├── ngMockE2E.js
            │   └── package.json
            ├── angular-route/
            │   ├── .bower.json
            │   ├── README.md
            │   ├── angular-route.js
            │   ├── bower.json
            │   ├── index.js
            │   └── package.json
            ├── angularjs-jasmine-matchers/
            │   ├── .bower.json
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   └── dist/
            │       └── matchers.js
            ├── d3/
            │   ├── .bower.json
            │   ├── .gitattributes
            │   ├── CONTRIBUTING.md
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   ├── d3.js
            │   └── package.js
            ├── d3-context-menu/
            │   ├── .bower.json
            │   ├── LICENSE.txt
            │   ├── bower.json
            │   ├── css/
            │   │   └── d3-context-menu.css
            │   └── js/
            │       └── d3-context-menu.js
            ├── hammerjs/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .gitignore
            │   ├── .jscsrc
            │   ├── .jshintrc
            │   ├── .travis.yml
            │   ├── CHANGELOG.md
            │   ├── CONTRIBUTING.md
            │   ├── Gruntfile.coffee
            │   ├── LICENSE.md
            │   ├── README.md
            │   ├── bower.json
            │   ├── component.json
            │   ├── hammer.js
            │   └── package.json
            ├── jquery/
            │   ├── .bower.json
            │   ├── MIT-LICENSE.txt
            │   ├── bower.json
            │   ├── dist/
            │   │   └── jquery.js
            │   └── src/
            │       ├── ajax/
            │       │   ├── jsonp.js
            │       │   ├── load.js
            │       │   ├── parseJSON.js
            │       │   ├── parseXML.js
            │       │   ├── script.js
            │       │   ├── var/
            │       │   │   ├── nonce.js
            │       │   │   └── rquery.js
            │       │   └── xhr.js
            │       ├── ajax.js
            │       ├── attributes/
            │       │   ├── attr.js
            │       │   ├── classes.js
            │       │   ├── prop.js
            │       │   ├── support.js
            │       │   └── val.js
            │       ├── attributes.js
            │       ├── callbacks.js
            │       ├── core/
            │       │   ├── access.js
            │       │   ├── init.js
            │       │   ├── parseHTML.js
            │       │   ├── ready.js
            │       │   └── var/
            │       │       └── rsingleTag.js
            │       ├── core.js
            │       ├── css/
            │       │   ├── addGetHookIf.js
            │       │   ├── curCSS.js
            │       │   ├── defaultDisplay.js
            │       │   ├── hiddenVisibleSelectors.js
            │       │   ├── support.js
            │       │   ├── swap.js
            │       │   └── var/
            │       │       ├── cssExpand.js
            │       │       ├── getStyles.js
            │       │       ├── isHidden.js
            │       │       ├── rmargin.js
            │       │       └── rnumnonpx.js
            │       ├── css.js
            │       ├── data/
            │       │   ├── Data.js
            │       │   ├── accepts.js
            │       │   └── var/
            │       │       ├── data_priv.js
            │       │       └── data_user.js
            │       ├── data.js
            │       ├── deferred.js
            │       ├── deprecated.js
            │       ├── dimensions.js
            │       ├── effects/
            │       │   ├── Tween.js
            │       │   └── animatedSelector.js
            │       ├── effects.js
            │       ├── event/
            │       │   ├── ajax.js
            │       │   ├── alias.js
            │       │   └── support.js
            │       ├── event.js
            │       ├── exports/
            │       │   ├── amd.js
            │       │   └── global.js
            │       ├── intro.js
            │       ├── jquery.js
            │       ├── manipulation/
            │       │   ├── _evalUrl.js
            │       │   ├── support.js
            │       │   └── var/
            │       │       └── rcheckableType.js
            │       ├── manipulation.js
            │       ├── offset.js
            │       ├── outro.js
            │       ├── queue/
            │       │   └── delay.js
            │       ├── queue.js
            │       ├── selector-native.js
            │       ├── selector-sizzle.js
            │       ├── selector.js
            │       ├── serialize.js
            │       ├── sizzle/
            │       │   └── dist/
            │       │       └── sizzle.js
            │       ├── traversing/
            │       │   ├── findFilter.js
            │       │   └── var/
            │       │       └── rneedsContext.js
            │       ├── traversing.js
            │       ├── var/
            │       │   ├── arr.js
            │       │   ├── class2type.js
            │       │   ├── concat.js
            │       │   ├── hasOwn.js
            │       │   ├── indexOf.js
            │       │   ├── pnum.js
            │       │   ├── push.js
            │       │   ├── rnotwhite.js
            │       │   ├── slice.js
            │       │   ├── strundefined.js
            │       │   ├── support.js
            │       │   └── toString.js
            │       └── wrap.js
            ├── jsonpath/
            │   ├── .bower.json
            │   ├── .gitignore
            │   ├── .npmignore
            │   ├── .travis.yml
            │   ├── CHANGES.md
            │   ├── README.md
            │   ├── lib/
            │   │   └── jsonpath.js
            │   ├── package.json
            │   └── test/
            │       ├── test.arr.js
            │       ├── test.at_and_dollar.js
            │       ├── test.eval.js
            │       ├── test.examples.js
            │       ├── test.html
            │       ├── test.intermixed.arr.js
            │       └── test.parent-selector.js
            ├── lodash/
            │   ├── .bower.json
            │   ├── LICENSE.txt
            │   ├── bower.json
            │   └── dist/
            │       ├── lodash.compat.js
            │       ├── lodash.js
            │       └── lodash.underscore.js
            ├── modernizr/
            │   ├── .bower.json
            │   ├── .editorconfig
            │   ├── .gitignore
            │   ├── .travis.yml
            │   ├── feature-detects/
            │   │   ├── a-download.js
            │   │   ├── audio-audiodata-api.js
            │   │   ├── audio-webaudio-api.js
            │   │   ├── battery-api.js
            │   │   ├── battery-level.js
            │   │   ├── blob-constructor.js
            │   │   ├── canvas-todataurl-type.js
            │   │   ├── contenteditable.js
            │   │   ├── contentsecuritypolicy.js
            │   │   ├── contextmenu.js
            │   │   ├── cookies.js
            │   │   ├── cors.js
            │   │   ├── css-backgroundposition-shorthand.js
            │   │   ├── css-backgroundposition-xy.js
            │   │   ├── css-backgroundrepeat.js
            │   │   ├── css-backgroundsizecover.js
            │   │   ├── css-boxsizing.js
            │   │   ├── css-calc.js
            │   │   ├── css-cubicbezierrange.js
            │   │   ├── css-displayrunin.js
            │   │   ├── css-displaytable.js
            │   │   ├── css-filters.js
            │   │   ├── css-hyphens.js
            │   │   ├── css-lastchild.js
            │   │   ├── css-mask.js
            │   │   ├── css-mediaqueries.js
            │   │   ├── css-objectfit.js
            │   │   ├── css-overflow-scrolling.js
            │   │   ├── css-pointerevents.js
            │   │   ├── css-positionsticky.js
            │   │   ├── css-regions.js
            │   │   ├── css-remunit.js
            │   │   ├── css-resize.js
            │   │   ├── css-scrollbars.js
            │   │   ├── css-shapes.js
            │   │   ├── css-subpixelfont.js
            │   │   ├── css-supports.js
            │   │   ├── css-userselect.js
            │   │   ├── css-vhunit.js
            │   │   ├── css-vmaxunit.js
            │   │   ├── css-vminunit.js
            │   │   ├── css-vwunit.js
            │   │   ├── custom-protocol-handler.js
            │   │   ├── dart.js
            │   │   ├── dataview-api.js
            │   │   ├── dom-classlist.js
            │   │   ├── dom-createElement-attrs.js
            │   │   ├── dom-dataset.js
            │   │   ├── dom-microdata.js
            │   │   ├── elem-datalist.js
            │   │   ├── elem-details.js
            │   │   ├── elem-output.js
            │   │   ├── elem-progress-meter.js
            │   │   ├── elem-ruby.js
            │   │   ├── elem-time.js
            │   │   ├── elem-track.js
            │   │   ├── emoji.js
            │   │   ├── es5-strictmode.js
            │   │   ├── event-deviceorientation-motion.js
            │   │   ├── exif-orientation.js
            │   │   ├── file-api.js
            │   │   ├── file-filesystem.js
            │   │   ├── forms-fileinput.js
            │   │   ├── forms-formattribute.js
            │   │   ├── forms-inputnumber-l10n.js
            │   │   ├── forms-placeholder.js
            │   │   ├── forms-speechinput.js
            │   │   ├── forms-validation.js
            │   │   ├── fullscreen-api.js
            │   │   ├── gamepad.js
            │   │   ├── getusermedia.js
            │   │   ├── ie8compat.js
            │   │   ├── iframe-sandbox.js
            │   │   ├── iframe-seamless.js
            │   │   ├── iframe-srcdoc.js
            │   │   ├── img-apng.js
            │   │   ├── img-webp.js
            │   │   ├── json.js
            │   │   ├── lists-reversed.js
            │   │   ├── mathml.js
            │   │   ├── network-connection.js
            │   │   ├── network-eventsource.js
            │   │   ├── network-xhr2.js
            │   │   ├── notification.js
            │   │   ├── performance.js
            │   │   ├── pointerlock-api.js
            │   │   ├── quota-management-api.js
            │   │   ├── requestanimationframe.js
            │   │   ├── script-async.js
            │   │   ├── script-defer.js
            │   │   ├── style-scoped.js
            │   │   ├── svg-filters.js
            │   │   ├── unicode.js
            │   │   ├── url-data-uri.js
            │   │   ├── userdata.js
            │   │   ├── vibration.js
            │   │   ├── web-intents.js
            │   │   ├── webgl-extensions.js
            │   │   ├── websockets-binary.js
            │   │   ├── window-framed.js
            │   │   ├── workers-blobworkers.js
            │   │   ├── workers-dataworkers.js
            │   │   └── workers-sharedworkers.js
            │   ├── grunt.js
            │   ├── media/
            │   │   ├── Modernizr 2 Logo.ai
            │   │   └── Modernizr 2 Logo.eps
            │   ├── modernizr.js
            │   ├── readme.md
            │   └── test/
            │       ├── basic.html
            │       ├── caniuse.html
            │       ├── caniuse_files/
            │       │   ├── Windsong-webfont.otf
            │       │   ├── form_validation.html
            │       │   ├── ga.js
            │       │   ├── hashchange.html
            │       │   ├── mathml.html
            │       │   ├── pushstate.html
            │       │   ├── style.css
            │       │   ├── svg-img.svg.1
            │       │   └── xhtml.html
            │       ├── index.html
            │       ├── js/
            │       │   ├── basic.html
            │       │   ├── dumpdata.js
            │       │   ├── lib/
            │       │   │   ├── detect-global.js
            │       │   │   ├── jquery-1.7b2.js
            │       │   │   ├── jsonselect.js
            │       │   │   ├── polyfills.js
            │       │   │   └── uaparser.js
            │       │   ├── setup.js
            │       │   ├── unit-caniuse.js
            │       │   └── unit.js
            │       └── qunit/
            │           ├── qunit.css
            │           ├── qunit.js
            │           └── run-qunit.js
            ├── ng-lodash/
            │   ├── .bower.json
            │   ├── .bowerrc
            │   ├── .editorconfig
            │   ├── .gitignore
            │   ├── .jscsrc
            │   ├── .jshintrc
            │   ├── .travis.yml
            │   ├── CONTRIBUTING.md
            │   ├── License.txt
            │   ├── README.md
            │   ├── bower.json
            │   ├── build/
            │   │   └── ng-lodash.js
            │   └── package.json
            ├── sprintf/
            │   ├── .bower.json
            │   ├── .gitignore
            │   ├── LICENSE
            │   ├── README.md
            │   ├── bower.json
            │   ├── demo/
            │   │   └── angular.html
            │   ├── gruntfile.js
            │   ├── package.json
            │   ├── src/
            │   │   ├── angular-sprintf.js
            │   │   └── sprintf.js
            │   └── test/
            │       └── test.js
            └── string-format-js/
                ├── .bower.json
                ├── Gruntfile.js
                ├── LICENSE.txt
                ├── README.md
                ├── bower.json
                ├── format.js
                └── package.json
Download .txt
SYMBOL INDEX (1777 symbols across 133 files)

FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/assetfs.go
  type FakeFile (line 20) | type FakeFile struct
    method Name (line 29) | func (f *FakeFile) Name() string {
    method Mode (line 34) | func (f *FakeFile) Mode() os.FileMode {
    method ModTime (line 42) | func (f *FakeFile) ModTime() time.Time {
    method Size (line 46) | func (f *FakeFile) Size() int64 {
    method IsDir (line 50) | func (f *FakeFile) IsDir() bool {
    method Sys (line 54) | func (f *FakeFile) Sys() interface{} {
  type AssetFile (line 59) | type AssetFile struct
    method Readdir (line 72) | func (f *AssetFile) Readdir(count int) ([]os.FileInfo, error) {
    method Size (line 76) | func (f *AssetFile) Size() int64 {
    method Stat (line 80) | func (f *AssetFile) Stat() (os.FileInfo, error) {
  function NewAssetFile (line 65) | func NewAssetFile(name string, content []byte) *AssetFile {
  type AssetDirectory (line 85) | type AssetDirectory struct
    method Readdir (line 107) | func (f *AssetDirectory) Readdir(count int) ([]os.FileInfo, error) {
    method Stat (line 119) | func (f *AssetDirectory) Stat() (os.FileInfo, error) {
  function NewAssetDirectory (line 91) | func NewAssetDirectory(name string, children []string, fs *AssetFS) *Ass...
  type AssetFS (line 125) | type AssetFS struct
    method Open (line 134) | func (fs *AssetFS) Open(name string) (http.File, error) {

FILE: Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs/main.go
  constant bindatafile (line 11) | bindatafile = "bindata.go"
  function main (line 13) | func main() {

FILE: data/datafile.go
  type asset (line 84) | type asset struct
  type bindataFileInfo (line 89) | type bindataFileInfo struct
    method Name (line 96) | func (fi bindataFileInfo) Name() string {
    method Size (line 99) | func (fi bindataFileInfo) Size() int64 {
    method Mode (line 102) | func (fi bindataFileInfo) Mode() os.FileMode {
    method ModTime (line 105) | func (fi bindataFileInfo) ModTime() time.Time {
    method IsDir (line 108) | func (fi bindataFileInfo) IsDir() bool {
    method Sys (line 111) | func (fi bindataFileInfo) Sys() interface{} {
  function appAssetsCssAppCssBytes (line 117) | func appAssetsCssAppCssBytes() ([]byte, error) {
  function appAssetsCssAppCss (line 121) | func appAssetsCssAppCss() (*asset, error) {
  function appAssetsImgDocarrowPngBytes (line 134) | func appAssetsImgDocarrowPngBytes() ([]byte, error) {
  function appAssetsImgDocarrowPng (line 138) | func appAssetsImgDocarrowPng() (*asset, error) {
  function appAssetsImgIc_arrow_drop_down_24pxSvgBytes (line 155) | func appAssetsImgIc_arrow_drop_down_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIc_arrow_drop_down_24pxSvg (line 159) | func appAssetsImgIc_arrow_drop_down_24pxSvg() (*asset, error) {
  function appAssetsImgIc_arrow_drop_up_24pxSvgBytes (line 197) | func appAssetsImgIc_arrow_drop_up_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIc_arrow_drop_up_24pxSvg (line 201) | func appAssetsImgIc_arrow_drop_up_24pxSvg() (*asset, error) {
  function appAssetsImgIc_keyboard_arrow_left_24pxSvgBytes (line 214) | func appAssetsImgIc_keyboard_arrow_left_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIc_keyboard_arrow_left_24pxSvg (line 218) | func appAssetsImgIc_keyboard_arrow_left_24pxSvg() (*asset, error) {
  function appAssetsImgIc_keyboard_arrow_right_24pxSvgBytes (line 231) | func appAssetsImgIc_keyboard_arrow_right_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIc_keyboard_arrow_right_24pxSvg (line 235) | func appAssetsImgIc_keyboard_arrow_right_24pxSvg() (*asset, error) {
  function appAssetsImgIconsArrowBackPngBytes (line 248) | func appAssetsImgIconsArrowBackPngBytes() ([]byte, error) {
  function appAssetsImgIconsArrowBackPng (line 252) | func appAssetsImgIconsArrowBackPng() (*asset, error) {
  function appAssetsImgIconsFaviconPngBytes (line 265) | func appAssetsImgIconsFaviconPngBytes() ([]byte, error) {
  function appAssetsImgIconsFaviconPng (line 269) | func appAssetsImgIconsFaviconPng() (*asset, error) {
  function appAssetsImgIconsIc_arrow_forward_24pxSvgBytes (line 282) | func appAssetsImgIconsIc_arrow_forward_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIconsIc_arrow_forward_24pxSvg (line 286) | func appAssetsImgIconsIc_arrow_forward_24pxSvg() (*asset, error) {
  function appAssetsImgIconsIc_cancel_24pxSvgBytes (line 299) | func appAssetsImgIconsIc_cancel_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIconsIc_cancel_24pxSvg (line 303) | func appAssetsImgIconsIc_cancel_24pxSvg() (*asset, error) {
  function appAssetsImgIconsIc_close_24pxSvgBytes (line 316) | func appAssetsImgIconsIc_close_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIconsIc_close_24pxSvg (line 320) | func appAssetsImgIconsIc_close_24pxSvg() (*asset, error) {
  function appAssetsImgIconsIc_menuSvgBytes (line 346) | func appAssetsImgIconsIc_menuSvgBytes() ([]byte, error) {
  function appAssetsImgIconsIc_menuSvg (line 350) | func appAssetsImgIconsIc_menuSvg() (*asset, error) {
  function appAssetsImgIconsIc_menu_24pxSvgBytes (line 386) | func appAssetsImgIconsIc_menu_24pxSvgBytes() ([]byte, error) {
  function appAssetsImgIconsIc_menu_24pxSvg (line 390) | func appAssetsImgIconsIc_menu_24pxSvg() (*asset, error) {
  function appAssetsImgIconsList_control_downPngBytes (line 403) | func appAssetsImgIconsList_control_downPngBytes() ([]byte, error) {
  function appAssetsImgIconsList_control_downPng (line 407) | func appAssetsImgIconsList_control_downPng() (*asset, error) {
  function appAssetsImgKubernetesSvgBytes (line 425) | func appAssetsImgKubernetesSvgBytes() ([]byte, error) {
  function appAssetsImgKubernetesSvg (line 429) | func appAssetsImgKubernetesSvg() (*asset, error) {
  function appAssetsJsAppJsBytes (line 443) | func appAssetsJsAppJsBytes() ([]byte, error) {
  function appAssetsJsAppJs (line 447) | func appAssetsJsAppJs() (*asset, error) {
  function appAssetsJsBaseJsBytes (line 484) | func appAssetsJsBaseJsBytes() ([]byte, error) {
  function appAssetsJsBaseJs (line 488) | func appAssetsJsBaseJs() (*asset, error) {
  function appComponentsDashboardImgIconsIc_arrow_drop_down_18pxSvgBytes (line 501) | func appComponentsDashboardImgIconsIc_arrow_drop_down_18pxSvgBytes() ([]...
  function appComponentsDashboardImgIconsIc_arrow_drop_down_18pxSvg (line 505) | func appComponentsDashboardImgIconsIc_arrow_drop_down_18pxSvg() (*asset,...
  function appComponentsDashboardImgIconsIc_arrow_drop_down_24pxSvgBytes (line 522) | func appComponentsDashboardImgIconsIc_arrow_drop_down_24pxSvgBytes() ([]...
  function appComponentsDashboardImgIconsIc_arrow_drop_down_24pxSvg (line 526) | func appComponentsDashboardImgIconsIc_arrow_drop_down_24pxSvg() (*asset,...
  function appComponentsDashboardImgIconsIc_close_18pxSvgBytes (line 539) | func appComponentsDashboardImgIconsIc_close_18pxSvgBytes() ([]byte, erro...
  function appComponentsDashboardImgIconsIc_close_18pxSvg (line 543) | func appComponentsDashboardImgIconsIc_close_18pxSvg() (*asset, error) {
  function appComponentsDashboardImgIconsIc_close_24pxSvgBytes (line 556) | func appComponentsDashboardImgIconsIc_close_24pxSvgBytes() ([]byte, erro...
  function appComponentsDashboardImgIconsIc_close_24pxSvg (line 560) | func appComponentsDashboardImgIconsIc_close_24pxSvg() (*asset, error) {
  function appComponentsDashboardManifestJsonBytes (line 633) | func appComponentsDashboardManifestJsonBytes() ([]byte, error) {
  function appComponentsDashboardManifestJson (line 637) | func appComponentsDashboardManifestJson() (*asset, error) {
  function appComponentsDashboardPagesFooterHtmlBytes (line 650) | func appComponentsDashboardPagesFooterHtmlBytes() ([]byte, error) {
  function appComponentsDashboardPagesFooterHtml (line 654) | func appComponentsDashboardPagesFooterHtml() (*asset, error) {
  function appComponentsDashboardPagesHeaderHtmlBytes (line 693) | func appComponentsDashboardPagesHeaderHtmlBytes() ([]byte, error) {
  function appComponentsDashboardPagesHeaderHtml (line 697) | func appComponentsDashboardPagesHeaderHtml() (*asset, error) {
  function appComponentsDashboardPagesHomeHtmlBytes (line 717) | func appComponentsDashboardPagesHomeHtmlBytes() ([]byte, error) {
  function appComponentsDashboardPagesHomeHtml (line 721) | func appComponentsDashboardPagesHomeHtml() (*asset, error) {
  function appComponentsDashboardViewsGroupsHtmlBytes (line 768) | func appComponentsDashboardViewsGroupsHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsGroupsHtml (line 772) | func appComponentsDashboardViewsGroupsHtml() (*asset, error) {
  function appComponentsDashboardViewsListeventsHtmlBytes (line 792) | func appComponentsDashboardViewsListeventsHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsListeventsHtml (line 796) | func appComponentsDashboardViewsListeventsHtml() (*asset, error) {
  function appComponentsDashboardViewsListminionsHtmlBytes (line 816) | func appComponentsDashboardViewsListminionsHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsListminionsHtml (line 820) | func appComponentsDashboardViewsListminionsHtml() (*asset, error) {
  function appComponentsDashboardViewsListpodsHtmlBytes (line 840) | func appComponentsDashboardViewsListpodsHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsListpodsHtml (line 844) | func appComponentsDashboardViewsListpodsHtml() (*asset, error) {
  function appComponentsDashboardViewsListpodscardsHtmlBytes (line 916) | func appComponentsDashboardViewsListpodscardsHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsListpodscardsHtml (line 920) | func appComponentsDashboardViewsListpodscardsHtml() (*asset, error) {
  function appComponentsDashboardViewsListpodsvisualizerHtmlBytes (line 950) | func appComponentsDashboardViewsListpodsvisualizerHtmlBytes() ([]byte, e...
  function appComponentsDashboardViewsListpodsvisualizerHtml (line 954) | func appComponentsDashboardViewsListpodsvisualizerHtml() (*asset, error) {
  function appComponentsDashboardViewsListreplicationcontrollersHtmlBytes (line 974) | func appComponentsDashboardViewsListreplicationcontrollersHtmlBytes() ([...
  function appComponentsDashboardViewsListreplicationcontrollersHtml (line 978) | func appComponentsDashboardViewsListreplicationcontrollersHtml() (*asset...
  function appComponentsDashboardViewsListservicesHtmlBytes (line 998) | func appComponentsDashboardViewsListservicesHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsListservicesHtml (line 1002) | func appComponentsDashboardViewsListservicesHtml() (*asset, error) {
  function appComponentsDashboardViewsNodeHtmlBytes (line 1104) | func appComponentsDashboardViewsNodeHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsNodeHtml (line 1108) | func appComponentsDashboardViewsNodeHtml() (*asset, error) {
  function appComponentsDashboardViewsPartialsCadvisorHtmlBytes (line 1130) | func appComponentsDashboardViewsPartialsCadvisorHtmlBytes() ([]byte, err...
  function appComponentsDashboardViewsPartialsCadvisorHtml (line 1134) | func appComponentsDashboardViewsPartialsCadvisorHtml() (*asset, error) {
  function appComponentsDashboardViewsPartialsGroupboxHtmlBytes (line 1167) | func appComponentsDashboardViewsPartialsGroupboxHtmlBytes() ([]byte, err...
  function appComponentsDashboardViewsPartialsGroupboxHtml (line 1171) | func appComponentsDashboardViewsPartialsGroupboxHtml() (*asset, error) {
  function appComponentsDashboardViewsPartialsGroupitemHtmlBytes (line 1226) | func appComponentsDashboardViewsPartialsGroupitemHtmlBytes() ([]byte, er...
  function appComponentsDashboardViewsPartialsGroupitemHtml (line 1230) | func appComponentsDashboardViewsPartialsGroupitemHtml() (*asset, error) {
  function appComponentsDashboardViewsPartialsPodtilesbynameHtmlBytes (line 1276) | func appComponentsDashboardViewsPartialsPodtilesbynameHtmlBytes() ([]byt...
  function appComponentsDashboardViewsPartialsPodtilesbynameHtml (line 1280) | func appComponentsDashboardViewsPartialsPodtilesbynameHtml() (*asset, er...
  function appComponentsDashboardViewsPartialsPodtilesbyserverHtmlBytes (line 1326) | func appComponentsDashboardViewsPartialsPodtilesbyserverHtmlBytes() ([]b...
  function appComponentsDashboardViewsPartialsPodtilesbyserverHtml (line 1330) | func appComponentsDashboardViewsPartialsPodtilesbyserverHtml() (*asset, ...
  function appComponentsDashboardViewsPodHtmlBytes (line 1462) | func appComponentsDashboardViewsPodHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsPodHtml (line 1466) | func appComponentsDashboardViewsPodHtml() (*asset, error) {
  function appComponentsDashboardViewsReplicationHtmlBytes (line 1584) | func appComponentsDashboardViewsReplicationHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsReplicationHtml (line 1588) | func appComponentsDashboardViewsReplicationHtml() (*asset, error) {
  function appComponentsDashboardViewsServiceHtmlBytes (line 1726) | func appComponentsDashboardViewsServiceHtmlBytes() ([]byte, error) {
  function appComponentsDashboardViewsServiceHtml (line 1730) | func appComponentsDashboardViewsServiceHtml() (*asset, error) {
  function appIndexHtmlBytes (line 1801) | func appIndexHtmlBytes() ([]byte, error) {
  function appIndexHtml (line 1805) | func appIndexHtml() (*asset, error) {
  function appVendorAngularJsonHumanDistAngularJsonHumanCssBytes (line 1818) | func appVendorAngularJsonHumanDistAngularJsonHumanCssBytes() ([]byte, er...
  function appVendorAngularJsonHumanDistAngularJsonHumanCss (line 1822) | func appVendorAngularJsonHumanDistAngularJsonHumanCss() (*asset, error) {
  function appVendorAngularMaterialAngularMaterialCssBytes (line 1840) | func appVendorAngularMaterialAngularMaterialCssBytes() ([]byte, error) {
  function appVendorAngularMaterialAngularMaterialCss (line 1844) | func appVendorAngularMaterialAngularMaterialCss() (*asset, error) {
  function appVendorD3D3MinJsBytes (line 1861) | func appVendorD3D3MinJsBytes() ([]byte, error) {
  function appVendorD3D3MinJs (line 1865) | func appVendorD3D3MinJs() (*asset, error) {
  function appViewsPartials404HtmlBytes (line 1878) | func appViewsPartials404HtmlBytes() ([]byte, error) {
  function appViewsPartials404Html (line 1882) | func appViewsPartials404Html() (*asset, error) {
  function appViewsPartialsKubernetesUiMenuTmplHtmlBytes (line 1909) | func appViewsPartialsKubernetesUiMenuTmplHtmlBytes() ([]byte, error) {
  function appViewsPartialsKubernetesUiMenuTmplHtml (line 1913) | func appViewsPartialsKubernetesUiMenuTmplHtml() (*asset, error) {
  function appViewsPartialsMdTableTmplHtmlBytes (line 1973) | func appViewsPartialsMdTableTmplHtmlBytes() ([]byte, error) {
  function appViewsPartialsMdTableTmplHtml (line 1977) | func appViewsPartialsMdTableTmplHtml() (*asset, error) {
  function appViewsPartialsMenuToggleTmplHtmlBytes (line 2000) | func appViewsPartialsMenuToggleTmplHtmlBytes() ([]byte, error) {
  function appViewsPartialsMenuToggleTmplHtml (line 2004) | func appViewsPartialsMenuToggleTmplHtml() (*asset, error) {
  function Asset (line 2018) | func Asset(name string) ([]byte, error) {
  function MustAsset (line 2032) | func MustAsset(name string) []byte {
  function AssetInfo (line 2044) | func AssetInfo(name string) (os.FileInfo, error) {
  function AssetNames (line 2057) | func AssetNames() []string {
  function AssetDir (line 2132) | func AssetDir(name string) ([]string, error) {
  type bintree (line 2154) | type bintree struct
  function RestoreAsset (line 2253) | func RestoreAsset(dir, name string) error {
  function RestoreAssets (line 2278) | func RestoreAssets(dir, name string) error {
  function _filePath (line 2294) | func _filePath(dir, name string) string {

FILE: master/components/dashboard/js/modules/controllers/cAdvisorController.js
  function getColorForIndex (line 67) | function getColorForIndex(i, percentage) {
  function getMaxColorForIndex (line 79) | function getMaxColorForIndex(i, percentage) {
  function maxMemCpuInfo (line 91) | function maxMemCpuInfo(mId, mem, cpu, fsDataArray) {
  function transformMemCpuInfo (line 135) | function transformMemCpuInfo(mem, cpu, fsDataArray, maxData, hostName, n...

FILE: master/components/dashboard/js/modules/controllers/groupController.js
  function getDefaultGroupByOptions (line 196) | function getDefaultGroupByOptions() { return [{name: 'Type', value: 'typ...
  function buildGroupByOptions (line 198) | function buildGroupByOptions() {

FILE: master/components/dashboard/js/modules/controllers/listEventsController.js
  function handleError (line 36) | function handleError(data, status, headers, config) {
  function getData (line 43) | function getData() {

FILE: master/components/dashboard/js/modules/controllers/listMinionsController.js
  function handleError (line 34) | function handleError(data, status, headers, config) {
  function getData (line 41) | function getData() {

FILE: master/components/dashboard/js/modules/controllers/listPodsController.js
  function handleError (line 45) | function handleError(data, status, headers, config) {
  function getPodName (line 50) | function getPodName(pod) { return _.has(pod.metadata.labels, 'name') ? p...
  function getData (line 54) | function getData() {

FILE: master/components/dashboard/js/modules/controllers/listReplicationControllersController.js
  function handleError (line 43) | function handleError(data, status, headers, config) {
  function getData (line 50) | function getData() {

FILE: master/components/dashboard/js/modules/controllers/replicationController.js
  function ReplicationController (line 5) | function ReplicationController() {

FILE: master/components/dashboard/js/modules/controllers/serviceController.js
  function ServiceController (line 6) | function ServiceController() {

FILE: master/components/dashboard/js/modules/directives/d3MinionBarGauge.js
  function initOrUpdate (line 33) | function initOrUpdate(newVals, oldVals) {
  function init (line 46) | function init(options) {
  function setup (line 52) | function setup(data, w, h) {
  function update (line 95) | function update(_oldData, _newData) {
  function animate (line 107) | function animate(data) { generateArcs(null, data); }
  function setData (line 109) | function setData(data) {
  function generateArcs (line 153) | function generateArcs(_svg, data) {
  function arcTween (line 219) | function arcTween(b, thickness, ir) {
  function maxArc (line 226) | function maxArc(thickness, ir) {
  function drawLabels (line 233) | function drawLabels(chart, data, ir, thickness) {
  function buildLegend (line 250) | function buildLegend(chart, data) {
  function getRadiusRing (line 299) | function getRadiusRing(ir, i) { return ir - (i * 20); }
  function getArc (line 301) | function getArc(thickness, ir) {
  function getBackgroundArc (line 310) | function getBackgroundArc(thickness, ir) {

FILE: master/components/dashboard/js/modules/services/d3.js
  function onScriptLoad (line 8) | function onScriptLoad() {

FILE: master/components/dashboard/js/modules/services/podsMock.js
  function PodDataService (line 13) | function PodDataService($q) {

FILE: master/components/dashboard/js/modules/services/replicationControllersMock.js
  function ReplicationControllerDataService (line 14) | function ReplicationControllerDataService($q) {

FILE: master/components/dashboard/js/modules/services/servicesMock.js
  function ServiceDataService (line 13) | function ServiceDataService($q) {

FILE: master/gulpfile.js
  function stringSrc (line 149) | function stringSrc(filename, string) {
  function handleError (line 159) | function handleError(err) {

FILE: master/js/app.init.js
  function onLocationChange (line 46) | function onLocationChange() {

FILE: master/shared/js/modules/controllers/home-page.js
  function shouldLockOpen (line 42) | function shouldLockOpen() {
  function toggleKubernetesUiMenu (line 46) | function toggleKubernetesUiMenu() {
  function closeMenu (line 50) | function closeMenu() {
  function openMenu (line 56) | function openMenu() {
  function path (line 63) | function path() {
  function goHome (line 67) | function goHome($event) {
  function openPage (line 72) | function openPage() {
  function isSelected (line 77) | function isSelected(page) {
  function isSectionSelected (line 81) | function isSectionSelected(section) {
  function isOpen (line 97) | function isOpen(section) {
  function toggleOpen (line 101) | function toggleOpen(section) {

FILE: master/shared/js/modules/services/cAdvisor.js
  function getMachineInfo (line 15) | function getMachineInfo(minionIp) {
  function getContainerInfo (line 28) | function getContainerInfo(minionIp, containerId) {
  function humanize (line 89) | function humanize(num, size, units) {
  function humanizeIEC (line 98) | function humanizeIEC(num) {
  function humanizeMetric (line 104) | function humanizeMetric(num) {
  function hasResource (line 109) | function hasResource(stats, resource) { return stats.stats.length > 0 &&...
  function getInterval (line 112) | function getInterval(current, previous) {
  function parseCpu (line 120) | function parseCpu(machineInfo, containerInfo) {
  function parseFilesystems (line 142) | function parseFilesystems(machineInfo, containerInfo) {
  function parseMemory (line 171) | function parseMemory(machineInfo, containerInfo) {

FILE: server/kube-ui.go
  function main (line 36) | func main() {

FILE: third_party/ui/bower_components/angular-animate/angular-animate.js
  function extractElementNode (line 462) | function extractElementNode(element) {
  function prepareElement (line 471) | function prepareElement(element) {
  function stripCommentsFromElement (line 475) | function stripCommentsFromElement(element) {
  function isMatchingElement (line 479) | function isMatchingElement(elm1, elm2) {
  function classBasedAnimationsBlocked (line 523) | function classBasedAnimationsBlocked(element, setter) {
  function runAnimationPostDigest (line 533) | function runAnimationPostDigest(fn) {
  function parseAnimateOptions (line 546) | function parseAnimateOptions(options) {
  function resolveElementClasses (line 558) | function resolveElementClasses(element, cache, runningAnimations) {
  function lookup (line 602) | function lookup(name) {
  function animationRunner (line 632) | function animationRunner(element, animationEvent, className, options) {
  function performAnimation (line 1282) | function performAnimation(animationEvent, className, element, parentElem...
  function cancelChildAnimations (line 1499) | function cancelChildAnimations(element) {
  function cleanup (line 1517) | function cleanup(element, className) {
  function animationsDisabled (line 1539) | function animationsDisabled(element, parentElement) {
  function clearCacheAfterReflow (line 1632) | function clearCacheAfterReflow() {
  function afterReflow (line 1642) | function afterReflow(element, callback) {
  function animationCloseHandler (line 1661) | function animationCloseHandler(element, totalTime) {
  function closeAllAnimations (line 1685) | function closeAllAnimations(elements) {
  function getElementAnimationDetails (line 1696) | function getElementAnimationDetails(element, cacheKey) {
  function parseMaxTime (line 1740) | function parseMaxTime(str) {
  function getCacheKey (line 1751) | function getCacheKey(element) {
  function animateSetup (line 1761) | function animateSetup(animationEvent, element, className, styles) {
  function animateRun (line 1824) | function animateRun(animationEvent, element, className, activeAnimationC...
  function blockTransitions (line 1979) | function blockTransitions(node, bool) {
  function blockAnimations (line 1983) | function blockAnimations(node, bool) {
  function animateBefore (line 1987) | function animateBefore(animationEvent, element, className, styles) {
  function animateAfter (line 1995) | function animateAfter(animationEvent, element, className, afterAnimation...
  function animate (line 2004) | function animate(animationEvent, element, className, animationComplete, ...
  function animateClose (line 2033) | function animateClose(element, className) {
  function suffixClasses (line 2123) | function suffixClasses(classes, suffix) {

FILE: third_party/ui/bower_components/angular-aria/angular-aria.js
  function $AriaProvider (line 81) | function $AriaProvider() {
  function shouldAttachAttr (line 197) | function shouldAttachAttr(attr, normalizedAttr, elem) {
  function shouldAttachRole (line 201) | function shouldAttachRole(role, elem) {
  function getShape (line 205) | function getShape(attr, elem) {
  function ngAriaWatchModelValue (line 223) | function ngAriaWatchModelValue() {
  function getRadioReaction (line 227) | function getRadioReaction() {
  function ngAriaCheckboxReaction (line 242) | function ngAriaCheckboxReaction(newVal) {
  function isNodeOneOf (line 327) | function isNodeOneOf(elem, nodeTypeArray) {
  function callback (line 346) | function callback() {

FILE: third_party/ui/bower_components/angular-cookies/angular-cookies.js
  function push (line 84) | function push() {

FILE: third_party/ui/bower_components/angular-css/angular-css.js
  function $directiveAddEventListener (line 60) | function $directiveAddEventListener(event, directive, scope) {
  function $routeEventListener (line 70) | function $routeEventListener(event, current, prev) {
  function $stateEventListener (line 86) | function $stateEventListener(event, current, params, prev) {
  function mapBreakpointToMedia (line 102) | function mapBreakpointToMedia(stylesheet) {
  function parse (line 114) | function parse(obj) {
  function bustCache (line 169) | function bustCache(stylesheet) {
  function filterBy (line 183) | function filterBy(array, prop) {
  function addViaMediaQuery (line 195) | function addViaMediaQuery(stylesheet) {
  function removeViaMediaQuery (line 228) | function removeViaMediaQuery(stylesheet) {
  function isMediaQuery (line 243) | function isMediaQuery(stylesheet) {

FILE: third_party/ui/bower_components/angular-filter/dist/angular-filter.js
  function toArray (line 30) | function toArray(object) {
  function isNull (line 41) | function isNull(value) {
  function objectContains (line 52) | function objectContains(partial, object) {
  function hasApproxPattern (line 68) | function hasApproxPattern(word, pattern) {
  function getFirstMatches (line 89) | function getFirstMatches(array, n, expression) {
  function convertToDecimal (line 114) | function convertToDecimal(num, decimal, $math){
  function deepKeys (line 128) | function deepKeys(obj, stack, parent) {
  function isScope (line 153) | function isScope(obj) {
  function isGreaterThanFilter (line 245) | function isGreaterThanFilter() {
  function isGreaterThanOrEqualToFilter (line 251) | function isGreaterThanOrEqualToFilter() {
  function isLessThanFilter (line 257) | function isLessThanFilter() {
  function isLessThanOrEqualToFilter (line 263) | function isLessThanOrEqualToFilter() {
  function isEqualToFilter (line 269) | function isEqualToFilter() {
  function isNotEqualToFilter (line 275) | function isNotEqualToFilter() {
  function isIdenticalToFilter (line 281) | function isIdenticalToFilter() {
  function isNotIdenticalToFilter (line 287) | function isNotIdenticalToFilter() {
  function containsFilter (line 458) | function containsFilter( $parse ) {
  function flatten (line 695) | function flatten(array, i) {
  function _hasApproximateKey (line 788) | function _hasApproximateKey(object, search) {
  function _groupBy (line 841) | function _groupBy(collection, getter) {
  function uniqFilter (line 1180) | function uniqFilter($parse) {
  function some (line 1273) | function some(el, col) {
  function indexByMax (line 1404) | function indexByMax(array, exp) {
  function indexByMin (line 1438) | function indexByMin(array, exp) {
  function removeDiacritics (line 1698) | function removeDiacritics (str) {
  function strRepeat (line 1783) | function strRepeat(str, n, sep) {
  function getHashKey (line 2069) | function getHashKey(fName, args) {
  function removeCache (line 2082) | function removeCache(event) {
  function cleanStateless (line 2095) | function cleanStateless() {
  function addListener (line 2110) | function addListener(scope, hashKey) {
  function $$isMemoized (line 2126) | function $$isMemoized(filterName, args) {
  function $$memoize (line 2141) | function $$memoize(filterName, args, scope, result) {

FILE: third_party/ui/bower_components/angular-material/angular-material.js
  function MdCoreConfigure (line 26) | function MdCoreConfigure($provide, $mdThemingProvider) {
  function rAFDecorator (line 38) | function rAFDecorator( $delegate ) {
  function MdConstantFactory (line 83) | function MdConstantFactory($$rAF, $sniffer) {
  function Iterator (line 167) | function Iterator(items, reloop) {
  function mdMediaFactory (line 393) | function mdMediaFactory($mdConstant, $rootScope, $window) {
  function getNode (line 510) | function getNode(el) {
  function finished (line 574) | function finished(ev) {
  function AriaService (line 780) | function AriaService($$rAF, $log, $window) {
  function runHandlers (line 906) | function runHandlers(handlerEvent, event) {
  function gestureStart (line 918) | function gestureStart(ev) {
  function gestureMove (line 935) | function gestureMove(ev) {
  function gestureEnd (line 942) | function gestureEnd(ev) {
  function typesMatch (line 955) | function typesMatch(ev, pointer) {
  function getEventPoint (line 959) | function getEventPoint(ev) {
  function updatePointerState (line 966) | function updatePointerState(ev, pointer) {
  function makeStartPointer (line 986) | function makeStartPointer(ev) {
  function addHandler (line 1135) | function addHandler(name, definition) {
  function register (line 1142) | function register(element, handlerName, options) {
  function GestureHandler (line 1153) | function GestureHandler(name) {
  function onDestroy (line 1214) | function onDestroy() {
  function jQueryDispatchEvent (line 1221) | function jQueryDispatchEvent(srcEvent, eventType, eventPointer) {
  function nativeDispatchEvent (line 1247) | function nativeDispatchEvent(srcEvent, eventType, eventPointer) {
  function mdCompilerService (line 1287) | function mdCompilerService($q, $http, $injector, $compile, $controller, ...
  function InterimElementProvider (line 1456) | function InterimElementProvider() {
  function ComponentRegistry (line 1870) | function ComponentRegistry($log, $q) {
  function InkRippleDirective (line 1992) | function InkRippleDirective($mdInkRipple) {
  function InkRippleService (line 2006) | function InkRippleService($window, $timeout) {
  function attrNoDirective (line 2391) | function attrNoDirective() {
  function ThemingProvider (line 2873) | function ThemingProvider($mdColorPalette) {
  function ThemingDirective (line 3117) | function ThemingDirective($mdTheming, $interpolate, $log) {
  function ThemableDirective (line 3139) | function ThemableDirective($mdTheming) {
  function parseRules (line 3144) | function parseRules(theme, colorType, rules) {
  function generateThemes (line 3190) | function generateThemes($injector) {
  function checkValidPalette (line 3313) | function checkValidPalette(theme, colorType) {
  function colorToRgbaArray (line 3325) | function colorToRgbaArray(clr) {
  function rgba (line 3347) | function rgba(rgbArray, opacity) {
  function BackdropDirective (line 3413) | function BackdropDirective($mdTheming) {
  function MdBottomSheetDirective (line 3441) | function MdBottomSheetDirective() {
  function MdBottomSheetProvider (line 3542) | function MdBottomSheetProvider($$interimElementProvider) {
  function mdCardDirective (line 3731) | function mdCardDirective($mdTheming) {
  function MdButtonDirective (line 3799) | function MdButtonDirective($mdInkRipple, $mdTheming, $mdAria) {
  function MdCheckboxDirective (line 3900) | function MdCheckboxDirective(inputDirective, $mdInkRipple, $mdAria, $mdC...
  function mdContentDirective (line 4027) | function mdContentDirective($mdTheming) {
  function iosScrollFix (line 4048) | function iosScrollFix(node) {
  function MdDialogDirective (line 4089) | function MdDialogDirective($$rAF, $mdTheming) {
  function MdDialogProvider (line 4403) | function MdDialogProvider($$interimElementProvider) {
  function MdDividerController (line 4665) | function MdDividerController(){}
  function MdDividerDirective (line 4685) | function MdDividerDirective($mdTheming) {
  function GridListDirective (line 4799) | function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $md...
  function GridListController (line 5031) | function GridListController($timeout) {
  function GridLayoutFactory (line 5087) | function GridLayoutFactory($mdUtil) {
  function GridTileDirective (line 5341) | function GridTileDirective($mdMedia) {
  function GridTileCaptionDirective (line 5371) | function GridTileCaptionDirective() {
  function mdIconDirective (line 5430) | function mdIconDirective($mdIcon, $mdTheming, $mdAria ) {
  function MdIconProvider (line 5681) | function MdIconProvider() { }
  function ConfigurationItem (line 5750) | function ConfigurationItem(url, iconSize) {
  function MdIconService (line 5795) | function MdIconService(config, $http, $q, $log, $templateCache) {
  function mdInputContainerDirective (line 6015) | function mdInputContainerDirective($mdTheming, $parse) {
  function labelDirective (line 6052) | function labelDirective() {
  function inputTextareaDirective (line 6113) | function inputTextareaDirective($mdUtil, $window) {
  function mdMaxlengthDirective (line 6235) | function mdMaxlengthDirective($animate) {
  function placeholderDirective (line 6287) | function placeholderDirective() {
  function mdListDirective (line 6358) | function mdListDirective() {
  function mdItemDirective (line 6389) | function mdItemDirective() {
  function MdProgressCircularDirective (line 6448) | function MdProgressCircularDirective($$rAF, $mdConstant, $mdTheming) {
  function MdProgressLinearDirective (line 6579) | function MdProgressLinearDirective($$rAF, $mdConstant, $mdTheming) {
  function makeTransform (line 6649) | function makeTransform(value){
  function mdRadioGroupDirective (line 6719) | function mdRadioGroupDirective($mdUtil, $mdConstant, $mdTheming) {
  function mdRadioButtonDirective (line 6874) | function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) {
  function SelectDirective (line 7030) | function SelectDirective($mdSelect, $mdUtil, $mdTheming, $interpolate, $...
  function SelectMenuDirective (line 7175) | function SelectMenuDirective($parse, $mdUtil, $mdTheming) {
  function OptionDirective (line 7376) | function OptionDirective($mdInkRipple, $mdUtil) {
  function OptgroupDirective (line 7451) | function OptgroupDirective() {
  function SelectProvider (line 7466) | function SelectProvider($$interimElementProvider) {
  function nodesToArray (line 7787) | function nodesToArray(nodes) {
  function SidenavService (line 7855) | function SidenavService($mdComponentRegistry, $q) {
  function SidenavDirective (line 7943) | function SidenavDirective($timeout, $animate, $parse, $mdMedia, $mdConst...
  function SidenavController (line 8094) | function SidenavController($scope, $element, $attrs, $mdComponentRegistr...
  function SliderDirective (line 8171) | function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, ...
  function MdSticky (line 8557) | function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) {
  function MdSubheaderDirective (line 8879) | function MdSubheaderDirective($mdSticky, $compile, $mdTheming) {
  function postLink (line 8978) | function postLink(scope, element, attr) {
  function MdSwitch (line 9053) | function MdSwitch(mdCheckboxDirective, $mdTheming, $mdUtil, $document, $...
  function mdTextFloatDirective (line 9226) | function mdTextFloatDirective($mdTheming, $mdUtil, $parse, $log) {
  function mdInputGroupDirective (line 9265) | function mdInputGroupDirective($log) {
  function mdInputDirective (line 9284) | function mdInputDirective($mdUtil, $log) {
  function MdToastDirective (line 9369) | function MdToastDirective() {
  function MdToastProvider (line 9524) | function MdToastProvider($$interimElementProvider) {
  function mdToolbarDirective (line 9677) | function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming) {
  function MdTooltipDirective (line 9813) | function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil...
  function MdAutocompleteCtrl (line 10026) | function MdAutocompleteCtrl ($scope, $element, $timeout, $q, $mdUtil, $m...
  function MdAutocomplete (line 10243) | function MdAutocomplete () {
  function MdHighlightCtrl (line 10315) | function MdHighlightCtrl ($scope, $element, $interpolate) {
  function MdHighlight (line 10368) | function MdHighlight () {
  function MdAutocompleteListItem (line 10389) | function MdAutocompleteListItem ($compile, $mdUtil) {
  function MdTabInkDirective (line 10424) | function MdTabInkDirective($$rAF) {
  function TabPaginationDirective (line 10484) | function TabPaginationDirective($mdConstant, $window, $$rAF, $$q, $timeo...
  function TabItemController (line 10744) | function TabItemController($scope, $element, $attrs, $compile, $animate,...
  function MdTabDirective (line 10909) | function MdTabDirective($mdInkRipple, $compile, $mdUtil, $mdConstant, $t...
  function MdTabsController (line 11102) | function MdTabsController($scope, $element, $mdUtil, $timeout) {
  function TabsDirective (line 11337) | function TabsDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/autocomplete/autocomplete.js
  function MdAutocompleteCtrl (line 31) | function MdAutocompleteCtrl ($scope, $element, $timeout, $q, $mdUtil, $m...
  function MdAutocomplete (line 242) | function MdAutocomplete () {
  function MdHighlightCtrl (line 308) | function MdHighlightCtrl ($scope, $element, $interpolate) {
  function MdHighlight (line 355) | function MdHighlight () {
  function MdAutocompleteListItem (line 370) | function MdAutocompleteListItem ($compile, $mdUtil) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/backdrop/backdrop.js
  function BackdropDirective (line 36) | function BackdropDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/bottomSheet/bottomSheet.js
  function MdBottomSheetDirective (line 26) | function MdBottomSheetDirective() {
  function MdBottomSheetProvider (line 127) | function MdBottomSheetProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/button/button.js
  function MdButtonDirective (line 60) | function MdButtonDirective($mdInkRipple, $mdTheming, $mdAria) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/card/card.js
  function mdCardDirective (line 51) | function mdCardDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/checkbox/checkbox.js
  function MdCheckboxDirective (line 61) | function MdCheckboxDirective(inputDirective, $mdInkRipple, $mdAria, $mdC...

FILE: third_party/ui/bower_components/angular-material/modules/closure/content/content.js
  function mdContentDirective (line 47) | function mdContentDirective($mdTheming) {
  function iosScrollFix (line 68) | function iosScrollFix(node) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/core/core.js
  function MdCoreConfigure (line 21) | function MdCoreConfigure($provide, $mdThemingProvider) {
  function rAFDecorator (line 33) | function rAFDecorator( $delegate ) {
  function MdConstantFactory (line 72) | function MdConstantFactory($$rAF, $sniffer) {
  function Iterator (line 150) | function Iterator(items, reloop) {
  function mdMediaFactory (line 370) | function mdMediaFactory($mdConstant, $rootScope, $window) {
  function getNode (line 481) | function getNode(el) {
  function finished (line 545) | function finished(ev) {
  function AriaService (line 745) | function AriaService($$rAF, $log, $window) {
  function mdCompilerService (line 825) | function mdCompilerService($q, $http, $injector, $compile, $controller, ...
  function runHandlers (line 1004) | function runHandlers(handlerEvent, event) {
  function gestureStart (line 1016) | function gestureStart(ev) {
  function gestureMove (line 1033) | function gestureMove(ev) {
  function gestureEnd (line 1040) | function gestureEnd(ev) {
  function typesMatch (line 1053) | function typesMatch(ev, pointer) {
  function getEventPoint (line 1057) | function getEventPoint(ev) {
  function updatePointerState (line 1064) | function updatePointerState(ev, pointer) {
  function makeStartPointer (line 1084) | function makeStartPointer(ev) {
  function addHandler (line 1233) | function addHandler(name, definition) {
  function register (line 1240) | function register(element, handlerName, options) {
  function GestureHandler (line 1251) | function GestureHandler(name) {
  function onDestroy (line 1312) | function onDestroy() {
  function jQueryDispatchEvent (line 1319) | function jQueryDispatchEvent(srcEvent, eventType, eventPointer) {
  function nativeDispatchEvent (line 1345) | function nativeDispatchEvent(srcEvent, eventType, eventPointer) {
  function InterimElementProvider (line 1403) | function InterimElementProvider() {
  function ComponentRegistry (line 1811) | function ComponentRegistry($log, $q) {
  function InkRippleDirective (line 1927) | function InkRippleDirective($mdInkRipple) {
  function InkRippleService (line 1941) | function InkRippleService($window, $timeout) {
  function attrNoDirective (line 2326) | function attrNoDirective() {
  function ThemingProvider (line 2796) | function ThemingProvider($mdColorPalette) {
  function ThemingDirective (line 3040) | function ThemingDirective($mdTheming, $interpolate, $log) {
  function ThemableDirective (line 3062) | function ThemableDirective($mdTheming) {
  function parseRules (line 3067) | function parseRules(theme, colorType, rules) {
  function generateThemes (line 3113) | function generateThemes($injector) {
  function checkValidPalette (line 3236) | function checkValidPalette(theme, colorType) {
  function colorToRgbaArray (line 3248) | function colorToRgbaArray(clr) {
  function rgba (line 3270) | function rgba(rgbArray, opacity) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/dialog/dialog.js
  function MdDialogDirective (line 24) | function MdDialogDirective($$rAF, $mdTheming) {
  function MdDialogProvider (line 338) | function MdDialogProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/divider/divider.js
  function MdDividerController (line 22) | function MdDividerController(){}
  function MdDividerDirective (line 42) | function MdDividerDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/gridList/gridList.js
  function GridListDirective (line 107) | function GridListDirective($interpolate, $mdConstant, $mdGridLayout, $md...
  function GridListController (line 339) | function GridListController($timeout) {
  function GridLayoutFactory (line 395) | function GridLayoutFactory($mdUtil) {
  function GridTileDirective (line 649) | function GridTileDirective($mdMedia) {
  function GridTileCaptionDirective (line 679) | function GridTileCaptionDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/closure/icon/icon.js
  function mdIconDirective (line 53) | function mdIconDirective($mdIcon, $mdTheming, $mdAria ) {
  function MdIconProvider (line 298) | function MdIconProvider() { }
  function ConfigurationItem (line 367) | function ConfigurationItem(url, iconSize) {
  function MdIconService (line 412) | function MdIconService(config, $http, $q, $log, $templateCache) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/input/input.js
  function mdInputContainerDirective (line 56) | function mdInputContainerDirective($mdTheming, $parse) {
  function labelDirective (line 93) | function labelDirective() {
  function inputTextareaDirective (line 154) | function inputTextareaDirective($mdUtil, $window) {
  function mdMaxlengthDirective (line 276) | function mdMaxlengthDirective($animate) {
  function placeholderDirective (line 328) | function placeholderDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/closure/list/list.js
  function mdListDirective (line 55) | function mdListDirective() {
  function mdItemDirective (line 86) | function mdItemDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/closure/menu/menu.js
  function MenuProvider (line 15) | function MenuProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/progressCircular/progressCircular.js
  function MdProgressCircularDirective (line 50) | function MdProgressCircularDirective($$rAF, $mdConstant, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/progressLinear/progressLinear.js
  function MdProgressLinearDirective (line 53) | function MdProgressLinearDirective($$rAF, $mdConstant, $mdTheming) {
  function makeTransform (line 123) | function makeTransform(value){

FILE: third_party/ui/bower_components/angular-material/modules/closure/radioButton/radioButton.js
  function mdRadioGroupDirective (line 64) | function mdRadioGroupDirective($mdUtil, $mdConstant, $mdTheming) {
  function mdRadioButtonDirective (line 219) | function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/select/select.js
  function SelectDirective (line 78) | function SelectDirective($mdSelect, $mdUtil, $mdTheming, $interpolate, $...
  function SelectMenuDirective (line 223) | function SelectMenuDirective($parse, $mdUtil, $mdTheming) {
  function OptionDirective (line 424) | function OptionDirective($mdInkRipple, $mdUtil) {
  function OptgroupDirective (line 499) | function OptgroupDirective() {
  function SelectProvider (line 514) | function SelectProvider($$interimElementProvider) {
  function nodesToArray (line 835) | function nodesToArray(nodes) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/sidenav/sidenav.js
  function SidenavService (line 62) | function SidenavService($mdComponentRegistry, $q) {
  function SidenavDirective (line 150) | function SidenavDirective($timeout, $animate, $parse, $mdMedia, $mdConst...
  function SidenavController (line 301) | function SidenavController($scope, $element, $attrs, $mdComponentRegistr...

FILE: third_party/ui/bower_components/angular-material/modules/closure/slider/slider.js
  function SliderDirective (line 59) | function SliderDirective($$rAF, $window, $mdAria, $mdUtil, $mdConstant, ...

FILE: third_party/ui/bower_components/angular-material/modules/closure/sticky/sticky.js
  function MdSticky (line 43) | function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/subheader/subheader.js
  function MdSubheaderDirective (line 53) | function MdSubheaderDirective($mdSticky, $compile, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/swipe/swipe.js
  function postLink (line 64) | function postLink(scope, element, attr) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/switch/switch.js
  function MdSwitch (line 62) | function MdSwitch(mdCheckboxDirective, $mdTheming, $mdUtil, $document, $...

FILE: third_party/ui/bower_components/angular-material/modules/closure/tabs/tabs.js
  function MdTabInkDirective (line 54) | function MdTabInkDirective($$rAF) {
  function TabPaginationDirective (line 108) | function TabPaginationDirective($mdConstant, $window, $$rAF, $$q, $timeo...
  function TabItemController (line 362) | function TabItemController($scope, $element, $attrs, $compile, $animate,...
  function MdTabDirective (line 521) | function MdTabDirective($mdInkRipple, $compile, $mdUtil, $mdConstant, $t...
  function MdTabsController (line 708) | function MdTabsController($scope, $element, $mdUtil, $timeout) {
  function TabsDirective (line 937) | function TabsDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/textField/textField.js
  function mdTextFloatDirective (line 26) | function mdTextFloatDirective($mdTheming, $mdUtil, $parse, $log) {
  function mdInputGroupDirective (line 65) | function mdInputGroupDirective($log) {
  function mdInputDirective (line 84) | function mdInputDirective($mdUtil, $log) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/toast/toast.js
  function MdToastDirective (line 26) | function MdToastDirective() {
  function MdToastProvider (line 181) | function MdToastProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/toolbar/toolbar.js
  function mdToolbarDirective (line 70) | function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/closure/tooltip/tooltip.js
  function MdTooltipDirective (line 46) | function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil...

FILE: third_party/ui/bower_components/angular-material/modules/js/autocomplete/autocomplete.js
  function MdAutocompleteCtrl (line 28) | function MdAutocompleteCtrl ($scope, $element, $timeout, $q, $mdUtil, $m...
  function MdAutocomplete (line 239) | function MdAutocomplete () {
  function MdHighlightCtrl (line 305) | function MdHighlightCtrl ($scope, $element, $interpolate) {
  function MdHighlight (line 352) | function MdHighlight () {
  function MdAutocompleteListItem (line 367) | function MdAutocompleteListItem ($compile, $mdUtil) {

FILE: third_party/ui/bower_components/angular-material/modules/js/backdrop/backdrop.js
  function BackdropDirective (line 34) | function BackdropDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/bottomSheet/bottomSheet.js
  function MdBottomSheetDirective (line 23) | function MdBottomSheetDirective() {
  function MdBottomSheetProvider (line 119) | function MdBottomSheetProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/js/button/button.js
  function MdButtonDirective (line 53) | function MdButtonDirective($mdInkRipple, $mdTheming, $mdAria) {

FILE: third_party/ui/bower_components/angular-material/modules/js/card/card.js
  function mdCardDirective (line 49) | function mdCardDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/checkbox/checkbox.js
  function MdCheckboxDirective (line 55) | function MdCheckboxDirective(inputDirective, $mdInkRipple, $mdAria, $mdC...

FILE: third_party/ui/bower_components/angular-material/modules/js/content/content.js
  function mdContentDirective (line 44) | function mdContentDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/core/core.js
  function MdCoreInitialize (line 18) | function MdCoreInitialize() {
  function MdCoreConfigure (line 29) | function MdCoreConfigure($provide, $mdThemingProvider) {
  function MdConstantFactory (line 81) | function MdConstantFactory($$rAF, $sniffer) {
  function Iterator (line 149) | function Iterator(items, reloop) {
  function mdMediaFactory (line 366) | function mdMediaFactory($mdConstant, $mdUtil, $rootScope, $window) {
  function attachDragBehavior (line 596) | function attachDragBehavior(scope, element, options) {
  function cacheFactory (line 700) | function cacheFactory(id, options) {
  function AriaService (line 765) | function AriaService($$rAF, $log, $window) {
  function mdCompilerService (line 841) | function mdCompilerService($q, $http, $injector, $compile, $controller, ...
  function InterimElementProvider (line 1005) | function InterimElementProvider() {
  function ComponentRegistry (line 1387) | function ComponentRegistry($log, $q) {
  function InkRippleDirective (line 1503) | function InkRippleDirective($mdInkRipple) {
  function InkRippleService (line 1517) | function InkRippleService($window, $timeout) {
  function attrNoDirective (line 1886) | function attrNoDirective() {
  function ThemingProvider (line 2339) | function ThemingProvider($mdColorPalette) {
  function ThemingDirective (line 2563) | function ThemingDirective($interpolate) {
  function ThemableDirective (line 2582) | function ThemableDirective($mdTheming) {
  function parseRules (line 2587) | function parseRules(theme, colorType, rules) {
  function generateThemes (line 2633) | function generateThemes($injector) {
  function checkValidPalette (line 2739) | function checkValidPalette(theme, colorType) {
  function colorToRgbaArray (line 2751) | function colorToRgbaArray(clr) {
  function rgba (line 2773) | function rgba(rgbArray, opacity) {

FILE: third_party/ui/bower_components/angular-material/modules/js/dialog/dialog.js
  function MdDialogDirective (line 21) | function MdDialogDirective($$rAF, $mdTheming) {
  function MdDialogProvider (line 260) | function MdDialogProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/js/divider/divider.js
  function MdDividerController (line 20) | function MdDividerController(){}
  function MdDividerDirective (line 40) | function MdDividerDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/icon/icon.js
  function mdIconDirective (line 38) | function mdIconDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/js/input/input.js
  function mdInputContainerDirective (line 51) | function mdInputContainerDirective($mdTheming) {
  function labelDirective (line 87) | function labelDirective() {
  function inputTextareaDirective (line 171) | function inputTextareaDirective($mdUtil, $window, $compile, $animate) {
  function mdMaxlengthDirective (line 284) | function mdMaxlengthDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/js/list/list.js
  function mdListDirective (line 53) | function mdListDirective() {
  function mdItemDirective (line 84) | function mdItemDirective() {

FILE: third_party/ui/bower_components/angular-material/modules/js/menu/menu.js
  function MenuProvider (line 13) | function MenuProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/js/progressCircular/progressCircular.js
  function MdProgressCircularDirective (line 48) | function MdProgressCircularDirective($$rAF, $mdConstant, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/progressLinear/progressLinear.js
  function MdProgressLinearDirective (line 51) | function MdProgressLinearDirective($$rAF, $mdConstant, $mdTheming) {
  function makeTransform (line 121) | function makeTransform(value){

FILE: third_party/ui/bower_components/angular-material/modules/js/radioButton/radioButton.js
  function mdRadioGroupDirective (line 58) | function mdRadioGroupDirective($mdUtil, $mdConstant, $mdTheming) {
  function mdRadioButtonDirective (line 216) | function mdRadioButtonDirective($mdAria, $mdUtil, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/sidenav/sidenav.js
  function SidenavService (line 49) | function SidenavService($mdComponentRegistry, $q) {
  function SidenavDirective (line 134) | function SidenavDirective($timeout, $animate, $parse, $mdMedia, $mdConst...
  function SidenavController (line 284) | function SidenavController($scope, $element, $attrs, $mdComponentRegistr...

FILE: third_party/ui/bower_components/angular-material/modules/js/slider/slider.js
  function SliderDirective (line 53) | function SliderDirective($mdTheming) {
  function SliderController (line 100) | function SliderController($scope, $element, $attrs, $$rAF, $window, $mdA...

FILE: third_party/ui/bower_components/angular-material/modules/js/sticky/sticky.js
  function MdSticky (line 40) | function MdSticky($document, $mdConstant, $compile, $$rAF, $mdUtil) {

FILE: third_party/ui/bower_components/angular-material/modules/js/subheader/subheader.js
  function MdSubheaderDirective (line 50) | function MdSubheaderDirective($mdSticky, $compile, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/swipe/swipe.js
  function MdSwipeFactory (line 30) | function MdSwipeFactory() {
  function MdSwipeLeftDirective (line 141) | function MdSwipeLeftDirective($parse, $mdSwipe) {
  function MdSwipeRightDirective (line 175) | function MdSwipeRightDirective($parse, $mdSwipe) {
  function swipePostLink (line 191) | function swipePostLink($parse, $mdSwipe, name ) {

FILE: third_party/ui/bower_components/angular-material/modules/js/switch/switch.js
  function MdSwitch (line 55) | function MdSwitch(mdCheckboxDirective, $mdTheming, $mdUtil, $document, $...

FILE: third_party/ui/bower_components/angular-material/modules/js/tabs/tabs.js
  function MdTabInkDirective (line 49) | function MdTabInkDirective($$rAF) {
  function TabPaginationDirective (line 103) | function TabPaginationDirective($mdConstant, $window, $$rAF, $$q, $timeo...
  function TabItemController (line 352) | function TabItemController($scope, $element, $attrs, $compile, $animate,...
  function MdTabDirective (line 492) | function MdTabDirective($mdInkRipple, $compile, $mdUtil, $mdConstant, $t...
  function MdTabsController (line 689) | function MdTabsController($scope, $element, $mdUtil, $timeout) {
  function TabsDirective (line 918) | function TabsDirective($mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/textField/textField.js
  function mdTextFloatDirective (line 24) | function mdTextFloatDirective($mdTheming, $mdUtil, $parse, $log) {
  function mdInputGroupDirective (line 63) | function mdInputGroupDirective($log) {
  function mdInputDirective (line 82) | function mdInputDirective($mdUtil, $log) {

FILE: third_party/ui/bower_components/angular-material/modules/js/toast/toast.js
  function MdToastDirective (line 24) | function MdToastDirective() {
  function MdToastProvider (line 161) | function MdToastProvider($$interimElementProvider) {

FILE: third_party/ui/bower_components/angular-material/modules/js/toolbar/toolbar.js
  function mdToolbarDirective (line 67) | function mdToolbarDirective($$rAF, $mdConstant, $mdUtil, $mdTheming) {

FILE: third_party/ui/bower_components/angular-material/modules/js/tooltip/tooltip.js
  function MdTooltipDirective (line 43) | function MdTooltipDirective($timeout, $window, $$rAF, $document, $mdUtil...

FILE: third_party/ui/bower_components/angular-mocks/angular-mocks.js
  function concat (line 306) | function concat(array1, array2, index) {
  function tick (line 481) | function tick() {
  function jsonStringToDate (line 577) | function jsonStringToDate(string) {
  function int (line 597) | function int(str) {
  function padNumber (line 601) | function padNumber(num, digits, trim) {
  function serialize (line 854) | function serialize(object) {
  function serializeScope (line 887) | function serializeScope(scope, offset) {
  function createHttpBackendMock (line 1139) | function createHttpBackendMock($rootScope, $timeout, $delegate, $browser) {
  function MockHttpExpectation (line 1615) | function MockHttpExpectation(method, url, data, headers) {
  function createMockXhr (line 1656) | function createMockXhr() {
  function MockXhr (line 1660) | function MockXhr() {
  function formatPendingTasksAsString (line 1749) | function formatPendingTasksAsString(tasks) {
  function countChildScopes (line 2153) | function countChildScopes() {
  function countWatchers (line 2185) | function countWatchers() {
  function workFn (line 2286) | function workFn() {
  function workFn (line 2410) | function workFn() {
  function workFn (line 2455) | function workFn() {

FILE: third_party/ui/bower_components/angular-route/angular-route.js
  function $RouteProvider (line 42) | function $RouteProvider() {
  function $RouteParamsProvider (line 702) | function $RouteParamsProvider() {
  function ngViewFactory (line 884) | function ngViewFactory($route, $anchorScroll, $animate) {
  function ngViewFillContentFactory (line 961) | function ngViewFillContentFactory($compile, $controller, $route) {

FILE: third_party/ui/bower_components/angular/angular.js
  function minErr (line 38) | function minErr(module, ErrorConstructor) {
  function isArrayLike (line 258) | function isArrayLike(obj) {
  function forEach (line 308) | function forEach(obj, iterator, context) {
  function sortedKeys (line 339) | function sortedKeys(obj) {
  function forEachSorted (line 343) | function forEachSorted(obj, iterator, context) {
  function reverseParams (line 357) | function reverseParams(iteratorFn) {
  function nextUid (line 371) | function nextUid() {
  function setHashKey (line 381) | function setHashKey(obj, h) {
  function extend (line 405) | function extend(dst) {
  function int (line 423) | function int(str) {
  function inherit (line 428) | function inherit(parent, extra) {
  function noop (line 448) | function noop() {}
  function identity (line 470) | function identity($) {return $;}
  function valueFn (line 474) | function valueFn(value) {return function() {return value;};}
  function isUndefined (line 488) | function isUndefined(value) {return typeof value === 'undefined';}
  function isDefined (line 503) | function isDefined(value) {return typeof value !== 'undefined';}
  function isObject (line 519) | function isObject(value) {
  function isString (line 537) | function isString(value) {return typeof value === 'string';}
  function isNumber (line 558) | function isNumber(value) {return typeof value === 'number';}
  function isDate (line 573) | function isDate(value) {
  function isFunction (line 604) | function isFunction(value) {return typeof value === 'function';}
  function isRegExp (line 614) | function isRegExp(value) {
  function isWindow (line 626) | function isWindow(obj) {
  function isScope (line 631) | function isScope(obj) {
  function isFile (line 636) | function isFile(obj) {
  function isFormData (line 641) | function isFormData(obj) {
  function isBlob (line 646) | function isBlob(obj) {
  function isBoolean (line 651) | function isBoolean(value) {
  function isPromiseLike (line 656) | function isPromiseLike(obj) {
  function isElement (line 686) | function isElement(node) {
  function makeMap (line 696) | function makeMap(str) {
  function nodeName_ (line 704) | function nodeName_(element) {
  function includes (line 708) | function includes(array, obj) {
  function arrayRemove (line 712) | function arrayRemove(array, value) {
  function copy (line 777) | function copy(source, destination, stackSource, stackDest) {
  function shallowCopy (line 855) | function shallowCopy(src, dst) {
  function equals (line 905) | function equals(o1, o2) {
  function concat (line 968) | function concat(array1, array2, index) {
  function sliceArgs (line 972) | function sliceArgs(args, startIndex) {
  function bind (line 996) | function bind(self, fn) {
  function toJsonReplacer (line 1017) | function toJsonReplacer(key, value) {
  function toJson (line 1049) | function toJson(obj, pretty) {
  function fromJson (line 1070) | function fromJson(json) {
  function startingTag (line 1080) | function startingTag(element) {
  function tryDecodeURIComponent (line 1110) | function tryDecodeURIComponent(value) {
  function parseKeyValue (line 1123) | function parseKeyValue(/**string*/keyValue) {
  function toKeyValue (line 1144) | function toKeyValue(obj) {
  function encodeUriSegment (line 1172) | function encodeUriSegment(val) {
  function encodeUriQuery (line 1191) | function encodeUriQuery(val, pctEncodeSpaces) {
  function getNgAttribute (line 1203) | function getNgAttribute(element, ngAttr) {
  function angularInit (line 1342) | function angularInit(element, bootstrap) {
  function bootstrap (line 1421) | function bootstrap(element, modules, config) {
  function reloadWithDebugInfo (line 1499) | function reloadWithDebugInfo() {
  function getTestability (line 1512) | function getTestability(rootElement) {
  function snake_case (line 1522) | function snake_case(name, separator) {
  function bindJQuery (line 1531) | function bindJQuery() {
  function assertArg (line 1585) | function assertArg(arg, name, reason) {
  function assertArgFn (line 1592) | function assertArgFn(arg, name, acceptArrayAnnotation) {
  function assertNotHasOwnProperty (line 1607) | function assertNotHasOwnProperty(name, context) {
  function getter (line 1621) | function getter(obj, path, bindFnToScope) {
  function getBlockNodes (line 1645) | function getBlockNodes(nodes) {
  function createMap (line 1673) | function createMap() {
  function setupModuleLoader (line 1692) | function setupModuleLoader(window) {
  function serializeObject (line 2002) | function serializeObject(obj) {
  function toDebugString (line 2017) | function toDebugString(obj) {
  function publishExternalAPI (line 2139) | function publishExternalAPI(angular) {
  function jqNextId (line 2402) | function jqNextId() { return ++jqId; }
  function camelCase (line 2415) | function camelCase(name) {
  function jqLiteIsTextNode (line 2443) | function jqLiteIsTextNode(html) {
  function jqLiteAcceptsData (line 2447) | function jqLiteAcceptsData(node) {
  function jqLiteBuildFragment (line 2454) | function jqLiteBuildFragment(html, context) {
  function jqLiteParseHTML (line 2491) | function jqLiteParseHTML(html, context) {
  function JQLite (line 2507) | function JQLite(element) {
  function jqLiteClone (line 2532) | function jqLiteClone(element) {
  function jqLiteDealoc (line 2536) | function jqLiteDealoc(element, onlyDescendants) {
  function jqLiteOff (line 2547) | function jqLiteOff(element, type, fn, unsupported) {
  function jqLiteRemoveData (line 2579) | function jqLiteRemoveData(element, name) {
  function jqLiteExpandoStore (line 2601) | function jqLiteExpandoStore(element, createIfNecessary) {
  function jqLiteData (line 2614) | function jqLiteData(element, key, value) {
  function jqLiteHasClass (line 2640) | function jqLiteHasClass(element, selector) {
  function jqLiteRemoveClass (line 2646) | function jqLiteRemoveClass(element, cssClasses) {
  function jqLiteAddClass (line 2658) | function jqLiteAddClass(element, cssClasses) {
  function jqLiteAddNodes (line 2675) | function jqLiteAddNodes(root, elements) {
  function jqLiteController (line 2701) | function jqLiteController(element, name) {
  function jqLiteInheritedData (line 2705) | function jqLiteInheritedData(element, name, value) {
  function jqLiteEmpty (line 2725) | function jqLiteEmpty(element) {
  function jqLiteRemove (line 2732) | function jqLiteRemove(element, keepData) {
  function jqLiteDocumentLoaded (line 2739) | function jqLiteDocumentLoaded(action, win) {
  function trigger (line 2759) | function trigger() {
  function getBooleanAttrName (line 2813) | function getBooleanAttrName(element, name) {
  function getAliasedAttrName (line 2821) | function getAliasedAttrName(element, name) {
  function getText (line 2909) | function getText(element, value) {
  function createEventHandler (line 2994) | function createEventHandler(element, events) {
  function $$jqLiteProvider (line 3289) | function $$jqLiteProvider() {
  function hashKey (line 3320) | function hashKey(obj, nextUidFn) {
  function HashMap (line 3343) | function HashMap(array, isolatedUid) {
  function anonFn (line 3449) | function anonFn(fn) {
  function annotate (line 3460) | function annotate(fn, strictDi, name) {
  function createInjector (line 3994) | function createInjector(modulesToLoad, strictDi) {
  function $AnchorScrollProvider (line 4238) | function $AnchorScrollProvider() {
  function runAnimationPostDigest (line 4581) | function runAnimationPostDigest(fn) {
  function resolveElementClasses (line 4596) | function resolveElementClasses(element, classes) {
  function cachedClassManipulation (line 4622) | function cachedClassManipulation(cache, classes, op) {
  function asyncPromise (line 4629) | function asyncPromise() {
  function applyStyles (line 4641) | function applyStyles(element, options) {
  function $$AsyncCallbackProvider (line 4867) | function $$AsyncCallbackProvider() {
  function Browser (line 4900) | function Browser(window, document, $log, $sniffer) {
  function $BrowserProvider (line 5341) | function $BrowserProvider() {
  function $CacheFactoryProvider (line 5429) | function $CacheFactoryProvider() {
  function $TemplateCacheProvider (line 5742) | function $TemplateCacheProvider() {
  function $CompileProvider (line 6459) | function $CompileProvider($provide, $$sanitizeUriProvider) {
  function directiveNormalize (line 8271) | function directiveNormalize(name) {
  function nodesetLinkingFn (line 8320) | function nodesetLinkingFn(
  function directiveLinkingFn (line 8327) | function directiveLinkingFn(
  function tokenDifference (line 8335) | function tokenDifference(str1, str2) {
  function removeComments (line 8351) | function removeComments(jqNodes) {
  function $ControllerProvider (line 8380) | function $ControllerProvider() {
  function $DocumentProvider (line 8547) | function $DocumentProvider() {
  function $ExceptionHandlerProvider (line 8593) | function $ExceptionHandlerProvider() {
  function defaultHttpResponseTransform (line 8610) | function defaultHttpResponseTransform(data, headers) {
  function isJsonLike (line 8626) | function isJsonLike(str) {
  function parseHeaders (line 8637) | function parseHeaders(headers) {
  function headersGetter (line 8668) | function headersGetter(headers) {
  function transformData (line 8698) | function transformData(data, headers, status, fns) {
  function isSuccess (line 8710) | function isSuccess(status) {
  function $HttpProvider (line 8721) | function $HttpProvider() {
  function createXhr (line 9757) | function createXhr() {
  function $HttpBackendProvider (line 9777) | function $HttpBackendProvider() {
  function createHttpBackend (line 9783) | function createHttpBackend($browser, createXhr, $browserDefer, callbacks...
  function $InterpolateProvider (line 9967) | function $InterpolateProvider() {
  function $IntervalProvider (line 10277) | function $IntervalProvider() {
  function $LocaleProvider (line 10472) | function $LocaleProvider() {
  function encodePath (line 10553) | function encodePath(path) {
  function parseAbsoluteUrl (line 10564) | function parseAbsoluteUrl(absoluteUrl, locationObj) {
  function parseAppUrl (line 10573) | function parseAppUrl(relativeUrl, locationObj) {
  function beginsWith (line 10598) | function beginsWith(begin, whole) {
  function stripHash (line 10605) | function stripHash(url) {
  function trimEmptyHash (line 10610) | function trimEmptyHash(url) {
  function stripFile (line 10615) | function stripFile(url) {
  function serverBase (line 10620) | function serverBase(url) {
  function LocationHtml5Url (line 10633) | function LocationHtml5Url(appBase, basePrefix) {
  function LocationHashbangUrl (line 10712) | function LocationHashbangUrl(appBase, hashPrefix) {
  function LocationHashbangInHtml5Url (line 10816) | function LocationHashbangInHtml5Url(appBase, hashPrefix) {
  function locationGetter (line 11172) | function locationGetter(property) {
  function locationGetterSetter (line 11179) | function locationGetterSetter(property, preprocess) {
  function $LocationProvider (line 11224) | function $LocationProvider() {
  function $LogProvider (line 11549) | function $LogProvider() {
  function ensureSafeMemberName (line 11705) | function ensureSafeMemberName(name, fullExpression) {
  function ensureSafeObject (line 11716) | function ensureSafeObject(obj, fullExpression) {
  function ensureSafeFunction (line 11747) | function ensureSafeFunction(obj, fullExpression) {
  function isConstant (line 11993) | function isConstant(exp) {
  function setter (line 12484) | function setter(obj, locals, path, setValue, fullExp) {
  function isPossiblyDangerousMemberName (line 12507) | function isPossiblyDangerousMemberName(name) {
  function cspSafeGetterFn (line 12516) | function cspSafeGetterFn(key0, key1, key2, key3, key4, fullExp, expensiv...
  function getterFnWithEnsureSafeObject (line 12557) | function getterFnWithEnsureSafeObject(fn, fullExpression) {
  function getterFn (line 12563) | function getterFn(path, options, fullExp) {
  function getValueOf (line 12632) | function getValueOf(value) {
  function $ParseProvider (line 12687) | function $ParseProvider() {
  function $QProvider (line 13148) | function $QProvider() {
  function $$QProvider (line 13157) | function $$QProvider() {
  function qFactory (line 13173) | function qFactory(nextTick, exceptionHandler) {
  function $$RAFProvider (line 13504) | function $$RAFProvider() { //rAF
  function $RootScopeProvider (line 13601) | function $RootScopeProvider() {
  function $$SanitizeUriProvider (line 14872) | function $$SanitizeUriProvider() {
  function adjustMatcher (line 14963) | function adjustMatcher(matcher) {
  function adjustMatchers (line 14991) | function adjustMatchers(matchers) {
  function $SceDelegateProvider (line 15069) | function $SceDelegateProvider() {
  function $SceProvider (line 15599) | function $SceProvider() {
  function $SnifferProvider (line 16011) | function $SnifferProvider() {
  function $TemplateRequestProvider (line 16103) | function $TemplateRequestProvider() {
  function $$TestabilityProvider (line 16145) | function $$TestabilityProvider() {
  function $TimeoutProvider (line 16260) | function $TimeoutProvider() {
  function urlResolve (line 16406) | function urlResolve(url) {
  function urlIsSameOrigin (line 16440) | function urlIsSameOrigin(requestUrl) {
  function $WindowProvider (line 16487) | function $WindowProvider() {
  function $FilterProvider (line 16584) | function $FilterProvider($provide) {
  function filterFilter (line 16761) | function filterFilter() {
  function createPredicateFn (line 16790) | function createPredicateFn(expression, comparator, matchAgainstAnyProp) {
  function deepCompare (line 16819) | function deepCompare(actual, expected, comparator, matchAgainstAnyProp, ...
  function currencyFilter (line 16921) | function currencyFilter($locale) {
  function numberFilter (line 16992) | function numberFilter($locale) {
  function formatNumber (line 17005) | function formatNumber(number, pattern, groupSep, decimalSep, fractionSiz...
  function padNumber (line 17086) | function padNumber(num, digits, trim) {
  function dateGetter (line 17100) | function dateGetter(name, size, offset, trim) {
  function dateStrGetter (line 17111) | function dateStrGetter(name, shortForm) {
  function timeZoneGetter (line 17120) | function timeZoneGetter(date) {
  function getFirstThursdayOfYear (line 17130) | function getFirstThursdayOfYear(year) {
  function getThursdayThisWeek (line 17138) | function getThursdayThisWeek(datetime) {
  function weekGetter (line 17144) | function weekGetter(size) {
  function ampmGetter (line 17156) | function ampmGetter(date, formats) {
  function eraGetter (line 17160) | function eraGetter(date, formats) {
  function longEraGetter (line 17164) | function longEraGetter(date, formats) {
  function dateFilter (line 17296) | function dateFilter($locale) {
  function jsonFilter (line 17402) | function jsonFilter() {
  function limitToFilter (line 17519) | function limitToFilter() {
  function orderByFilter (line 17692) | function orderByFilter($parse) {
  function ngDirective (line 17780) | function ngDirective(directive) {
  function nullFormRenameControl (line 18265) | function nullFormRenameControl(control, name) {
  function FormController (line 18312) | function FormController(element, attrs, $scope, $animate, $interpolate) {
  function stringBasedInputType (line 19734) | function stringBasedInputType(ctrl) {
  function textInputType (line 19740) | function textInputType(scope, element, attr, ctrl, $sniffer, $browser) {
  function baseInputType (line 19745) | function baseInputType(scope, element, attr, ctrl, $sniffer, $browser) {
  function weekParser (line 19831) | function weekParser(isoWeek, existingDate) {
  function createDateParser (line 19863) | function createDateParser(regexp, mapping) {
  function createDateInputType (line 19913) | function createDateInputType(type, regexp, parseDate, format) {
  function badInputChecker (line 19986) | function badInputChecker(scope, element, attr, ctrl) {
  function numberInputType (line 20001) | function numberInputType(scope, element, attr, ctrl, $sniffer, $browser) {
  function urlInputType (line 20055) | function urlInputType(scope, element, attr, ctrl, $sniffer, $browser) {
  function emailInputType (line 20068) | function emailInputType(scope, element, attr, ctrl, $sniffer, $browser) {
  function radioInputType (line 20081) | function radioInputType(scope, element, attr, ctrl) {
  function parseConstantExpr (line 20103) | function parseConstantExpr($parse, context, name, expression, fallback) {
  function checkboxInputType (line 20116) | function checkboxInputType(scope, element, attr, ctrl, $sniffer, $browse...
  function classDirective (line 20677) | function classDirective(name, selector) {
  function processParseErrors (line 23155) | function processParseErrors() {
  function processSyncValidators (line 23175) | function processSyncValidators() {
  function processAsyncValidators (line 23191) | function processAsyncValidators() {
  function setValidity (line 23217) | function setValidity(name, isValid) {
  function validationDone (line 23223) | function validationDone(allValid) {
  function writeToModelIfNeeded (line 23302) | function writeToModelIfNeeded() {
  function addSetValidityMethod (line 23829) | function addSetValidityMethod(context) {
  function isObjectEmpty (line 23924) | function isObjectEmpty(obj) {
  function updateElementText (line 24188) | function updateElementText(newText) {
  function setupAsSingle (line 25728) | function setupAsSingle(scope, selectElement, ngModelCtrl, selectCtrl) {
  function setupAsMultiple (line 25753) | function setupAsMultiple(scope, selectElement, ctrl) {
  function setupAsOptions (line 25784) | function setupAsOptions(scope, selectElement, ctrl) {

FILE: third_party/ui/bower_components/d3/d3.js
  function d3_documentElement (line 9) | function d3_documentElement(node) {
  function d3_window (line 12) | function d3_window(node) {
  function d3_ascending (line 46) | function d3_ascending(a, b) {
  function d3_number (line 109) | function d3_number(x) {
  function d3_numeric (line 112) | function d3_numeric(x) {
  function d3_bisector (line 171) | function d3_bisector(compare) {
  function d3_zipLength (line 232) | function d3_zipLength(d) {
  function d3_range_integerScale (line 284) | function d3_range_integerScale(x) {
  function d3_class (line 289) | function d3_class(ctor, properties) {
  function d3_Map (line 311) | function d3_Map() {
  function d3_map_escape (line 344) | function d3_map_escape(key) {
  function d3_map_unescape (line 347) | function d3_map_unescape(key) {
  function d3_map_has (line 350) | function d3_map_has(key) {
  function d3_map_remove (line 353) | function d3_map_remove(key) {
  function d3_map_keys (line 356) | function d3_map_keys() {
  function d3_map_size (line 361) | function d3_map_size() {
  function d3_map_empty (line 366) | function d3_map_empty() {
  function map (line 372) | function map(mapType, array, depth) {
  function entries (line 396) | function entries(map, depth) {
  function d3_Set (line 438) | function d3_Set() {
  function d3_identity (line 456) | function d3_identity(d) {
  function d3_rebind (line 464) | function d3_rebind(target, source, method) {
  function d3_vendorSymbol (line 470) | function d3_vendorSymbol(object, name) {
  function d3_noop (line 479) | function d3_noop() {}
  function d3_dispatch (line 485) | function d3_dispatch() {}
  function d3_dispatch_event (line 500) | function d3_dispatch_event(dispatch) {
  function d3_eventPreventDefault (line 523) | function d3_eventPreventDefault() {
  function d3_eventSource (line 526) | function d3_eventSource() {
  function d3_eventDispatch (line 531) | function d3_eventDispatch(target) {
  function d3_selection (line 557) | function d3_selection(groups) {
  function d3_selection_selector (line 600) | function d3_selection_selector(selector) {
  function d3_selection_selectorAll (line 618) | function d3_selection_selectorAll(selector) {
  function d3_selection_attr (line 656) | function d3_selection_attr(name, value) {
  function d3_collapse (line 680) | function d3_collapse(s) {
  function d3_selection_classedRe (line 700) | function d3_selection_classedRe(name) {
  function d3_selection_classes (line 703) | function d3_selection_classes(name) {
  function d3_selection_classed (line 706) | function d3_selection_classed(name, value) {
  function d3_selection_classedName (line 719) | function d3_selection_classedName(name) {
  function d3_selection_style (line 748) | function d3_selection_style(name, value, priority) {
  function d3_selection_property (line 769) | function d3_selection_property(name, value) {
  function d3_selection_creator (line 808) | function d3_selection_creator(name) {
  function d3_selectionRemove (line 828) | function d3_selectionRemove() {
  function bind (line 843) | function bind(group, groupData) {
  function d3_selection_dataNode (line 911) | function d3_selection_dataNode(data) {
  function d3_selection_filter (line 933) | function d3_selection_filter(selector) {
  function d3_selection_sortComparator (line 954) | function d3_selection_sortComparator(comparator) {
  function d3_selection_each (line 965) | function d3_selection_each(groups, callback) {
  function d3_selection_enter (line 997) | function d3_selection_enter(selection) {
  function d3_selection_enterInsertBefore (line 1030) | function d3_selection_enterInsertBefore(enter) {
  function d3_selection_on (line 1075) | function d3_selection_on(type, listener, capture) {
  function d3_selection_onListener (line 1114) | function d3_selection_onListener(listener, argumentz) {
  function d3_selection_onFilter (line 1126) | function d3_selection_onFilter(listener, argumentz) {
  function d3_event_dragSuppress (line 1136) | function d3_event_dragSuppress(node) {
  function d3_mousePoint (line 1164) | function d3_mousePoint(container, e) {
  function drag (line 1203) | function drag() {
  function dragstart (line 1206) | function dragstart(id, position, subject, move, end) {
  function d3_behavior_dragTouchId (line 1250) | function d3_behavior_dragTouchId() {
  function d3_sgn (line 1262) | function d3_sgn(x) {
  function d3_cross2d (line 1265) | function d3_cross2d(a, b, c) {
  function d3_acos (line 1268) | function d3_acos(x) {
  function d3_asin (line 1271) | function d3_asin(x) {
  function d3_sinh (line 1274) | function d3_sinh(x) {
  function d3_cosh (line 1277) | function d3_cosh(x) {
  function d3_tanh (line 1280) | function d3_tanh(x) {
  function d3_haversin (line 1283) | function d3_haversin(x) {
  function interpolate (line 1290) | function interpolate(t) {
  function zoom (line 1316) | function zoom(g) {
  function location (line 1416) | function location(p) {
  function point (line 1419) | function point(l) {
  function scaleTo (line 1422) | function scaleTo(s) {
  function translateTo (line 1425) | function translateTo(p, l) {
  function zoomTo (line 1430) | function zoomTo(that, p, l, k) {
  function rescale (line 1442) | function rescale() {
  function zoomstarted (line 1450) | function zoomstarted(dispatch) {
  function zoomed (line 1455) | function zoomed(dispatch) {
  function zoomended (line 1463) | function zoomended(dispatch) {
  function mousedowned (line 1469) | function mousedowned() {
  function touchstarted (line 1484) | function touchstarted() {
  function mousewheeled (line 1554) | function mousewheeled() {
  function dblclicked (line 1567) | function dblclicked() {
  function d3_color (line 1575) | function d3_color() {}
  function d3_hsl (line 1580) | function d3_hsl(h, s, l) {
  function d3_hsl_rgb (line 1595) | function d3_hsl_rgb(h, s, l) {
  function d3_hcl (line 1615) | function d3_hcl(h, c, l) {
  function d3_hcl_lab (line 1628) | function d3_hcl_lab(h, c, l) {
  function d3_lab (line 1634) | function d3_lab(l, a, b) {
  function d3_lab_rgb (line 1649) | function d3_lab_rgb(l, a, b) {
  function d3_lab_hcl (line 1656) | function d3_lab_hcl(l, a, b) {
  function d3_lab_xyz (line 1659) | function d3_lab_xyz(x) {
  function d3_xyz_lab (line 1662) | function d3_xyz_lab(x) {
  function d3_xyz_rgb (line 1665) | function d3_xyz_rgb(r) {
  function d3_rgb (line 1669) | function d3_rgb(r, g, b) {
  function d3_rgbNumber (line 1672) | function d3_rgbNumber(value) {
  function d3_rgbString (line 1675) | function d3_rgbString(value) {
  function d3_rgb_hex (line 1698) | function d3_rgb_hex(v) {
  function d3_rgb_parse (line 1701) | function d3_rgb_parse(format, rgb, hsl) {
  function d3_rgb_hsl (line 1737) | function d3_rgb_hsl(r, g, b) {
  function d3_rgb_lab (line 1749) | function d3_rgb_lab(r, g, b) {
  function d3_rgb_xyz (line 1756) | function d3_rgb_xyz(r) {
  function d3_rgb_parseNumber (line 1759) | function d3_rgb_parseNumber(c) {
  function d3_functor (line 1916) | function d3_functor(v) {
  function d3_xhrType (line 1923) | function d3_xhrType(response) {
  function d3_xhr (line 1930) | function d3_xhr(url, mimeType, response, callback) {
  function d3_xhr_fixCallback (line 2005) | function d3_xhr_fixCallback(callback) {
  function d3_xhrHasResponse (line 2010) | function d3_xhrHasResponse(request) {
  function dsv (line 2016) | function dsv(url, row, callback) {
  function response (line 2024) | function response(request) {
  function typedResponse (line 2027) | function typedResponse(f) {
  function token (line 2046) | function token() {
  function formatRow (line 2108) | function formatRow(row) {
  function formatValue (line 2111) | function formatValue(text) {
  function d3_timer_step (line 2139) | function d3_timer_step() {
  function d3_timer_mark (line 2156) | function d3_timer_mark() {
  function d3_timer_sweep (line 2165) | function d3_timer_sweep() {
  function d3_format_precision (line 2178) | function d3_format_precision(x, p) {
  function d3_formatPrefix (line 2195) | function d3_formatPrefix(d, i) {
  function d3_locale_numberFormat (line 2206) | function d3_locale_numberFormat(locale) {
  function d3_format_typeDefault (line 2327) | function d3_format_typeDefault(x) {
  function d3_date_utc (line 2331) | function d3_date_utc() {
  function d3_time_interval (line 2397) | function d3_time_interval(local, step, number) {
  function d3_time_interval_utc (line 2445) | function d3_time_interval_utc(method) {
  function d3_locale_timeFormat (line 2505) | function d3_locale_timeFormat(locale) {
  function d3_time_formatPad (line 2725) | function d3_time_formatPad(value, fill, width) {
  function d3_time_formatRe (line 2729) | function d3_time_formatRe(names) {
  function d3_time_formatLookup (line 2732) | function d3_time_formatLookup(names) {
  function d3_time_parseWeekdayNumber (line 2737) | function d3_time_parseWeekdayNumber(date, string, i) {
  function d3_time_parseWeekNumberSunday (line 2742) | function d3_time_parseWeekNumberSunday(date, string, i) {
  function d3_time_parseWeekNumberMonday (line 2747) | function d3_time_parseWeekNumberMonday(date, string, i) {
  function d3_time_parseFullYear (line 2752) | function d3_time_parseFullYear(date, string, i) {
  function d3_time_parseYear (line 2757) | function d3_time_parseYear(date, string, i) {
  function d3_time_parseZone (line 2762) | function d3_time_parseZone(date, string, i) {
  function d3_time_expandYear (line 2766) | function d3_time_expandYear(d) {
  function d3_time_parseMonthNumber (line 2769) | function d3_time_parseMonthNumber(date, string, i) {
  function d3_time_parseDay (line 2774) | function d3_time_parseDay(date, string, i) {
  function d3_time_parseDayOfYear (line 2779) | function d3_time_parseDayOfYear(date, string, i) {
  function d3_time_parseHour24 (line 2784) | function d3_time_parseHour24(date, string, i) {
  function d3_time_parseMinutes (line 2789) | function d3_time_parseMinutes(date, string, i) {
  function d3_time_parseSeconds (line 2794) | function d3_time_parseSeconds(date, string, i) {
  function d3_time_parseMilliseconds (line 2799) | function d3_time_parseMilliseconds(date, string, i) {
  function d3_time_zone (line 2804) | function d3_time_zone(d) {
  function d3_time_parseLiteralPercent (line 2808) | function d3_time_parseLiteralPercent(date, string, i) {
  function d3_time_formatMulti (line 2813) | function d3_time_formatMulti(formats) {
  function d3_adder (line 2844) | function d3_adder() {}
  function d3_adderSum (line 2861) | function d3_adderSum(a, b, o) {
  function d3_geo_streamGeometry (line 2872) | function d3_geo_streamGeometry(geometry, listener) {
  function d3_geo_streamLine (line 2917) | function d3_geo_streamLine(coordinates, listener, closed) {
  function d3_geo_streamPolygon (line 2923) | function d3_geo_streamPolygon(coordinates, listener) {
  function d3_geo_areaRingStart (line 2952) | function d3_geo_areaRingStart() {
  function d3_geo_cartesian (line 2970) | function d3_geo_cartesian(spherical) {
  function d3_geo_cartesianDot (line 2974) | function d3_geo_cartesianDot(a, b) {
  function d3_geo_cartesianCross (line 2977) | function d3_geo_cartesianCross(a, b) {
  function d3_geo_cartesianAdd (line 2980) | function d3_geo_cartesianAdd(a, b) {
  function d3_geo_cartesianScale (line 2985) | function d3_geo_cartesianScale(vector, k) {
  function d3_geo_cartesianNormalize (line 2988) | function d3_geo_cartesianNormalize(d) {
  function d3_geo_spherical (line 2994) | function d3_geo_spherical(cartesian) {
  function d3_geo_sphericalEqual (line 2997) | function d3_geo_sphericalEqual(a, b) {
  function point (line 3022) | function point(λ, φ) {
  function linePoint (line 3027) | function linePoint(λ, φ) {
  function lineStart (line 3067) | function lineStart() {
  function lineEnd (line 3070) | function lineEnd() {
  function ringPoint (line 3075) | function ringPoint(λ, φ) {
  function ringStart (line 3083) | function ringStart() {
  function ringEnd (line 3086) | function ringEnd() {
  function angle (line 3093) | function angle(λ0, λ1) {
  function compareRanges (line 3096) | function compareRanges(a, b) {
  function withinRange (line 3099) | function withinRange(x, range) {
  function d3_geo_centroidPoint (line 3153) | function d3_geo_centroidPoint(λ, φ) {
  function d3_geo_centroidPointXYZ (line 3158) | function d3_geo_centroidPointXYZ(x, y, z) {
  function d3_geo_centroidLineStart (line 3164) | function d3_geo_centroidLineStart() {
  function d3_geo_centroidLineEnd (line 3185) | function d3_geo_centroidLineEnd() {
  function d3_geo_centroidRingStart (line 3188) | function d3_geo_centroidRingStart() {
  function d3_geo_compose (line 3218) | function d3_geo_compose(a, b) {
  function d3_true (line 3227) | function d3_true() {
  function d3_geo_clipPolygon (line 3230) | function d3_geo_clipPolygon(segments, compare, clipStartInside, interpol...
  function d3_geo_clipPolygonLinkCircular (line 3289) | function d3_geo_clipPolygonLinkCircular(array) {
  function d3_geo_clipPolygonIntersection (line 3300) | function d3_geo_clipPolygonIntersection(point, points, other, entry) {
  function d3_geo_clip (line 3308) | function d3_geo_clip(pointVisible, clipLine, interpolate, clipStart) {
  function d3_geo_clipSegmentLength1 (line 3400) | function d3_geo_clipSegmentLength1(segment) {
  function d3_geo_clipBufferListener (line 3403) | function d3_geo_clipBufferListener() {
  function d3_geo_clipSort (line 3424) | function d3_geo_clipSort(a, b) {
  function d3_geo_clipAntimeridianLine (line 3428) | function d3_geo_clipAntimeridianLine(listener) {
  function d3_geo_clipAntimeridianIntersect (line 3467) | function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
  function d3_geo_clipAntimeridianInterpolate (line 3471) | function d3_geo_clipAntimeridianInterpolate(from, to, direction, listene...
  function d3_geo_pointInPolygon (line 3494) | function d3_geo_pointInPolygon(point, polygon) {
  function d3_geo_clipCircle (line 3523) | function d3_geo_clipCircle(radius) {
  function d3_geom_clipLine (line 3619) | function d3_geom_clipLine(x0, y0, x1, y1) {
  function d3_geo_clipExtent (line 3691) | function d3_geo_clipExtent(x0, y0, x1, y1) {
  function d3_geo_conic (line 3825) | function d3_geo_conic(projectAt) {
  function d3_geo_conicEqualArea (line 3833) | function d3_geo_conicEqualArea(φ0, φ1) {
  function albersUsa (line 3860) | function albersUsa(coordinates) {
  function d3_geo_pathAreaRingStart (line 3942) | function d3_geo_pathAreaRingStart() {
  function d3_geo_pathBoundsPoint (line 3964) | function d3_geo_pathBoundsPoint(x, y) {
  function d3_geo_pathBuffer (line 3970) | function d3_geo_pathBuffer() {
  function d3_geo_pathBufferCircle (line 4015) | function d3_geo_pathBufferCircle(radius) {
  function d3_geo_pathCentroidPoint (line 4031) | function d3_geo_pathCentroidPoint(x, y) {
  function d3_geo_pathCentroidLineStart (line 4036) | function d3_geo_pathCentroidLineStart() {
  function d3_geo_pathCentroidLineEnd (line 4050) | function d3_geo_pathCentroidLineEnd() {
  function d3_geo_pathCentroidRingStart (line 4053) | function d3_geo_pathCentroidRingStart() {
  function d3_geo_pathContext (line 4074) | function d3_geo_pathContext(context) {
  function d3_geo_resample (line 4114) | function d3_geo_resample(project) {
  function path (line 4194) | function path(object) {
  function reset (line 4233) | function reset() {
  function d3_geo_pathProjectStream (line 4239) | function d3_geo_pathProjectStream(project) {
  function d3_geo_transform (line 4256) | function d3_geo_transform(stream) {
  function d3_geo_transformPoint (line 4279) | function d3_geo_transformPoint(stream, point) {
  function d3_geo_projection (line 4301) | function d3_geo_projection(project) {
  function d3_geo_projectionMutator (line 4306) | function d3_geo_projectionMutator(projectAt) {
  function d3_geo_projectionRadians (line 4378) | function d3_geo_projectionRadians(stream) {
  function d3_geo_equirectangular (line 4383) | function d3_geo_equirectangular(λ, φ) {
  function forward (line 4391) | function forward(coordinates) {
  function d3_geo_identityRotation (line 4401) | function d3_geo_identityRotation(λ, φ) {
  function d3_geo_rotation (line 4405) | function d3_geo_rotation(δλ, δφ, δγ) {
  function d3_geo_forwardRotationλ (line 4408) | function d3_geo_forwardRotationλ(δλ) {
  function d3_geo_rotationλ (line 4413) | function d3_geo_rotationλ(δλ) {
  function d3_geo_rotationφγ (line 4418) | function d3_geo_rotationφγ(δφ, δγ) {
  function circle (line 4432) | function circle() {
  function d3_geo_circleInterpolate (line 4462) | function d3_geo_circleInterpolate(radius, precision) {
  function d3_geo_circleAngle (line 4479) | function d3_geo_circleAngle(cr, point) {
  function graticule (line 4492) | function graticule() {
  function lines (line 4498) | function lines() {
  function d3_geo_graticuleX (line 4564) | function d3_geo_graticuleX(y0, y1, dy) {
  function d3_geo_graticuleY (line 4572) | function d3_geo_graticuleY(x0, x1, dx) {
  function d3_source (line 4580) | function d3_source(d) {
  function d3_target (line 4583) | function d3_target(d) {
  function greatArc (line 4588) | function greatArc() {
  function d3_geo_interpolate (line 4615) | function d3_geo_interpolate(x0, y0, x1, y1) {
  function d3_geo_lengthLineStart (line 4640) | function d3_geo_lengthLineStart() {
  function d3_geo_azimuthal (line 4655) | function d3_geo_azimuthal(scale, angle) {
  function d3_geo_conicConformal (line 4681) | function d3_geo_conicConformal(φ0, φ1) {
  function d3_geo_conicEquidistant (line 4704) | function d3_geo_conicEquidistant(φ0, φ1) {
  function d3_geo_mercator (line 4726) | function d3_geo_mercator(λ, φ) {
  function d3_geo_mercatorProjection (line 4732) | function d3_geo_mercatorProjection(project) {
  function d3_geo_transverseMercator (line 4773) | function d3_geo_transverseMercator(λ, φ) {
  function d3_geom_pointX (line 4791) | function d3_geom_pointX(d) {
  function d3_geom_pointY (line 4794) | function d3_geom_pointY(d) {
  function hull (line 4800) | function hull(data) {
  function d3_geom_hullUpper (line 4822) | function d3_geom_hullUpper(points) {
  function d3_geom_hullOrder (line 4830) | function d3_geom_hullOrder(a, b) {
  function d3_geom_polygonInside (line 4884) | function d3_geom_polygonInside(p, a, b) {
  function d3_geom_polygonIntersect (line 4887) | function d3_geom_polygonIntersect(c, d, a, b) {
  function d3_geom_polygonClosed (line 4891) | function d3_geom_polygonClosed(coordinates) {
  function d3_geom_voronoiBeach (line 4896) | function d3_geom_voronoiBeach() {
  function d3_geom_voronoiCreateBeach (line 4900) | function d3_geom_voronoiCreateBeach(site) {
  function d3_geom_voronoiDetachBeach (line 4905) | function d3_geom_voronoiDetachBeach(beach) {
  function d3_geom_voronoiRemoveBeach (line 4911) | function d3_geom_voronoiRemoveBeach(beach) {
  function d3_geom_voronoiAddBeach (line 4947) | function d3_geom_voronoiAddBeach(site) {
  function d3_geom_voronoiLeftBreakPoint (line 5001) | function d3_geom_voronoiLeftBreakPoint(arc, directrix) {
  function d3_geom_voronoiRightBreakPoint (line 5013) | function d3_geom_voronoiRightBreakPoint(arc, directrix) {
  function d3_geom_voronoiCell (line 5019) | function d3_geom_voronoiCell(site) {
  function d3_geom_voronoiCloseCells (line 5032) | function d3_geom_voronoiCloseCells(extent) {
  function d3_geom_voronoiHalfEdgeOrder (line 5062) | function d3_geom_voronoiHalfEdgeOrder(a, b) {
  function d3_geom_voronoiCircle (line 5065) | function d3_geom_voronoiCircle() {
  function d3_geom_voronoiAttachCircle (line 5069) | function d3_geom_voronoiAttachCircle(arc) {
  function d3_geom_voronoiDetachCircle (line 5102) | function d3_geom_voronoiDetachCircle(arc) {
  function d3_geom_voronoiClipEdges (line 5112) | function d3_geom_voronoiClipEdges(extent) {
  function d3_geom_voronoiConnectEdge (line 5122) | function d3_geom_voronoiConnectEdge(edge, extent) {
  function d3_geom_voronoiEdge (line 5196) | function d3_geom_voronoiEdge(lSite, rSite) {
  function d3_geom_voronoiCreateEdge (line 5201) | function d3_geom_voronoiCreateEdge(lSite, rSite, va, vb) {
  function d3_geom_voronoiCreateBorderEdge (line 5210) | function d3_geom_voronoiCreateBorderEdge(lSite, va, vb) {
  function d3_geom_voronoiSetEdgeEnd (line 5217) | function d3_geom_voronoiSetEdgeEnd(edge, lSite, rSite, vertex) {
  function d3_geom_voronoiHalfEdge (line 5228) | function d3_geom_voronoiHalfEdge(edge, lSite, rSite) {
  function d3_geom_voronoiRedBlackTree (line 5242) | function d3_geom_voronoiRedBlackTree() {
  function d3_geom_voronoiRedBlackNode (line 5245) | function d3_geom_voronoiRedBlackNode(node) {
  function d3_geom_voronoiRedBlackRotateLeft (line 5408) | function d3_geom_voronoiRedBlackRotateLeft(tree, node) {
  function d3_geom_voronoiRedBlackRotateRight (line 5421) | function d3_geom_voronoiRedBlackRotateRight(tree, node) {
  function d3_geom_voronoiRedBlackFirst (line 5434) | function d3_geom_voronoiRedBlackFirst(node) {
  function d3_geom_voronoi (line 5438) | function d3_geom_voronoi(sites, bbox) {
  function d3_geom_voronoiVertexOrder (line 5467) | function d3_geom_voronoiVertexOrder(a, b) {
  function voronoi (line 5473) | function voronoi(data) {
  function sites (line 5484) | function sites(data) {
  function d3_geom_voronoiTriangleArea (line 5537) | function d3_geom_voronoiTriangleArea(a, b, c) {
  function quadtree (line 5555) | function quadtree(data) {
  function d3_geom_quadtreeCompatX (line 5650) | function d3_geom_quadtreeCompatX(d) {
  function d3_geom_quadtreeCompatY (line 5653) | function d3_geom_quadtreeCompatY(d) {
  function d3_geom_quadtreeNode (line 5656) | function d3_geom_quadtreeNode() {
  function d3_geom_quadtreeVisit (line 5665) | function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
  function d3_geom_quadtreeFind (line 5674) | function d3_geom_quadtreeFind(root, x, y, x0, y0, x3, y3) {
  function d3_interpolateRgb (line 5711) | function d3_interpolateRgb(a, b) {
  function d3_interpolateObject (line 5720) | function d3_interpolateObject(a, b) {
  function d3_interpolateNumber (line 5740) | function d3_interpolateNumber(a, b) {
  function d3_interpolateString (line 5747) | function d3_interpolateString(a, b) {
  function d3_interpolate (line 5781) | function d3_interpolate(a, b) {
  function d3_interpolateArray (line 5791) | function d3_interpolateArray(a, b) {
  function d3_ease_clamp (line 5842) | function d3_ease_clamp(f) {
  function d3_ease_reverse (line 5847) | function d3_ease_reverse(f) {
  function d3_ease_reflect (line 5852) | function d3_ease_reflect(f) {
  function d3_ease_quad (line 5857) | function d3_ease_quad(t) {
  function d3_ease_cubic (line 5860) | function d3_ease_cubic(t) {
  function d3_ease_cubicInOut (line 5863) | function d3_ease_cubicInOut(t) {
  function d3_ease_poly (line 5869) | function d3_ease_poly(e) {
  function d3_ease_sin (line 5874) | function d3_ease_sin(t) {
  function d3_ease_exp (line 5877) | function d3_ease_exp(t) {
  function d3_ease_circle (line 5880) | function d3_ease_circle(t) {
  function d3_ease_elastic (line 5883) | function d3_ease_elastic(a, p) {
  function d3_ease_back (line 5891) | function d3_ease_back(s) {
  function d3_ease_bounce (line 5897) | function d3_ease_bounce(t) {
  function d3_interpolateHcl (line 5901) | function d3_interpolateHcl(a, b) {
  function d3_interpolateHsl (line 5912) | function d3_interpolateHsl(a, b) {
  function d3_interpolateLab (line 5923) | function d3_interpolateLab(a, b) {
  function d3_interpolateRound (line 5932) | function d3_interpolateRound(a, b) {
  function d3_transform (line 5948) | function d3_transform(m) {
  function d3_transformDot (line 5964) | function d3_transformDot(a, b) {
  function d3_transformNormalize (line 5967) | function d3_transformNormalize(a) {
  function d3_transformCombine (line 5975) | function d3_transformCombine(a, b, k) {
  function d3_interpolateTransform (line 5989) | function d3_interpolateTransform(a, b) {
  function d3_uninterpolateNumber (line 6041) | function d3_uninterpolateNumber(a, b) {
  function d3_uninterpolateClamp (line 6047) | function d3_uninterpolateClamp(a, b) {
  function d3_layout_bundlePath (line 6061) | function d3_layout_bundlePath(link) {
  function d3_layout_bundleAncestors (line 6074) | function d3_layout_bundleAncestors(node) {
  function d3_layout_bundleLeastCommonAncestor (line 6084) | function d3_layout_bundleLeastCommonAncestor(a, b) {
  function relayout (line 6096) | function relayout() {
  function resort (line 6162) | function resort() {
  function repulse (line 6209) | function repulse(node) {
  function position (line 6381) | function position(dimension, size) {
  function dragmove (line 6410) | function dragmove(d) {
  function d3_layout_forceDragstart (line 6416) | function d3_layout_forceDragstart(d) {
  function d3_layout_forceDragend (line 6419) | function d3_layout_forceDragend(d) {
  function d3_layout_forceMouseover (line 6422) | function d3_layout_forceMouseover(d) {
  function d3_layout_forceMouseout (line 6426) | function d3_layout_forceMouseout(d) {
  function d3_layout_forceAccumulate (line 6429) | function d3_layout_forceAccumulate(quad, alpha, charges) {
  function hierarchy (line 6459) | function hierarchy(root) {
  function d3_layout_hierarchyRebind (line 6515) | function d3_layout_hierarchyRebind(object, hierarchy) {
  function d3_layout_hierarchyVisitBefore (line 6521) | function d3_layout_hierarchyVisitBefore(node, callback) {
  function d3_layout_hierarchyVisitAfter (line 6531) | function d3_layout_hierarchyVisitAfter(node, callback) {
  function d3_layout_hierarchyChildren (line 6544) | function d3_layout_hierarchyChildren(d) {
  function d3_layout_hierarchyValue (line 6547) | function d3_layout_hierarchyValue(d) {
  function d3_layout_hierarchySort (line 6550) | function d3_layout_hierarchySort(a, b) {
  function d3_layout_hierarchyLinks (line 6553) | function d3_layout_hierarchyLinks(nodes) {
  function position (line 6565) | function position(node, x, dx, dy) {
  function depth (line 6580) | function depth(node) {
  function partition (line 6588) | function partition(d, i) {
  function pie (line 6602) | function pie(data) {
  function stack (line 6652) | function stack(data, index) {
  function d3_layout_stackX (line 6707) | function d3_layout_stackX(d) {
  function d3_layout_stackY (line 6710) | function d3_layout_stackY(d) {
  function d3_layout_stackOut (line 6713) | function d3_layout_stackOut(d, y0, y) {
  function d3_layout_stackOrderDefault (line 6780) | function d3_layout_stackOrderDefault(data) {
  function d3_layout_stackOffsetZero (line 6783) | function d3_layout_stackOffsetZero(data) {
  function d3_layout_stackMaxIndex (line 6788) | function d3_layout_stackMaxIndex(array) {
  function d3_layout_stackReduceSum (line 6798) | function d3_layout_stackReduceSum(d) {
  function d3_layout_stackSum (line 6801) | function d3_layout_stackSum(p, d) {
  function histogram (line 6806) | function histogram(data, i) {
  function d3_layout_histogramBinSturges (line 6850) | function d3_layout_histogramBinSturges(range, values) {
  function d3_layout_histogramBinFixed (line 6853) | function d3_layout_histogramBinFixed(range, n) {
  function d3_layout_histogramRange (line 6858) | function d3_layout_histogramRange(values) {
  function pack (line 6863) | function pack(d, i) {
  function d3_layout_packSort (line 6902) | function d3_layout_packSort(a, b) {
  function d3_layout_packInsert (line 6905) | function d3_layout_packInsert(a, b) {
  function d3_layout_packSplice (line 6912) | function d3_layout_packSplice(a, b) {
  function d3_layout_packIntersects (line 6916) | function d3_layout_packIntersects(a, b) {
  function d3_layout_packSiblings (line 6920) | function d3_layout_packSiblings(node) {
  function d3_layout_packLink (line 6984) | function d3_layout_packLink(node) {
  function d3_layout_packUnlink (line 6987) | function d3_layout_packUnlink(node) {
  function d3_layout_packTransform (line 6991) | function d3_layout_packTransform(node, x, y, k) {
  function d3_layout_packPlace (line 7001) | function d3_layout_packPlace(a, b, c) {
  function tree (line 7017) | function tree(d, i) {
  function wrapTree (line 7036) | function wrapTree(root0) {
  function firstWalk (line 7060) | function firstWalk(v) {
  function secondWalk (line 7076) | function secondWalk(v) {
  function apportion (line 7080) | function apportion(v, w, ancestor) {
  function sizeNode (line 7110) | function sizeNode(node) {
  function d3_layout_treeSeparation (line 7131) | function d3_layout_treeSeparation(a, b) {
  function d3_layout_treeLeft (line 7134) | function d3_layout_treeLeft(v) {
  function d3_layout_treeRight (line 7138) | function d3_layout_treeRight(v) {
  function d3_layout_treeMove (line 7142) | function d3_layout_treeMove(wm, wp, shift) {
  function d3_layout_treeShift (line 7150) | function d3_layout_treeShift(v) {
  function d3_layout_treeAncestor (line 7159) | function d3_layout_treeAncestor(vim, v, ancestor) {
  function cluster (line 7164) | function cluster(d, i) {
  function d3_layout_clusterY (line 7204) | function d3_layout_clusterY(children) {
  function d3_layout_clusterX (line 7209) | function d3_layout_clusterX(children) {
  function d3_layout_clusterLeft (line 7214) | function d3_layout_clusterLeft(node) {
  function d3_layout_clusterRight (line 7218) | function d3_layout_clusterRight(node) {
  function scale (line 7224) | function scale(children, k) {
  function squarify (line 7231) | function squarify(node) {
  function stickify (line 7258) | function stickify(node) {
  function worst (line 7275) | function worst(row, u) {
  function position (line 7286) | function position(row, u, rect, flush) {
  function treemap (line 7316) | function treemap(d) {
  function padFunction (line 7335) | function padFunction(node) {
  function padConstant (line 7339) | function padConstant(node) {
  function d3_layout_treemapPadNull (line 7370) | function d3_layout_treemapPadNull(node) {
  function d3_layout_treemapPad (line 7378) | function d3_layout_treemapPad(node, padding) {
  function d3_scaleExtent (line 7430) | function d3_scaleExtent(domain) {
  function d3_scaleRange (line 7434) | function d3_scaleRange(scale) {
  function d3_scale_bilinear (line 7437) | function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
  function d3_scale_nice (line 7443) | function d3_scale_nice(domain, nice) {
  function d3_scale_niceStep (line 7453) | function d3_scale_niceStep(step) {
  function d3_scale_polylinear (line 7467) | function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
  function d3_scale_linear (line 7485) | function d3_scale_linear(domain, range, interpolate, clamp) {
  function d3_scale_linearRebind (line 7537) | function d3_scale_linearRebind(scale, linear) {
  function d3_scale_linearNice (line 7540) | function d3_scale_linearNice(domain, m) {
  function d3_scale_linearTickRange (line 7543) | function d3_scale_linearTickRange(domain, m) {
  function d3_scale_linearTicks (line 7552) | function d3_scale_linearTicks(domain, m) {
  function d3_scale_linearTickFormat (line 7555) | function d3_scale_linearTickFormat(domain, m, format) {
  function d3_scale_linearPrecision (line 7583) | function d3_scale_linearPrecision(value) {
  function d3_scale_linearFormatPrecision (line 7586) | function d3_scale_linearFormatPrecision(type, range) {
  function d3_scale_log (line 7593) | function d3_scale_log(linear, base, positive, domain) {
  function d3_scale_pow (line 7665) | function d3_scale_pow(linear, exponent, domain) {
  function d3_scale_powPow (line 7699) | function d3_scale_powPow(e) {
  function d3_scale_ordinal (line 7713) | function d3_scale_ordinal(domain, ranger) {
  function d3_scale_quantile (line 7821) | function d3_scale_quantile(domain, range) {
  function d3_scale_quantize (line 7857) | function d3_scale_quantize(x0, x1, range) {
  function d3_scale_threshold (line 7891) | function d3_scale_threshold(domain, range) {
  function d3_scale_identity (line 7917) | function d3_scale_identity(domain) {
  function d3_zero (line 7939) | function d3_zero() {
  function arc (line 7944) | function arc() {
  function circleSegment (line 8017) | function circleSegment(r1, cw) {
  function d3_svg_arcInnerRadius (line 8062) | function d3_svg_arcInnerRadius(d) {
  function d3_svg_arcOuterRadius (line 8065) | function d3_svg_arcOuterRadius(d) {
  function d3_svg_arcStartAngle (line 8068) | function d3_svg_arcStartAngle(d) {
  function d3_svg_arcEndAngle (line 8071) | function d3_svg_arcEndAngle(d) {
  function d3_svg_arcPadAngle (line 8074) | function d3_svg_arcPadAngle(d) {
  function d3_svg_arcSweep (line 8077) | function d3_svg_arcSweep(x0, y0, x1, y1) {
  function d3_svg_arcCornerTangents (line 8080) | function d3_svg_arcCornerTangents(p0, p1, r1, rc, cw) {
  function d3_svg_line (line 8085) | function d3_svg_line(projection) {
  function d3_svg_lineLinear (line 8152) | function d3_svg_lineLinear(points) {
  function d3_svg_lineLinearClosed (line 8155) | function d3_svg_lineLinearClosed(points) {
  function d3_svg_lineStep (line 8158) | function d3_svg_lineStep(points) {
  function d3_svg_lineStepBefore (line 8164) | function d3_svg_lineStepBefore(points) {
  function d3_svg_lineStepAfter (line 8169) | function d3_svg_lineStepAfter(points) {
  function d3_svg_lineCardinalOpen (line 8174) | function d3_svg_lineCardinalOpen(points, tension) {
  function d3_svg_lineCardinalClosed (line 8177) | function d3_svg_lineCardinalClosed(points, tension) {
  function d3_svg_lineCardinal (line 8181) | function d3_svg_lineCardinal(points, tension) {
  function d3_svg_lineHermite (line 8184) | function d3_svg_lineHermite(points, tangents) {
  function d3_svg_lineCardinalTangents (line 8211) | function d3_svg_lineCardinalTangents(points, tension) {
  function d3_svg_lineBasis (line 8221) | function d3_svg_lineBasis(points) {
  function d3_svg_lineBasisOpen (line 8237) | function d3_svg_lineBasisOpen(points) {
  function d3_svg_lineBasisClosed (line 8257) | function d3_svg_lineBasisClosed(points) {
  function d3_svg_lineBundle (line 8276) | function d3_svg_lineBundle(points, tension) {
  function d3_svg_lineDot4 (line 8289) | function d3_svg_lineDot4(a, b) {
  function d3_svg_lineBasisBezier (line 8293) | function d3_svg_lineBasisBezier(path, x, y) {
  function d3_svg_lineSlope (line 8296) | function d3_svg_lineSlope(p0, p1) {
  function d3_svg_lineFiniteDifferences (line 8299) | function d3_svg_lineFiniteDifferences(points) {
  function d3_svg_lineMonotoneTangents (line 8307) | function d3_svg_lineMonotoneTangents(points) {
  function d3_svg_lineMonotone (line 8331) | function d3_svg_lineMonotone(points) {
  function d3_svg_lineRadial (line 8340) | function d3_svg_lineRadial(points) {
  function d3_svg_area (line 8351) | function d3_svg_area(projection) {
  function chord (line 8441) | function chord(d, i) {
  function subgroup (line 8445) | function subgroup(self, f, d, i) {
  function equals (line 8455) | function equals(a, b) {
  function arc (line 8458) | function arc(r, p, a) {
  function curve (line 8461) | function curve(r0, p0, r1, p1) {
  function d3_svg_chordRadius (line 8491) | function d3_svg_chordRadius(d) {
  function diagonal (line 8496) | function diagonal(d, i) {
  function d3_svg_diagonalProjection (line 8524) | function d3_svg_diagonalProjection(d) {
  function d3_svg_diagonalRadialProjection (line 8534) | function d3_svg_diagonalRadialProjection(projection) {
  function symbol (line 8542) | function symbol(d, i) {
  function d3_svg_symbolSize (line 8557) | function d3_svg_symbolSize() {
  function d3_svg_symbolType (line 8560) | function d3_svg_symbolType() {
  function d3_svg_symbolCircle (line 8563) | function d3_svg_symbolCircle(size) {
  function d3_selection_interruptNS (line 8612) | function d3_selection_interruptNS(ns) {
  function d3_transition (line 8622) | function d3_transition(groups, ns, id) {
  function d3_transition_tween (line 8694) | function d3_transition_tween(groups, name, value, tween) {
  function attrNull (line 8708) | function attrNull() {
  function attrNullNS (line 8711) | function attrNullNS() {
  function attrTween (line 8714) | function attrTween(b) {
  function attrTweenNS (line 8722) | function attrTweenNS(b) {
  function attrTween (line 8734) | function attrTween(d, i) {
  function attrTweenNS (line 8740) | function attrTweenNS(d, i) {
  function styleNull (line 8758) | function styleNull() {
  function styleString (line 8761) | function styleString(b) {
  function styleTween (line 8773) | function styleTween(d, i) {
  function d3_transition_text (line 8784) | function d3_transition_text(b) {
  function d3_transitionNamespace (line 8864) | function d3_transitionNamespace(name) {
  function d3_transitionNode (line 8867) | function d3_transitionNode(node, i, ns, id, inherit) {
  function axis (line 8931) | function axis(g) {
  function d3_svg_axisX (line 9026) | function d3_svg_axisX(selection, x0, x1) {
  function d3_svg_axisY (line 9032) | function d3_svg_axisY(selection, y0, y1) {
  function brush (line 9040) | function brush(g) {
  function redraw (line 9126) | function redraw(g) {
  function redrawX (line 9131) | function redrawX(g) {
  function redrawY (line 9135) | function redrawY(g) {
  function brushstart (line 9139) | function brushstart() {
  function d3_time_formatIsoNative (line 9332) | function d3_time_formatIsoNative(date) {
  function d3_time_scale (line 9379) | function d3_time_scale(linear, methods, format) {
  function d3_time_scaleDate (line 9429) | function d3_time_scaleDate(t) {
  function d3_json (line 9488) | function d3_json(request) {
  function d3_html (line 9494) | function d3_html(request) {

FILE: third_party/ui/bower_components/hammerjs/hammer.js
  function setTimeoutContext (line 25) | function setTimeoutContext(fn, timeout, context) {
  function invokeArrayArg (line 38) | function invokeArrayArg(arg, fn, context) {
  function each (line 52) | function each(obj, iterator, context) {
  function extend (line 82) | function extend(dest, src, merge) {
  function merge (line 101) | function merge(dest, src) {
  function inherit (line 111) | function inherit(child, base, properties) {
  function bindFn (line 130) | function bindFn(fn, context) {
  function boolOrFn (line 143) | function boolOrFn(val, args) {
  function ifUndefined (line 156) | function ifUndefined(val1, val2) {
  function addEventListeners (line 166) | function addEventListeners(target, types, handler) {
  function removeEventListeners (line 178) | function removeEventListeners(target, types, handler) {
  function hasParent (line 191) | function hasParent(node, parent) {
  function inStr (line 207) | function inStr(str, find) {
  function splitStr (line 216) | function splitStr(str) {
  function inArray (line 227) | function inArray(src, find, findByKey) {
  function toArray (line 247) | function toArray(obj) {
  function uniqueArray (line 258) | function uniqueArray(src, key, sort) {
  function prefixed (line 291) | function prefixed(obj, property) {
  function uniqueId (line 313) | function uniqueId() {
  function getWindowForElement (line 322) | function getWindowForElement(element) {
  function Input (line 365) | function Input(manager, callback) {
  function createInputInstance (line 416) | function createInputInstance(manager) {
  function inputHandler (line 440) | function inputHandler(manager, eventType, input) {
  function computeInputData (line 472) | function computeInputData(manager, input) {
  function computeDeltaXY (line 516) | function computeDeltaXY(session, input) {
  function computeIntervalInputData (line 543) | function computeIntervalInputData(session, input) {
  function simpleCloneInputData (line 578) | function simpleCloneInputData(input) {
  function getCenter (line 605) | function getCenter(pointers) {
  function getVelocity (line 636) | function getVelocity(deltaTime, x, y) {
  function getDirection (line 649) | function getDirection(x, y) {
  function getDistance (line 667) | function getDistance(p1, p2, props) {
  function getAngle (line 684) | function getAngle(p1, p2, props) {
  function getRotation (line 699) | function getRotation(start, end) {
  function getScale (line 710) | function getScale(start, end) {
  function MouseInput (line 728) | function MouseInput() {
  function PointerEventInput (line 803) | function PointerEventInput() {
  function SingleTouchInput (line 877) | function SingleTouchInput() {
  function normalizeSingleTouches (line 920) | function normalizeSingleTouches(ev, type) {
  function TouchInput (line 945) | function TouchInput() {
  function getTouches (line 975) | function getTouches(ev, type) {
  function TouchMouseInput (line 1039) | function TouchMouseInput() {
  function TouchAction (line 1101) | function TouchAction(manager, value) {
  function cleanTouchActions (line 1190) | function cleanTouchActions(actions) {
  function Recognizer (line 1258) | function Recognizer(options) {
  function emit (line 1390) | function emit(withState) {
  function stateStr (line 1495) | function stateStr(state) {
  function directionStr (line 1513) | function directionStr(direction) {
  function getRecognizerByNameIfManager (line 1532) | function getRecognizerByNameIfManager(otherRecognizer, recognizer) {
  function AttrRecognizer (line 1545) | function AttrRecognizer() {
  function PanRecognizer (line 1607) | function PanRecognizer() {
  function PinchRecognizer (line 1686) | function PinchRecognizer() {
  function PressRecognizer (line 1725) | function PressRecognizer() {
  function RotateRecognizer (line 1796) | function RotateRecognizer() {
  function SwipeRecognizer (line 1827) | function SwipeRecognizer() {
  function TapRecognizer (line 1886) | function TapRecognizer() {
  function Hammer (line 1997) | function Hammer(element, options) {
  function Manager (line 2129) | function Manager(element, options) {
  function toggleCssProps (line 2382) | function toggleCssProps(manager, add) {
  function triggerDomEvent (line 2394) | function triggerDomEvent(event, data) {

FILE: third_party/ui/bower_components/jquery/dist/jquery.js
  function isArraylike (line 533) | function isArraylike( obj ) {
  function Sizzle (line 745) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 859) | function createCache() {
  function markFunction (line 877) | function markFunction( fn ) {
  function assert (line 886) | function assert( fn ) {
  function addHandle (line 908) | function addHandle( attrs, handler ) {
  function siblingCheck (line 923) | function siblingCheck( a, b ) {
  function createInputPseudo (line 950) | function createInputPseudo( type ) {
  function createButtonPseudo (line 961) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 972) | function createPositionalPseudo( fn ) {
  function testContext (line 995) | function testContext( context ) {
  function setFilters (line 2004) | function setFilters() {}
  function toSelector (line 2075) | function toSelector( tokens ) {
  function addCombinator (line 2085) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 2138) | function elementMatcher( matchers ) {
  function multipleContexts (line 2152) | function multipleContexts( selector, contexts, results ) {
  function condense (line 2161) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 2182) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 2275) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 2333) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {
  function winnow (line 2629) | function winnow( elements, qualifier, not ) {
  function sibling (line 2953) | function sibling( cur, dir ) {
  function createOptions (line 3031) | function createOptions( options ) {
  function completed (line 3425) | function completed() {
  function Data (line 3530) | function Data() {
  function dataAttr (line 3721) | function dataAttr( elem, key, data ) {
  function returnTrue (line 4061) | function returnTrue() {
  function returnFalse (line 4065) | function returnFalse() {
  function safeActiveElement (line 4069) | function safeActiveElement() {
  function manipulationTarget (line 4941) | function manipulationTarget( elem, content ) {
  function disableScript (line 4951) | function disableScript( elem ) {
  function restoreScript (line 4955) | function restoreScript( elem ) {
  function setGlobalEval (line 4968) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 4979) | function cloneCopyEvent( src, dest ) {
  function getAll (line 5013) | function getAll( context, tag ) {
  function fixInput (line 5024) | function fixInput( src, dest ) {
  function actualDisplay (line 5479) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 5501) | function defaultDisplay( nodeName ) {
  function curCSS (line 5548) | function curCSS( elem, name, computed ) {
  function addGetHookIf (line 5596) | function addGetHookIf( conditionFn, hookFn ) {
  function computePixelPositionAndBoxSizingReliable (line 5636) | function computePixelPositionAndBoxSizingReliable() {
  function vendorPropName (line 5741) | function vendorPropName( style, name ) {
  function setPositiveNumber (line 5763) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 5771) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 5810) | function getWidthOrHeight( elem, name, extra ) {
  function showHide (line 5854) | function showHide( elements, show ) {
  function Tween (line 6152) | function Tween( elem, options, prop, end, easing ) {
  function createFxNow (line 6321) | function createFxNow() {
  function genFx (line 6329) | function genFx( type, includeWidth ) {
  function createTween (line 6349) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 6363) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 6496) | function propFilter( props, specialEasing ) {
  function Animation (line 6533) | function Animation( elem, properties, options ) {
  function addToPrefiltersOrTransports (line 7581) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 7613) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7640) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 7660) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7716) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 8174) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 8418) | function buildParams( prefix, obj, traditional, add ) {
  function getWindow (line 8912) | function getWindow( elem ) {

FILE: third_party/ui/bower_components/jquery/src/ajax.js
  function addToPrefiltersOrTransports (line 50) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 82) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 109) | function ajaxExtend( target, src ) {
  function ajaxHandleResponses (line 129) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 185) | function ajaxConvert( s, response, jqXHR, isSuccess ) {
  function done (line 643) | function done( status, nativeStatusText, responses, headers ) {

FILE: third_party/ui/bower_components/jquery/src/callbacks.js
  function createOptions (line 10) | function createOptions( options ) {

FILE: third_party/ui/bower_components/jquery/src/core.js
  function isArraylike (line 480) | function isArraylike( obj ) {

FILE: third_party/ui/bower_components/jquery/src/core/ready.js
  function completed (line 64) | function completed() {

FILE: third_party/ui/bower_components/jquery/src/css.js
  function vendorPropName (line 39) | function vendorPropName( style, name ) {
  function setPositiveNumber (line 61) | function setPositiveNumber( elem, value, subtract ) {
  function augmentWidthOrHeight (line 69) | function augmentWidthOrHeight( elem, name, extra, isBorderBox, styles ) {
  function getWidthOrHeight (line 108) | function getWidthOrHeight( elem, name, extra ) {
  function showHide (line 152) | function showHide( elements, show ) {

FILE: third_party/ui/bower_components/jquery/src/css/addGetHookIf.js
  function addGetHookIf (line 3) | function addGetHookIf( conditionFn, hookFn ) {

FILE: third_party/ui/bower_components/jquery/src/css/curCSS.js
  function curCSS (line 9) | function curCSS( elem, name, computed ) {

FILE: third_party/ui/bower_components/jquery/src/css/defaultDisplay.js
  function actualDisplay (line 15) | function actualDisplay( name, doc ) {
  function defaultDisplay (line 37) | function defaultDisplay( nodeName ) {

FILE: third_party/ui/bower_components/jquery/src/css/support.js
  function computePixelPositionAndBoxSizingReliable (line 28) | function computePixelPositionAndBoxSizingReliable() {

FILE: third_party/ui/bower_components/jquery/src/data.js
  function dataAttr (line 22) | function dataAttr( elem, key, data ) {

FILE: third_party/ui/bower_components/jquery/src/data/Data.js
  function Data (line 7) | function Data() {

FILE: third_party/ui/bower_components/jquery/src/effects.js
  function createFxNow (line 75) | function createFxNow() {
  function genFx (line 83) | function genFx( type, includeWidth ) {
  function createTween (line 103) | function createTween( value, prop, animation ) {
  function defaultPrefilter (line 117) | function defaultPrefilter( elem, props, opts ) {
  function propFilter (line 250) | function propFilter( props, specialEasing ) {
  function Animation (line 287) | function Animation( elem, properties, options ) {

FILE: third_party/ui/bower_components/jquery/src/effects/Tween.js
  function Tween (line 6) | function Tween( elem, options, prop, end, easing ) {

FILE: third_party/ui/bower_components/jquery/src/event.js
  function returnTrue (line 21) | function returnTrue() {
  function returnFalse (line 25) | function returnFalse() {
  function safeActiveElement (line 29) | function safeActiveElement() {

FILE: third_party/ui/bower_components/jquery/src/manipulation.js
  function manipulationTarget (line 51) | function manipulationTarget( elem, content ) {
  function disableScript (line 61) | function disableScript( elem ) {
  function restoreScript (line 65) | function restoreScript( elem ) {
  function setGlobalEval (line 78) | function setGlobalEval( elems, refElements ) {
  function cloneCopyEvent (line 89) | function cloneCopyEvent( src, dest ) {
  function getAll (line 123) | function getAll( context, tag ) {
  function fixInput (line 134) | function fixInput( src, dest ) {

FILE: third_party/ui/bower_components/jquery/src/offset.js
  function getWindow (line 20) | function getWindow( elem ) {

FILE: third_party/ui/bower_components/jquery/src/serialize.js
  function buildParams (line 15) | function buildParams( prefix, obj, traditional, add ) {

FILE: third_party/ui/bower_components/jquery/src/sizzle/dist/sizzle.js
  function Sizzle (line 197) | function Sizzle( selector, context, results, seed ) {
  function createCache (line 311) | function createCache() {
  function markFunction (line 329) | function markFunction( fn ) {
  function assert (line 338) | function assert( fn ) {
  function addHandle (line 360) | function addHandle( attrs, handler ) {
  function siblingCheck (line 375) | function siblingCheck( a, b ) {
  function createInputPseudo (line 402) | function createInputPseudo( type ) {
  function createButtonPseudo (line 413) | function createButtonPseudo( type ) {
  function createPositionalPseudo (line 424) | function createPositionalPseudo( fn ) {
  function testContext (line 447) | function testContext( context ) {
  function setFilters (line 1456) | function setFilters() {}
  function toSelector (line 1527) | function toSelector( tokens ) {
  function addCombinator (line 1537) | function addCombinator( matcher, combinator, base ) {
  function elementMatcher (line 1590) | function elementMatcher( matchers ) {
  function multipleContexts (line 1604) | function multipleContexts( selector, contexts, results ) {
  function condense (line 1613) | function condense( unmatched, map, filter, context, xml ) {
  function setMatcher (line 1634) | function setMatcher( preFilter, selector, matcher, postFilter, postFinde...
  function matcherFromTokens (line 1727) | function matcherFromTokens( tokens ) {
  function matcherFromGroupMatchers (line 1785) | function matcherFromGroupMatchers( elementMatchers, setMatchers ) {

FILE: third_party/ui/bower_components/jquery/src/traversing.js
  function sibling (line 127) | function sibling( cur, dir ) {

FILE: third_party/ui/bower_components/jquery/src/traversing/findFilter.js
  function winnow (line 11) | function winnow( elements, qualifier, not ) {

FILE: third_party/ui/bower_components/jsonpath/lib/jsonpath.js
  function push (line 33) | function push (arr, elem) {arr = arr.slice(); arr.push(elem); return arr;}
  function unshift (line 34) | function unshift (elem, arr) {arr = arr.slice(); arr.unshift(elem); retu...
  function JSONPath (line 36) | function JSONPath (opts, obj, expr) {
  function addRet (line 116) | function addRet (elems) {ret = ret.concat(elems);}

FILE: third_party/ui/bower_components/lodash/dist/lodash.compat.js
  function baseIndexOf (line 195) | function baseIndexOf(array, value, fromIndex) {
  function cacheIndexOf (line 216) | function cacheIndexOf(cache, value) {
  function cachePush (line 240) | function cachePush(value) {
  function charAtCallback (line 269) | function charAtCallback(value) {
  function compareAscending (line 282) | function compareAscending(a, b) {
  function createCache (line 317) | function createCache(array) {
  function escapeStringChar (line 350) | function escapeStringChar(match) {
  function getArray (line 360) | function getArray() {
  function getObject (line 370) | function getObject() {
  function isNode (line 395) | function isNode(value) {
  function releaseArray (line 407) | function releaseArray(array) {
  function releaseObject (line 420) | function releaseObject(object) {
  function slice (line 444) | function slice(array, start, end) {
  function runInContext (line 470) | function runInContext(context) {

FILE: third_party/ui/bower_components/lodash/dist/lodash.js
  function baseIndexOf (line 170) | function baseIndexOf(array, value, fromIndex) {
  function cacheIndexOf (line 191) | function cacheIndexOf(cache, value) {
  function cachePush (line 215) | function cachePush(value) {
  function charAtCallback (line 244) | function charAtCallback(value) {
  function compareAscending (line 257) | function compareAscending(a, b) {
  function createCache (line 292) | function createCache(array) {
  function escapeStringChar (line 325) | function escapeStringChar(match) {
  function getArray (line 335) | function getArray() {
  function getObject (line 345) | function getObject() {
  function releaseArray (line 369) | function releaseArray(array) {
  function releaseObject (line 382) | function releaseObject(object) {
  function slice (line 406) | function slice(array, start, end) {
  function runInContext (line 432) | function runInContext(context) {

FILE: third_party/ui/bower_components/lodash/dist/lodash.underscore.js
  function baseIndexOf (line 95) | function baseIndexOf(array, value, fromIndex) {
  function compareAscending (line 116) | function compareAscending(a, b) {
  function escapeStringChar (line 152) | function escapeStringChar(match) {
  function slice (line 169) | function slice(array, start, end) {
  function lodash (line 294) | function lodash(value) {
  function lodashWrapper (line 308) | function lodashWrapper(value, chainAll) {
  function baseBind (line 396) | function baseBind(bindData) {
  function baseCreate (line 432) | function baseCreate(prototype, properties) {
  function Object (line 438) | function Object() {}
  function baseCreateCallback (line 460) | function baseCreateCallback(func, thisArg, argCount) {
  function baseCreateWrapper (line 493) | function baseCreateWrapper(bindData) {
  function baseDifference (line 546) | function baseDifference(array, values) {
  function baseFlatten (line 572) | function baseFlatten(array, isShallow, isStrict, fromIndex) {
  function baseIsEqual (line 614) | function baseIsEqual(a, b, stackA, stackB) {
  function baseRandom (line 727) | function baseRandom(min, max) {
  function baseUniq (line 741) | function baseUniq(array, isSorted, callback) {
  function createAggregator (line 775) | function createAggregator(setter) {
  function createWrapper (line 819) | function createWrapper(func, bitmask, partialArgs, partialRightArgs, thi...
  function escapeHtmlChar (line 850) | function escapeHtmlChar(match) {
  function getIndexOf (line 862) | function getIndexOf() {
  function isNative (line 874) | function isNative(value) {
  function unescapeHtmlChar (line 885) | function unescapeHtmlChar(match) {
  function isArguments (line 907) | function isArguments(value) {
  function assign (line 1037) | function assign(object) {
  function clone (line 1092) | function clone(value) {
  function defaults (line 1118) | function defaults(object) {
  function functions (line 1224) | function functions(object) {
  function has (line 1249) | function has(object, key) {
  function invert (line 1266) | function invert(object) {
  function isBoolean (line 1292) | function isBoolean(value) {
  function isDate (line 1310) | function isDate(value) {
  function isElement (line 1327) | function isElement(value) {
  function isEmpty (line 1352) | function isEmpty(value) {
  function isEqual (line 1405) | function isEqual(a, b) {
  function isFinite (line 1437) | function isFinite(value) {
  function isFunction (line 1454) | function isFunction(value) {
  function isObject (line 1484) | function isObject(value) {
  function isNaN (line 1517) | function isNaN(value) {
  function isNull (line 1539) | function isNull(value) {
  function isNumber (line 1558) | function isNumber(value) {
  function isRegExp (line 1576) | function isRegExp(value) {
  function isString (line 1593) | function isString(value) {
  function isUndefined (line 1611) | function isUndefined(value) {
  function omit (line 1641) | function omit(object) {
  function pairs (line 1673) | function pairs(object) {
  function pick (line 1713) | function pick(object) {
  function values (line 1741) | function values(object) {
  function contains (line 1782) | function contains(collection, target) {
  function every (line 1875) | function every(collection, callback, thisArg) {
  function filter (line 1936) | function filter(collection, callback, thisArg) {
  function find (line 2003) | function find(collection, callback, thisArg) {
  function findWhere (line 2051) | function findWhere(object, properties) {
  function forEach (line 2081) | function forEach(collection, callback, thisArg) {
  function forEachRight (line 2114) | function forEachRight(collection, callback) {
  function invoke (line 2236) | function invoke(collection, methodName) {
  function map (line 2288) | function map(collection, callback, thisArg) {
  function max (line 2347) | function max(collection, callback, thisArg) {
  function min (line 2420) | function min(collection, callback, thisArg) {
  function reduce (line 2505) | function reduce(collection, callback, accumulator, thisArg) {
  function reduceRight (line 2549) | function reduceRight(collection, callback, accumulator, thisArg) {
  function reject (line 2598) | function reject(collection, callback, thisArg) {
  function sample (line 2624) | function sample(collection, n, guard) {
  function shuffle (line 2650) | function shuffle(collection) {
  function size (line 2683) | function size(collection) {
  function some (line 2730) | function some(collection, callback, thisArg) {
  function sortBy (line 2800) | function sortBy(collection, callback, thisArg) {
  function toArray (line 2835) | function toArray(collection) {
  function where (line 2870) | function where(collection, properties, first) {
  function compact (line 2892) | function compact(array) {
  function difference (line 2921) | function difference(array) {
  function first (line 2976) | function first(array, callback, thisArg) {
  function flatten (line 3036) | function flatten(array, isShallow) {
  function indexOf (line 3064) | function indexOf(array, value, fromIndex) {
  function initial (line 3125) | function initial(array, callback, thisArg) {
  function intersection (line 3155) | function intersection() {
  function last (line 3238) | function last(array, callback, thisArg) {
  function lastIndexOf (line 3284) | function lastIndexOf(array, value, fromIndex) {
  function range (line 3329) | function range(start, end, step) {
  function rest (line 3402) | function rest(array, callback, thisArg) {
  function sortedIndex (line 3466) | function sortedIndex(array, value, callback, thisArg) {
  function union (line 3497) | function union() {
  function uniq (line 3545) | function uniq(array, isSorted, callback, thisArg) {
  function without (line 3573) | function without(array) {
  function zip (line 3593) | function zip() {
  function zipObject (line 3622) | function zipObject(keys, values) {
  function after (line 3667) | function after(n, func) {
  function bind (line 3700) | function bind(func, thisArg) {
  function bindAll (line 3730) | function bindAll(object) {
  function compose (line 3772) | function compose() {
  function debounce (line 3831) | function debounce(func, wait, options) {
  function defer (line 3947) | function defer(func) {
  function delay (line 3971) | function delay(func, wait) {
  function memoize (line 4016) | function memoize(func, resolver) {
  function once (line 4043) | function once(func) {
  function partial (line 4081) | function partial(func) {
  function throttle (line 4116) | function throttle(func, wait, options) {
  function wrap (line 4158) | function wrap(value, wrapper) {
  function createCallback (line 4195) | function createCallback(func, thisArg, argCount) {
  function escape (line 4232) | function escape(string) {
  function identity (line 4250) | function identity(value) {
  function mixin (line 4282) | function mixin(object) {
  function noConflict (line 4310) | function noConflict() {
  function noop (line 4327) | function noop() {
  function property (line 4372) | function property(key) {
  function random (line 4405) | function random(min, max) {
  function result (line 4446) | function result(object, key) {
  function template (line 4539) | function template(text, data, options) {
  function times (line 4618) | function times(n, callback, thisArg) {
  function unescape (line 4645) | function unescape(string) {
  function uniqueId (line 4665) | function uniqueId(prefix) {
  function chain (line 4696) | function chain(value) {
  function tap (line 4722) | function tap(value, interceptor) {
  function wrapperChain (line 4752) | function wrapperChain() {
  function wrapperValueOf (line 4770) | function wrapperValueOf() {

FILE: third_party/ui/bower_components/modernizr/feature-detects/css-backgroundrepeat.js
  function getBgRepeatValue (line 9) | function getBgRepeatValue(elem){

FILE: third_party/ui/bower_components/modernizr/feature-detects/css-hyphens.js
  function test_hyphens_css (line 29) | function test_hyphens_css() {
  function test_hyphens (line 69) | function test_hyphens(delimiter, testWidth) {
  function test_hyphens_find (line 121) | function test_hyphens_find(delimiter) {

FILE: third_party/ui/bower_components/modernizr/feature-detects/elem-ruby.js
  function getStyle (line 33) | function getStyle( element, styleProperty ) {
  function cleanUp (line 45) | function cleanUp() {

FILE: third_party/ui/bower_components/modernizr/feature-detects/workers-blobworkers.js
  function fail (line 50) | function fail() {
  function cleanup (line 55) | function cleanup() {

FILE: third_party/ui/bower_components/modernizr/modernizr.js
  function isEventSupported (line 193) | function isEventSupported( eventName, element ) {
  function setCss (line 289) | function setCss( str ) {
  function setCssAll (line 296) | function setCssAll( str1, str2 ) {
  function is (line 303) | function is( obj, type ) {
  function contains (line 310) | function contains( str, substr ) {
  function testProps (line 334) | function testProps( props, prefixed ) {
  function testDOMProps (line 350) | function testDOMProps( props, obj, elem ) {
  function testPropsAll (line 378) | function testPropsAll( prop, prefixed, elem ) {
  function webforms (line 849) | function webforms() {
  function addStyleSheet (line 1073) | function addStyleSheet(ownerDocument, cssText) {
  function getElements (line 1086) | function getElements() {
  function getExpandoData (line 1097) | function getExpandoData(ownerDocument) {
  function createElement (line 1115) | function createElement(nodeName, ownerDocument, data){
  function createDocumentFragment (line 1151) | function createDocumentFragment(ownerDocument, data){
  function shivMethods (line 1175) | function shivMethods(ownerDocument, data) {
  function shivDocument (line 1213) | function shivDocument(ownerDocument) {

FILE: third_party/ui/bower_components/modernizr/test/caniuse_files/ga.js
  function K (line 1) | function K(d){qa.set(d)}
  function ya (line 4) | function ya(d){if(!d||""==d)return"";for(;d[p](0)[v]>0&&" \n\r\t"[q](d[p...
  function d (line 4) | function d(b){for(var d=[],b=b[x](","),e,f=0;f<b[v];f++)e=b[f][x](":"),d...
  function f (line 5) | function f(a,c,b,j){var i="",d=0,i=N(a,"2"+c,";");if(!M(i)){a=i[q]("^"+b...
  function b (line 5) | function b(a,c){return"^"+[[c,a[1]][A]("."),a[0]][A](":")}
  function h (line 5) | function h(a){var c=new Date,a=new Date(c[da]()+a);return"expires="+a.to...
  function f (line 7) | function f(a){a=ua(a)?a[A]("."):"";return M(a)?"-":a}
  function b (line 7) | function b(a,c){var n=[],b;if(!M(a)&&(n=a[x]("."),c))for(b=0;b<n[v];b++)...
  function h (line 7) | function h(a,c,n){var b=i.I,j,d;for(j=0;j<b[v];j++)d=b[j][0],d+=M(c)?c:c...
  function f (line 15) | function f(){var b,a,c;a="ShockwaveFlash";var d="$version",j=L[t].naviga...
  function e (line 17) | function e(a){var c="",c=a[x]("://")[1][C]();R(c,"/")&&(c=c[x]("/")[0]);...
  function d (line 24) | function d(a,b,c,d){k==g[a]&&(g[a]={});k==g[a][b]&&(g[a][b]=[]);g[a][b][...
  function f (line 24) | function f(a,b,c){if(k!=g[a]&&k!=g[a][b])return g[a][b][c]}
  function b (line 24) | function b(a,b){if(k!=g[a]&&k!=g[a][b]){g[a][b]=k;var c=!0,d;for(d=0;d<u...
  function h (line 24) | function h(a){var b="",c=!1,d,e;for(d=0;d<u[v];d++)if(e=a[u[d]],k!=e){c&...
  function h (line 28) | function h(){if("auto"==j.b){var a=L[w].domain;"www."==a[z](0,4)&&(a=a[z...
  function e (line 28) | function e(){h();var a=j.b,b=a[q]("www.google.")*a[q](".google.")*a[q]("...
  function m (line 28) | function m(b,c,d){if(M(b)||M(c)||M(d))return"-";b=N(b,F+a.a+".",c);M(b)|...
  function g (line 28) | function g(){return"file:"!=L[w][y][ea]&&e()}

FILE: third_party/ui/bower_components/modernizr/test/js/dumpdata.js
  function dumpModernizr (line 1) | function dumpModernizr(){
  function grabFeatDetects (line 29) | function grabFeatDetects(){
  function processTree (line 35) | function processTree(data){
  function resultsToDOM (line 57) | function resultsToDOM(){

FILE: third_party/ui/bower_components/modernizr/test/js/lib/detect-global.js
  function getPropertyDescriptors (line 6) | function getPropertyDescriptors(object) {
  function getCleanWindow (line 25) | function getCleanWindow() {
  function appendControl (line 36) | function appendControl(el, name) {
  function appendAnalyze (line 56) | function appendAnalyze(el) {
  function appendCancel (line 64) | function appendCancel(el) {
  function initConfigPopup (line 76) | function initConfigPopup() {
  function getPropsCount (line 94) | function getPropsCount(object) {
  function shouldDeleteProperty (line 102) | function shouldDeleteProperty(propToCheck) {
  function analyze (line 112) | function analyze() {

FILE: third_party/ui/bower_components/modernizr/test/js/lib/jquery-1.7b2.js
  function jQuerySub (line 875) | function jQuerySub( selector, context ) {
  function doScrollCheck (line 941) | function doScrollCheck() {
  function createFlags (line 982) | function createFlags( flags ) {
  function resolveFunc (line 1313) | function resolveFunc( i ) {
  function progressFunc (line 1321) | function progressFunc( i ) {
  function dataAttr (line 1969) | function dataAttr( elem, key, data ) {
  function isEmptyDataObject (line 2000) | function isEmptyDataObject( obj ) {
  function handleQueueMarkDefer (line 2018) | function handleQueueMarkDefer( elem, type, src ) {
  function resolve (line 2171) | function resolve() {
  function dispatch (line 3438) | function dispatch( target, event, handlers, args ) {
  function returnFalse (line 3515) | function returnFalse() {
  function returnTrue (line 3518) | function returnTrue() {
  function dirNodeCheck (line 5213) | function dirNodeCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function dirCheck (line 5246) | function dirCheck( dir, cur, doneName, checkSet, nodeCheck, isXML ) {
  function isDisconnected (line 5519) | function isDisconnected( node ) {
  function winnow (line 5641) | function winnow( elements, qualifier, keep ) {
  function createSafeFragment (line 5678) | function createSafeFragment( document ) {
  function root (line 6040) | function root( elem, cur ) {
  function cloneCopyEvent (line 6047) | function cloneCopyEvent( src, dest ) {
  function cloneFixAttributes (line 6075) | function cloneFixAttributes( src, dest ) {
  function getAll (line 6207) | function getAll( elem ) {
  function fixDefaultChecked (line 6220) | function fixDefaultChecked( elem ) {
  function findInputs (line 6226) | function findInputs( elem ) {
  function evalScript (line 6458) | function evalScript( i, elem ) {
  function getWH (line 6796) | function getWH( elem, name, extra ) {
  function addToPrefiltersOrTransports (line 6922) | function addToPrefiltersOrTransports( structure ) {
  function inspectPrefiltersOrTransports (line 6958) | function inspectPrefiltersOrTransports( structure, options, originalOpti...
  function ajaxExtend (line 7000) | function ajaxExtend( target, src ) {
  function done (line 7342) | function done( status, nativeStatusText, responses, headers ) {
  function buildParams (line 7657) | function buildParams( prefix, obj, traditional, add ) {
  function ajaxHandleResponses (line 7707) | function ajaxHandleResponses( s, jqXHR, responses ) {
  function ajaxConvert (line 7772) | function ajaxConvert( s, response ) {
  function createStandardXHR (line 8038) | function createStandardXHR() {
  function createActiveXHR (line 8044) | function createActiveXHR() {
  function doAnimation (line 8371) | function doAnimation() {
  function stopQueue (line 8514) | function stopQueue( elem, data, i ) {
  function createFxNow (line 8556) | function createFxNow() {
  function clearFxNow (line 8561) | function clearFxNow() {
  function genFx (line 8566) | function genFx( type, num ) {
  function t (line 8681) | function t( gotoEnd ) {
  function defaultDisplay (line 8873) | function defaultDisplay( nodeName ) {
  function getWindow (line 9194) | function getWindow( elem ) {

FILE: third_party/ui/bower_components/modernizr/test/js/lib/jsonselect.js
  function jsonParse (line 10) | function jsonParse(str) {
  function te (line 35) | function te(ec) {
  function isArray (line 161) | function isArray(o) {
  function mytypeof (line 166) | function mytypeof(o) {
  function mn (line 173) | function mn(node, sel, id, num, tot) {
  function forEach (line 203) | function forEach(sel, obj, fun, id, num, tot) {
  function match (line 249) | function match(sel, obj) {
  function compile (line 257) | function compile(sel) {

FILE: third_party/ui/bower_components/modernizr/test/js/lib/polyfills.js
  function f (line 96) | function f(n){return n<10?"0"+n:n}
  function quote (line 96) | function quote(string){escapable.lastIndex=0;return escapable.test(strin...
  function str (line 96) | function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[...
  function walk (line 96) | function walk(holder,key){var k,v,value=holder[key];if(value&&typeof val...

FILE: third_party/ui/bower_components/modernizr/test/js/lib/uaparser.js
  function parse (line 11) | function parse(ua) {
  function UserAgent (line 19) | function UserAgent(family) {
  function parser (line 194) | function parser(ua) {

FILE: third_party/ui/bower_components/modernizr/test/js/unit-caniuse.js
  function bool (line 73) | function bool(ciuresult){
  function testify (line 80) | function testify(o){

FILE: third_party/ui/bower_components/modernizr/test/js/unit.js
  function F (line 50) | function F(x, y)
  function gimmePrefix (line 502) | function gimmePrefix(prop, obj){

FILE: third_party/ui/bower_components/modernizr/test/qunit/qunit.js
  function Test (line 34) | function Test( settings ) {
  function run (line 271) | function run() {
  function F (line 555) | function F() {}
  function done (line 1052) | function done() {
  function validTest (line 1120) | function validTest( test ) {
  function extractStacktrace (line 1155) | function extractStacktrace( e, offset ) {
  function sourceFromStacktrace (line 1193) | function sourceFromStacktrace( offset ) {
  function escapeInnerText (line 1201) | function escapeInnerText( s ) {
  function synchronize (line 1216) | function synchronize( callback, last ) {
  function process (line 1224) | function process( last ) {
  function saveGlobal (line 1245) | function saveGlobal() {
  function checkPollution (line 1259) | function checkPollution( name ) {
  function diff (line 1278) | function diff( a, b ) {
  function extend (line 1294) | function extend( a, b ) {
  function addEvent (line 1308) | function addEvent( elem, type, fn ) {
  function id (line 1318) | function id( name ) {
  function registerLoggingCallback (line 1323) | function registerLoggingCallback( key ) {
  function runLoggingCallbacks (line 1330) | function runLoggingCallbacks( key, scope, args ) {
  function bindCallbacks (line 1348) | function bindCallbacks( o, callbacks, args ) {
  function useStrictEquality (line 1372) | function useStrictEquality( b, a ) {
  function quote (line 1538) | function quote( str ) {
  function literal (line 1541) | function literal( o ) {
  function join (line 1544) | function join( pre, arr, post ) {
  function array (line 1556) | function array( arr, stack ) {
  function getText (line 1743) | function getText( elems ) {
  function inArray (line 1764) | function inArray( elem, array ) {
  function diff (line 1793) | function diff( o, n ) {

FILE: third_party/ui/bower_components/modernizr/test/qunit/run-qunit.js
  function waitFor (line 13) | function waitFor(testFx, onReady, timeOutMillis) {

FILE: third_party/ui/bower_components/ng-lodash/build/ng-lodash.js
  function baseCompareAscending (line 247) | function baseCompareAscending(value, other) {
  function baseIndexOf (line 268) | function baseIndexOf(array, value, fromIndex) {
  function baseSortBy (line 290) | function baseSortBy(array, comparer) {
  function baseToString (line 306) | function baseToString(value) {
  function charAtCallback (line 319) | function charAtCallback(string) {
  function charsLeftIndex (line 331) | function charsLeftIndex(string, chars) {
  function charsRightIndex (line 346) | function charsRightIndex(string, chars) {
  function compareAscending (line 361) | function compareAscending(object, other) {
  function compareMultipleAscending (line 373) | function compareMultipleAscending(object, other) {
  function deburrLetter (line 397) | function deburrLetter(letter) {
  function escapeHtmlChar (line 407) | function escapeHtmlChar(chr) {
  function escapeStringChar (line 418) | function escapeStringChar(chr) {
  function indexOfNaN (line 431) | function indexOfNaN(array, fromIndex, fromRight) {
  function isObjectLike (line 448) | function isObjectLike(value) {
  function isSpace (line 459) | function isSpace(charCode) {
  function replaceHolders (line 471) | function replaceHolders(array, placeholder) {
  function sortedUniq (line 490) | function sortedUniq(array, iteratee) {
  function trimmedLeftIndex (line 509) | function trimmedLeftIndex(string) {
  function trimmedRightIndex (line 523) | function trimmedRightIndex(string) {
  function unescapeHtmlChar (line 536) | function unescapeHtmlChar(chr) {
  function runInContext (line 575) | function runInContext(context) {

FILE: third_party/ui/bower_components/sprintf/src/sprintf.js
  function sprintf (line 14) | function sprintf() {
  function get_type (line 167) | function get_type(variable) {
  function str_repeat (line 171) | function str_repeat(input, multiplier) {
Condensed preview — 719 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,648K chars).
[
  {
    "path": ".gitignore",
    "chars": 1028,
    "preview": "# OSX leaves these everywhere on SMB shares\n._*\n\n# OSX trash\n.DS_Store\n\n# Eclipse files\n.classpath\n.project\n.settings/**"
  },
  {
    "path": ".travis.yml",
    "chars": 701,
    "preview": "language: node_js\nsudo: false\nnode_js:\n- '0.12'\n\ncache:\n  directories:\n    - master/node_modules\n\nbefore_install:\n  - ex"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 1877,
    "preview": "# How to become a contributor and submit your own code\n\n## Contributor License Agreements\n\nWe'd love to accept your patc"
  },
  {
    "path": "Dockerfile",
    "chars": 724,
    "preview": "# Copyright 2015 The Kubernetes Authors. All rights reserved.\n#\n# Licensed under the Apache License, Version 2.0 (the \"L"
  },
  {
    "path": "Godeps/Godeps.json",
    "chars": 224,
    "preview": "{\n\t\"ImportPath\": \"k8s.io/kube-ui\",\n\t\"GoVersion\": \"go1.4.2\",\n\t\"Packages\": [\n\t\t\"./...\"\n\t],\n\t\"Deps\": [\n\t\t{\n\t\t\t\"ImportPath\":"
  },
  {
    "path": "Godeps/Readme",
    "chars": 136,
    "preview": "This directory tree is generated automatically by godep.\n\nPlease do not edit.\n\nSee https://github.com/tools/godep for mo"
  },
  {
    "path": "Godeps/_workspace/.gitignore",
    "chars": 10,
    "preview": "/pkg\n/bin\n"
  },
  {
    "path": "Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/LICENSE",
    "chars": 1299,
    "preview": "Copyright (c) 2014, Elazar Leibovich\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or wi"
  },
  {
    "path": "Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/README.md",
    "chars": 1269,
    "preview": "# go-bindata-assetfs\n\nServe embedded files from [jteeuwen/go-bindata](https://github.com/jteeuwen/go-bindata) with `net/"
  },
  {
    "path": "Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/assetfs.go",
    "chars": 3155,
    "preview": "package assetfs\n\nimport (\n\t\"bytes\"\n\t\"errors\"\n\t\"io\"\n\t\"io/ioutil\"\n\t\"net/http\"\n\t\"os\"\n\t\"path\"\n\t\"path/filepath\"\n\t\"time\"\n)\n\nva"
  },
  {
    "path": "Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/doc.go",
    "chars": 459,
    "preview": "// assetfs allows packages to serve static content embedded\n// with the go-bindata tool with the standard net/http packa"
  },
  {
    "path": "Godeps/_workspace/src/github.com/elazarl/go-bindata-assetfs/go-bindata-assetfs/main.go",
    "chars": 1601,
    "preview": "package main\n\nimport (\n\t\"bufio\"\n\t\"bytes\"\n\t\"fmt\"\n\t\"os\"\n\t\"os/exec\"\n)\n\nconst bindatafile = \"bindata.go\"\n\nfunc main() {\n\tif "
  },
  {
    "path": "LICENSE",
    "chars": 11358,
    "preview": "\n                                 Apache License\n                           Version 2.0, January 2004\n                  "
  },
  {
    "path": "Makefile",
    "chars": 702,
    "preview": "# Makefile for the Docker image gcr.io/kube-ui/kube-ui\n# MAINTAINER: Tim St. Clair <stclair@google.com>\n# If you update "
  },
  {
    "path": "README.md",
    "chars": 8631,
    "preview": "\nJoin the UI discussion at: https://groups.google.com/forum/#!forum/kubernetes-sig-ui\n\nAlso please check out the new Das"
  },
  {
    "path": "build/build-ui.sh",
    "chars": 1638,
    "preview": "#!/bin/bash\n\n# Copyright 2014 The Kubernetes Authors All rights reserved.\n#\n# Licensed under the Apache License, Version"
  },
  {
    "path": "data/datafile.go",
    "chars": 976388,
    "preview": "/*\nCopyright 2016 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "docs/ui.md",
    "chars": 1067,
    "preview": "# Kubernetes UI Instructions\n\n## Kubernetes User Interface\nKubernetes has an extensible user interface with default func"
  },
  {
    "path": "hooks/boilerplate.go.txt",
    "chars": 591,
    "preview": "/*\nCopyright YEAR The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "master/.bowerrc",
    "chars": 56,
    "preview": "{\n  \"directory\": \"../third_party/ui/bower_components\"\n}\n"
  },
  {
    "path": "master/README.md",
    "chars": 1410,
    "preview": "### Application source and project files\n\nThis directory contains the source and project files for the application, incl"
  },
  {
    "path": "master/bower.json",
    "chars": 789,
    "preview": "{\n  \"name\": \"kube-ui\",\n  \"description\": \"UI for Kubernetes\",\n  \"version\": \"0.0.0\",\n  \"homepage\": \"https://github.com/kub"
  },
  {
    "path": "master/components/README.md",
    "chars": 5153,
    "preview": "Components\n==========\n\nA tab in the Kubernetes UI with its set of visualizations is referred to as a *component*. Compon"
  },
  {
    "path": "master/components/dashboard/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/README.md",
    "chars": 167,
    "preview": "Dashboard Component for Kubernetes WebUI\n\n\n[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/www/m"
  },
  {
    "path": "master/components/dashboard/config/development.example.json",
    "chars": 3,
    "preview": "{}\n"
  },
  {
    "path": "master/components/dashboard/img/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/js/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/js/modules/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/cAdvisorController.js",
    "chars": 6451,
    "preview": "\n\napp.controller('cAdvisorController', [\n  '$scope',\n  '$routeParams',\n  'k8sApi',\n  'lodash',\n  'cAdvisorService',\n  '$"
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/dashboard.js",
    "chars": 237,
    "preview": "/**=========================================================\n * Module: Dashboard\n * Visualizer for clusters\n =========="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/groupController.js",
    "chars": 6968,
    "preview": "/**=========================================================\n * Module: Group\n * Visualizer for groups\n ================"
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/header.js",
    "chars": 1099,
    "preview": "/**=========================================================\n * Module: Header\n * Visualizer for clusters\n ============="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/listEventsController.js",
    "chars": 2308,
    "preview": "/**=========================================================\n * Module: List Events\n * Visualizer list events\n ========="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/listMinionsController.js",
    "chars": 2062,
    "preview": "/**=========================================================\n * Module: Minions\n * Visualizer for minions\n ============="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/listPodsController.js",
    "chars": 3669,
    "preview": "\n\napp.controller('ListPodsCtrl', [\n  '$scope',\n  '$routeParams',\n  'k8sApi',\n  'lodash',\n  '$location',\n  function($scop"
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/listReplicationControllersController.js",
    "chars": 2932,
    "preview": "/**=========================================================\n * Module: Replication Controllers\n * Visualizer for replic"
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/listServicesController.js",
    "chars": 2993,
    "preview": "/**=========================================================\n * Module: Services\n * Visualizer for services\n ==========="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/nodeController.js",
    "chars": 922,
    "preview": "/**=========================================================\n * Module: Nodes\n * Visualizer for nodes\n ================="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/podController.js",
    "chars": 964,
    "preview": "/**=========================================================\n * Module: Pods\n * Visualizer for pods\n ==================="
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/replicationController.js",
    "chars": 1287,
    "preview": "/**=========================================================\n * Module: Replication\n * Visualizer for replication contro"
  },
  {
    "path": "master/components/dashboard/js/modules/controllers/serviceController.js",
    "chars": 1317,
    "preview": "/**=========================================================\n * Module: Services\n * Visualizer for services\n ==========="
  },
  {
    "path": "master/components/dashboard/js/modules/directives/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/js/modules/directives/d3MinionBarGauge.js",
    "chars": 15173,
    "preview": "(function() {\n  'use strict';\n\n  angular.module('kubernetesApp.components.dashboard')\n      .directive('d3MinionBarGauge"
  },
  {
    "path": "master/components/dashboard/js/modules/directives/dashboard.js",
    "chars": 3786,
    "preview": "(function() {\n  'use strict';\n\n  angular.module('kubernetesApp.components.dashboard')\n      .directive(\n           'dash"
  },
  {
    "path": "master/components/dashboard/js/modules/services/d3.js",
    "chars": 1037,
    "preview": "angular.module('kubernetesApp.components.dashboard')\n    .factory('d3DashboardService', [\n      '$document',\n      '$q',"
  },
  {
    "path": "master/components/dashboard/js/modules/services/podsMock.js",
    "chars": 3397,
    "preview": "(function() {\n  'use strict';\n\n  angular.module('pods', []).service('podService', ['$q', PodDataService]);\n\n  /**\n   * P"
  },
  {
    "path": "master/components/dashboard/js/modules/services/replicationControllersMock.js",
    "chars": 2865,
    "preview": "(function() {\n  'use strict';\n\n  angular.module('replicationControllers', [])\n      .service('replicationControllerServi"
  },
  {
    "path": "master/components/dashboard/js/modules/services/servicesMock.js",
    "chars": 3253,
    "preview": "(function() {\n  'use strict';\n\n  angular.module('services', []).service('serviceService', ['$q', ServiceDataService]);\n\n"
  },
  {
    "path": "master/components/dashboard/less/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/less/dashboard/colors.less",
    "chars": 2304,
    "preview": "\n@color-codes:\n  \"#2962FF\",\n  \"#AA00FF\",\n  \"#00C853\",\n  \"#304FFE\",\n  \"#0091EA\",\n  \"#FF6D00\",\n  \"#00BFA5\",\n  \"#C51162\",\n "
  },
  {
    "path": "master/components/dashboard/less/dashboard/groups.less",
    "chars": 2317,
    "preview": ".groups {\n  font-size: 13px;\n\n  .header {\n    line-height: 21px;\n    a {\n      padding-left: 5px;\n      padding-right: 5"
  },
  {
    "path": "master/components/dashboard/less/dashboard/pods.less",
    "chars": 1291,
    "preview": ".clear-bg {\n  background-color: transparent;\n}\n.list-pods {\n  .pod-group {\n    margin: 25px;\n\n    md-grid-list {\n      m"
  },
  {
    "path": "master/components/dashboard/less/dashboard/servers.less",
    "chars": 2412,
    "preview": ".server-overview {\n  @import (multiple) \"colors\";\n\n  .color-1 {\n    background-color: #512DA8;\n    border-color: #512DA8"
  },
  {
    "path": "master/components/dashboard/less/dashboard/tables.less",
    "chars": 1592,
    "preview": ".dash-table {\n  min-width: 100%;\n  border-collapse: collapse;\n}\n\n.dash-table tbody tr:hover, .dash-table tbody tr:focus "
  },
  {
    "path": "master/components/dashboard/less/dashboard.less",
    "chars": 1221,
    "preview": ".dashboard {\n  .body-wrapper {\n    padding: 25px;\n  }\n  // analagous to float:right when used with row layout\n  [flex-al"
  },
  {
    "path": "master/components/dashboard/manifest.json",
    "chars": 1739,
    "preview": "{\n  \"description\": \"The basic Kubernetes UI dashboard... \",\n  \"routes\": [\n    {\n      \"description\": \"Dashboard visualiz"
  },
  {
    "path": "master/components/dashboard/pages/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/pages/footer.html",
    "chars": 7,
    "preview": "<p></p>"
  },
  {
    "path": "master/components/dashboard/pages/header.html",
    "chars": 1313,
    "preview": "<div layout-fill>\n<md-toolbar md-scroll-shrink class=\"dashboard-subnav\">\n   <div class=\"md-toolbar-tools\">\n      <div la"
  },
  {
    "path": "master/components/dashboard/pages/home.html",
    "chars": 247,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\" ng-controller=\"DashboardCtrl\" layout-fill>\n  <md-content>\n    <div n"
  },
  {
    "path": "master/components/dashboard/protractor/.gitignore",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/protractor/smoke.spec.js",
    "chars": 4134,
    "preview": "describe('Kubernetes UI Dashboard', function() {\n  it('should have all the expected components loaded', function() {\n   "
  },
  {
    "path": "master/components/dashboard/test/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/test/controllers/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/test/controllers/header.spec.js",
    "chars": 2072,
    "preview": "'use strict';\n\ndescribe('header controller', function() {\n    beforeEach(module('kubernetesApp.components.dashboard'));\n"
  },
  {
    "path": "master/components/dashboard/test/directives/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/test/services/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/views/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/views/groups.html",
    "chars": 1298,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"GroupCtrl\" layout=\"column\" class=\"body-wrappe"
  },
  {
    "path": "master/components/dashboard/views/listEvents.html",
    "chars": 326,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListEventsCtrl\" style=\"padding:25px;\" class=\""
  },
  {
    "path": "master/components/dashboard/views/listMinions.html",
    "chars": 348,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListMinionsCtrl\" style=\"padding:25px;\" class="
  },
  {
    "path": "master/components/dashboard/views/listPods.html",
    "chars": 345,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListPodsCtrl\" style=\"padding:25px;\" class=\"li"
  },
  {
    "path": "master/components/dashboard/views/listPodsCards.html",
    "chars": 1967,
    "preview": "<div class=\"dashboard\">\n  <div ng-controller=\"ListPodsCtrl\" style=\"padding:25px;\" class=\"list-pods\">\n\n    <md-whiteframe"
  },
  {
    "path": "master/components/dashboard/views/listPodsVisualizer.html",
    "chars": 841,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListPodsCtrl\" style=\"padding:25px;\" class=\"li"
  },
  {
    "path": "master/components/dashboard/views/listReplicationControllers.html",
    "chars": 363,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListReplicationControllersCtrl\" style=\"paddin"
  },
  {
    "path": "master/components/dashboard/views/listServices.html",
    "chars": 349,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ListServicesCtrl\" style=\"padding:25px;\" class"
  },
  {
    "path": "master/components/dashboard/views/node.html",
    "chars": 2305,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"NodeCtrl\" layout=\"column\" class=\"body-wrapper"
  },
  {
    "path": "master/components/dashboard/views/partials/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/components/dashboard/views/partials/cadvisor.html",
    "chars": 454,
    "preview": "<div class=\"dashboard\" ng-controller=\"cAdvisorController\">\n  <div class=\"server-overview\">\n    <md-content layout=\"row\" "
  },
  {
    "path": "master/components/dashboard/views/partials/groupBox.html",
    "chars": 769,
    "preview": "<div>\n  <md-content>\n    <div class=\"server-overview\" layout=\"column\">\n      <!-- subheader -->\n      <div class=\"group-"
  },
  {
    "path": "master/components/dashboard/views/partials/groupItem.html",
    "chars": 2303,
    "preview": "<div layout=\"row\" ng-if=\"group.kind != 'grouping'\">\n  <div>\n    <!-- Default box display -->\n      <div layout=\"row\" cla"
  },
  {
    "path": "master/components/dashboard/views/partials/podTilesByName.html",
    "chars": 1287,
    "preview": "\n<md-grid-list class=\"list-color-{{$index + 1}}\" md-cols=\"6\" md-row-height=\"1:1\" md-gutter=\"8px\" ng-repeat=\"(podName, gr"
  },
  {
    "path": "master/components/dashboard/views/partials/podTilesByServer.html",
    "chars": 1281,
    "preview": "<md-grid-list class=\"\" md-cols=\"6\" md-row-height=\"1:1\" md-gutter=\"8px\" ng-repeat=\"(serverIp, groupPods) in podsByServer\""
  },
  {
    "path": "master/components/dashboard/views/pod.html",
    "chars": 4286,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"PodCtrl\" layout=\"column\" class=\"body-wrapper "
  },
  {
    "path": "master/components/dashboard/views/replication.html",
    "chars": 3362,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n<div ng-controller=\"ReplicationControllerCtrl\" layout=\"column\" clas"
  },
  {
    "path": "master/components/dashboard/views/service.html",
    "chars": 3965,
    "preview": "<div dashboard-header></div>\n<div class=\"dashboard\">\n  <div ng-controller=\"ServiceCtrl\" layout=\"column\" class=\"body-wrap"
  },
  {
    "path": "master/gulpfile.js",
    "chars": 14005,
    "preview": "var gulp = require('gulp'), concat = require('gulp-concat'), uglify = require('gulp-uglify'),\n    less = require('gulp-l"
  },
  {
    "path": "master/js/app.config.js",
    "chars": 3065,
    "preview": "angular.module('kubernetesApp.config', []);\nangular.module('kubernetesApp.services', ['kubernetesApp.config']);\n\napp.con"
  },
  {
    "path": "master/js/app.directive.js",
    "chars": 1699,
    "preview": "app.directive('includeReplace', function() {\n    'use strict';\n    return {\n      require: 'ngInclude',\n      restrict: "
  },
  {
    "path": "master/js/app.init.js",
    "chars": 2132,
    "preview": "// APP START\n// ****************************\n// /www/app/assets/app.js is autogenerated. Do not modify.\n// Changes shoul"
  },
  {
    "path": "master/js/app.preinit.js",
    "chars": 65,
    "preview": "var componentNamespaces = [\"kubernetesApp.components.dashboard\"];"
  },
  {
    "path": "master/js/app.run.js",
    "chars": 132,
    "preview": "app.run(['$route', angular.noop])\n    .run(['lodash', function(lodash) {\n      // Alias lodash\n      window['_'] = lodas"
  },
  {
    "path": "master/js/app.service.js",
    "chars": 691,
    "preview": "app.service('SidebarService', [\n  '$rootScope',\n  function($rootScope) {\n    var service = this;\n    service.sidebarItem"
  },
  {
    "path": "master/js/app.skeleton.json",
    "chars": 55,
    "preview": "{\n  \"appSkeleton\": \"var componentNamespaces = [%s];\"\n}\n"
  },
  {
    "path": "master/js/sections.js",
    "chars": 1431,
    "preview": "app.constant(\"manifestRoutes\", [{\"description\":\"Dashboard visualization.\",\"url\":\"/dashboard/\",\"templateUrl\":\"components/"
  },
  {
    "path": "master/js/tabs.js",
    "chars": 67,
    "preview": "app.value(\"tabs\", [{\"component\":\"dashboard\",\"title\":\"Dashboard\"}]);"
  },
  {
    "path": "master/karma.conf.js",
    "chars": 1385,
    "preview": "module.exports = function(config) {\n  var configuration = {\n\n    basePath: '../',\n\n    files: [\n      'third_party/ui/bo"
  },
  {
    "path": "master/less/app/base.less",
    "chars": 9748,
    "preview": ".nav-back {\n  width: 80px;\n  font-size: 14px;\n  padding-left: 14px;\n  line-height: 15px;\n}\n\n.nav-back {\n  /* :before */\n"
  },
  {
    "path": "master/package.json",
    "chars": 1624,
    "preview": "{\n  \"name\": \"kubernetes-ui\",\n  \"description\": \"UI for Kubernetes\",\n  \"version\": \"0.3.0\",\n  \"repository\": \"https://github"
  },
  {
    "path": "master/protractor/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/protractor/chrome/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/protractor/chrome/smoke.spec.js",
    "chars": 603,
    "preview": "describe('Kubernetes UI Chome', function() {\n  it('should have all the expected tabs loaded', function() {\n    browser.g"
  },
  {
    "path": "master/protractor/conf.js",
    "chars": 152,
    "preview": "exports.config = {\n  specs: [\n    'chrome/**/*.js',\n    '../components/**/protractor/*.js'\n  ],\n\n   capabilities: {\n    "
  },
  {
    "path": "master/shared/assets/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/shared/config/development.example.json",
    "chars": 314,
    "preview": "{\n  \"k8sApiServer\": \"/api/v1\",\n  \"k8sDataService\": \"/cluster-insight\",\n  \"k8sDataServicePortName\": \":cluster-insight\",\n "
  },
  {
    "path": "master/shared/config/generated-config.js",
    "chars": 420,
    "preview": "angular.module(\"kubernetesApp.config\", [])\n\n.constant(\"ENV\", {\n\t\"/\": {\n\t\t\"k8sApiServer\": \"/api/v1\",\n\t\t\"k8sDataService\": "
  },
  {
    "path": "master/shared/config/production.json",
    "chars": 314,
    "preview": "{\n  \"k8sApiServer\": \"/api/v1\",\n  \"k8sDataService\": \"/cluster-insight\",\n  \"k8sDataServicePortName\": \":cluster-insight\",\n "
  },
  {
    "path": "master/shared/index.html",
    "chars": 2328,
    "preview": "<!DOCTYPE html>\n<html lang=\"en\" ng-app=\"kubernetesApp\" ng-strict-di>\n<head>\n  <title>Kubernetes UI</title>\n  <meta chars"
  },
  {
    "path": "master/shared/js/modules/config.js",
    "chars": 184,
    "preview": "/**=========================================================\n * Module: config.js\n * App routes and resources configurat"
  },
  {
    "path": "master/shared/js/modules/constants.js",
    "chars": 198,
    "preview": "/**=========================================================\n * Module: constants.js\n * Define constants to inject acros"
  },
  {
    "path": "master/shared/js/modules/controllers/home-page.js",
    "chars": 2634,
    "preview": "/**=========================================================\n * Module: home-page.js\n * Page Controller\n ==============="
  },
  {
    "path": "master/shared/js/modules/controllers/main.js",
    "chars": 171,
    "preview": "/**=========================================================\n * Module: main.js\n * Main Application Controller\n ========"
  },
  {
    "path": "master/shared/js/modules/controllers/tabs-global.js",
    "chars": 590,
    "preview": "/**=========================================================\n * Module: tabs-global.js\n * Page Controller\n ============="
  },
  {
    "path": "master/shared/js/modules/directives/sidebar.js",
    "chars": 192,
    "preview": "/**=========================================================\n * Module: sidebar.js\n * Wraps the sidebar and handles coll"
  },
  {
    "path": "master/shared/js/modules/services/cAdvisor.js",
    "chars": 7647,
    "preview": "(function() {\n  \"use strict\";\n\n  angular.module('kubernetesApp.services')\n      .service('cAdvisorService', function($ht"
  },
  {
    "path": "master/shared/js/modules/services/k8sApiService.js",
    "chars": 2706,
    "preview": "(function() {\n  \"use strict\";\n\n  angular.module('kubernetesApp.services')\n    .provider('k8sApi',\n             function("
  },
  {
    "path": "master/shared/js/modules/services/pollK8sData.js",
    "chars": 8704,
    "preview": "(function() {\n  \"use strict\";\n\n  var pollK8sDataServiceProvider = function PollK8sDataServiceProvider(_) {\n    // A set "
  },
  {
    "path": "master/shared/js/modules/services/toggle-state.js",
    "chars": 196,
    "preview": "/**=========================================================\n * Module: toggle-state.js\n * Services to share toggle stat"
  },
  {
    "path": "master/shared/vendor/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/shared/vendor/angular-json-human/dist/angular-json-human.css",
    "chars": 1151,
    "preview": ".jh-key,.jh-root,.jh-root tr,.jh-type-array,.jh-type-object,.jh-value{-webkit-box-sizing:border-box;-moz-box-sizing:bord"
  },
  {
    "path": "master/shared/vendor/angular-material/angular-material.css",
    "chars": 159606,
    "preview": "/*!\n * Angular Material Design\n * https://github.com/angular/material\n * @license MIT\n * v0.8.1\n */*,:after,:before{box-"
  },
  {
    "path": "master/shared/views/partials/404.html",
    "chars": 60,
    "preview": "<span>The page you're looking for could not be found.</span>"
  },
  {
    "path": "master/shared/views/partials/kubernetes-ui-menu.tmpl.html",
    "chars": 710,
    "preview": "<ul class=\"kubernetes-ui-menu\">\n  <li ng-repeat=\"section in menu.sections\" class=\"parent-list-item\" ng-class=\"{'parentAc"
  },
  {
    "path": "master/shared/views/partials/md-table.tmpl.html",
    "chars": 2819,
    "preview": "<table class=\"md-table\">\n  <thead>\n    <tr class=\"md-table-headers-row\">\n      <th class=\"md-table-header\" ng-repeat=\"h "
  },
  {
    "path": "master/shared/views/partials/menu-toggle.tmpl.html",
    "chars": 617,
    "preview": "<md-button class=\"md-button-toggle\"\n           ng-click=\"toggle()\"\n           aria-controls=\"kubernetes-ui-menu-{{sectio"
  },
  {
    "path": "master/test/modules/controllers/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/test/modules/controllers/cAdvisorController.spec.js",
    "chars": 110,
    "preview": "'use strict';\n\ndescribe(\"cAdvisor controller\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/groupController.spec.js",
    "chars": 107,
    "preview": "'use strict';\n\ndescribe(\"group controller\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/listEventsController.spec.js",
    "chars": 111,
    "preview": "'use strict';\n\ndescribe(\"ListEventsController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/listMinionsController.spec.js",
    "chars": 112,
    "preview": "'use strict';\n\ndescribe(\"ListMinionsController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/listPodsController.spec.js",
    "chars": 109,
    "preview": "'use strict';\n\ndescribe(\"ListPodsController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/listReplicationControllersController.spec.js",
    "chars": 127,
    "preview": "'use strict';\n\ndescribe(\"ListReplicationControllersController\", function() { it(\"should work as intended\", function() {}"
  },
  {
    "path": "master/test/modules/controllers/listServicesController.spec.js",
    "chars": 113,
    "preview": "'use strict';\n\ndescribe(\"ListServicesController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/replicationController.js",
    "chars": 112,
    "preview": "'use strict';\n\ndescribe(\"replicationController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/controllers/serviceController.spec.js",
    "chars": 108,
    "preview": "'use strict';\n\ndescribe(\"serviceController\", function() { it(\"should work as intended\", function() {}); });\n"
  },
  {
    "path": "master/test/modules/directives/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/test/modules/services/.gitkeep",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "master/vendor.base.json",
    "chars": 1137,
    "preview": "[\n  \"../third_party/ui/bower_components/jquery/dist/jquery.min.js\",\n  \"../third_party/ui/bower_components/hammerjs/hamme"
  },
  {
    "path": "master/vendor.json",
    "chars": 29,
    "preview": "[\n  \"shared/vendor/**/*.*\"\n]\n"
  },
  {
    "path": "server/kube-ui.go",
    "chars": 1449,
    "preview": "/*\nCopyright 2014 The Kubernetes Authors All rights reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"Lice"
  },
  {
    "path": "server/sidebar-menu.json",
    "chars": 3,
    "preview": "[]\n"
  },
  {
    "path": "test/e2e/protractor.conf.js",
    "chars": 233,
    "preview": "exports.config = {\n  allScriptsTimeout: 11000,\n\n  specs: ['*.js'],\n\n  capabilities: {'browserName': 'chrome'},\n\n  baseUr"
  },
  {
    "path": "test/e2e/scenarios.js",
    "chars": 890,
    "preview": "'use strict';\n\n/* https://github.com/angular/protractor/blob/master/docs/toc.md */\n\ndescribe('my app', function() {\n\n  b"
  },
  {
    "path": "third_party/ui/bower_components/angular/.bower.json",
    "chars": 434,
    "preview": "{\n  \"name\": \"angular\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular.js\",\n  \"ignore\": [],\n  \"dependencies\": {},\n  \"homepag"
  },
  {
    "path": "third_party/ui/bower_components/angular/README.md",
    "chars": 1885,
    "preview": "# packaged angular\n\nThis repo is for distribution on `npm` and `bower`. The source for this module is in the\n[main Angul"
  },
  {
    "path": "third_party/ui/bower_components/angular/angular-csp.css",
    "chars": 263,
    "preview": "/* Include this file in your html if you are using the CSP mode. */\n\n@charset \"UTF-8\";\n\n[ng\\:cloak], [ng-cloak], [data-n"
  },
  {
    "path": "third_party/ui/bower_components/angular/angular.js",
    "chars": 960319,
    "preview": "/**\n * @license AngularJS v1.3.15\n * (c) 2010-2014 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(windo"
  },
  {
    "path": "third_party/ui/bower_components/angular/bower.json",
    "chars": 114,
    "preview": "{\n  \"name\": \"angular\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular.js\",\n  \"ignore\": [],\n  \"dependencies\": {\n  }\n}\n"
  },
  {
    "path": "third_party/ui/bower_components/angular/index.js",
    "chars": 48,
    "preview": "require('./angular');\nmodule.exports = angular;\n"
  },
  {
    "path": "third_party/ui/bower_components/angular/package.json",
    "chars": 573,
    "preview": "{\n  \"name\": \"angular\",\n  \"version\": \"1.3.15\",\n  \"description\": \"HTML enhanced for web apps\",\n  \"main\": \"index.js\",\n  \"sc"
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/.bower.json",
    "chars": 498,
    "preview": "{\n  \"name\": \"angular-animate\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-animate.js\",\n  \"ignore\": [],\n  \"dependencies\""
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/README.md",
    "chars": 2045,
    "preview": "# packaged angular-animate\n\nThis repo is for distribution on `npm` and `bower`. The source for this module is in the\n[ma"
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/angular-animate.js",
    "chars": 104238,
    "preview": "/**\n * @license AngularJS v1.3.15\n * (c) 2010-2014 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(windo"
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/bower.json",
    "chars": 154,
    "preview": "{\n  \"name\": \"angular-animate\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-animate.js\",\n  \"ignore\": [],\n  \"dependencies\""
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/index.js",
    "chars": 60,
    "preview": "require('./angular-animate');\nmodule.exports = 'ngAnimate';\n"
  },
  {
    "path": "third_party/ui/bower_components/angular-animate/package.json",
    "chars": 603,
    "preview": "{\n  \"name\": \"angular-animate\",\n  \"version\": \"1.3.15\",\n  \"description\": \"AngularJS module for animations\",\n  \"main\": \"ind"
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/.bower.json",
    "chars": 483,
    "preview": "{\n  \"name\": \"angular-aria\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-aria.js\",\n  \"ignore\": [],\n  \"dependencies\": {\n  "
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/README.md",
    "chars": 2006,
    "preview": "# packaged angular-aria\n\nThis repo is for distribution on `npm` and `bower`. The source for this module is in the\n[main "
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/angular-aria.js",
    "chars": 12693,
    "preview": "/**\n * @license AngularJS v1.3.15\n * (c) 2010-2014 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(windo"
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/bower.json",
    "chars": 148,
    "preview": "{\n  \"name\": \"angular-aria\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-aria.js\",\n  \"ignore\": [],\n  \"dependencies\": {\n  "
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/index.js",
    "chars": 54,
    "preview": "require('./angular-aria');\nmodule.exports = 'ngAria';\n"
  },
  {
    "path": "third_party/ui/bower_components/angular-aria/package.json",
    "chars": 631,
    "preview": "{\n  \"name\": \"angular-aria\",\n  \"version\": \"1.3.15\",\n  \"description\": \"AngularJS module for making accessibility easy\",\n  "
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/.bower.json",
    "chars": 498,
    "preview": "{\n  \"name\": \"angular-cookies\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-cookies.js\",\n  \"ignore\": [],\n  \"dependencies\""
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/README.md",
    "chars": 2040,
    "preview": "# packaged angular-cookies\n\nThis repo is for distribution on `npm` and `bower`. The source for this module is in the\n[ma"
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/angular-cookies.js",
    "chars": 5825,
    "preview": "/**\n * @license AngularJS v1.3.15\n * (c) 2010-2014 Google, Inc. http://angularjs.org\n * License: MIT\n */\n(function(windo"
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/bower.json",
    "chars": 154,
    "preview": "{\n  \"name\": \"angular-cookies\",\n  \"version\": \"1.3.15\",\n  \"main\": \"./angular-cookies.js\",\n  \"ignore\": [],\n  \"dependencies\""
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/index.js",
    "chars": 60,
    "preview": "require('./angular-cookies');\nmodule.exports = 'ngCookies';\n"
  },
  {
    "path": "third_party/ui/bower_components/angular-cookies/package.json",
    "chars": 598,
    "preview": "{\n  \"name\": \"angular-cookies\",\n  \"version\": \"1.3.15\",\n  \"description\": \"AngularJS module for cookies\",\n  \"main\": \"index."
  },
  {
    "path": "third_party/ui/bower_components/angular-css/.bower.json",
    "chars": 920,
    "preview": "{\n  \"name\": \"angular-css\",\n  \"main\": \"./angular-css.js\",\n  \"version\": \"1.0.7\",\n  \"homepage\": \"http://door3.github.io/ang"
  },
  {
    "path": "third_party/ui/bower_components/angular-css/Gruntfile.js",
    "chars": 1330,
    "preview": "'use strict';\n\nmodule.exports = function(grunt) {\n    grunt.initConfig({\n        pkg: grunt.file.readJSON('package.json'"
  },
  {
    "path": "third_party/ui/bower_components/angular-css/LICENSE.txt",
    "chars": 1080,
    "preview": "The MIT License\n\nCopyright (c) 2014 DOOR3, Alex Castillo\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "third_party/ui/bower_components/angular-css/README.md",
    "chars": 10037,
    "preview": "# AngularCSS\n\n##### CSS on-demand for AngularJS\nOptimize the presentation layer of your single-page apps by dynamically "
  },
  {
    "path": "third_party/ui/bower_components/angular-css/angular-css.js",
    "chars": 20621,
    "preview": "/**\n * AngularCSS - CSS on-demand for AngularJS\n * @version v1.0.7\n * @author DOOR3, Alex Castillo\n * @link http://door3"
  },
  {
    "path": "third_party/ui/bower_components/angular-css/bower.json",
    "chars": 659,
    "preview": "{\n  \"name\": \"angular-css\",\n  \"main\": \"./angular-css.js\",\n  \"version\": \"1.0.7\",\n  \"homepage\": \"http://door3.github.io/ang"
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/.bower.json",
    "chars": 898,
    "preview": "{\n  \"name\": \"angular-filter\",\n  \"version\": \"0.5.4\",\n  \"main\": \"dist/angular-filter.js\",\n  \"description\": \"Bunch of usefu"
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/.bowerrc",
    "chars": 38,
    "preview": "{\n  \"directory\": \"bower_components\"\n}\n"
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/.travis.yml",
    "chars": 195,
    "preview": "language: node_js\nnode_js:\n  - '0.10'\nbefore_script:\n  - export DISPLAY=:99.0\n  - sh -e /etc/init.d/xvfb start\n  - 'npm "
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/bower.json",
    "chars": 578,
    "preview": "{\n  \"name\": \"angular-filter\",\n  \"version\": \"0.5.4\",\n  \"main\": \"dist/angular-filter.js\",\n  \"description\": \"Bunch of usefu"
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/dist/angular-filter.js",
    "chars": 58575,
    "preview": "/**\n * Bunch of useful filters for angularJS(with no external dependencies!)\n * @version v0.5.4 - 2015-02-20 * @link htt"
  },
  {
    "path": "third_party/ui/bower_components/angular-filter/license.md",
    "chars": 1075,
    "preview": "The MIT License\n\nCopyright (c) 2015 Ariel Mashraki\n\nPermission is hereby granted, free of charge, to any person obtainin"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/.bower.json",
    "chars": 1230,
    "preview": "{\n  \"author\": {\n    \"name\": \"Brian Park\",\n    \"email\": \"yaru22@gmail.com\"\n  },\n  \"name\": \"angular-json-human\",\n  \"descri"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/LICENSE",
    "chars": 1101,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2013-2014 Brian Park <yaru22@gmail.com>\n\nPermission is hereby granted, free of char"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/README.md",
    "chars": 1579,
    "preview": "angular-json-human [![Analytics](https://ga-beacon.appspot.com/UA-2694988-7/angular-json-human/readme?pixel)](https://gi"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/bower.json",
    "chars": 957,
    "preview": "{\n  \"author\": {\n    \"name\": \"Brian Park\",\n    \"email\": \"yaru22@gmail.com\"\n  },\n\n  \"name\": \"angular-json-human\",\n  \"descr"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/dist/angular-json-human.css",
    "chars": 1915,
    "preview": "/**\n * Angular directive to convert JSON into human readable table. Inspired by https://github.com/marianoguerra/json.hu"
  },
  {
    "path": "third_party/ui/bower_components/angular-json-human/dist/angular-json-human.js",
    "chars": 3411,
    "preview": "/**\n * Angular directive to convert JSON into human readable table. Inspired by https://github.com/marianoguerra/json.hu"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/.bower.json",
    "chars": 564,
    "preview": "{\n  \"name\": \"angular-material\",\n  \"version\": \"0.8.1\",\n  \"dependencies\": {\n    \"angular\": \"1.3.x\",\n    \"angular-animate\":"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/LICENSE",
    "chars": 1094,
    "preview": "The MIT License\n\nCopyright (c) 2014 Google, Inc. http://angularjs.org\n\nPermission is hereby granted, free of charge, to "
  },
  {
    "path": "third_party/ui/bower_components/angular-material/README.md",
    "chars": 5633,
    "preview": "This repo is for distribution on `npm` and `bower`. The source for this module is in the\n[main Angular Material repo](ht"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/angular-material.css",
    "chars": 208710,
    "preview": "/*!\n * Angular Material Design\n * https://github.com/angular/material\n * @license MIT\n * v0.8.1\n */\n*, *:before, *:after"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/angular-material.js",
    "chars": 376830,
    "preview": "/*!\n * Angular Material Design\n * https://github.com/angular/material\n * @license MIT\n * v0.8.1\n */\nangular.module('ngMa"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/bower.json",
    "chars": 203,
    "preview": "{ \"name\": \"angular-material\", \"version\": \"0.8.1\", \"dependencies\": { \"angular\": \"1.3.x\", \"angular-animate\": \"1.3.x\", \"ang"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/default-theme.css",
    "chars": 24099,
    "preview": "md-autocomplete {\n  background: '{{background-50}}'; }\n  md-autocomplete button md-icon path {\n    fill: '{{background-6"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/demos/gridList/demoBasicUsage/style.scss",
    "chars": 1121,
    "preview": "md-icon {\n    width:50%;height:50%\n}\n\nmd-icon svg {\n  -webkit-border-radius: 50%;\n    -moz-border-radius: 50%;\n    borde"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/demos/gridList/demoDynamicTiles/style.scss",
    "chars": 1030,
    "preview": "md-icon {\n    width:50%;height:50%\n}\n\nmd-icon svg {\n  -webkit-border-radius: 50%;\n    -moz-border-radius: 50%;\n    borde"
  },
  {
    "path": "third_party/ui/bower_components/angular-material/demos/gridList/demoResponsiveUsage/style.scss",
    "chars": 0,
    "preview": ""
  },
  {
    "path": "third_party/ui/bower_components/angular-material/modules/closure/autocomplete/autocomplete-default-theme.css",
    "chars": 675,
    "preview": "/*!\n * Angular Material Design\n * https://github.com/angular/material\n * @license MIT\n * v0.8.1\n */\nmd-autocomplete {\n  "
  },
  {
    "path": "third_party/ui/bower_components/angular-material/modules/closure/autocomplete/autocomplete.css",
    "chars": 5452,
    "preview": "/*!\n * Angular Material Design\n * https://github.com/angular/material\n * @license MIT\n * v0.8.1\n */\n@-webkit-keyframes m"
  }
]

// ... and 519 more files (download for full content)

About this extraction

This page contains the full source code of the kubernetes/kube-ui GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 719 files (6.9 MB), approximately 1.9M tokens, and a symbol index with 1777 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!