Nokia: Putting in support for metro network services within XOS for E-CORD
Change-Id: I9277ccf808479dd593ee1b7b640a2247a5b28a39
diff --git a/views/ngXosViews/ecordTopology/.bowerrc b/views/ngXosViews/ecordTopology/.bowerrc
new file mode 100644
index 0000000..e491038
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/.bowerrc
@@ -0,0 +1,3 @@
+{
+ "directory": "src/vendor/"
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/.eslintrc b/views/ngXosViews/ecordTopology/.eslintrc
new file mode 100644
index 0000000..c852748
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/.eslintrc
@@ -0,0 +1,42 @@
+{
+ "ecmaFeatures": {
+ "blockBindings": true,
+ "forOf": true,
+ "destructuring": true,
+ "arrowFunctions": true,
+ "templateStrings": true
+ },
+ "env": {
+ "browser": true,
+ "node": true,
+ "es6": true
+ },
+ "plugins": [
+ //"angular"
+ ],
+ "rules": {
+ "quotes": [2, "single"],
+ "camelcase": [1, {"properties": "always"}],
+ "no-underscore-dangle": 1,
+ "eqeqeq": [2, "smart"],
+ "no-alert": 1,
+ "key-spacing": [1, { "beforeColon": false, "afterColon": true }],
+ "indent": [2, 2],
+ "no-irregular-whitespace": 1,
+ "eol-last": 0,
+ "max-nested-callbacks": [2, 4],
+ "comma-spacing": [1, {"before": false, "after": true}],
+ "no-trailing-spaces": [1, { skipBlankLines: true }],
+ "no-unused-vars": [1, {"vars": "all", "args": "after-used"}],
+ "new-cap": 0,
+
+ //"angular/ng_module_name": [2, '/^xos\.*[a-z]*$/'],
+ //"angular/ng_controller_name": [2, '/^[a-z].*Ctrl$/'],
+ //"angular/ng_service_name": [2, '/^[A-Z].*Service$/'],
+ //"angular/ng_directive_name": [2, '/^[a-z]+[[A-Z].*]*$/'],
+ //"angular/ng_di": [0, "function or array"]
+ },
+ "globals" :{
+ "angular": true
+ }
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/.gitignore b/views/ngXosViews/ecordTopology/.gitignore
new file mode 100644
index 0000000..567aee4
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/.gitignore
@@ -0,0 +1,6 @@
+dist/
+src/vendor
+.tmp
+node_modules
+npm-debug.log
+dist/
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/README.md b/views/ngXosViews/ecordTopology/README.md
new file mode 100644
index 0000000..04b5188
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/README.md
@@ -0,0 +1,48 @@
+# M-CORD UI
+
+## Requirements
+
+To run this UI is required to have installd:
+- NodeJs > v4
+- Bower
+
+## Mock Server
+
+A server that mock the response, used for development, is available and can be started with `npm run server`
+
+## Application setup
+
+This development environment require to be executed from inside the `xos` repo. The correct location for this folder is `/views/ngXosViews`.
+An `environment` configuration should also be present under `/views/env` and should contain a `default.js` file (to connect to XOS) and a `local.js` file (to connect to the mock server).
+
+The content of the `local.js` should be (to work with the provided server):
+```
+module.exports = {
+ host: 'http://localhost:4000/'
+};
+```
+
+While the `default.js` file should look like (please updated your values, refer to https://www.youtube.com/watch?v=iEp9F7JYPO8 for more information):
+```
+module.exports = {
+ host: 'http://127.0.0.1:9999/', // XOS Url
+ xoscsrftoken: 'jJRuH4YNK69qYV4Jks3dPCNrYDKFMtyL', // XOS token
+ xossessionid: 'jbsvkfjlcqtroxhxgz53oyvnd3348a03' // XOS session id
+};
+```
+
+## Start the application
+
+### To use the mock server
+
+From the root of this application (`/views/ngXosViews/ecordTopology`):
+- execute: `NODE_ENV=local npm start`
+- In another shell `npm run server`
+
+### To connect to your running XOS instance
+
+From the root of this application (`/views/ngXosViews/ecordTopology`) execute `npm start` (make sure that token and sessionId in the `default.js` config file are correct).
+
+## Build the App
+
+Once everything is working you can execute `npm run build` that will copy the files in the correct location and then you can load the dashboard in the UI (refer again to the tutorial).
diff --git a/views/ngXosViews/ecordTopology/bower.json b/views/ngXosViews/ecordTopology/bower.json
new file mode 100644
index 0000000..8466b09
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/bower.json
@@ -0,0 +1,42 @@
+{
+ "name": "xos-ecordTopology",
+ "version": "0.0.0",
+ "authors": [
+ "Matteo Scandolo <matteo.scandolo@gmail.com>"
+ ],
+ "description": "The ecordTopology view",
+ "license": "MIT",
+ "ignore": [
+ "**/.*",
+ "node_modules",
+ "bower_components",
+ "static/js/vendor/",
+ "test",
+ "tests"
+ ],
+ "dependencies": {
+ "angular-bootstrap-checkbox": "~0.4.0",
+ "topojson.v1.min": "http://d3js.org/topojson.v1.min.js"
+ },
+ "devDependencies": {
+ "jquery": "2.1.4",
+ "angular-mocks": "1.4.7",
+ "angular": "1.4.7",
+ "angular-ui-router": "0.2.15",
+ "angular-cookies": "1.4.7",
+ "angular-animate": "1.4.7",
+ "angular-resource": "1.4.7",
+ "lodash": "~4.11.1",
+ "bootstrap-css": "3.3.6",
+ "angular-chart.js": "~0.10.2",
+ "d3": "~3.5.17",
+ "angular-recursion": "~1.0.5"
+ },
+ "overrides": {
+ "topojson.v1.min": {
+ "main": [
+ "index.js"
+ ]
+ }
+ }
+}
diff --git a/views/ngXosViews/ecordTopology/gulp/build.js b/views/ngXosViews/ecordTopology/gulp/build.js
new file mode 100644
index 0000000..e4ad0d6
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/gulp/build.js
@@ -0,0 +1,164 @@
+'use strict';
+
+// BUILD
+//
+// The only purpose of this gulpfile is to build a XOS view and copy the correct files into
+// .html => dashboards
+// .js (minified and concat) => static/js
+//
+// The template are parsed and added to js with angular $templateCache
+
+var gulp = require('gulp');
+var ngAnnotate = require('gulp-ng-annotate');
+var uglify = require('gulp-uglify');
+var templateCache = require('gulp-angular-templatecache');
+var runSequence = require('run-sequence');
+var concat = require('gulp-concat-util');
+var del = require('del');
+var wiredep = require('wiredep');
+var angularFilesort = require('gulp-angular-filesort');
+var _ = require('lodash');
+var eslint = require('gulp-eslint');
+var inject = require('gulp-inject');
+var rename = require('gulp-rename');
+var replace = require('gulp-replace');
+var postcss = require('gulp-postcss');
+var autoprefixer = require('autoprefixer');
+var mqpacker = require('css-mqpacker');
+var csswring = require('csswring');
+
+const TEMPLATE_FOOTER = `
+angular.module('xos.ecordTopology')
+.run(['$location', function(a){
+ a.path('/');
+}])
+`
+
+module.exports = function(options){
+
+ // delete previous builded file
+ gulp.task('clean', function(){
+ return del(
+ [
+ options.dashboards + 'xosEcordTopology.html',
+ options.static + 'css/xosEcordTopology.css'
+ ],
+ {force: true}
+ );
+ });
+
+ // minify css
+ gulp.task('css', function () {
+ var processors = [
+ autoprefixer({browsers: ['last 1 version']}),
+ mqpacker,
+ csswring
+ ];
+
+ gulp.src([
+ `${options.css}**/*.css`,
+ `!${options.css}dev.css`
+ ])
+ .pipe(postcss(processors))
+ .pipe(gulp.dest(options.tmp + '/css/'));
+ });
+
+ // copy css in correct folder
+ gulp.task('copyCss', ['wait'], function(){
+ return gulp.src([`${options.tmp}/css/*.css`])
+ .pipe(concat('xosEcordTopology.css'))
+ .pipe(gulp.dest(options.static + 'css/'))
+ });
+
+ // compile and minify scripts
+ gulp.task('scripts', function() {
+ return gulp.src([
+ options.tmp + '**/*.js'
+ ])
+ .pipe(ngAnnotate())
+ .pipe(angularFilesort())
+ .pipe(concat('xosEcordTopology.js'))
+ .pipe(concat.header('//Autogenerated, do not edit!!!\n'))
+ .pipe(concat.footer(TEMPLATE_FOOTER))
+ .pipe(uglify())
+ .pipe(gulp.dest(options.static + 'js/'));
+ });
+
+ // set templates in cache
+ gulp.task('templates', function(){
+ return gulp.src('./src/templates/*.html')
+ .pipe(templateCache({
+ module: 'xos.ecordTopology',
+ root: 'templates/'
+ }))
+ .pipe(gulp.dest(options.tmp));
+ });
+
+ // copy html index to Django Folder
+ gulp.task('copyHtml', function(){
+ return gulp.src(options.src + 'index.html')
+ // remove dev dependencies from html
+ .pipe(replace(/<!-- bower:css -->(\n^<link.*)*\n<!-- endbower -->/gmi, ''))
+ .pipe(replace(/<!-- bower:js -->(\n^<script.*)*\n<!-- endbower -->/gmi, ''))
+ // injecting minified files
+ .pipe(
+ inject(
+ gulp.src([
+ options.static + 'js/vendor/xosEcordTopologyVendor.js',
+ options.static + 'js/xosEcordTopology.js',
+ options.static + 'css/xosEcordTopology.css'
+ ]),
+ {ignorePath: '/../../../xos/core/xoslib'}
+ )
+ )
+ .pipe(rename('xosEcordTopology.html'))
+ .pipe(gulp.dest(options.dashboards));
+ });
+
+ // minify vendor js files
+ gulp.task('wiredep', function(){
+ var bowerDeps = wiredep().js;
+ if(!bowerDeps){
+ return;
+ }
+
+ // remove angular (it's already loaded)
+ _.remove(bowerDeps, function(dep){
+ return dep.indexOf('angular/angular.js') !== -1;
+ });
+
+ return gulp.src(bowerDeps)
+ .pipe(concat('xosEcordTopologyVendor.js'))
+ .pipe(uglify())
+ .pipe(gulp.dest(options.static + 'js/vendor/'));
+ });
+
+ gulp.task('lint', function () {
+ return gulp.src(['src/js/**/*.js'])
+ .pipe(eslint())
+ .pipe(eslint.format())
+ .pipe(eslint.failAfterError());
+ });
+
+ gulp.task('wait', function (cb) {
+ // setTimeout could be any async task
+ setTimeout(function () {
+ cb();
+ }, 1000);
+ });
+
+ gulp.task('build', function() {
+ runSequence(
+ 'clean',
+ 'sass',
+ 'templates',
+ 'babel',
+ 'scripts',
+ 'wiredep',
+ 'css',
+ 'copyCss',
+ 'copyHtml',
+ 'cleanTmp'
+ );
+ });
+};
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/gulp/server.js b/views/ngXosViews/ecordTopology/gulp/server.js
new file mode 100644
index 0000000..d386289
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/gulp/server.js
@@ -0,0 +1,172 @@
+'use strict';
+
+var gulp = require('gulp');
+var browserSync = require('browser-sync').create();
+var inject = require('gulp-inject');
+var runSequence = require('run-sequence');
+var angularFilesort = require('gulp-angular-filesort');
+var babel = require('gulp-babel');
+var wiredep = require('wiredep').stream;
+var httpProxy = require('http-proxy');
+var del = require('del');
+var sass = require('gulp-sass');
+var fs = require('fs');
+var path = require('path');
+
+const environment = process.env.NODE_ENV;
+
+if(!fs.existsSync(path.join(__dirname, `../../../env/${environment || 'default'}.js`))){
+ if(!environment){
+ throw new Error('You should define a default.js config in /views/env folder.');
+ }
+ else{
+ throw new Error(`Since you are loading a custom environment, you should define a ${environment}.js config in /views/env folder.`);
+ }
+}
+
+var conf = require(path.join(__dirname, `../../../env/${environment || 'default'}.js`));
+
+var proxy = httpProxy.createProxyServer({
+ target: conf.host
+});
+
+
+proxy.on('error', function(error, req, res) {
+ res.writeHead(500, {
+ 'Content-Type': 'text/plain'
+ });
+
+ console.error('[Proxy]', error);
+});
+
+module.exports = function(options){
+
+ gulp.task('browser', function() {
+ browserSync.init({
+ startPath: '#/',
+ snippetOptions: {
+ rule: {
+ match: /<!-- browserSync -->/i
+ }
+ },
+ server: {
+ baseDir: options.src,
+ routes: {
+ '/xos/core/xoslib/static/js/vendor': options.helpers,
+ '/xos/core/static': options.static + '../../static/'
+ },
+ middleware: function(req, res, next){
+ if(
+ req.url.indexOf('/api/') !== -1 ||
+ req.url.indexOf('/onos/') !== -1
+ ){
+ if(conf.xoscsrftoken && conf.xossessionid){
+ req.headers.cookie = `xoscsrftoken=${conf.xoscsrftoken}; xossessionid=${conf.xossessionid}`;
+ req.headers['x-csrftoken'] = conf.xoscsrftoken;
+ req.headers['Authorization'] = "Basic cGFkbWluQHZpY2NpLm9yZzpsZXRtZWlu";
+ }
+ proxy.web(req, res);
+ }
+ else{
+ next();
+ }
+ }
+ }
+ });
+
+ gulp.watch(options.src + 'js/**/*.js', ['js-watch']);
+ gulp.watch(options.src + 'vendor/**/*.js', ['bower'], function(){
+ browserSync.reload();
+ });
+ gulp.watch(options.src + '**/*.html', function(){
+ browserSync.reload();
+ });
+ gulp.watch(options.css + '**/*.css', function(){
+ browserSync.reload();
+ });
+ gulp.watch(`${options.sass}/**/*.scss`, ['sass'], function(){
+ browserSync.reload();
+ });
+
+ gulp.watch([
+ options.helpers + 'ngXosHelpers.js',
+ options.static + '../../static/xosNgLib.css'
+ ], function(){
+ browserSync.reload();
+ });
+ });
+
+ // compile sass
+ gulp.task('sass', function () {
+ return gulp.src(`${options.sass}/**/*.scss`)
+ .pipe(sass().on('error', sass.logError))
+ .pipe(gulp.dest(options.css));
+ });
+
+ // transpile js with sourceMaps
+ gulp.task('babel', function(){
+ return gulp.src(options.scripts + '**/*.js')
+ .pipe(babel({sourceMaps: true}))
+ .pipe(gulp.dest(options.tmp));
+ });
+
+ // inject scripts
+ gulp.task('injectScript', ['cleanTmp', 'babel'], function(){
+ return gulp.src(options.src + 'index.html')
+ .pipe(
+ inject(
+ gulp.src([
+ options.tmp + '**/*.js',
+ options.helpers + 'ngXosHelpers.js'
+ ])
+ .pipe(angularFilesort()),
+ {
+ ignorePath: [options.src, '/../../ngXosLib']
+ }
+ )
+ )
+ .pipe(gulp.dest(options.src));
+ });
+
+ // inject CSS
+ gulp.task('injectCss', function(){
+ return gulp.src(options.src + 'index.html')
+ .pipe(
+ inject(
+ gulp.src([
+ options.src + 'css/*.css',
+ options.static + '../../static/xosNgLib.css'
+ ]),
+ {
+ ignorePath: [options.src]
+ }
+ )
+ )
+ .pipe(gulp.dest(options.src));
+ });
+
+ // inject bower dependencies with wiredep
+ gulp.task('bower', function () {
+ return gulp.src(options.src + 'index.html')
+ .pipe(wiredep({devDependencies: true}))
+ .pipe(gulp.dest(options.src));
+ });
+
+ gulp.task('js-watch', ['injectScript'], function(){
+ browserSync.reload();
+ });
+
+ gulp.task('cleanTmp', function(){
+ return del([options.tmp + '**/*']);
+ });
+
+ gulp.task('serve', function() {
+ runSequence(
+ 'sass',
+ 'bower',
+ 'injectScript',
+ 'injectCss',
+ ['browser']
+ );
+ });
+};
diff --git a/views/ngXosViews/ecordTopology/gulpfile.js b/views/ngXosViews/ecordTopology/gulpfile.js
new file mode 100644
index 0000000..08df554
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/gulpfile.js
@@ -0,0 +1,26 @@
+'use strict';
+
+var gulp = require('gulp');
+var wrench = require('wrench');
+
+var options = {
+ src: 'src/',
+ css: 'src/css/',
+ sass: 'src/sass/',
+ scripts: 'src/js/',
+ tmp: 'src/.tmp',
+ dist: 'dist/',
+ api: '../../ngXosLib/api/',
+ helpers: '../../../xos/core/xoslib/static/js/vendor/',
+ static: '../../../xos/core/xoslib/static/', // this is the django static folder
+ dashboards: '../../../xos/core/xoslib/dashboards/' // this is the django html folder
+};
+
+wrench.readdirSyncRecursive('./gulp')
+.map(function(file) {
+ require('./gulp/' + file)(options);
+});
+
+gulp.task('default', function () {
+ gulp.start('build');
+});
diff --git a/views/ngXosViews/ecordTopology/karma.conf.js b/views/ngXosViews/ecordTopology/karma.conf.js
new file mode 100644
index 0000000..4123be9
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/karma.conf.js
@@ -0,0 +1,88 @@
+// Karma configuration
+// Generated on Tue Oct 06 2015 09:27:10 GMT+0000 (UTC)
+
+/* eslint indent: [2,2], quotes: [2, "single"]*/
+
+/*eslint-disable*/
+var wiredep = require('wiredep');
+var path = require('path');
+
+var bowerComponents = wiredep( {devDependencies: true} )[ 'js' ].map(function( file ){
+ return path.relative(process.cwd(), file);
+});
+
+module.exports = function(config) {
+/*eslint-enable*/
+ config.set({
+
+ // base path that will be used to resolve all patterns (eg. files, exclude)
+ basePath: '',
+
+
+ // frameworks to use
+ // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
+ frameworks: ['jasmine'],
+
+
+ // list of files / patterns to load in the browser
+ files: bowerComponents.concat([
+ '../../../xos/core/xoslib/static/js/vendor/ngXosVendor.js',
+ '../../../xos/core/xoslib/static/js/vendor/ngXosHelpers.js',
+ 'src/js/**/*.js',
+ 'spec/**/*.mock.js',
+ 'spec/**/*.test.js',
+ 'src/**/*.html'
+ ]),
+
+
+ // list of files to exclude
+ exclude: [
+ ],
+
+
+ // preprocess matching files before serving them to the browser
+ // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
+ preprocessors: {
+ 'src/js/**/*.js': ['babel'],
+ 'spec/**/*.test.js': ['babel'],
+ 'src/**/*.html': ['ng-html2js']
+ },
+
+ ngHtml2JsPreprocessor: {
+ stripPrefix: 'src/', //strip the src path from template url (http://stackoverflow.com/questions/22869668/karma-unexpected-request-when-testing-angular-directive-even-with-ng-html2js)
+ moduleName: 'templates' // define the template module name
+ },
+
+ // test results reporter to use
+ // possible values: 'dots', 'progress'
+ // available reporters: https://npmjs.org/browse/keyword/karma-reporter
+ reporters: ['mocha'],
+
+
+ // web server port
+ port: 9876,
+
+
+ // enable / disable colors in the output (reporters and logs)
+ colors: true,
+
+
+ // level of logging
+ // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
+ logLevel: config.LOG_INFO,
+
+
+ // enable / disable watching file and executing tests whenever any file changes
+ autoWatch: true,
+
+
+ // start these browsers
+ // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
+ browsers: ['PhantomJS'],
+
+
+ // Continuous Integration mode
+ // if true, Karma captures browsers, runs the tests and exits
+ singleRun: false
+ });
+};
diff --git a/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FDFr_EC.json b/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FDFr_EC.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FDFr_EC.json
@@ -0,0 +1 @@
+[]
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FPP_UNI_N.json b/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FPP_UNI_N.json
new file mode 100644
index 0000000..6a0e547
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/mocks/data/SCA_ETH_FPP_UNI_N.json
@@ -0,0 +1,80 @@
+[
+ {
+ "id": 3,
+ "interfaceCfgIdentifier": "uni3",
+ "transportPort": {
+ "Hostname": "Host1",
+ "Port": 1
+ },
+ "physicalLayer": "string",
+ "physicalLayerDuplexMode": "string",
+ "synchronousMode": "string",
+ "numberOfLinks": 0,
+ "uniResiliency": "string",
+ "frameFormat": "string",
+ "uniMaximumServiceFrameSize": 0,
+ "multiplexing": "string",
+ "uniCfgCeVidUntagged": 0,
+ "uniCfgCePriorityUntagged": 0,
+ "ceVlanId": "ceVlanId",
+ "evcId": "evcId",
+ "interfaceStatusMaxVc": 0,
+ "bundling": "string",
+ "allToOneBundling": "string",
+ "linkOam": "string",
+ "uniMeg": "string",
+ "eLMI": "string"
+ },
+ {
+ "id": 4,
+ "interfaceCfgIdentifier": "uni4",
+ "transportPort": {
+ "Hostname": "Host2",
+ "Port": 1
+ },
+ "physicalLayer": "string",
+ "physicalLayerDuplexMode": "string",
+ "synchronousMode": "string",
+ "numberOfLinks": 0,
+ "uniResiliency": "string",
+ "frameFormat": "string",
+ "uniMaximumServiceFrameSize": 0,
+ "multiplexing": "string",
+ "uniCfgCeVidUntagged": 0,
+ "uniCfgCePriorityUntagged": 0,
+ "ceVlanId": "ceVlanId",
+ "evcId": "evcId",
+ "interfaceStatusMaxVc": 0,
+ "bundling": "string",
+ "allToOneBundling": "string",
+ "linkOam": "string",
+ "uniMeg": "string",
+ "eLMI": "string"
+ },
+ {
+ "id": 5,
+ "interfaceCfgIdentifier": "uni5",
+ "transportPort": {
+ "Hostname": "Host3",
+ "Port": 1
+ },
+ "physicalLayer": "string",
+ "physicalLayerDuplexMode": "string",
+ "synchronousMode": "string",
+ "numberOfLinks": 0,
+ "uniResiliency": "string",
+ "frameFormat": "string",
+ "uniMaximumServiceFrameSize": 0,
+ "multiplexing": "string",
+ "uniCfgCeVidUntagged": 0,
+ "uniCfgCePriorityUntagged": 0,
+ "ceVlanId": "ceVlanId",
+ "evcId": "evcId",
+ "interfaceStatusMaxVc": 0,
+ "bundling": "string",
+ "allToOneBundling": "string",
+ "linkOam": "string",
+ "uniMeg": "string",
+ "eLMI": "string"
+ }
+]
diff --git a/views/ngXosViews/ecordTopology/mocks/ecord.conf.json b/views/ngXosViews/ecordTopology/mocks/ecord.conf.json
new file mode 100644
index 0000000..5f4d08b
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/mocks/ecord.conf.json
@@ -0,0 +1,16 @@
+{
+ "endpoints": [
+ {
+ "url": "SCA_ETH_FPP_UNI_N",
+ "base": "onos/mef-sca-api/",
+ "methods": ["GET", "POST"],
+ "param": "interfaceCfgIdentifier"
+ },
+ {
+ "url": "SCA_ETH_FDFr_EC",
+ "base": "onos/mef-sca-api/",
+ "methods": ["GET", "POST"],
+ "param": "id"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/mocks/sca.py b/views/ngXosViews/ecordTopology/mocks/sca.py
new file mode 100644
index 0000000..1b7aec3
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/mocks/sca.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+
+import copy
+import json
+from flask import Flask, make_response, request
+from flask.ext.cors import CORS
+from subprocess import call
+
+app = Flask(__name__)
+app.debug = True
+CORS(app)
+
+e_lines = {}
+
+
+@app.route('/SCA_ETH_FDFr_EC/findByState', methods=['GET'])
+def get_elines_by_state():
+ resp = make_response(json.dumps(e_lines.values()))
+ resp.mimetype = 'application/json'
+ resp.headers['Access-Control-Allow-Origin'] = '*'
+ return resp
+
+
+@app.route('/SCA_ETH_FDFr_EC', methods=['GET'])
+def get_elines():
+ resp = make_response(json.dumps(e_lines.values()))
+ resp.mimetype = 'application/json'
+ resp.headers['Access-Control-Allow-Origin'] = '*'
+ return resp
+
+
+@app.route('/SCA_ETH_FDFr_EC/<name>/', methods=['GET'])
+def get_eline(name):
+ resp = make_response(json.dumps(e_lines[int(name)]))
+ resp.mimetype = 'application/json'
+ resp.headers['Access-Control-Allow-Origin'] = '*'
+ return resp
+
+
+# Convert long value to dotted hex value with specified length in bytes
+def longToHex(l, length=6):
+ h = ("%x" % l)
+ if len(h) % 2 != 0:
+ h = '0' + h
+ result = ':'.join([h[i:i+2] for i in range(0, len(h), 2)])
+ prefix = '00:' * (length - (len(h) / 2) - (len(h) % 2))
+ return prefix + result
+
+
+@app.route('/SCA_ETH_FDFr_EC', methods=['POST'])
+def create_eline():
+ # Store E-Line
+ e_line = json.loads(request.data)
+ e_line['id'] = len(e_lines) + 1
+
+ e_lines[e_line['id']] = e_line
+
+ # Create E-Line in ONOS
+ flow_points = e_line['SCA_ETH_Flow_Points']
+
+ # src_host = flow_points[0]['scaEthFppUniN']['transportPort']['Hostname'] + '/-' + flow_points[0]['scaEthFppUniN']['transportPort']['Port']
+ # dst_host = flow_points[1]['scaEthFppUniN']['transportPort']['Hostname'] + '/-' + flow_points[1]['scaEthFppUniN']['transportPort']['Port']
+
+ src_index = int(flow_points[0]['scaEthFppUniN']['transportPort']['Hostname'][-2:])
+ dst_index = int(flow_points[1]['scaEthFppUniN']['transportPort']['Hostname'][-2:])
+
+ src_host = str(longToHex(src_index, 6)) + '/-1'
+ dst_host = str(longToHex(dst_index, 6)) + '/-1'
+
+ print 'Creating E-Line between %s (%s) and %s (%s)' % (src_index, src_host, dst_index, dst_host)
+ call(['onos', 'localhost', 'add-host-intent', src_host, dst_host])
+
+ # Return response
+ resp = make_response(json.dumps(e_line))
+ resp.mimetype = 'application/json'
+ resp.headers['Access-Control-Allow-Origin'] = '*'
+ return resp
+
+if __name__ == '__main__':
+ app.run(host='0.0.0.0', port=6000)
diff --git a/views/ngXosViews/ecordTopology/package.json b/views/ngXosViews/ecordTopology/package.json
new file mode 100644
index 0000000..3bee7c2
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/package.json
@@ -0,0 +1,64 @@
+{
+ "name": "xos-ecordTopology",
+ "version": "1.0.0",
+ "description": "Angular Application for XOS, created with generator-xos",
+ "scripts": {
+ "prestart": "npm install && bower install",
+ "start": "gulp serve",
+ "prebuild": "npm install && bower install",
+ "build": "gulp",
+ "test": "karma start",
+ "test:ci": "karma start --single-run",
+ "lint": "eslint src/js/",
+ "server": "easy-mocker -c ./mocks/ecord.conf.json -d ./mocks/data/ -p 4000"
+ },
+ "keywords": [
+ "XOS",
+ "Angular",
+ "XOSlib"
+ ],
+ "author": "Matteo Scandolo",
+ "license": "MIT",
+ "dependencies": {},
+ "devDependencies": {
+ "autoprefixer": "^6.3.3",
+ "browser-sync": "^2.9.11",
+ "css-mqpacker": "^4.0.0",
+ "csswring": "^4.2.1",
+ "del": "^2.0.2",
+ "easy-mocker": "^1.2.0",
+ "eslint": "^1.8.0",
+ "eslint-plugin-angular": "linkmesrl/eslint-plugin-angular",
+ "gulp": "^3.9.0",
+ "gulp-angular-filesort": "^1.1.1",
+ "gulp-angular-templatecache": "^1.8.0",
+ "gulp-babel": "^5.3.0",
+ "gulp-concat": "^2.6.0",
+ "gulp-concat-util": "^0.5.5",
+ "gulp-eslint": "^1.0.0",
+ "gulp-inject": "^3.0.0",
+ "gulp-minify-html": "^1.0.4",
+ "gulp-ng-annotate": "^1.1.0",
+ "gulp-postcss": "^6.0.1",
+ "gulp-rename": "^1.2.2",
+ "gulp-replace": "^0.5.4",
+ "gulp-sass": "^2.2.0",
+ "gulp-uglify": "^1.4.2",
+ "http-proxy": "^1.12.0",
+ "ink-docstrap": "^0.5.2",
+ "jasmine-core": "~2.3.4",
+ "karma": "^0.13.14",
+ "karma-babel-preprocessor": "~5.2.2",
+ "karma-coverage": "^0.5.3",
+ "karma-jasmine": "~0.3.6",
+ "karma-mocha-reporter": "~1.1.1",
+ "karma-ng-html2js-preprocessor": "^0.2.0",
+ "karma-phantomjs-launcher": "~0.2.1",
+ "lodash": "^3.10.1",
+ "phantomjs": "^1.9.19",
+ "proxy-middleware": "^0.15.0",
+ "run-sequence": "^1.1.4",
+ "wiredep": "^3.0.0-beta",
+ "wrench": "^1.5.8"
+ }
+}
diff --git a/views/ngXosViews/ecordTopology/spec/sample.test.js b/views/ngXosViews/ecordTopology/spec/sample.test.js
new file mode 100644
index 0000000..0635ee3
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/spec/sample.test.js
@@ -0,0 +1,37 @@
+'use strict';
+
+describe('The User List', () => {
+
+ var scope, element, isolatedScope, httpBackend;
+
+ beforeEach(module('xos.ecordTopology'));
+ beforeEach(module('templates'));
+
+ beforeEach(inject(function($httpBackend, $compile, $rootScope){
+
+ httpBackend = $httpBackend;
+ // Setting up mock request
+ $httpBackend.expectGET('/api/core/users/?no_hyperlinks=1').respond([
+ {
+ email: 'matteo.scandolo@gmail.com',
+ firstname: 'Matteo',
+ lastname: 'Scandolo'
+ }
+ ]);
+
+ scope = $rootScope.$new();
+ element = angular.element('<users-list></users-list>');
+ $compile(element)(scope);
+ scope.$digest();
+ isolatedScope = element.isolateScope().vm;
+ }));
+
+ xit('should load 1 users', () => {
+ httpBackend.flush();
+ expect(isolatedScope.users.length).toBe(1);
+ expect(isolatedScope.users[0].email).toEqual('matteo.scandolo@gmail.com');
+ expect(isolatedScope.users[0].firstname).toEqual('Matteo');
+ expect(isolatedScope.users[0].lastname).toEqual('Scandolo');
+ });
+
+});
diff --git a/views/ngXosViews/ecordTopology/src/css/elan-map.css b/views/ngXosViews/ecordTopology/src/css/elan-map.css
new file mode 100644
index 0000000..eb62cd2
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/css/elan-map.css
@@ -0,0 +1,42 @@
+/*$brand-primary: $cord-red;*/
+elan-map {
+ display: block;
+ width: 100%;
+ height: 380px;
+ position: relative; }
+ elan-map svg {
+ position: absolute;
+ top: 0;
+ left: 0; }
+ elan-map circle.elan,
+ elan-map rect.elan {
+ stroke: #5bc0de;
+ stroke-width: 2;
+ fill: #fff; }
+ elan-map circle.elan,
+ elan-map circle.uni {
+ cursor: pointer; }
+ elan-map .node.uni circle.uni,
+ elan-map .node.uni rect.uni {
+ stroke: #CE5650;
+ stroke-width: 2;
+ fill: #fff; }
+ elan-map .node.uni path {
+ fill: #902d28; }
+ elan-map line {
+ stroke: #CE5650;
+ stroke-width: 1; }
+ elan-map #map {
+ background: #EFEBE2; }
+ elan-map .subunit {
+ fill: #B7DAFF;
+ stroke: white;
+ stroke-width: 1px; }
+ elan-map .subunit._10 {
+ fill: transparent;
+ stroke: transparent; }
+ elan-map .exterior-boundary {
+ fill: none;
+ stroke: black;
+ stroke-linejoin: round;
+ stroke-width: 1px; }
diff --git a/views/ngXosViews/ecordTopology/src/css/eline-details.css b/views/ngXosViews/ecordTopology/src/css/eline-details.css
new file mode 100644
index 0000000..3c643d7
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/css/eline-details.css
@@ -0,0 +1,6 @@
+.service-container .btn {
+ font-size: 12px; }
+
+.sla input.input-sm {
+ max-width: 60px;
+ text-align: right; }
diff --git a/views/ngXosViews/ecordTopology/src/css/main.css b/views/ngXosViews/ecordTopology/src/css/main.css
new file mode 100644
index 0000000..ccb5ba7
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/css/main.css
@@ -0,0 +1,5930 @@
+@charset "UTF-8";
+/*!
+ * Bootstrap v3.3.6 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+ font-family: sans-serif;
+ -ms-text-size-adjust: 100%;
+ -webkit-text-size-adjust: 100%; }
+
+body {
+ margin: 0; }
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+ display: block; }
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline; }
+
+audio:not([controls]) {
+ display: none;
+ height: 0; }
+
+[hidden],
+template {
+ display: none; }
+
+a {
+ background-color: transparent; }
+
+a:active,
+a:hover {
+ outline: 0; }
+
+abbr[title] {
+ border-bottom: 1px dotted; }
+
+b,
+strong {
+ font-weight: bold; }
+
+dfn {
+ font-style: italic; }
+
+h1 {
+ font-size: 2em;
+ margin: 0.67em 0; }
+
+mark {
+ background: #ff0;
+ color: #000; }
+
+small {
+ font-size: 80%; }
+
+sub,
+sup {
+ font-size: 75%;
+ line-height: 0;
+ position: relative;
+ vertical-align: baseline; }
+
+sup {
+ top: -0.5em; }
+
+sub {
+ bottom: -0.25em; }
+
+img {
+ border: 0; }
+
+svg:not(:root) {
+ overflow: hidden; }
+
+figure {
+ margin: 1em 40px; }
+
+hr {
+ box-sizing: content-box;
+ height: 0; }
+
+pre {
+ overflow: auto; }
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em; }
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ color: inherit;
+ font: inherit;
+ margin: 0; }
+
+button {
+ overflow: visible; }
+
+button,
+select {
+ text-transform: none; }
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer; }
+
+button[disabled],
+html input[disabled] {
+ cursor: default; }
+
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+ border: 0;
+ padding: 0; }
+
+input {
+ line-height: normal; }
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0; }
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto; }
+
+input[type="search"] {
+ -webkit-appearance: textfield;
+ box-sizing: content-box; }
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none; }
+
+fieldset {
+ border: 1px solid #c0c0c0;
+ margin: 0 2px;
+ padding: 0.35em 0.625em 0.75em; }
+
+legend {
+ border: 0;
+ padding: 0; }
+
+textarea {
+ overflow: auto; }
+
+optgroup {
+ font-weight: bold; }
+
+table {
+ border-collapse: collapse;
+ border-spacing: 0; }
+
+td,
+th {
+ padding: 0; }
+
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+ *,
+ *:before,
+ *:after {
+ background: transparent !important;
+ color: #000 !important;
+ box-shadow: none !important;
+ text-shadow: none !important; }
+ a,
+ a:visited {
+ text-decoration: underline; }
+ a[href]:after {
+ content: " (" attr(href) ")"; }
+ abbr[title]:after {
+ content: " (" attr(title) ")"; }
+ a[href^="#"]:after,
+ a[href^="javascript:"]:after {
+ content: ""; }
+ pre,
+ blockquote {
+ border: 1px solid #999;
+ page-break-inside: avoid; }
+ thead {
+ display: table-header-group; }
+ tr,
+ img {
+ page-break-inside: avoid; }
+ img {
+ max-width: 100% !important; }
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3; }
+ h2,
+ h3 {
+ page-break-after: avoid; }
+ .navbar {
+ display: none; }
+ .btn > .caret,
+ .dropup > .btn > .caret {
+ border-top-color: #000 !important; }
+ .label {
+ border: 1px solid #000; }
+ .table {
+ border-collapse: collapse !important; }
+ .table td,
+ .table th {
+ background-color: #fff !important; }
+ .table-bordered th,
+ .table-bordered td {
+ border: 1px solid #ddd !important; } }
+
+@font-face {
+ font-family: 'Glyphicons Halflings';
+ src: url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.eot");
+ src: url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.eot?#iefix") format("embedded-opentype"), url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.woff2") format("woff2"), url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.woff") format("woff"), url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.ttf") format("truetype"), url("/static/suit/bootstrap/fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular") format("svg"); }
+
+.glyphicon {
+ position: relative;
+ top: 1px;
+ display: inline-block;
+ font-family: 'Glyphicons Halflings';
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale; }
+
+.glyphicon-asterisk:before {
+ content: "\002a"; }
+
+.glyphicon-plus:before {
+ content: "\002b"; }
+
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+ content: "\20ac"; }
+
+.glyphicon-minus:before {
+ content: "\2212"; }
+
+.glyphicon-cloud:before {
+ content: "\2601"; }
+
+.glyphicon-envelope:before {
+ content: "\2709"; }
+
+.glyphicon-pencil:before {
+ content: "\270f"; }
+
+.glyphicon-glass:before {
+ content: "\e001"; }
+
+.glyphicon-music:before {
+ content: "\e002"; }
+
+.glyphicon-search:before {
+ content: "\e003"; }
+
+.glyphicon-heart:before {
+ content: "\e005"; }
+
+.glyphicon-star:before {
+ content: "\e006"; }
+
+.glyphicon-star-empty:before {
+ content: "\e007"; }
+
+.glyphicon-user:before {
+ content: "\e008"; }
+
+.glyphicon-film:before {
+ content: "\e009"; }
+
+.glyphicon-th-large:before {
+ content: "\e010"; }
+
+.glyphicon-th:before {
+ content: "\e011"; }
+
+.glyphicon-th-list:before {
+ content: "\e012"; }
+
+.glyphicon-ok:before {
+ content: "\e013"; }
+
+.glyphicon-remove:before {
+ content: "\e014"; }
+
+.glyphicon-zoom-in:before {
+ content: "\e015"; }
+
+.glyphicon-zoom-out:before {
+ content: "\e016"; }
+
+.glyphicon-off:before {
+ content: "\e017"; }
+
+.glyphicon-signal:before {
+ content: "\e018"; }
+
+.glyphicon-cog:before {
+ content: "\e019"; }
+
+.glyphicon-trash:before {
+ content: "\e020"; }
+
+.glyphicon-home:before {
+ content: "\e021"; }
+
+.glyphicon-file:before {
+ content: "\e022"; }
+
+.glyphicon-time:before {
+ content: "\e023"; }
+
+.glyphicon-road:before {
+ content: "\e024"; }
+
+.glyphicon-download-alt:before {
+ content: "\e025"; }
+
+.glyphicon-download:before {
+ content: "\e026"; }
+
+.glyphicon-upload:before {
+ content: "\e027"; }
+
+.glyphicon-inbox:before {
+ content: "\e028"; }
+
+.glyphicon-play-circle:before {
+ content: "\e029"; }
+
+.glyphicon-repeat:before {
+ content: "\e030"; }
+
+.glyphicon-refresh:before {
+ content: "\e031"; }
+
+.glyphicon-list-alt:before {
+ content: "\e032"; }
+
+.glyphicon-lock:before {
+ content: "\e033"; }
+
+.glyphicon-flag:before {
+ content: "\e034"; }
+
+.glyphicon-headphones:before {
+ content: "\e035"; }
+
+.glyphicon-volume-off:before {
+ content: "\e036"; }
+
+.glyphicon-volume-down:before {
+ content: "\e037"; }
+
+.glyphicon-volume-up:before {
+ content: "\e038"; }
+
+.glyphicon-qrcode:before {
+ content: "\e039"; }
+
+.glyphicon-barcode:before {
+ content: "\e040"; }
+
+.glyphicon-tag:before {
+ content: "\e041"; }
+
+.glyphicon-tags:before {
+ content: "\e042"; }
+
+.glyphicon-book:before {
+ content: "\e043"; }
+
+.glyphicon-bookmark:before {
+ content: "\e044"; }
+
+.glyphicon-print:before {
+ content: "\e045"; }
+
+.glyphicon-camera:before {
+ content: "\e046"; }
+
+.glyphicon-font:before {
+ content: "\e047"; }
+
+.glyphicon-bold:before {
+ content: "\e048"; }
+
+.glyphicon-italic:before {
+ content: "\e049"; }
+
+.glyphicon-text-height:before {
+ content: "\e050"; }
+
+.glyphicon-text-width:before {
+ content: "\e051"; }
+
+.glyphicon-align-left:before {
+ content: "\e052"; }
+
+.glyphicon-align-center:before {
+ content: "\e053"; }
+
+.glyphicon-align-right:before {
+ content: "\e054"; }
+
+.glyphicon-align-justify:before {
+ content: "\e055"; }
+
+.glyphicon-list:before {
+ content: "\e056"; }
+
+.glyphicon-indent-left:before {
+ content: "\e057"; }
+
+.glyphicon-indent-right:before {
+ content: "\e058"; }
+
+.glyphicon-facetime-video:before {
+ content: "\e059"; }
+
+.glyphicon-picture:before {
+ content: "\e060"; }
+
+.glyphicon-map-marker:before {
+ content: "\e062"; }
+
+.glyphicon-adjust:before {
+ content: "\e063"; }
+
+.glyphicon-tint:before {
+ content: "\e064"; }
+
+.glyphicon-edit:before {
+ content: "\e065"; }
+
+.glyphicon-share:before {
+ content: "\e066"; }
+
+.glyphicon-check:before {
+ content: "\e067"; }
+
+.glyphicon-move:before {
+ content: "\e068"; }
+
+.glyphicon-step-backward:before {
+ content: "\e069"; }
+
+.glyphicon-fast-backward:before {
+ content: "\e070"; }
+
+.glyphicon-backward:before {
+ content: "\e071"; }
+
+.glyphicon-play:before {
+ content: "\e072"; }
+
+.glyphicon-pause:before {
+ content: "\e073"; }
+
+.glyphicon-stop:before {
+ content: "\e074"; }
+
+.glyphicon-forward:before {
+ content: "\e075"; }
+
+.glyphicon-fast-forward:before {
+ content: "\e076"; }
+
+.glyphicon-step-forward:before {
+ content: "\e077"; }
+
+.glyphicon-eject:before {
+ content: "\e078"; }
+
+.glyphicon-chevron-left:before {
+ content: "\e079"; }
+
+.glyphicon-chevron-right:before {
+ content: "\e080"; }
+
+.glyphicon-plus-sign:before {
+ content: "\e081"; }
+
+.glyphicon-minus-sign:before {
+ content: "\e082"; }
+
+.glyphicon-remove-sign:before {
+ content: "\e083"; }
+
+.glyphicon-ok-sign:before {
+ content: "\e084"; }
+
+.glyphicon-question-sign:before {
+ content: "\e085"; }
+
+.glyphicon-info-sign:before {
+ content: "\e086"; }
+
+.glyphicon-screenshot:before {
+ content: "\e087"; }
+
+.glyphicon-remove-circle:before {
+ content: "\e088"; }
+
+.glyphicon-ok-circle:before {
+ content: "\e089"; }
+
+.glyphicon-ban-circle:before {
+ content: "\e090"; }
+
+.glyphicon-arrow-left:before {
+ content: "\e091"; }
+
+.glyphicon-arrow-right:before {
+ content: "\e092"; }
+
+.glyphicon-arrow-up:before {
+ content: "\e093"; }
+
+.glyphicon-arrow-down:before {
+ content: "\e094"; }
+
+.glyphicon-share-alt:before {
+ content: "\e095"; }
+
+.glyphicon-resize-full:before {
+ content: "\e096"; }
+
+.glyphicon-resize-small:before {
+ content: "\e097"; }
+
+.glyphicon-exclamation-sign:before {
+ content: "\e101"; }
+
+.glyphicon-gift:before {
+ content: "\e102"; }
+
+.glyphicon-leaf:before {
+ content: "\e103"; }
+
+.glyphicon-fire:before {
+ content: "\e104"; }
+
+.glyphicon-eye-open:before {
+ content: "\e105"; }
+
+.glyphicon-eye-close:before {
+ content: "\e106"; }
+
+.glyphicon-warning-sign:before {
+ content: "\e107"; }
+
+.glyphicon-plane:before {
+ content: "\e108"; }
+
+.glyphicon-calendar:before {
+ content: "\e109"; }
+
+.glyphicon-random:before {
+ content: "\e110"; }
+
+.glyphicon-comment:before {
+ content: "\e111"; }
+
+.glyphicon-magnet:before {
+ content: "\e112"; }
+
+.glyphicon-chevron-up:before {
+ content: "\e113"; }
+
+.glyphicon-chevron-down:before {
+ content: "\e114"; }
+
+.glyphicon-retweet:before {
+ content: "\e115"; }
+
+.glyphicon-shopping-cart:before {
+ content: "\e116"; }
+
+.glyphicon-folder-close:before {
+ content: "\e117"; }
+
+.glyphicon-folder-open:before {
+ content: "\e118"; }
+
+.glyphicon-resize-vertical:before {
+ content: "\e119"; }
+
+.glyphicon-resize-horizontal:before {
+ content: "\e120"; }
+
+.glyphicon-hdd:before {
+ content: "\e121"; }
+
+.glyphicon-bullhorn:before {
+ content: "\e122"; }
+
+.glyphicon-bell:before {
+ content: "\e123"; }
+
+.glyphicon-certificate:before {
+ content: "\e124"; }
+
+.glyphicon-thumbs-up:before {
+ content: "\e125"; }
+
+.glyphicon-thumbs-down:before {
+ content: "\e126"; }
+
+.glyphicon-hand-right:before {
+ content: "\e127"; }
+
+.glyphicon-hand-left:before {
+ content: "\e128"; }
+
+.glyphicon-hand-up:before {
+ content: "\e129"; }
+
+.glyphicon-hand-down:before {
+ content: "\e130"; }
+
+.glyphicon-circle-arrow-right:before {
+ content: "\e131"; }
+
+.glyphicon-circle-arrow-left:before {
+ content: "\e132"; }
+
+.glyphicon-circle-arrow-up:before {
+ content: "\e133"; }
+
+.glyphicon-circle-arrow-down:before {
+ content: "\e134"; }
+
+.glyphicon-globe:before {
+ content: "\e135"; }
+
+.glyphicon-wrench:before {
+ content: "\e136"; }
+
+.glyphicon-tasks:before {
+ content: "\e137"; }
+
+.glyphicon-filter:before {
+ content: "\e138"; }
+
+.glyphicon-briefcase:before {
+ content: "\e139"; }
+
+.glyphicon-fullscreen:before {
+ content: "\e140"; }
+
+.glyphicon-dashboard:before {
+ content: "\e141"; }
+
+.glyphicon-paperclip:before {
+ content: "\e142"; }
+
+.glyphicon-heart-empty:before {
+ content: "\e143"; }
+
+.glyphicon-link:before {
+ content: "\e144"; }
+
+.glyphicon-phone:before {
+ content: "\e145"; }
+
+.glyphicon-pushpin:before {
+ content: "\e146"; }
+
+.glyphicon-usd:before {
+ content: "\e148"; }
+
+.glyphicon-gbp:before {
+ content: "\e149"; }
+
+.glyphicon-sort:before {
+ content: "\e150"; }
+
+.glyphicon-sort-by-alphabet:before {
+ content: "\e151"; }
+
+.glyphicon-sort-by-alphabet-alt:before {
+ content: "\e152"; }
+
+.glyphicon-sort-by-order:before {
+ content: "\e153"; }
+
+.glyphicon-sort-by-order-alt:before {
+ content: "\e154"; }
+
+.glyphicon-sort-by-attributes:before {
+ content: "\e155"; }
+
+.glyphicon-sort-by-attributes-alt:before {
+ content: "\e156"; }
+
+.glyphicon-unchecked:before {
+ content: "\e157"; }
+
+.glyphicon-expand:before {
+ content: "\e158"; }
+
+.glyphicon-collapse-down:before {
+ content: "\e159"; }
+
+.glyphicon-collapse-up:before {
+ content: "\e160"; }
+
+.glyphicon-log-in:before {
+ content: "\e161"; }
+
+.glyphicon-flash:before {
+ content: "\e162"; }
+
+.glyphicon-log-out:before {
+ content: "\e163"; }
+
+.glyphicon-new-window:before {
+ content: "\e164"; }
+
+.glyphicon-record:before {
+ content: "\e165"; }
+
+.glyphicon-save:before {
+ content: "\e166"; }
+
+.glyphicon-open:before {
+ content: "\e167"; }
+
+.glyphicon-saved:before {
+ content: "\e168"; }
+
+.glyphicon-import:before {
+ content: "\e169"; }
+
+.glyphicon-export:before {
+ content: "\e170"; }
+
+.glyphicon-send:before {
+ content: "\e171"; }
+
+.glyphicon-floppy-disk:before {
+ content: "\e172"; }
+
+.glyphicon-floppy-saved:before {
+ content: "\e173"; }
+
+.glyphicon-floppy-remove:before {
+ content: "\e174"; }
+
+.glyphicon-floppy-save:before {
+ content: "\e175"; }
+
+.glyphicon-floppy-open:before {
+ content: "\e176"; }
+
+.glyphicon-credit-card:before {
+ content: "\e177"; }
+
+.glyphicon-transfer:before {
+ content: "\e178"; }
+
+.glyphicon-cutlery:before {
+ content: "\e179"; }
+
+.glyphicon-header:before {
+ content: "\e180"; }
+
+.glyphicon-compressed:before {
+ content: "\e181"; }
+
+.glyphicon-earphone:before {
+ content: "\e182"; }
+
+.glyphicon-phone-alt:before {
+ content: "\e183"; }
+
+.glyphicon-tower:before {
+ content: "\e184"; }
+
+.glyphicon-stats:before {
+ content: "\e185"; }
+
+.glyphicon-sd-video:before {
+ content: "\e186"; }
+
+.glyphicon-hd-video:before {
+ content: "\e187"; }
+
+.glyphicon-subtitles:before {
+ content: "\e188"; }
+
+.glyphicon-sound-stereo:before {
+ content: "\e189"; }
+
+.glyphicon-sound-dolby:before {
+ content: "\e190"; }
+
+.glyphicon-sound-5-1:before {
+ content: "\e191"; }
+
+.glyphicon-sound-6-1:before {
+ content: "\e192"; }
+
+.glyphicon-sound-7-1:before {
+ content: "\e193"; }
+
+.glyphicon-copyright-mark:before {
+ content: "\e194"; }
+
+.glyphicon-registration-mark:before {
+ content: "\e195"; }
+
+.glyphicon-cloud-download:before {
+ content: "\e197"; }
+
+.glyphicon-cloud-upload:before {
+ content: "\e198"; }
+
+.glyphicon-tree-conifer:before {
+ content: "\e199"; }
+
+.glyphicon-tree-deciduous:before {
+ content: "\e200"; }
+
+.glyphicon-cd:before {
+ content: "\e201"; }
+
+.glyphicon-save-file:before {
+ content: "\e202"; }
+
+.glyphicon-open-file:before {
+ content: "\e203"; }
+
+.glyphicon-level-up:before {
+ content: "\e204"; }
+
+.glyphicon-copy:before {
+ content: "\e205"; }
+
+.glyphicon-paste:before {
+ content: "\e206"; }
+
+.glyphicon-alert:before {
+ content: "\e209"; }
+
+.glyphicon-equalizer:before {
+ content: "\e210"; }
+
+.glyphicon-king:before {
+ content: "\e211"; }
+
+.glyphicon-queen:before {
+ content: "\e212"; }
+
+.glyphicon-pawn:before {
+ content: "\e213"; }
+
+.glyphicon-bishop:before {
+ content: "\e214"; }
+
+.glyphicon-knight:before {
+ content: "\e215"; }
+
+.glyphicon-baby-formula:before {
+ content: "\e216"; }
+
+.glyphicon-tent:before {
+ content: "\26fa"; }
+
+.glyphicon-blackboard:before {
+ content: "\e218"; }
+
+.glyphicon-bed:before {
+ content: "\e219"; }
+
+.glyphicon-apple:before {
+ content: "\f8ff"; }
+
+.glyphicon-erase:before {
+ content: "\e221"; }
+
+.glyphicon-hourglass:before {
+ content: "\231b"; }
+
+.glyphicon-lamp:before {
+ content: "\e223"; }
+
+.glyphicon-duplicate:before {
+ content: "\e224"; }
+
+.glyphicon-piggy-bank:before {
+ content: "\e225"; }
+
+.glyphicon-scissors:before {
+ content: "\e226"; }
+
+.glyphicon-bitcoin:before {
+ content: "\e227"; }
+
+.glyphicon-btc:before {
+ content: "\e227"; }
+
+.glyphicon-xbt:before {
+ content: "\e227"; }
+
+.glyphicon-yen:before {
+ content: "\00a5"; }
+
+.glyphicon-jpy:before {
+ content: "\00a5"; }
+
+.glyphicon-ruble:before {
+ content: "\20bd"; }
+
+.glyphicon-rub:before {
+ content: "\20bd"; }
+
+.glyphicon-scale:before {
+ content: "\e230"; }
+
+.glyphicon-ice-lolly:before {
+ content: "\e231"; }
+
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232"; }
+
+.glyphicon-education:before {
+ content: "\e233"; }
+
+.glyphicon-option-horizontal:before {
+ content: "\e234"; }
+
+.glyphicon-option-vertical:before {
+ content: "\e235"; }
+
+.glyphicon-menu-hamburger:before {
+ content: "\e236"; }
+
+.glyphicon-modal-window:before {
+ content: "\e237"; }
+
+.glyphicon-oil:before {
+ content: "\e238"; }
+
+.glyphicon-grain:before {
+ content: "\e239"; }
+
+.glyphicon-sunglasses:before {
+ content: "\e240"; }
+
+.glyphicon-text-size:before {
+ content: "\e241"; }
+
+.glyphicon-text-color:before {
+ content: "\e242"; }
+
+.glyphicon-text-background:before {
+ content: "\e243"; }
+
+.glyphicon-object-align-top:before {
+ content: "\e244"; }
+
+.glyphicon-object-align-bottom:before {
+ content: "\e245"; }
+
+.glyphicon-object-align-horizontal:before {
+ content: "\e246"; }
+
+.glyphicon-object-align-left:before {
+ content: "\e247"; }
+
+.glyphicon-object-align-vertical:before {
+ content: "\e248"; }
+
+.glyphicon-object-align-right:before {
+ content: "\e249"; }
+
+.glyphicon-triangle-right:before {
+ content: "\e250"; }
+
+.glyphicon-triangle-left:before {
+ content: "\e251"; }
+
+.glyphicon-triangle-bottom:before {
+ content: "\e252"; }
+
+.glyphicon-triangle-top:before {
+ content: "\e253"; }
+
+.glyphicon-console:before {
+ content: "\e254"; }
+
+.glyphicon-superscript:before {
+ content: "\e255"; }
+
+.glyphicon-subscript:before {
+ content: "\e256"; }
+
+.glyphicon-menu-left:before {
+ content: "\e257"; }
+
+.glyphicon-menu-right:before {
+ content: "\e258"; }
+
+.glyphicon-menu-down:before {
+ content: "\e259"; }
+
+.glyphicon-menu-up:before {
+ content: "\e260"; }
+
+* {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+*:before,
+*:after {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+html {
+ font-size: 10px;
+ -webkit-tap-highlight-color: transparent; }
+
+body {
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #333333;
+ background-color: #fff; }
+
+input,
+button,
+select,
+textarea {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit; }
+
+a {
+ color: #337ab7;
+ text-decoration: none; }
+ a:hover, a:focus {
+ color: #23527c;
+ text-decoration: underline; }
+ a:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px; }
+
+figure {
+ margin: 0; }
+
+img {
+ vertical-align: middle; }
+
+.img-responsive {
+ display: block;
+ max-width: 100%;
+ height: auto; }
+
+.img-rounded {
+ border-radius: 6px; }
+
+.img-thumbnail {
+ padding: 4px;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: all 0.2s ease-in-out;
+ -o-transition: all 0.2s ease-in-out;
+ transition: all 0.2s ease-in-out;
+ display: inline-block;
+ max-width: 100%;
+ height: auto; }
+
+.img-circle {
+ border-radius: 50%; }
+
+hr {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ border: 0;
+ border-top: 1px solid #eeeeee; }
+
+.sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ margin: -1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ border: 0; }
+
+.sr-only-focusable:active, .sr-only-focusable:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ margin: 0;
+ overflow: visible;
+ clip: auto; }
+
+[role="button"] {
+ cursor: pointer; }
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ font-family: inherit;
+ font-weight: 500;
+ line-height: 1.1;
+ color: inherit; }
+ h1 small,
+ h1 .small, h2 small,
+ h2 .small, h3 small,
+ h3 .small, h4 small,
+ h4 .small, h5 small,
+ h5 .small, h6 small,
+ h6 .small,
+ .h1 small,
+ .h1 .small, .h2 small,
+ .h2 .small, .h3 small,
+ .h3 .small, .h4 small,
+ .h4 .small, .h5 small,
+ .h5 .small, .h6 small,
+ .h6 .small {
+ font-weight: normal;
+ line-height: 1;
+ color: #777777; }
+
+h1, .h1,
+h2, .h2,
+h3, .h3 {
+ margin-top: 20px;
+ margin-bottom: 10px; }
+ h1 small,
+ h1 .small, .h1 small,
+ .h1 .small,
+ h2 small,
+ h2 .small, .h2 small,
+ .h2 .small,
+ h3 small,
+ h3 .small, .h3 small,
+ .h3 .small {
+ font-size: 65%; }
+
+h4, .h4,
+h5, .h5,
+h6, .h6 {
+ margin-top: 10px;
+ margin-bottom: 10px; }
+ h4 small,
+ h4 .small, .h4 small,
+ .h4 .small,
+ h5 small,
+ h5 .small, .h5 small,
+ .h5 .small,
+ h6 small,
+ h6 .small, .h6 small,
+ .h6 .small {
+ font-size: 75%; }
+
+h1, .h1 {
+ font-size: 36px; }
+
+h2, .h2 {
+ font-size: 30px; }
+
+h3, .h3 {
+ font-size: 24px; }
+
+h4, .h4 {
+ font-size: 18px; }
+
+h5, .h5 {
+ font-size: 14px; }
+
+h6, .h6 {
+ font-size: 12px; }
+
+p {
+ margin: 0 0 10px; }
+
+.lead {
+ margin-bottom: 20px;
+ font-size: 16px;
+ font-weight: 300;
+ line-height: 1.4; }
+ @media (min-width: 768px) {
+ .lead {
+ font-size: 21px; } }
+
+small,
+.small {
+ font-size: 85%; }
+
+mark,
+.mark {
+ background-color: #fcf8e3;
+ padding: .2em; }
+
+.text-left {
+ text-align: left; }
+
+.text-right {
+ text-align: right; }
+
+.text-center {
+ text-align: center; }
+
+.text-justify {
+ text-align: justify; }
+
+.text-nowrap {
+ white-space: nowrap; }
+
+.text-lowercase {
+ text-transform: lowercase; }
+
+.text-uppercase, .initialism {
+ text-transform: uppercase; }
+
+.text-capitalize {
+ text-transform: capitalize; }
+
+.text-muted {
+ color: #777777; }
+
+.text-primary {
+ color: #337ab7; }
+
+a.text-primary:hover,
+a.text-primary:focus {
+ color: #286090; }
+
+.text-success {
+ color: #3c763d; }
+
+a.text-success:hover,
+a.text-success:focus {
+ color: #2b542c; }
+
+.text-info {
+ color: #31708f; }
+
+a.text-info:hover,
+a.text-info:focus {
+ color: #245269; }
+
+.text-warning {
+ color: #8a6d3b; }
+
+a.text-warning:hover,
+a.text-warning:focus {
+ color: #66512c; }
+
+.text-danger {
+ color: #a94442; }
+
+a.text-danger:hover,
+a.text-danger:focus {
+ color: #843534; }
+
+.bg-primary {
+ color: #fff; }
+
+.bg-primary {
+ background-color: #337ab7; }
+
+a.bg-primary:hover,
+a.bg-primary:focus {
+ background-color: #286090; }
+
+.bg-success {
+ background-color: #dff0d8; }
+
+a.bg-success:hover,
+a.bg-success:focus {
+ background-color: #c1e2b3; }
+
+.bg-info {
+ background-color: #d9edf7; }
+
+a.bg-info:hover,
+a.bg-info:focus {
+ background-color: #afd9ee; }
+
+.bg-warning {
+ background-color: #fcf8e3; }
+
+a.bg-warning:hover,
+a.bg-warning:focus {
+ background-color: #f7ecb5; }
+
+.bg-danger {
+ background-color: #f2dede; }
+
+a.bg-danger:hover,
+a.bg-danger:focus {
+ background-color: #e4b9b9; }
+
+.page-header {
+ padding-bottom: 9px;
+ margin: 40px 0 20px;
+ border-bottom: 1px solid #eeeeee; }
+
+ul,
+ol {
+ margin-top: 0;
+ margin-bottom: 10px; }
+ ul ul,
+ ul ol,
+ ol ul,
+ ol ol {
+ margin-bottom: 0; }
+
+.list-unstyled {
+ padding-left: 0;
+ list-style: none; }
+
+.list-inline {
+ padding-left: 0;
+ list-style: none;
+ margin-left: -5px; }
+ .list-inline > li {
+ display: inline-block;
+ padding-left: 5px;
+ padding-right: 5px; }
+
+dl {
+ margin-top: 0;
+ margin-bottom: 20px; }
+
+dt,
+dd {
+ line-height: 1.42857; }
+
+dt {
+ font-weight: bold; }
+
+dd {
+ margin-left: 0; }
+
+.dl-horizontal dd:before, .dl-horizontal dd:after {
+ content: " ";
+ display: table; }
+
+.dl-horizontal dd:after {
+ clear: both; }
+
+@media (min-width: 768px) {
+ .dl-horizontal dt {
+ float: left;
+ width: 160px;
+ clear: left;
+ text-align: right;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap; }
+ .dl-horizontal dd {
+ margin-left: 180px; } }
+
+abbr[title],
+abbr[data-original-title] {
+ cursor: help;
+ border-bottom: 1px dotted #777777; }
+
+.initialism {
+ font-size: 90%; }
+
+blockquote {
+ padding: 10px 20px;
+ margin: 0 0 20px;
+ font-size: 17.5px;
+ border-left: 5px solid #eeeeee; }
+ blockquote p:last-child,
+ blockquote ul:last-child,
+ blockquote ol:last-child {
+ margin-bottom: 0; }
+ blockquote footer,
+ blockquote small,
+ blockquote .small {
+ display: block;
+ font-size: 80%;
+ line-height: 1.42857;
+ color: #777777; }
+ blockquote footer:before,
+ blockquote small:before,
+ blockquote .small:before {
+ content: '\2014 \00A0'; }
+
+.blockquote-reverse,
+blockquote.pull-right {
+ padding-right: 15px;
+ padding-left: 0;
+ border-right: 5px solid #eeeeee;
+ border-left: 0;
+ text-align: right; }
+ .blockquote-reverse footer:before,
+ .blockquote-reverse small:before,
+ .blockquote-reverse .small:before,
+ blockquote.pull-right footer:before,
+ blockquote.pull-right small:before,
+ blockquote.pull-right .small:before {
+ content: ''; }
+ .blockquote-reverse footer:after,
+ .blockquote-reverse small:after,
+ .blockquote-reverse .small:after,
+ blockquote.pull-right footer:after,
+ blockquote.pull-right small:after,
+ blockquote.pull-right .small:after {
+ content: '\00A0 \2014'; }
+
+address {
+ margin-bottom: 20px;
+ font-style: normal;
+ line-height: 1.42857; }
+
+code,
+kbd,
+pre,
+samp {
+ font-family: Menlo, Monaco, Consolas, "Courier New", monospace; }
+
+code {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #c7254e;
+ background-color: #f9f2f4;
+ border-radius: 4px; }
+
+kbd {
+ padding: 2px 4px;
+ font-size: 90%;
+ color: #fff;
+ background-color: #333;
+ border-radius: 3px;
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); }
+ kbd kbd {
+ padding: 0;
+ font-size: 100%;
+ font-weight: bold;
+ box-shadow: none; }
+
+pre {
+ display: block;
+ padding: 9.5px;
+ margin: 0 0 10px;
+ font-size: 13px;
+ line-height: 1.42857;
+ word-break: break-all;
+ word-wrap: break-word;
+ color: #333333;
+ background-color: #f5f5f5;
+ border: 1px solid #ccc;
+ border-radius: 4px; }
+ pre code {
+ padding: 0;
+ font-size: inherit;
+ color: inherit;
+ white-space: pre-wrap;
+ background-color: transparent;
+ border-radius: 0; }
+
+.pre-scrollable {
+ max-height: 340px;
+ overflow-y: scroll; }
+
+.container {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px; }
+ .container:before, .container:after {
+ content: " ";
+ display: table; }
+ .container:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .container {
+ width: 750px; } }
+ @media (min-width: 992px) {
+ .container {
+ width: 970px; } }
+ @media (min-width: 1200px) {
+ .container {
+ width: 1170px; } }
+
+.container-fluid {
+ margin-right: auto;
+ margin-left: auto;
+ padding-left: 15px;
+ padding-right: 15px; }
+ .container-fluid:before, .container-fluid:after {
+ content: " ";
+ display: table; }
+ .container-fluid:after {
+ clear: both; }
+
+.row {
+ margin-left: -15px;
+ margin-right: -15px; }
+ .row:before, .row:after {
+ content: " ";
+ display: table; }
+ .row:after {
+ clear: both; }
+
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+ position: relative;
+ min-height: 1px;
+ padding-left: 15px;
+ padding-right: 15px; }
+
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+ float: left; }
+
+.col-xs-1 {
+ width: 8.33333%; }
+
+.col-xs-2 {
+ width: 16.66667%; }
+
+.col-xs-3 {
+ width: 25%; }
+
+.col-xs-4 {
+ width: 33.33333%; }
+
+.col-xs-5 {
+ width: 41.66667%; }
+
+.col-xs-6 {
+ width: 50%; }
+
+.col-xs-7 {
+ width: 58.33333%; }
+
+.col-xs-8 {
+ width: 66.66667%; }
+
+.col-xs-9 {
+ width: 75%; }
+
+.col-xs-10 {
+ width: 83.33333%; }
+
+.col-xs-11 {
+ width: 91.66667%; }
+
+.col-xs-12 {
+ width: 100%; }
+
+.col-xs-pull-0 {
+ right: auto; }
+
+.col-xs-pull-1 {
+ right: 8.33333%; }
+
+.col-xs-pull-2 {
+ right: 16.66667%; }
+
+.col-xs-pull-3 {
+ right: 25%; }
+
+.col-xs-pull-4 {
+ right: 33.33333%; }
+
+.col-xs-pull-5 {
+ right: 41.66667%; }
+
+.col-xs-pull-6 {
+ right: 50%; }
+
+.col-xs-pull-7 {
+ right: 58.33333%; }
+
+.col-xs-pull-8 {
+ right: 66.66667%; }
+
+.col-xs-pull-9 {
+ right: 75%; }
+
+.col-xs-pull-10 {
+ right: 83.33333%; }
+
+.col-xs-pull-11 {
+ right: 91.66667%; }
+
+.col-xs-pull-12 {
+ right: 100%; }
+
+.col-xs-push-0 {
+ left: auto; }
+
+.col-xs-push-1 {
+ left: 8.33333%; }
+
+.col-xs-push-2 {
+ left: 16.66667%; }
+
+.col-xs-push-3 {
+ left: 25%; }
+
+.col-xs-push-4 {
+ left: 33.33333%; }
+
+.col-xs-push-5 {
+ left: 41.66667%; }
+
+.col-xs-push-6 {
+ left: 50%; }
+
+.col-xs-push-7 {
+ left: 58.33333%; }
+
+.col-xs-push-8 {
+ left: 66.66667%; }
+
+.col-xs-push-9 {
+ left: 75%; }
+
+.col-xs-push-10 {
+ left: 83.33333%; }
+
+.col-xs-push-11 {
+ left: 91.66667%; }
+
+.col-xs-push-12 {
+ left: 100%; }
+
+.col-xs-offset-0 {
+ margin-left: 0%; }
+
+.col-xs-offset-1 {
+ margin-left: 8.33333%; }
+
+.col-xs-offset-2 {
+ margin-left: 16.66667%; }
+
+.col-xs-offset-3 {
+ margin-left: 25%; }
+
+.col-xs-offset-4 {
+ margin-left: 33.33333%; }
+
+.col-xs-offset-5 {
+ margin-left: 41.66667%; }
+
+.col-xs-offset-6 {
+ margin-left: 50%; }
+
+.col-xs-offset-7 {
+ margin-left: 58.33333%; }
+
+.col-xs-offset-8 {
+ margin-left: 66.66667%; }
+
+.col-xs-offset-9 {
+ margin-left: 75%; }
+
+.col-xs-offset-10 {
+ margin-left: 83.33333%; }
+
+.col-xs-offset-11 {
+ margin-left: 91.66667%; }
+
+.col-xs-offset-12 {
+ margin-left: 100%; }
+
+@media (min-width: 768px) {
+ .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+ float: left; }
+ .col-sm-1 {
+ width: 8.33333%; }
+ .col-sm-2 {
+ width: 16.66667%; }
+ .col-sm-3 {
+ width: 25%; }
+ .col-sm-4 {
+ width: 33.33333%; }
+ .col-sm-5 {
+ width: 41.66667%; }
+ .col-sm-6 {
+ width: 50%; }
+ .col-sm-7 {
+ width: 58.33333%; }
+ .col-sm-8 {
+ width: 66.66667%; }
+ .col-sm-9 {
+ width: 75%; }
+ .col-sm-10 {
+ width: 83.33333%; }
+ .col-sm-11 {
+ width: 91.66667%; }
+ .col-sm-12 {
+ width: 100%; }
+ .col-sm-pull-0 {
+ right: auto; }
+ .col-sm-pull-1 {
+ right: 8.33333%; }
+ .col-sm-pull-2 {
+ right: 16.66667%; }
+ .col-sm-pull-3 {
+ right: 25%; }
+ .col-sm-pull-4 {
+ right: 33.33333%; }
+ .col-sm-pull-5 {
+ right: 41.66667%; }
+ .col-sm-pull-6 {
+ right: 50%; }
+ .col-sm-pull-7 {
+ right: 58.33333%; }
+ .col-sm-pull-8 {
+ right: 66.66667%; }
+ .col-sm-pull-9 {
+ right: 75%; }
+ .col-sm-pull-10 {
+ right: 83.33333%; }
+ .col-sm-pull-11 {
+ right: 91.66667%; }
+ .col-sm-pull-12 {
+ right: 100%; }
+ .col-sm-push-0 {
+ left: auto; }
+ .col-sm-push-1 {
+ left: 8.33333%; }
+ .col-sm-push-2 {
+ left: 16.66667%; }
+ .col-sm-push-3 {
+ left: 25%; }
+ .col-sm-push-4 {
+ left: 33.33333%; }
+ .col-sm-push-5 {
+ left: 41.66667%; }
+ .col-sm-push-6 {
+ left: 50%; }
+ .col-sm-push-7 {
+ left: 58.33333%; }
+ .col-sm-push-8 {
+ left: 66.66667%; }
+ .col-sm-push-9 {
+ left: 75%; }
+ .col-sm-push-10 {
+ left: 83.33333%; }
+ .col-sm-push-11 {
+ left: 91.66667%; }
+ .col-sm-push-12 {
+ left: 100%; }
+ .col-sm-offset-0 {
+ margin-left: 0%; }
+ .col-sm-offset-1 {
+ margin-left: 8.33333%; }
+ .col-sm-offset-2 {
+ margin-left: 16.66667%; }
+ .col-sm-offset-3 {
+ margin-left: 25%; }
+ .col-sm-offset-4 {
+ margin-left: 33.33333%; }
+ .col-sm-offset-5 {
+ margin-left: 41.66667%; }
+ .col-sm-offset-6 {
+ margin-left: 50%; }
+ .col-sm-offset-7 {
+ margin-left: 58.33333%; }
+ .col-sm-offset-8 {
+ margin-left: 66.66667%; }
+ .col-sm-offset-9 {
+ margin-left: 75%; }
+ .col-sm-offset-10 {
+ margin-left: 83.33333%; }
+ .col-sm-offset-11 {
+ margin-left: 91.66667%; }
+ .col-sm-offset-12 {
+ margin-left: 100%; } }
+
+@media (min-width: 992px) {
+ .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+ float: left; }
+ .col-md-1 {
+ width: 8.33333%; }
+ .col-md-2 {
+ width: 16.66667%; }
+ .col-md-3 {
+ width: 25%; }
+ .col-md-4 {
+ width: 33.33333%; }
+ .col-md-5 {
+ width: 41.66667%; }
+ .col-md-6 {
+ width: 50%; }
+ .col-md-7 {
+ width: 58.33333%; }
+ .col-md-8 {
+ width: 66.66667%; }
+ .col-md-9 {
+ width: 75%; }
+ .col-md-10 {
+ width: 83.33333%; }
+ .col-md-11 {
+ width: 91.66667%; }
+ .col-md-12 {
+ width: 100%; }
+ .col-md-pull-0 {
+ right: auto; }
+ .col-md-pull-1 {
+ right: 8.33333%; }
+ .col-md-pull-2 {
+ right: 16.66667%; }
+ .col-md-pull-3 {
+ right: 25%; }
+ .col-md-pull-4 {
+ right: 33.33333%; }
+ .col-md-pull-5 {
+ right: 41.66667%; }
+ .col-md-pull-6 {
+ right: 50%; }
+ .col-md-pull-7 {
+ right: 58.33333%; }
+ .col-md-pull-8 {
+ right: 66.66667%; }
+ .col-md-pull-9 {
+ right: 75%; }
+ .col-md-pull-10 {
+ right: 83.33333%; }
+ .col-md-pull-11 {
+ right: 91.66667%; }
+ .col-md-pull-12 {
+ right: 100%; }
+ .col-md-push-0 {
+ left: auto; }
+ .col-md-push-1 {
+ left: 8.33333%; }
+ .col-md-push-2 {
+ left: 16.66667%; }
+ .col-md-push-3 {
+ left: 25%; }
+ .col-md-push-4 {
+ left: 33.33333%; }
+ .col-md-push-5 {
+ left: 41.66667%; }
+ .col-md-push-6 {
+ left: 50%; }
+ .col-md-push-7 {
+ left: 58.33333%; }
+ .col-md-push-8 {
+ left: 66.66667%; }
+ .col-md-push-9 {
+ left: 75%; }
+ .col-md-push-10 {
+ left: 83.33333%; }
+ .col-md-push-11 {
+ left: 91.66667%; }
+ .col-md-push-12 {
+ left: 100%; }
+ .col-md-offset-0 {
+ margin-left: 0%; }
+ .col-md-offset-1 {
+ margin-left: 8.33333%; }
+ .col-md-offset-2 {
+ margin-left: 16.66667%; }
+ .col-md-offset-3 {
+ margin-left: 25%; }
+ .col-md-offset-4 {
+ margin-left: 33.33333%; }
+ .col-md-offset-5 {
+ margin-left: 41.66667%; }
+ .col-md-offset-6 {
+ margin-left: 50%; }
+ .col-md-offset-7 {
+ margin-left: 58.33333%; }
+ .col-md-offset-8 {
+ margin-left: 66.66667%; }
+ .col-md-offset-9 {
+ margin-left: 75%; }
+ .col-md-offset-10 {
+ margin-left: 83.33333%; }
+ .col-md-offset-11 {
+ margin-left: 91.66667%; }
+ .col-md-offset-12 {
+ margin-left: 100%; } }
+
+@media (min-width: 1200px) {
+ .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+ float: left; }
+ .col-lg-1 {
+ width: 8.33333%; }
+ .col-lg-2 {
+ width: 16.66667%; }
+ .col-lg-3 {
+ width: 25%; }
+ .col-lg-4 {
+ width: 33.33333%; }
+ .col-lg-5 {
+ width: 41.66667%; }
+ .col-lg-6 {
+ width: 50%; }
+ .col-lg-7 {
+ width: 58.33333%; }
+ .col-lg-8 {
+ width: 66.66667%; }
+ .col-lg-9 {
+ width: 75%; }
+ .col-lg-10 {
+ width: 83.33333%; }
+ .col-lg-11 {
+ width: 91.66667%; }
+ .col-lg-12 {
+ width: 100%; }
+ .col-lg-pull-0 {
+ right: auto; }
+ .col-lg-pull-1 {
+ right: 8.33333%; }
+ .col-lg-pull-2 {
+ right: 16.66667%; }
+ .col-lg-pull-3 {
+ right: 25%; }
+ .col-lg-pull-4 {
+ right: 33.33333%; }
+ .col-lg-pull-5 {
+ right: 41.66667%; }
+ .col-lg-pull-6 {
+ right: 50%; }
+ .col-lg-pull-7 {
+ right: 58.33333%; }
+ .col-lg-pull-8 {
+ right: 66.66667%; }
+ .col-lg-pull-9 {
+ right: 75%; }
+ .col-lg-pull-10 {
+ right: 83.33333%; }
+ .col-lg-pull-11 {
+ right: 91.66667%; }
+ .col-lg-pull-12 {
+ right: 100%; }
+ .col-lg-push-0 {
+ left: auto; }
+ .col-lg-push-1 {
+ left: 8.33333%; }
+ .col-lg-push-2 {
+ left: 16.66667%; }
+ .col-lg-push-3 {
+ left: 25%; }
+ .col-lg-push-4 {
+ left: 33.33333%; }
+ .col-lg-push-5 {
+ left: 41.66667%; }
+ .col-lg-push-6 {
+ left: 50%; }
+ .col-lg-push-7 {
+ left: 58.33333%; }
+ .col-lg-push-8 {
+ left: 66.66667%; }
+ .col-lg-push-9 {
+ left: 75%; }
+ .col-lg-push-10 {
+ left: 83.33333%; }
+ .col-lg-push-11 {
+ left: 91.66667%; }
+ .col-lg-push-12 {
+ left: 100%; }
+ .col-lg-offset-0 {
+ margin-left: 0%; }
+ .col-lg-offset-1 {
+ margin-left: 8.33333%; }
+ .col-lg-offset-2 {
+ margin-left: 16.66667%; }
+ .col-lg-offset-3 {
+ margin-left: 25%; }
+ .col-lg-offset-4 {
+ margin-left: 33.33333%; }
+ .col-lg-offset-5 {
+ margin-left: 41.66667%; }
+ .col-lg-offset-6 {
+ margin-left: 50%; }
+ .col-lg-offset-7 {
+ margin-left: 58.33333%; }
+ .col-lg-offset-8 {
+ margin-left: 66.66667%; }
+ .col-lg-offset-9 {
+ margin-left: 75%; }
+ .col-lg-offset-10 {
+ margin-left: 83.33333%; }
+ .col-lg-offset-11 {
+ margin-left: 91.66667%; }
+ .col-lg-offset-12 {
+ margin-left: 100%; } }
+
+table {
+ background-color: transparent; }
+
+caption {
+ padding-top: 8px;
+ padding-bottom: 8px;
+ color: #777777;
+ text-align: left; }
+
+th {
+ text-align: left; }
+
+.table {
+ width: 100%;
+ max-width: 100%;
+ margin-bottom: 20px; }
+ .table > thead > tr > th,
+ .table > thead > tr > td,
+ .table > tbody > tr > th,
+ .table > tbody > tr > td,
+ .table > tfoot > tr > th,
+ .table > tfoot > tr > td {
+ padding: 8px;
+ line-height: 1.42857;
+ vertical-align: top;
+ border-top: 1px solid #ddd; }
+ .table > thead > tr > th {
+ vertical-align: bottom;
+ border-bottom: 2px solid #ddd; }
+ .table > caption + thead > tr:first-child > th,
+ .table > caption + thead > tr:first-child > td,
+ .table > colgroup + thead > tr:first-child > th,
+ .table > colgroup + thead > tr:first-child > td,
+ .table > thead:first-child > tr:first-child > th,
+ .table > thead:first-child > tr:first-child > td {
+ border-top: 0; }
+ .table > tbody + tbody {
+ border-top: 2px solid #ddd; }
+ .table .table {
+ background-color: #fff; }
+
+.table-condensed > thead > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > th,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > th,
+.table-condensed > tfoot > tr > td {
+ padding: 5px; }
+
+.table-bordered {
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td,
+ .table-bordered > tbody > tr > th,
+ .table-bordered > tbody > tr > td,
+ .table-bordered > tfoot > tr > th,
+ .table-bordered > tfoot > tr > td {
+ border: 1px solid #ddd; }
+ .table-bordered > thead > tr > th,
+ .table-bordered > thead > tr > td {
+ border-bottom-width: 2px; }
+
+.table-striped > tbody > tr:nth-of-type(odd) {
+ background-color: #f9f9f9; }
+
+.table-hover > tbody > tr:hover {
+ background-color: #f5f5f5; }
+
+table col[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-column; }
+
+table td[class*="col-"],
+table th[class*="col-"] {
+ position: static;
+ float: none;
+ display: table-cell; }
+
+.table > thead > tr > td.active,
+.table > thead > tr > th.active,
+.table > thead > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr > td.active,
+.table > tbody > tr > th.active,
+.table > tbody > tr.active > td,
+.table > tbody > tr.active > th,
+.table > tfoot > tr > td.active,
+.table > tfoot > tr > th.active,
+.table > tfoot > tr.active > td,
+.table > tfoot > tr.active > th {
+ background-color: #f5f5f5; }
+
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+ background-color: #e8e8e8; }
+
+.table > thead > tr > td.success,
+.table > thead > tr > th.success,
+.table > thead > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr > td.success,
+.table > tbody > tr > th.success,
+.table > tbody > tr.success > td,
+.table > tbody > tr.success > th,
+.table > tfoot > tr > td.success,
+.table > tfoot > tr > th.success,
+.table > tfoot > tr.success > td,
+.table > tfoot > tr.success > th {
+ background-color: #dff0d8; }
+
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+ background-color: #d0e9c6; }
+
+.table > thead > tr > td.info,
+.table > thead > tr > th.info,
+.table > thead > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr > td.info,
+.table > tbody > tr > th.info,
+.table > tbody > tr.info > td,
+.table > tbody > tr.info > th,
+.table > tfoot > tr > td.info,
+.table > tfoot > tr > th.info,
+.table > tfoot > tr.info > td,
+.table > tfoot > tr.info > th {
+ background-color: #d9edf7; }
+
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+ background-color: #c4e3f3; }
+
+.table > thead > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr > td.warning,
+.table > tbody > tr > th.warning,
+.table > tbody > tr.warning > td,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr > td.warning,
+.table > tfoot > tr > th.warning,
+.table > tfoot > tr.warning > td,
+.table > tfoot > tr.warning > th {
+ background-color: #fcf8e3; }
+
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+ background-color: #faf2cc; }
+
+.table > thead > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr > td.danger,
+.table > tbody > tr > th.danger,
+.table > tbody > tr.danger > td,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr > td.danger,
+.table > tfoot > tr > th.danger,
+.table > tfoot > tr.danger > td,
+.table > tfoot > tr.danger > th {
+ background-color: #f2dede; }
+
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+ background-color: #ebcccc; }
+
+.table-responsive {
+ overflow-x: auto;
+ min-height: 0.01%; }
+ @media screen and (max-width: 767px) {
+ .table-responsive {
+ width: 100%;
+ margin-bottom: 15px;
+ overflow-y: hidden;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+ border: 1px solid #ddd; }
+ .table-responsive > .table {
+ margin-bottom: 0; }
+ .table-responsive > .table > thead > tr > th,
+ .table-responsive > .table > thead > tr > td,
+ .table-responsive > .table > tbody > tr > th,
+ .table-responsive > .table > tbody > tr > td,
+ .table-responsive > .table > tfoot > tr > th,
+ .table-responsive > .table > tfoot > tr > td {
+ white-space: nowrap; }
+ .table-responsive > .table-bordered {
+ border: 0; }
+ .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0; }
+ .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0; }
+ .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+ .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+ border-bottom: 0; } }
+
+fieldset {
+ padding: 0;
+ margin: 0;
+ border: 0;
+ min-width: 0; }
+
+legend {
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin-bottom: 20px;
+ font-size: 21px;
+ line-height: inherit;
+ color: #333333;
+ border: 0;
+ border-bottom: 1px solid #e5e5e5; }
+
+label {
+ display: inline-block;
+ max-width: 100%;
+ margin-bottom: 5px;
+ font-weight: bold; }
+
+input[type="search"] {
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box; }
+
+input[type="radio"],
+input[type="checkbox"] {
+ margin: 4px 0 0;
+ margin-top: 1px \9;
+ line-height: normal; }
+
+input[type="file"] {
+ display: block; }
+
+input[type="range"] {
+ display: block;
+ width: 100%; }
+
+select[multiple],
+select[size] {
+ height: auto; }
+
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px; }
+
+output {
+ display: block;
+ padding-top: 7px;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #555555; }
+
+.form-control {
+ display: block;
+ width: 100%;
+ height: 34px;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857;
+ color: #555555;
+ background-color: #fff;
+ background-image: none;
+ border: 1px solid #ccc;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ -webkit-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ -o-transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s;
+ transition: border-color ease-in-out 0.15s, box-shadow ease-in-out 0.15s; }
+ .form-control:focus {
+ border-color: #66afe9;
+ outline: 0;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(102, 175, 233, 0.6); }
+ .form-control::-moz-placeholder {
+ color: #999;
+ opacity: 1; }
+ .form-control:-ms-input-placeholder {
+ color: #999; }
+ .form-control::-webkit-input-placeholder {
+ color: #999; }
+ .form-control::-ms-expand {
+ border: 0;
+ background-color: transparent; }
+ .form-control[disabled], .form-control[readonly],
+ fieldset[disabled] .form-control {
+ background-color: #eeeeee;
+ opacity: 1; }
+ .form-control[disabled],
+ fieldset[disabled] .form-control {
+ cursor: not-allowed; }
+
+textarea.form-control {
+ height: auto; }
+
+input[type="search"] {
+ -webkit-appearance: none; }
+
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
+ line-height: 34px; }
+ input[type="date"].input-sm, .input-group-sm > input[type="date"].form-control,
+ .input-group-sm > input[type="date"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="date"].btn,
+ .input-group-sm input[type="date"],
+ input[type="time"].input-sm,
+ .input-group-sm > input[type="time"].form-control,
+ .input-group-sm > input[type="time"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="time"].btn,
+ .input-group-sm
+ input[type="time"],
+ input[type="datetime-local"].input-sm,
+ .input-group-sm > input[type="datetime-local"].form-control,
+ .input-group-sm > input[type="datetime-local"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-sm
+ input[type="datetime-local"],
+ input[type="month"].input-sm,
+ .input-group-sm > input[type="month"].form-control,
+ .input-group-sm > input[type="month"].input-group-addon,
+ .input-group-sm > .input-group-btn > input[type="month"].btn,
+ .input-group-sm
+ input[type="month"] {
+ line-height: 30px; }
+ input[type="date"].input-lg, .input-group-lg > input[type="date"].form-control,
+ .input-group-lg > input[type="date"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="date"].btn,
+ .input-group-lg input[type="date"],
+ input[type="time"].input-lg,
+ .input-group-lg > input[type="time"].form-control,
+ .input-group-lg > input[type="time"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="time"].btn,
+ .input-group-lg
+ input[type="time"],
+ input[type="datetime-local"].input-lg,
+ .input-group-lg > input[type="datetime-local"].form-control,
+ .input-group-lg > input[type="datetime-local"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="datetime-local"].btn,
+ .input-group-lg
+ input[type="datetime-local"],
+ input[type="month"].input-lg,
+ .input-group-lg > input[type="month"].form-control,
+ .input-group-lg > input[type="month"].input-group-addon,
+ .input-group-lg > .input-group-btn > input[type="month"].btn,
+ .input-group-lg
+ input[type="month"] {
+ line-height: 46px; } }
+
+.form-group {
+ margin-bottom: 15px; }
+
+.radio,
+.checkbox {
+ position: relative;
+ display: block;
+ margin-top: 10px;
+ margin-bottom: 10px; }
+ .radio label,
+ .checkbox label {
+ min-height: 20px;
+ padding-left: 20px;
+ margin-bottom: 0;
+ font-weight: normal;
+ cursor: pointer; }
+
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+ position: absolute;
+ margin-left: -20px;
+ margin-top: 4px \9; }
+
+.radio + .radio,
+.checkbox + .checkbox {
+ margin-top: -5px; }
+
+.radio-inline,
+.checkbox-inline {
+ position: relative;
+ display: inline-block;
+ padding-left: 20px;
+ margin-bottom: 0;
+ vertical-align: middle;
+ font-weight: normal;
+ cursor: pointer; }
+
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+ margin-top: 0;
+ margin-left: 10px; }
+
+input[type="radio"][disabled], input[type="radio"].disabled,
+fieldset[disabled] input[type="radio"],
+input[type="checkbox"][disabled],
+input[type="checkbox"].disabled,
+fieldset[disabled]
+input[type="checkbox"] {
+ cursor: not-allowed; }
+
+.radio-inline.disabled,
+fieldset[disabled] .radio-inline,
+.checkbox-inline.disabled,
+fieldset[disabled]
+.checkbox-inline {
+ cursor: not-allowed; }
+
+.radio.disabled label,
+fieldset[disabled] .radio label,
+.checkbox.disabled label,
+fieldset[disabled]
+.checkbox label {
+ cursor: not-allowed; }
+
+.form-control-static {
+ padding-top: 7px;
+ padding-bottom: 7px;
+ margin-bottom: 0;
+ min-height: 34px; }
+ .form-control-static.input-lg, .input-group-lg > .form-control-static.form-control,
+ .input-group-lg > .form-control-static.input-group-addon,
+ .input-group-lg > .input-group-btn > .form-control-static.btn, .form-control-static.input-sm, .input-group-sm > .form-control-static.form-control,
+ .input-group-sm > .form-control-static.input-group-addon,
+ .input-group-sm > .input-group-btn > .form-control-static.btn {
+ padding-left: 0;
+ padding-right: 0; }
+
+.input-sm, .input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+select.input-sm, .input-group-sm > select.form-control,
+.input-group-sm > select.input-group-addon,
+.input-group-sm > .input-group-btn > select.btn {
+ height: 30px;
+ line-height: 30px; }
+
+textarea.input-sm, .input-group-sm > textarea.form-control,
+.input-group-sm > textarea.input-group-addon,
+.input-group-sm > .input-group-btn > textarea.btn,
+select[multiple].input-sm,
+.input-group-sm > select[multiple].form-control,
+.input-group-sm > select[multiple].input-group-addon,
+.input-group-sm > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
+.form-group-sm .form-control {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+.form-group-sm select.form-control {
+ height: 30px;
+ line-height: 30px; }
+
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+ height: auto; }
+
+.form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 32px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5; }
+
+.input-lg, .input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+select.input-lg, .input-group-lg > select.form-control,
+.input-group-lg > select.input-group-addon,
+.input-group-lg > .input-group-btn > select.btn {
+ height: 46px;
+ line-height: 46px; }
+
+textarea.input-lg, .input-group-lg > textarea.form-control,
+.input-group-lg > textarea.input-group-addon,
+.input-group-lg > .input-group-btn > textarea.btn,
+select[multiple].input-lg,
+.input-group-lg > select[multiple].form-control,
+.input-group-lg > select[multiple].input-group-addon,
+.input-group-lg > .input-group-btn > select[multiple].btn {
+ height: auto; }
+
+.form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+.form-group-lg select.form-control {
+ height: 46px;
+ line-height: 46px; }
+
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto; }
+
+.form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 11px 16px;
+ font-size: 18px;
+ line-height: 1.33333; }
+
+.has-feedback {
+ position: relative; }
+ .has-feedback .form-control {
+ padding-right: 42.5px; }
+
+.form-control-feedback {
+ position: absolute;
+ top: 0;
+ right: 0;
+ z-index: 2;
+ display: block;
+ width: 34px;
+ height: 34px;
+ line-height: 34px;
+ text-align: center;
+ pointer-events: none; }
+
+.input-lg + .form-control-feedback, .input-group-lg > .form-control + .form-control-feedback,
+.input-group-lg > .input-group-addon + .form-control-feedback,
+.input-group-lg > .input-group-btn > .btn + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+ width: 46px;
+ height: 46px;
+ line-height: 46px; }
+
+.input-sm + .form-control-feedback, .input-group-sm > .form-control + .form-control-feedback,
+.input-group-sm > .input-group-addon + .form-control-feedback,
+.input-group-sm > .input-group-btn > .btn + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+ width: 30px;
+ height: 30px;
+ line-height: 30px; }
+
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+ color: #3c763d; }
+
+.has-success .form-control {
+ border-color: #3c763d;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-success .form-control:focus {
+ border-color: #2b542c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; }
+
+.has-success .input-group-addon {
+ color: #3c763d;
+ border-color: #3c763d;
+ background-color: #dff0d8; }
+
+.has-success .form-control-feedback {
+ color: #3c763d; }
+
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+ color: #8a6d3b; }
+
+.has-warning .form-control {
+ border-color: #8a6d3b;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-warning .form-control:focus {
+ border-color: #66512c;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; }
+
+.has-warning .input-group-addon {
+ color: #8a6d3b;
+ border-color: #8a6d3b;
+ background-color: #fcf8e3; }
+
+.has-warning .form-control-feedback {
+ color: #8a6d3b; }
+
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+ color: #a94442; }
+
+.has-error .form-control {
+ border-color: #a94442;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); }
+ .has-error .form-control:focus {
+ border-color: #843534;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483;
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; }
+
+.has-error .input-group-addon {
+ color: #a94442;
+ border-color: #a94442;
+ background-color: #f2dede; }
+
+.has-error .form-control-feedback {
+ color: #a94442; }
+
+.has-feedback label ~ .form-control-feedback {
+ top: 25px; }
+
+.has-feedback label.sr-only ~ .form-control-feedback {
+ top: 0; }
+
+.help-block {
+ display: block;
+ margin-top: 5px;
+ margin-bottom: 10px;
+ color: #737373; }
+
+@media (min-width: 768px) {
+ .form-inline .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .form-inline .form-control-static {
+ display: inline-block; }
+ .form-inline .input-group {
+ display: inline-table;
+ vertical-align: middle; }
+ .form-inline .input-group .input-group-addon,
+ .form-inline .input-group .input-group-btn,
+ .form-inline .input-group .form-control {
+ width: auto; }
+ .form-inline .input-group > .form-control {
+ width: 100%; }
+ .form-inline .control-label {
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .radio,
+ .form-inline .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .form-inline .radio label,
+ .form-inline .checkbox label {
+ padding-left: 0; }
+ .form-inline .radio input[type="radio"],
+ .form-inline .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0; }
+ .form-inline .has-feedback .form-control-feedback {
+ top: 0; } }
+
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+ margin-top: 0;
+ margin-bottom: 0;
+ padding-top: 7px; }
+
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+ min-height: 27px; }
+
+.form-horizontal .form-group {
+ margin-left: -15px;
+ margin-right: -15px; }
+ .form-horizontal .form-group:before, .form-horizontal .form-group:after {
+ content: " ";
+ display: table; }
+ .form-horizontal .form-group:after {
+ clear: both; }
+
+@media (min-width: 768px) {
+ .form-horizontal .control-label {
+ text-align: right;
+ margin-bottom: 0;
+ padding-top: 7px; } }
+
+.form-horizontal .has-feedback .form-control-feedback {
+ right: 15px; }
+
+@media (min-width: 768px) {
+ .form-horizontal .form-group-lg .control-label {
+ padding-top: 11px;
+ font-size: 18px; } }
+
+@media (min-width: 768px) {
+ .form-horizontal .form-group-sm .control-label {
+ padding-top: 6px;
+ font-size: 12px; } }
+
+.btn {
+ display: inline-block;
+ margin-bottom: 0;
+ font-weight: normal;
+ text-align: center;
+ vertical-align: middle;
+ touch-action: manipulation;
+ cursor: pointer;
+ background-image: none;
+ border: 1px solid transparent;
+ white-space: nowrap;
+ padding: 6px 12px;
+ font-size: 14px;
+ line-height: 1.42857;
+ border-radius: 4px;
+ -webkit-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none; }
+ .btn:focus, .btn.focus, .btn:active:focus, .btn:active.focus, .btn.active:focus, .btn.active.focus {
+ outline: thin dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+ outline-offset: -2px; }
+ .btn:hover, .btn:focus, .btn.focus {
+ color: #333;
+ text-decoration: none; }
+ .btn:active, .btn.active {
+ outline: 0;
+ background-image: none;
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn.disabled, .btn[disabled],
+ fieldset[disabled] .btn {
+ cursor: not-allowed;
+ opacity: 0.65;
+ filter: alpha(opacity=65);
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none; }
+
+.btn-default {
+ color: #333;
+ background-color: #fff;
+ border-color: #ccc; }
+ .btn-default:focus, .btn-default.focus {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c; }
+ .btn-default:hover {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad; }
+ .btn-default:active, .btn-default.active,
+ .open > .btn-default.dropdown-toggle {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad; }
+ .btn-default:active:hover, .btn-default:active:focus, .btn-default:active.focus, .btn-default.active:hover, .btn-default.active:focus, .btn-default.active.focus,
+ .open > .btn-default.dropdown-toggle:hover,
+ .open > .btn-default.dropdown-toggle:focus,
+ .open > .btn-default.dropdown-toggle.focus {
+ color: #333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c; }
+ .btn-default:active, .btn-default.active,
+ .open > .btn-default.dropdown-toggle {
+ background-image: none; }
+ .btn-default.disabled:hover, .btn-default.disabled:focus, .btn-default.disabled.focus, .btn-default[disabled]:hover, .btn-default[disabled]:focus, .btn-default[disabled].focus,
+ fieldset[disabled] .btn-default:hover,
+ fieldset[disabled] .btn-default:focus,
+ fieldset[disabled] .btn-default.focus {
+ background-color: #fff;
+ border-color: #ccc; }
+ .btn-default .badge {
+ color: #fff;
+ background-color: #333; }
+
+.btn-primary {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #2e6da4; }
+ .btn-primary:focus, .btn-primary.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40; }
+ .btn-primary:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74; }
+ .btn-primary:active, .btn-primary.active,
+ .open > .btn-primary.dropdown-toggle {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74; }
+ .btn-primary:active:hover, .btn-primary:active:focus, .btn-primary:active.focus, .btn-primary.active:hover, .btn-primary.active:focus, .btn-primary.active.focus,
+ .open > .btn-primary.dropdown-toggle:hover,
+ .open > .btn-primary.dropdown-toggle:focus,
+ .open > .btn-primary.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40; }
+ .btn-primary:active, .btn-primary.active,
+ .open > .btn-primary.dropdown-toggle {
+ background-image: none; }
+ .btn-primary.disabled:hover, .btn-primary.disabled:focus, .btn-primary.disabled.focus, .btn-primary[disabled]:hover, .btn-primary[disabled]:focus, .btn-primary[disabled].focus,
+ fieldset[disabled] .btn-primary:hover,
+ fieldset[disabled] .btn-primary:focus,
+ fieldset[disabled] .btn-primary.focus {
+ background-color: #337ab7;
+ border-color: #2e6da4; }
+ .btn-primary .badge {
+ color: #337ab7;
+ background-color: #fff; }
+
+.btn-success {
+ color: #fff;
+ background-color: #5cb85c;
+ border-color: #4cae4c; }
+ .btn-success:focus, .btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #255625; }
+ .btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439; }
+ .btn-success:active, .btn-success.active,
+ .open > .btn-success.dropdown-toggle {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439; }
+ .btn-success:active:hover, .btn-success:active:focus, .btn-success:active.focus, .btn-success.active:hover, .btn-success.active:focus, .btn-success.active.focus,
+ .open > .btn-success.dropdown-toggle:hover,
+ .open > .btn-success.dropdown-toggle:focus,
+ .open > .btn-success.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #255625; }
+ .btn-success:active, .btn-success.active,
+ .open > .btn-success.dropdown-toggle {
+ background-image: none; }
+ .btn-success.disabled:hover, .btn-success.disabled:focus, .btn-success.disabled.focus, .btn-success[disabled]:hover, .btn-success[disabled]:focus, .btn-success[disabled].focus,
+ fieldset[disabled] .btn-success:hover,
+ fieldset[disabled] .btn-success:focus,
+ fieldset[disabled] .btn-success.focus {
+ background-color: #5cb85c;
+ border-color: #4cae4c; }
+ .btn-success .badge {
+ color: #5cb85c;
+ background-color: #fff; }
+
+.btn-info {
+ color: #fff;
+ background-color: #5bc0de;
+ border-color: #46b8da; }
+ .btn-info:focus, .btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #1b6d85; }
+ .btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc; }
+ .btn-info:active, .btn-info.active,
+ .open > .btn-info.dropdown-toggle {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc; }
+ .btn-info:active:hover, .btn-info:active:focus, .btn-info:active.focus, .btn-info.active:hover, .btn-info.active:focus, .btn-info.active.focus,
+ .open > .btn-info.dropdown-toggle:hover,
+ .open > .btn-info.dropdown-toggle:focus,
+ .open > .btn-info.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1b6d85; }
+ .btn-info:active, .btn-info.active,
+ .open > .btn-info.dropdown-toggle {
+ background-image: none; }
+ .btn-info.disabled:hover, .btn-info.disabled:focus, .btn-info.disabled.focus, .btn-info[disabled]:hover, .btn-info[disabled]:focus, .btn-info[disabled].focus,
+ fieldset[disabled] .btn-info:hover,
+ fieldset[disabled] .btn-info:focus,
+ fieldset[disabled] .btn-info.focus {
+ background-color: #5bc0de;
+ border-color: #46b8da; }
+ .btn-info .badge {
+ color: #5bc0de;
+ background-color: #fff; }
+
+.btn-warning {
+ color: #fff;
+ background-color: #f0ad4e;
+ border-color: #eea236; }
+ .btn-warning:focus, .btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #985f0d; }
+ .btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512; }
+ .btn-warning:active, .btn-warning.active,
+ .open > .btn-warning.dropdown-toggle {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512; }
+ .btn-warning:active:hover, .btn-warning:active:focus, .btn-warning:active.focus, .btn-warning.active:hover, .btn-warning.active:focus, .btn-warning.active.focus,
+ .open > .btn-warning.dropdown-toggle:hover,
+ .open > .btn-warning.dropdown-toggle:focus,
+ .open > .btn-warning.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #985f0d; }
+ .btn-warning:active, .btn-warning.active,
+ .open > .btn-warning.dropdown-toggle {
+ background-image: none; }
+ .btn-warning.disabled:hover, .btn-warning.disabled:focus, .btn-warning.disabled.focus, .btn-warning[disabled]:hover, .btn-warning[disabled]:focus, .btn-warning[disabled].focus,
+ fieldset[disabled] .btn-warning:hover,
+ fieldset[disabled] .btn-warning:focus,
+ fieldset[disabled] .btn-warning.focus {
+ background-color: #f0ad4e;
+ border-color: #eea236; }
+ .btn-warning .badge {
+ color: #f0ad4e;
+ background-color: #fff; }
+
+.btn-danger {
+ color: #fff;
+ background-color: #d9534f;
+ border-color: #d43f3a; }
+ .btn-danger:focus, .btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #761c19; }
+ .btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925; }
+ .btn-danger:active, .btn-danger.active,
+ .open > .btn-danger.dropdown-toggle {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925; }
+ .btn-danger:active:hover, .btn-danger:active:focus, .btn-danger:active.focus, .btn-danger.active:hover, .btn-danger.active:focus, .btn-danger.active.focus,
+ .open > .btn-danger.dropdown-toggle:hover,
+ .open > .btn-danger.dropdown-toggle:focus,
+ .open > .btn-danger.dropdown-toggle.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #761c19; }
+ .btn-danger:active, .btn-danger.active,
+ .open > .btn-danger.dropdown-toggle {
+ background-image: none; }
+ .btn-danger.disabled:hover, .btn-danger.disabled:focus, .btn-danger.disabled.focus, .btn-danger[disabled]:hover, .btn-danger[disabled]:focus, .btn-danger[disabled].focus,
+ fieldset[disabled] .btn-danger:hover,
+ fieldset[disabled] .btn-danger:focus,
+ fieldset[disabled] .btn-danger.focus {
+ background-color: #d9534f;
+ border-color: #d43f3a; }
+ .btn-danger .badge {
+ color: #d9534f;
+ background-color: #fff; }
+
+.btn-link {
+ color: #337ab7;
+ font-weight: normal;
+ border-radius: 0; }
+ .btn-link, .btn-link:active, .btn-link.active, .btn-link[disabled],
+ fieldset[disabled] .btn-link {
+ background-color: transparent;
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+ .btn-link, .btn-link:hover, .btn-link:focus, .btn-link:active {
+ border-color: transparent; }
+ .btn-link:hover, .btn-link:focus {
+ color: #23527c;
+ text-decoration: underline;
+ background-color: transparent; }
+ .btn-link[disabled]:hover, .btn-link[disabled]:focus,
+ fieldset[disabled] .btn-link:hover,
+ fieldset[disabled] .btn-link:focus {
+ color: #777777;
+ text-decoration: none; }
+
+.btn-lg, .btn-group-lg > .btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333;
+ border-radius: 6px; }
+
+.btn-sm, .btn-group-sm > .btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+.btn-xs, .btn-group-xs > .btn {
+ padding: 1px 5px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px; }
+
+.btn-block {
+ display: block;
+ width: 100%; }
+
+.btn-block + .btn-block {
+ margin-top: 5px; }
+
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+ width: 100%; }
+
+.fade {
+ opacity: 0;
+ -webkit-transition: opacity 0.15s linear;
+ -o-transition: opacity 0.15s linear;
+ transition: opacity 0.15s linear; }
+ .fade.in {
+ opacity: 1; }
+
+.collapse {
+ display: none; }
+ .collapse.in {
+ display: block; }
+
+tr.collapse.in {
+ display: table-row; }
+
+tbody.collapse.in {
+ display: table-row-group; }
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ -webkit-transition-property: height, visibility;
+ transition-property: height, visibility;
+ -webkit-transition-duration: 0.35s;
+ transition-duration: 0.35s;
+ -webkit-transition-timing-function: ease;
+ transition-timing-function: ease; }
+
+.caret {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: 2px;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent; }
+
+.dropup,
+.dropdown {
+ position: relative; }
+
+.dropdown-toggle:focus {
+ outline: 0; }
+
+.dropdown-menu {
+ position: absolute;
+ top: 100%;
+ left: 0;
+ z-index: 1000;
+ display: none;
+ float: left;
+ min-width: 160px;
+ padding: 5px 0;
+ margin: 2px 0 0;
+ list-style: none;
+ font-size: 14px;
+ text-align: left;
+ background-color: #fff;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.15);
+ border-radius: 4px;
+ -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+ background-clip: padding-box; }
+ .dropdown-menu.pull-right {
+ right: 0;
+ left: auto; }
+ .dropdown-menu .divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5; }
+ .dropdown-menu > li > a {
+ display: block;
+ padding: 3px 20px;
+ clear: both;
+ font-weight: normal;
+ line-height: 1.42857;
+ color: #333333;
+ white-space: nowrap; }
+
+.dropdown-menu > li > a:hover, .dropdown-menu > li > a:focus {
+ text-decoration: none;
+ color: #262626;
+ background-color: #f5f5f5; }
+
+.dropdown-menu > .active > a, .dropdown-menu > .active > a:hover, .dropdown-menu > .active > a:focus {
+ color: #fff;
+ text-decoration: none;
+ outline: 0;
+ background-color: #337ab7; }
+
+.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ color: #777777; }
+
+.dropdown-menu > .disabled > a:hover, .dropdown-menu > .disabled > a:focus {
+ text-decoration: none;
+ background-color: transparent;
+ background-image: none;
+ filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+ cursor: not-allowed; }
+
+.open > .dropdown-menu {
+ display: block; }
+
+.open > a {
+ outline: 0; }
+
+.dropdown-menu-right {
+ left: auto;
+ right: 0; }
+
+.dropdown-menu-left {
+ left: 0;
+ right: auto; }
+
+.dropdown-header {
+ display: block;
+ padding: 3px 20px;
+ font-size: 12px;
+ line-height: 1.42857;
+ color: #777777;
+ white-space: nowrap; }
+
+.dropdown-backdrop {
+ position: fixed;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ top: 0;
+ z-index: 990; }
+
+.pull-right > .dropdown-menu {
+ right: 0;
+ left: auto; }
+
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+ border-top: 0;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
+ content: ""; }
+
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+ top: auto;
+ bottom: 100%;
+ margin-bottom: 2px; }
+
+@media (min-width: 768px) {
+ .navbar-right .dropdown-menu {
+ right: 0;
+ left: auto; }
+ .navbar-right .dropdown-menu-left {
+ left: 0;
+ right: auto; } }
+
+.btn-group,
+.btn-group-vertical {
+ position: relative;
+ display: inline-block;
+ vertical-align: middle; }
+ .btn-group > .btn,
+ .btn-group-vertical > .btn {
+ position: relative;
+ float: left; }
+ .btn-group > .btn:hover, .btn-group > .btn:focus, .btn-group > .btn:active, .btn-group > .btn.active,
+ .btn-group-vertical > .btn:hover,
+ .btn-group-vertical > .btn:focus,
+ .btn-group-vertical > .btn:active,
+ .btn-group-vertical > .btn.active {
+ z-index: 2; }
+
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+ margin-left: -1px; }
+
+.btn-toolbar {
+ margin-left: -5px; }
+ .btn-toolbar:before, .btn-toolbar:after {
+ content: " ";
+ display: table; }
+ .btn-toolbar:after {
+ clear: both; }
+ .btn-toolbar .btn,
+ .btn-toolbar .btn-group,
+ .btn-toolbar .input-group {
+ float: left; }
+ .btn-toolbar > .btn,
+ .btn-toolbar > .btn-group,
+ .btn-toolbar > .input-group {
+ margin-left: 5px; }
+
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+ border-radius: 0; }
+
+.btn-group > .btn:first-child {
+ margin-left: 0; }
+ .btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group > .btn-group {
+ float: left; }
+
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+ outline: 0; }
+
+.btn-group > .btn + .dropdown-toggle {
+ padding-left: 8px;
+ padding-right: 8px; }
+
+.btn-group > .btn-lg + .dropdown-toggle, .btn-group-lg.btn-group > .btn + .dropdown-toggle {
+ padding-left: 12px;
+ padding-right: 12px; }
+
+.btn-group.open .dropdown-toggle {
+ -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+ box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); }
+ .btn-group.open .dropdown-toggle.btn-link {
+ -webkit-box-shadow: none;
+ box-shadow: none; }
+
+.btn .caret {
+ margin-left: 0; }
+
+.btn-lg .caret, .btn-group-lg > .btn .caret {
+ border-width: 5px 5px 0;
+ border-bottom-width: 0; }
+
+.dropup .btn-lg .caret, .dropup .btn-group-lg > .btn .caret {
+ border-width: 0 5px 5px; }
+
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+ display: block;
+ float: none;
+ width: 100%;
+ max-width: 100%; }
+
+.btn-group-vertical > .btn-group:before, .btn-group-vertical > .btn-group:after {
+ content: " ";
+ display: table; }
+
+.btn-group-vertical > .btn-group:after {
+ clear: both; }
+
+.btn-group-vertical > .btn-group > .btn {
+ float: none; }
+
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+ margin-top: -1px;
+ margin-left: 0; }
+
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px; }
+
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+ border-radius: 0; }
+
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.btn-group-justified {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+ border-collapse: separate; }
+ .btn-group-justified > .btn,
+ .btn-group-justified > .btn-group {
+ float: none;
+ display: table-cell;
+ width: 1%; }
+ .btn-group-justified > .btn-group .btn {
+ width: 100%; }
+ .btn-group-justified > .btn-group .dropdown-menu {
+ left: auto; }
+
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+ position: absolute;
+ clip: rect(0, 0, 0, 0);
+ pointer-events: none; }
+
+.input-group {
+ position: relative;
+ display: table;
+ border-collapse: separate; }
+ .input-group[class*="col-"] {
+ float: none;
+ padding-left: 0;
+ padding-right: 0; }
+ .input-group .form-control {
+ position: relative;
+ z-index: 2;
+ float: left;
+ width: 100%;
+ margin-bottom: 0; }
+ .input-group .form-control:focus {
+ z-index: 3; }
+
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+ display: table-cell; }
+ .input-group-addon:not(:first-child):not(:last-child),
+ .input-group-btn:not(:first-child):not(:last-child),
+ .input-group .form-control:not(:first-child):not(:last-child) {
+ border-radius: 0; }
+
+.input-group-addon,
+.input-group-btn {
+ width: 1%;
+ white-space: nowrap;
+ vertical-align: middle; }
+
+.input-group-addon {
+ padding: 6px 12px;
+ font-size: 14px;
+ font-weight: normal;
+ line-height: 1;
+ color: #555555;
+ text-align: center;
+ background-color: #eeeeee;
+ border: 1px solid #ccc;
+ border-radius: 4px; }
+ .input-group-addon.input-sm,
+ .input-group-sm > .input-group-addon,
+ .input-group-sm > .input-group-btn > .input-group-addon.btn {
+ padding: 5px 10px;
+ font-size: 12px;
+ border-radius: 3px; }
+ .input-group-addon.input-lg,
+ .input-group-lg > .input-group-addon,
+ .input-group-lg > .input-group-btn > .input-group-addon.btn {
+ padding: 10px 16px;
+ font-size: 18px;
+ border-radius: 6px; }
+ .input-group-addon input[type="radio"],
+ .input-group-addon input[type="checkbox"] {
+ margin-top: 0; }
+
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+ border-bottom-right-radius: 0;
+ border-top-right-radius: 0; }
+
+.input-group-addon:first-child {
+ border-right: 0; }
+
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+ border-bottom-left-radius: 0;
+ border-top-left-radius: 0; }
+
+.input-group-addon:last-child {
+ border-left: 0; }
+
+.input-group-btn {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap; }
+ .input-group-btn > .btn {
+ position: relative; }
+ .input-group-btn > .btn + .btn {
+ margin-left: -1px; }
+ .input-group-btn > .btn:hover, .input-group-btn > .btn:focus, .input-group-btn > .btn:active {
+ z-index: 2; }
+ .input-group-btn:first-child > .btn,
+ .input-group-btn:first-child > .btn-group {
+ margin-right: -1px; }
+ .input-group-btn:last-child > .btn,
+ .input-group-btn:last-child > .btn-group {
+ z-index: 2;
+ margin-left: -1px; }
+
+.nav {
+ margin-bottom: 0;
+ padding-left: 0;
+ list-style: none; }
+ .nav:before, .nav:after {
+ content: " ";
+ display: table; }
+ .nav:after {
+ clear: both; }
+ .nav > li {
+ position: relative;
+ display: block; }
+ .nav > li > a {
+ position: relative;
+ display: block;
+ padding: 10px 15px; }
+ .nav > li > a:hover, .nav > li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee; }
+ .nav > li.disabled > a {
+ color: #777777; }
+ .nav > li.disabled > a:hover, .nav > li.disabled > a:focus {
+ color: #777777;
+ text-decoration: none;
+ background-color: transparent;
+ cursor: not-allowed; }
+ .nav .open > a, .nav .open > a:hover, .nav .open > a:focus {
+ background-color: #eeeeee;
+ border-color: #337ab7; }
+ .nav .nav-divider {
+ height: 1px;
+ margin: 9px 0;
+ overflow: hidden;
+ background-color: #e5e5e5; }
+ .nav > li > a > img {
+ max-width: none; }
+
+.nav-tabs {
+ border-bottom: 1px solid #ddd; }
+ .nav-tabs > li {
+ float: left;
+ margin-bottom: -1px; }
+ .nav-tabs > li > a {
+ margin-right: 2px;
+ line-height: 1.42857;
+ border: 1px solid transparent;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs > li > a:hover {
+ border-color: #eeeeee #eeeeee #ddd; }
+ .nav-tabs > li.active > a, .nav-tabs > li.active > a:hover, .nav-tabs > li.active > a:focus {
+ color: #555555;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-bottom-color: transparent;
+ cursor: default; }
+
+.nav-pills > li {
+ float: left; }
+ .nav-pills > li > a {
+ border-radius: 4px; }
+ .nav-pills > li + li {
+ margin-left: 2px; }
+ .nav-pills > li.active > a, .nav-pills > li.active > a:hover, .nav-pills > li.active > a:focus {
+ color: #fff;
+ background-color: #337ab7; }
+
+.nav-stacked > li {
+ float: none; }
+ .nav-stacked > li + li {
+ margin-top: 2px;
+ margin-left: 0; }
+
+.nav-justified, .nav-tabs.nav-justified {
+ width: 100%; }
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ float: none; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ text-align: center;
+ margin-bottom: 5px; }
+ .nav-justified > .dropdown .dropdown-menu {
+ top: auto;
+ left: auto; }
+ @media (min-width: 768px) {
+ .nav-justified > li, .nav-tabs.nav-justified > li {
+ display: table-cell;
+ width: 1%; }
+ .nav-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-bottom: 0; } }
+
+.nav-tabs-justified, .nav-tabs.nav-justified {
+ border-bottom: 0; }
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ margin-right: 0;
+ border-radius: 4px; }
+ .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border: 1px solid #ddd; }
+ @media (min-width: 768px) {
+ .nav-tabs-justified > li > a, .nav-tabs.nav-justified > li > a {
+ border-bottom: 1px solid #ddd;
+ border-radius: 4px 4px 0 0; }
+ .nav-tabs-justified > .active > a, .nav-tabs.nav-justified > .active > a,
+ .nav-tabs-justified > .active > a:hover, .nav-tabs.nav-justified > .active > a:hover,
+ .nav-tabs-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:focus {
+ border-bottom-color: #fff; } }
+
+.tab-content > .tab-pane {
+ display: none; }
+
+.tab-content > .active {
+ display: block; }
+
+.nav-tabs .dropdown-menu {
+ margin-top: -1px;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.navbar {
+ position: relative;
+ min-height: 50px;
+ margin-bottom: 20px;
+ border: 1px solid transparent; }
+ .navbar:before, .navbar:after {
+ content: " ";
+ display: table; }
+ .navbar:after {
+ clear: both; }
+ @media (min-width: 768px) {
+ .navbar {
+ border-radius: 4px; } }
+
+.navbar-header:before, .navbar-header:after {
+ content: " ";
+ display: table; }
+
+.navbar-header:after {
+ clear: both; }
+
+@media (min-width: 768px) {
+ .navbar-header {
+ float: left; } }
+
+.navbar-collapse {
+ overflow-x: visible;
+ padding-right: 15px;
+ padding-left: 15px;
+ border-top: 1px solid transparent;
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+ -webkit-overflow-scrolling: touch; }
+ .navbar-collapse:before, .navbar-collapse:after {
+ content: " ";
+ display: table; }
+ .navbar-collapse:after {
+ clear: both; }
+ .navbar-collapse.in {
+ overflow-y: auto; }
+ @media (min-width: 768px) {
+ .navbar-collapse {
+ width: auto;
+ border-top: 0;
+ box-shadow: none; }
+ .navbar-collapse.collapse {
+ display: block !important;
+ height: auto !important;
+ padding-bottom: 0;
+ overflow: visible !important; }
+ .navbar-collapse.in {
+ overflow-y: visible; }
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-static-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ padding-left: 0;
+ padding-right: 0; } }
+
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+ max-height: 340px; }
+ @media (max-device-width: 480px) and (orientation: landscape) {
+ .navbar-fixed-top .navbar-collapse,
+ .navbar-fixed-bottom .navbar-collapse {
+ max-height: 200px; } }
+
+.container > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-header,
+.container-fluid > .navbar-collapse {
+ margin-right: -15px;
+ margin-left: -15px; }
+ @media (min-width: 768px) {
+ .container > .navbar-header,
+ .container > .navbar-collapse,
+ .container-fluid > .navbar-header,
+ .container-fluid > .navbar-collapse {
+ margin-right: 0;
+ margin-left: 0; } }
+
+.navbar-static-top {
+ z-index: 1000;
+ border-width: 0 0 1px; }
+ @media (min-width: 768px) {
+ .navbar-static-top {
+ border-radius: 0; } }
+
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 1030; }
+ @media (min-width: 768px) {
+ .navbar-fixed-top,
+ .navbar-fixed-bottom {
+ border-radius: 0; } }
+
+.navbar-fixed-top {
+ top: 0;
+ border-width: 0 0 1px; }
+
+.navbar-fixed-bottom {
+ bottom: 0;
+ margin-bottom: 0;
+ border-width: 1px 0 0; }
+
+.navbar-brand {
+ float: left;
+ padding: 15px 15px;
+ font-size: 18px;
+ line-height: 20px;
+ height: 50px; }
+ .navbar-brand:hover, .navbar-brand:focus {
+ text-decoration: none; }
+ .navbar-brand > img {
+ display: block; }
+ @media (min-width: 768px) {
+ .navbar > .container .navbar-brand,
+ .navbar > .container-fluid .navbar-brand {
+ margin-left: -15px; } }
+
+.navbar-toggle {
+ position: relative;
+ float: right;
+ margin-right: 15px;
+ padding: 9px 10px;
+ margin-top: 8px;
+ margin-bottom: 8px;
+ background-color: transparent;
+ background-image: none;
+ border: 1px solid transparent;
+ border-radius: 4px; }
+ .navbar-toggle:focus {
+ outline: 0; }
+ .navbar-toggle .icon-bar {
+ display: block;
+ width: 22px;
+ height: 2px;
+ border-radius: 1px; }
+ .navbar-toggle .icon-bar + .icon-bar {
+ margin-top: 4px; }
+ @media (min-width: 768px) {
+ .navbar-toggle {
+ display: none; } }
+
+.navbar-nav {
+ margin: 7.5px -15px; }
+ .navbar-nav > li > a {
+ padding-top: 10px;
+ padding-bottom: 10px;
+ line-height: 20px; }
+ @media (max-width: 767px) {
+ .navbar-nav .open .dropdown-menu {
+ position: static;
+ float: none;
+ width: auto;
+ margin-top: 0;
+ background-color: transparent;
+ border: 0;
+ box-shadow: none; }
+ .navbar-nav .open .dropdown-menu > li > a,
+ .navbar-nav .open .dropdown-menu .dropdown-header {
+ padding: 5px 15px 5px 25px; }
+ .navbar-nav .open .dropdown-menu > li > a {
+ line-height: 20px; }
+ .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-nav .open .dropdown-menu > li > a:focus {
+ background-image: none; } }
+ @media (min-width: 768px) {
+ .navbar-nav {
+ float: left;
+ margin: 0; }
+ .navbar-nav > li {
+ float: left; }
+ .navbar-nav > li > a {
+ padding-top: 15px;
+ padding-bottom: 15px; } }
+
+.navbar-form {
+ margin-left: -15px;
+ margin-right: -15px;
+ padding: 10px 15px;
+ border-top: 1px solid transparent;
+ border-bottom: 1px solid transparent;
+ -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+ margin-top: 8px;
+ margin-bottom: 8px; }
+ @media (min-width: 768px) {
+ .navbar-form .form-group {
+ display: inline-block;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .form-control {
+ display: inline-block;
+ width: auto;
+ vertical-align: middle; }
+ .navbar-form .form-control-static {
+ display: inline-block; }
+ .navbar-form .input-group {
+ display: inline-table;
+ vertical-align: middle; }
+ .navbar-form .input-group .input-group-addon,
+ .navbar-form .input-group .input-group-btn,
+ .navbar-form .input-group .form-control {
+ width: auto; }
+ .navbar-form .input-group > .form-control {
+ width: 100%; }
+ .navbar-form .control-label {
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .radio,
+ .navbar-form .checkbox {
+ display: inline-block;
+ margin-top: 0;
+ margin-bottom: 0;
+ vertical-align: middle; }
+ .navbar-form .radio label,
+ .navbar-form .checkbox label {
+ padding-left: 0; }
+ .navbar-form .radio input[type="radio"],
+ .navbar-form .checkbox input[type="checkbox"] {
+ position: relative;
+ margin-left: 0; }
+ .navbar-form .has-feedback .form-control-feedback {
+ top: 0; } }
+ @media (max-width: 767px) {
+ .navbar-form .form-group {
+ margin-bottom: 5px; }
+ .navbar-form .form-group:last-child {
+ margin-bottom: 0; } }
+ @media (min-width: 768px) {
+ .navbar-form {
+ width: auto;
+ border: 0;
+ margin-left: 0;
+ margin-right: 0;
+ padding-top: 0;
+ padding-bottom: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none; } }
+
+.navbar-nav > li > .dropdown-menu {
+ margin-top: 0;
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-bottom-right-radius: 0;
+ border-bottom-left-radius: 0; }
+
+.navbar-btn {
+ margin-top: 8px;
+ margin-bottom: 8px; }
+ .navbar-btn.btn-sm, .btn-group-sm > .navbar-btn.btn {
+ margin-top: 10px;
+ margin-bottom: 10px; }
+ .navbar-btn.btn-xs, .btn-group-xs > .navbar-btn.btn {
+ margin-top: 14px;
+ margin-bottom: 14px; }
+
+.navbar-text {
+ margin-top: 15px;
+ margin-bottom: 15px; }
+ @media (min-width: 768px) {
+ .navbar-text {
+ float: left;
+ margin-left: 15px;
+ margin-right: 15px; } }
+
+@media (min-width: 768px) {
+ .navbar-left {
+ float: left !important; }
+ .navbar-right {
+ float: right !important;
+ margin-right: -15px; }
+ .navbar-right ~ .navbar-right {
+ margin-right: 0; } }
+
+.navbar-default {
+ background-color: #f8f8f8;
+ border-color: #e7e7e7; }
+ .navbar-default .navbar-brand {
+ color: #777; }
+ .navbar-default .navbar-brand:hover, .navbar-default .navbar-brand:focus {
+ color: #5e5e5e;
+ background-color: transparent; }
+ .navbar-default .navbar-text {
+ color: #777; }
+ .navbar-default .navbar-nav > li > a {
+ color: #777; }
+ .navbar-default .navbar-nav > li > a:hover, .navbar-default .navbar-nav > li > a:focus {
+ color: #333;
+ background-color: transparent; }
+ .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7; }
+ .navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:hover, .navbar-default .navbar-nav > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent; }
+ .navbar-default .navbar-toggle {
+ border-color: #ddd; }
+ .navbar-default .navbar-toggle:hover, .navbar-default .navbar-toggle:focus {
+ background-color: #ddd; }
+ .navbar-default .navbar-toggle .icon-bar {
+ background-color: #888; }
+ .navbar-default .navbar-collapse,
+ .navbar-default .navbar-form {
+ border-color: #e7e7e7; }
+ .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:hover, .navbar-default .navbar-nav > .open > a:focus {
+ background-color: #e7e7e7;
+ color: #555; }
+ @media (max-width: 767px) {
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+ color: #777; }
+ .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #333;
+ background-color: transparent; }
+ .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #555;
+ background-color: #e7e7e7; }
+ .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #ccc;
+ background-color: transparent; } }
+ .navbar-default .navbar-link {
+ color: #777; }
+ .navbar-default .navbar-link:hover {
+ color: #333; }
+ .navbar-default .btn-link {
+ color: #777; }
+ .navbar-default .btn-link:hover, .navbar-default .btn-link:focus {
+ color: #333; }
+ .navbar-default .btn-link[disabled]:hover, .navbar-default .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-default .btn-link:hover,
+ fieldset[disabled] .navbar-default .btn-link:focus {
+ color: #ccc; }
+
+.navbar-inverse {
+ background-color: #222;
+ border-color: #090909; }
+ .navbar-inverse .navbar-brand {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-brand:hover, .navbar-inverse .navbar-brand:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-text {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav > li > a {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav > li > a:hover, .navbar-inverse .navbar-nav > li > a:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:hover, .navbar-inverse .navbar-nav > .active > a:focus {
+ color: #fff;
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:hover, .navbar-inverse .navbar-nav > .disabled > a:focus {
+ color: #444;
+ background-color: transparent; }
+ .navbar-inverse .navbar-toggle {
+ border-color: #333; }
+ .navbar-inverse .navbar-toggle:hover, .navbar-inverse .navbar-toggle:focus {
+ background-color: #333; }
+ .navbar-inverse .navbar-toggle .icon-bar {
+ background-color: #fff; }
+ .navbar-inverse .navbar-collapse,
+ .navbar-inverse .navbar-form {
+ border-color: #101010; }
+ .navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:hover, .navbar-inverse .navbar-nav > .open > a:focus {
+ background-color: #090909;
+ color: #fff; }
+ @media (max-width: 767px) {
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+ border-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+ color: #fff;
+ background-color: transparent; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+ color: #fff;
+ background-color: #090909; }
+ .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+ color: #444;
+ background-color: transparent; } }
+ .navbar-inverse .navbar-link {
+ color: #9d9d9d; }
+ .navbar-inverse .navbar-link:hover {
+ color: #fff; }
+ .navbar-inverse .btn-link {
+ color: #9d9d9d; }
+ .navbar-inverse .btn-link:hover, .navbar-inverse .btn-link:focus {
+ color: #fff; }
+ .navbar-inverse .btn-link[disabled]:hover, .navbar-inverse .btn-link[disabled]:focus,
+ fieldset[disabled] .navbar-inverse .btn-link:hover,
+ fieldset[disabled] .navbar-inverse .btn-link:focus {
+ color: #444; }
+
+.breadcrumb {
+ padding: 8px 15px;
+ margin-bottom: 20px;
+ list-style: none;
+ background-color: #f5f5f5;
+ border-radius: 4px; }
+ .breadcrumb > li {
+ display: inline-block; }
+ .breadcrumb > li + li:before {
+ content: "/ ";
+ padding: 0 5px;
+ color: #ccc; }
+ .breadcrumb > .active {
+ color: #777777; }
+
+.pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 20px 0;
+ border-radius: 4px; }
+ .pagination > li {
+ display: inline; }
+ .pagination > li > a,
+ .pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ line-height: 1.42857;
+ text-decoration: none;
+ color: #337ab7;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ margin-left: -1px; }
+ .pagination > li:first-child > a,
+ .pagination > li:first-child > span {
+ margin-left: 0;
+ border-bottom-left-radius: 4px;
+ border-top-left-radius: 4px; }
+ .pagination > li:last-child > a,
+ .pagination > li:last-child > span {
+ border-bottom-right-radius: 4px;
+ border-top-right-radius: 4px; }
+ .pagination > li > a:hover, .pagination > li > a:focus,
+ .pagination > li > span:hover,
+ .pagination > li > span:focus {
+ z-index: 2;
+ color: #23527c;
+ background-color: #eeeeee;
+ border-color: #ddd; }
+ .pagination > .active > a, .pagination > .active > a:hover, .pagination > .active > a:focus,
+ .pagination > .active > span,
+ .pagination > .active > span:hover,
+ .pagination > .active > span:focus {
+ z-index: 3;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7;
+ cursor: default; }
+ .pagination > .disabled > span,
+ .pagination > .disabled > span:hover,
+ .pagination > .disabled > span:focus,
+ .pagination > .disabled > a,
+ .pagination > .disabled > a:hover,
+ .pagination > .disabled > a:focus {
+ color: #777777;
+ background-color: #fff;
+ border-color: #ddd;
+ cursor: not-allowed; }
+
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.33333; }
+
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+ border-bottom-left-radius: 6px;
+ border-top-left-radius: 6px; }
+
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+ border-bottom-right-radius: 6px;
+ border-top-right-radius: 6px; }
+
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5; }
+
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+ border-bottom-left-radius: 3px;
+ border-top-left-radius: 3px; }
+
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+ border-bottom-right-radius: 3px;
+ border-top-right-radius: 3px; }
+
+.pager {
+ padding-left: 0;
+ margin: 20px 0;
+ list-style: none;
+ text-align: center; }
+ .pager:before, .pager:after {
+ content: " ";
+ display: table; }
+ .pager:after {
+ clear: both; }
+ .pager li {
+ display: inline; }
+ .pager li > a,
+ .pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 15px; }
+ .pager li > a:hover,
+ .pager li > a:focus {
+ text-decoration: none;
+ background-color: #eeeeee; }
+ .pager .next > a,
+ .pager .next > span {
+ float: right; }
+ .pager .previous > a,
+ .pager .previous > span {
+ float: left; }
+ .pager .disabled > a,
+ .pager .disabled > a:hover,
+ .pager .disabled > a:focus,
+ .pager .disabled > span {
+ color: #777777;
+ background-color: #fff;
+ cursor: not-allowed; }
+
+.label {
+ display: inline;
+ padding: .2em .6em .3em;
+ font-size: 75%;
+ font-weight: bold;
+ line-height: 1;
+ color: #fff;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: baseline;
+ border-radius: .25em; }
+ .label:empty {
+ display: none; }
+ .btn .label {
+ position: relative;
+ top: -1px; }
+
+a.label:hover, a.label:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer; }
+
+.label-default {
+ background-color: #777777; }
+ .label-default[href]:hover, .label-default[href]:focus {
+ background-color: #5e5e5e; }
+
+.label-primary {
+ background-color: #337ab7; }
+ .label-primary[href]:hover, .label-primary[href]:focus {
+ background-color: #286090; }
+
+.label-success {
+ background-color: #5cb85c; }
+ .label-success[href]:hover, .label-success[href]:focus {
+ background-color: #449d44; }
+
+.label-info {
+ background-color: #5bc0de; }
+ .label-info[href]:hover, .label-info[href]:focus {
+ background-color: #31b0d5; }
+
+.label-warning {
+ background-color: #f0ad4e; }
+ .label-warning[href]:hover, .label-warning[href]:focus {
+ background-color: #ec971f; }
+
+.label-danger {
+ background-color: #d9534f; }
+ .label-danger[href]:hover, .label-danger[href]:focus {
+ background-color: #c9302c; }
+
+.badge {
+ display: inline-block;
+ min-width: 10px;
+ padding: 3px 7px;
+ font-size: 12px;
+ font-weight: bold;
+ color: #fff;
+ line-height: 1;
+ vertical-align: middle;
+ white-space: nowrap;
+ text-align: center;
+ background-color: #777777;
+ border-radius: 10px; }
+ .badge:empty {
+ display: none; }
+ .btn .badge {
+ position: relative;
+ top: -1px; }
+ .btn-xs .badge, .btn-group-xs > .btn .badge,
+ .btn-group-xs > .btn .badge {
+ top: 0;
+ padding: 1px 5px; }
+ .list-group-item.active > .badge,
+ .nav-pills > .active > a > .badge {
+ color: #337ab7;
+ background-color: #fff; }
+ .list-group-item > .badge {
+ float: right; }
+ .list-group-item > .badge + .badge {
+ margin-right: 5px; }
+ .nav-pills > li > a > .badge {
+ margin-left: 3px; }
+
+a.badge:hover, a.badge:focus {
+ color: #fff;
+ text-decoration: none;
+ cursor: pointer; }
+
+.jumbotron {
+ padding-top: 30px;
+ padding-bottom: 30px;
+ margin-bottom: 30px;
+ color: inherit;
+ background-color: #eeeeee; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ color: inherit; }
+ .jumbotron p {
+ margin-bottom: 15px;
+ font-size: 21px;
+ font-weight: 200; }
+ .jumbotron > hr {
+ border-top-color: #d5d5d5; }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ border-radius: 6px;
+ padding-left: 15px;
+ padding-right: 15px; }
+ .jumbotron .container {
+ max-width: 100%; }
+ @media screen and (min-width: 768px) {
+ .jumbotron {
+ padding-top: 48px;
+ padding-bottom: 48px; }
+ .container .jumbotron,
+ .container-fluid .jumbotron {
+ padding-left: 60px;
+ padding-right: 60px; }
+ .jumbotron h1,
+ .jumbotron .h1 {
+ font-size: 63px; } }
+
+.thumbnail {
+ display: block;
+ padding: 4px;
+ margin-bottom: 20px;
+ line-height: 1.42857;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 4px;
+ -webkit-transition: border 0.2s ease-in-out;
+ -o-transition: border 0.2s ease-in-out;
+ transition: border 0.2s ease-in-out; }
+ .thumbnail > img,
+ .thumbnail a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ margin-left: auto;
+ margin-right: auto; }
+ .thumbnail .caption {
+ padding: 9px;
+ color: #333333; }
+
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+ border-color: #337ab7; }
+
+.alert {
+ padding: 15px;
+ margin-bottom: 20px;
+ border: 1px solid transparent;
+ border-radius: 4px; }
+ .alert h4 {
+ margin-top: 0;
+ color: inherit; }
+ .alert .alert-link {
+ font-weight: bold; }
+ .alert > p,
+ .alert > ul {
+ margin-bottom: 0; }
+ .alert > p + p {
+ margin-top: 5px; }
+
+.alert-dismissable,
+.alert-dismissible {
+ padding-right: 35px; }
+ .alert-dismissable .close,
+ .alert-dismissible .close {
+ position: relative;
+ top: -2px;
+ right: -21px;
+ color: inherit; }
+
+.alert-success {
+ background-color: #dff0d8;
+ border-color: #d6e9c6;
+ color: #3c763d; }
+ .alert-success hr {
+ border-top-color: #c9e2b3; }
+ .alert-success .alert-link {
+ color: #2b542c; }
+
+.alert-info {
+ background-color: #d9edf7;
+ border-color: #bce8f1;
+ color: #31708f; }
+ .alert-info hr {
+ border-top-color: #a6e1ec; }
+ .alert-info .alert-link {
+ color: #245269; }
+
+.alert-warning {
+ background-color: #fcf8e3;
+ border-color: #faebcc;
+ color: #8a6d3b; }
+ .alert-warning hr {
+ border-top-color: #f7e1b5; }
+ .alert-warning .alert-link {
+ color: #66512c; }
+
+.alert-danger {
+ background-color: #f2dede;
+ border-color: #ebccd1;
+ color: #a94442; }
+ .alert-danger hr {
+ border-top-color: #e4b9c0; }
+ .alert-danger .alert-link {
+ color: #843534; }
+
+@-webkit-keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0; }
+ to {
+ background-position: 0 0; } }
+
+@keyframes progress-bar-stripes {
+ from {
+ background-position: 40px 0; }
+ to {
+ background-position: 0 0; } }
+
+.progress {
+ overflow: hidden;
+ height: 20px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+ box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); }
+
+.progress-bar {
+ float: left;
+ width: 0%;
+ height: 100%;
+ font-size: 12px;
+ line-height: 20px;
+ color: #fff;
+ text-align: center;
+ background-color: #337ab7;
+ -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
+ -webkit-transition: width 0.6s ease;
+ -o-transition: width 0.6s ease;
+ transition: width 0.6s ease; }
+
+.progress-striped .progress-bar,
+.progress-bar-striped {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-size: 40px 40px; }
+
+.progress.active .progress-bar,
+.progress-bar.active {
+ -webkit-animation: progress-bar-stripes 2s linear infinite;
+ -o-animation: progress-bar-stripes 2s linear infinite;
+ animation: progress-bar-stripes 2s linear infinite; }
+
+.progress-bar-success {
+ background-color: #5cb85c; }
+ .progress-striped .progress-bar-success {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-info {
+ background-color: #5bc0de; }
+ .progress-striped .progress-bar-info {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-warning {
+ background-color: #f0ad4e; }
+ .progress-striped .progress-bar-warning {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.progress-bar-danger {
+ background-color: #d9534f; }
+ .progress-striped .progress-bar-danger {
+ background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
+ background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); }
+
+.media {
+ margin-top: 15px; }
+ .media:first-child {
+ margin-top: 0; }
+
+.media,
+.media-body {
+ zoom: 1;
+ overflow: hidden; }
+
+.media-body {
+ width: 10000px; }
+
+.media-object {
+ display: block; }
+ .media-object.img-thumbnail {
+ max-width: none; }
+
+.media-right,
+.media > .pull-right {
+ padding-left: 10px; }
+
+.media-left,
+.media > .pull-left {
+ padding-right: 10px; }
+
+.media-left,
+.media-right,
+.media-body {
+ display: table-cell;
+ vertical-align: top; }
+
+.media-middle {
+ vertical-align: middle; }
+
+.media-bottom {
+ vertical-align: bottom; }
+
+.media-heading {
+ margin-top: 0;
+ margin-bottom: 5px; }
+
+.media-list {
+ padding-left: 0;
+ list-style: none; }
+
+.list-group {
+ margin-bottom: 20px;
+ padding-left: 0; }
+
+.list-group-item {
+ position: relative;
+ display: block;
+ padding: 10px 15px;
+ margin-bottom: -1px;
+ background-color: #fff;
+ border: 1px solid #ddd; }
+ .list-group-item:first-child {
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px; }
+ .list-group-item:last-child {
+ margin-bottom: 0;
+ border-bottom-right-radius: 4px;
+ border-bottom-left-radius: 4px; }
+
+a.list-group-item,
+button.list-group-item {
+ color: #555; }
+ a.list-group-item .list-group-item-heading,
+ button.list-group-item .list-group-item-heading {
+ color: #333; }
+ a.list-group-item:hover, a.list-group-item:focus,
+ button.list-group-item:hover,
+ button.list-group-item:focus {
+ text-decoration: none;
+ color: #555;
+ background-color: #f5f5f5; }
+
+button.list-group-item {
+ width: 100%;
+ text-align: left; }
+
+.list-group-item.disabled, .list-group-item.disabled:hover, .list-group-item.disabled:focus {
+ background-color: #eeeeee;
+ color: #777777;
+ cursor: not-allowed; }
+ .list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading {
+ color: inherit; }
+ .list-group-item.disabled .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text {
+ color: #777777; }
+
+.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus {
+ z-index: 2;
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7; }
+ .list-group-item.active .list-group-item-heading,
+ .list-group-item.active .list-group-item-heading > small,
+ .list-group-item.active .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading,
+ .list-group-item.active:hover .list-group-item-heading > small,
+ .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading,
+ .list-group-item.active:focus .list-group-item-heading > small,
+ .list-group-item.active:focus .list-group-item-heading > .small {
+ color: inherit; }
+ .list-group-item.active .list-group-item-text, .list-group-item.active:hover .list-group-item-text, .list-group-item.active:focus .list-group-item-text {
+ color: #c7ddef; }
+
+.list-group-item-success {
+ color: #3c763d;
+ background-color: #dff0d8; }
+
+a.list-group-item-success,
+button.list-group-item-success {
+ color: #3c763d; }
+ a.list-group-item-success .list-group-item-heading,
+ button.list-group-item-success .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-success:hover, a.list-group-item-success:focus,
+ button.list-group-item-success:hover,
+ button.list-group-item-success:focus {
+ color: #3c763d;
+ background-color: #d0e9c6; }
+ a.list-group-item-success.active, a.list-group-item-success.active:hover, a.list-group-item-success.active:focus,
+ button.list-group-item-success.active,
+ button.list-group-item-success.active:hover,
+ button.list-group-item-success.active:focus {
+ color: #fff;
+ background-color: #3c763d;
+ border-color: #3c763d; }
+
+.list-group-item-info {
+ color: #31708f;
+ background-color: #d9edf7; }
+
+a.list-group-item-info,
+button.list-group-item-info {
+ color: #31708f; }
+ a.list-group-item-info .list-group-item-heading,
+ button.list-group-item-info .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-info:hover, a.list-group-item-info:focus,
+ button.list-group-item-info:hover,
+ button.list-group-item-info:focus {
+ color: #31708f;
+ background-color: #c4e3f3; }
+ a.list-group-item-info.active, a.list-group-item-info.active:hover, a.list-group-item-info.active:focus,
+ button.list-group-item-info.active,
+ button.list-group-item-info.active:hover,
+ button.list-group-item-info.active:focus {
+ color: #fff;
+ background-color: #31708f;
+ border-color: #31708f; }
+
+.list-group-item-warning {
+ color: #8a6d3b;
+ background-color: #fcf8e3; }
+
+a.list-group-item-warning,
+button.list-group-item-warning {
+ color: #8a6d3b; }
+ a.list-group-item-warning .list-group-item-heading,
+ button.list-group-item-warning .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-warning:hover, a.list-group-item-warning:focus,
+ button.list-group-item-warning:hover,
+ button.list-group-item-warning:focus {
+ color: #8a6d3b;
+ background-color: #faf2cc; }
+ a.list-group-item-warning.active, a.list-group-item-warning.active:hover, a.list-group-item-warning.active:focus,
+ button.list-group-item-warning.active,
+ button.list-group-item-warning.active:hover,
+ button.list-group-item-warning.active:focus {
+ color: #fff;
+ background-color: #8a6d3b;
+ border-color: #8a6d3b; }
+
+.list-group-item-danger {
+ color: #a94442;
+ background-color: #f2dede; }
+
+a.list-group-item-danger,
+button.list-group-item-danger {
+ color: #a94442; }
+ a.list-group-item-danger .list-group-item-heading,
+ button.list-group-item-danger .list-group-item-heading {
+ color: inherit; }
+ a.list-group-item-danger:hover, a.list-group-item-danger:focus,
+ button.list-group-item-danger:hover,
+ button.list-group-item-danger:focus {
+ color: #a94442;
+ background-color: #ebcccc; }
+ a.list-group-item-danger.active, a.list-group-item-danger.active:hover, a.list-group-item-danger.active:focus,
+ button.list-group-item-danger.active,
+ button.list-group-item-danger.active:hover,
+ button.list-group-item-danger.active:focus {
+ color: #fff;
+ background-color: #a94442;
+ border-color: #a94442; }
+
+.list-group-item-heading {
+ margin-top: 0;
+ margin-bottom: 5px; }
+
+.list-group-item-text {
+ margin-bottom: 0;
+ line-height: 1.3; }
+
+.panel {
+ margin-bottom: 20px;
+ background-color: #fff;
+ border: 1px solid transparent;
+ border-radius: 4px;
+ -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); }
+
+.panel-body {
+ padding: 15px; }
+ .panel-body:before, .panel-body:after {
+ content: " ";
+ display: table; }
+ .panel-body:after {
+ clear: both; }
+
+.panel-heading {
+ padding: 10px 15px;
+ border-bottom: 1px solid transparent;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel-heading > .dropdown .dropdown-toggle {
+ color: inherit; }
+
+.panel-title {
+ margin-top: 0;
+ margin-bottom: 0;
+ font-size: 16px;
+ color: inherit; }
+ .panel-title > a,
+ .panel-title > small,
+ .panel-title > .small,
+ .panel-title > small > a,
+ .panel-title > .small > a {
+ color: inherit; }
+
+.panel-footer {
+ padding: 10px 15px;
+ background-color: #f5f5f5;
+ border-top: 1px solid #ddd;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px; }
+
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+ margin-bottom: 0; }
+ .panel > .list-group .list-group-item,
+ .panel > .panel-collapse > .list-group .list-group-item {
+ border-width: 1px 0;
+ border-radius: 0; }
+ .panel > .list-group:first-child .list-group-item:first-child,
+ .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+ border-top: 0;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel > .list-group:last-child .list-group-item:last-child,
+ .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+ border-bottom: 0;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px; }
+
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-right-radius: 0;
+ border-top-left-radius: 0; }
+
+.panel-heading + .list-group .list-group-item:first-child {
+ border-top-width: 0; }
+
+.list-group + .panel-footer {
+ border-top-width: 0; }
+
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+ margin-bottom: 0; }
+ .panel > .table caption,
+ .panel > .table-responsive > .table caption,
+ .panel > .panel-collapse > .table caption {
+ padding-left: 15px;
+ padding-right: 15px; }
+
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+ border-top-left-radius: 3px; }
+ .panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+ .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+ border-top-right-radius: 3px; }
+
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+ border-bottom-left-radius: 3px;
+ border-bottom-right-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+ border-bottom-left-radius: 3px; }
+ .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+ .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+ border-bottom-right-radius: 3px; }
+
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+ border-top: 1px solid #ddd; }
+
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+ border-top: 0; }
+
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+ border: 0; }
+ .panel > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-bordered > tfoot > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+ border-left: 0; }
+ .panel > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-bordered > tfoot > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+ .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+ border-right: 0; }
+ .panel > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-bordered > tbody > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+ border-bottom: 0; }
+ .panel > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-bordered > tfoot > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+ .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+ border-bottom: 0; }
+
+.panel > .table-responsive {
+ border: 0;
+ margin-bottom: 0; }
+
+.panel-group {
+ margin-bottom: 20px; }
+ .panel-group .panel {
+ margin-bottom: 0;
+ border-radius: 4px; }
+ .panel-group .panel + .panel {
+ margin-top: 5px; }
+ .panel-group .panel-heading {
+ border-bottom: 0; }
+ .panel-group .panel-heading + .panel-collapse > .panel-body,
+ .panel-group .panel-heading + .panel-collapse > .list-group {
+ border-top: 1px solid #ddd; }
+ .panel-group .panel-footer {
+ border-top: 0; }
+ .panel-group .panel-footer + .panel-collapse .panel-body {
+ border-bottom: 1px solid #ddd; }
+
+.panel-default {
+ border-color: #ddd; }
+ .panel-default > .panel-heading {
+ color: #333333;
+ background-color: #f5f5f5;
+ border-color: #ddd; }
+ .panel-default > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ddd; }
+ .panel-default > .panel-heading .badge {
+ color: #f5f5f5;
+ background-color: #333333; }
+ .panel-default > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ddd; }
+
+.panel-primary {
+ border-color: #337ab7; }
+ .panel-primary > .panel-heading {
+ color: #fff;
+ background-color: #337ab7;
+ border-color: #337ab7; }
+ .panel-primary > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #337ab7; }
+ .panel-primary > .panel-heading .badge {
+ color: #337ab7;
+ background-color: #fff; }
+ .panel-primary > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #337ab7; }
+
+.panel-success {
+ border-color: #d6e9c6; }
+ .panel-success > .panel-heading {
+ color: #3c763d;
+ background-color: #dff0d8;
+ border-color: #d6e9c6; }
+ .panel-success > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #d6e9c6; }
+ .panel-success > .panel-heading .badge {
+ color: #dff0d8;
+ background-color: #3c763d; }
+ .panel-success > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #d6e9c6; }
+
+.panel-info {
+ border-color: #bce8f1; }
+ .panel-info > .panel-heading {
+ color: #31708f;
+ background-color: #d9edf7;
+ border-color: #bce8f1; }
+ .panel-info > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #bce8f1; }
+ .panel-info > .panel-heading .badge {
+ color: #d9edf7;
+ background-color: #31708f; }
+ .panel-info > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #bce8f1; }
+
+.panel-warning {
+ border-color: #faebcc; }
+ .panel-warning > .panel-heading {
+ color: #8a6d3b;
+ background-color: #fcf8e3;
+ border-color: #faebcc; }
+ .panel-warning > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #faebcc; }
+ .panel-warning > .panel-heading .badge {
+ color: #fcf8e3;
+ background-color: #8a6d3b; }
+ .panel-warning > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #faebcc; }
+
+.panel-danger {
+ border-color: #ebccd1; }
+ .panel-danger > .panel-heading {
+ color: #a94442;
+ background-color: #f2dede;
+ border-color: #ebccd1; }
+ .panel-danger > .panel-heading + .panel-collapse > .panel-body {
+ border-top-color: #ebccd1; }
+ .panel-danger > .panel-heading .badge {
+ color: #f2dede;
+ background-color: #a94442; }
+ .panel-danger > .panel-footer + .panel-collapse > .panel-body {
+ border-bottom-color: #ebccd1; }
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ height: 0;
+ padding: 0;
+ overflow: hidden; }
+ .embed-responsive .embed-responsive-item,
+ .embed-responsive iframe,
+ .embed-responsive embed,
+ .embed-responsive object,
+ .embed-responsive video {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ height: 100%;
+ width: 100%;
+ border: 0; }
+
+.embed-responsive-16by9 {
+ padding-bottom: 56.25%; }
+
+.embed-responsive-4by3 {
+ padding-bottom: 75%; }
+
+.well {
+ min-height: 20px;
+ padding: 19px;
+ margin-bottom: 20px;
+ background-color: #f5f5f5;
+ border: 1px solid #e3e3e3;
+ border-radius: 4px;
+ -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
+ box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); }
+ .well blockquote {
+ border-color: #ddd;
+ border-color: rgba(0, 0, 0, 0.15); }
+
+.well-lg {
+ padding: 24px;
+ border-radius: 6px; }
+
+.well-sm {
+ padding: 9px;
+ border-radius: 3px; }
+
+.close {
+ float: right;
+ font-size: 21px;
+ font-weight: bold;
+ line-height: 1;
+ color: #000;
+ text-shadow: 0 1px 0 #fff;
+ opacity: 0.2;
+ filter: alpha(opacity=20); }
+ .close:hover, .close:focus {
+ color: #000;
+ text-decoration: none;
+ cursor: pointer;
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
+button.close {
+ padding: 0;
+ cursor: pointer;
+ background: transparent;
+ border: 0;
+ -webkit-appearance: none; }
+
+.modal-open {
+ overflow: hidden; }
+
+.modal {
+ display: none;
+ overflow: hidden;
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1050;
+ -webkit-overflow-scrolling: touch;
+ outline: 0; }
+ .modal.fade .modal-dialog {
+ -webkit-transform: translate(0, -25%);
+ -ms-transform: translate(0, -25%);
+ -o-transform: translate(0, -25%);
+ transform: translate(0, -25%);
+ -webkit-transition: -webkit-transform 0.3s ease-out;
+ -moz-transition: -moz-transform 0.3s ease-out;
+ -o-transition: -o-transform 0.3s ease-out;
+ transition: transform 0.3s ease-out; }
+ .modal.in .modal-dialog {
+ -webkit-transform: translate(0, 0);
+ -ms-transform: translate(0, 0);
+ -o-transform: translate(0, 0);
+ transform: translate(0, 0); }
+
+.modal-open .modal {
+ overflow-x: hidden;
+ overflow-y: auto; }
+
+.modal-dialog {
+ position: relative;
+ width: auto;
+ margin: 10px; }
+
+.modal-content {
+ position: relative;
+ background-color: #fff;
+ border: 1px solid #999;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+ background-clip: padding-box;
+ outline: 0; }
+
+.modal-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1040;
+ background-color: #000; }
+ .modal-backdrop.fade {
+ opacity: 0;
+ filter: alpha(opacity=0); }
+ .modal-backdrop.in {
+ opacity: 0.5;
+ filter: alpha(opacity=50); }
+
+.modal-header {
+ padding: 15px;
+ border-bottom: 1px solid #e5e5e5; }
+ .modal-header:before, .modal-header:after {
+ content: " ";
+ display: table; }
+ .modal-header:after {
+ clear: both; }
+
+.modal-header .close {
+ margin-top: -2px; }
+
+.modal-title {
+ margin: 0;
+ line-height: 1.42857; }
+
+.modal-body {
+ position: relative;
+ padding: 15px; }
+
+.modal-footer {
+ padding: 15px;
+ text-align: right;
+ border-top: 1px solid #e5e5e5; }
+ .modal-footer:before, .modal-footer:after {
+ content: " ";
+ display: table; }
+ .modal-footer:after {
+ clear: both; }
+ .modal-footer .btn + .btn {
+ margin-left: 5px;
+ margin-bottom: 0; }
+ .modal-footer .btn-group .btn + .btn {
+ margin-left: -1px; }
+ .modal-footer .btn-block + .btn-block {
+ margin-left: 0; }
+
+.modal-scrollbar-measure {
+ position: absolute;
+ top: -9999px;
+ width: 50px;
+ height: 50px;
+ overflow: scroll; }
+
+@media (min-width: 768px) {
+ .modal-dialog {
+ width: 600px;
+ margin: 30px auto; }
+ .modal-content {
+ -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+ box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); }
+ .modal-sm {
+ width: 300px; } }
+
+@media (min-width: 992px) {
+ .modal-lg {
+ width: 900px; } }
+
+.tooltip {
+ position: absolute;
+ z-index: 1070;
+ display: block;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 12px;
+ opacity: 0;
+ filter: alpha(opacity=0); }
+ .tooltip.in {
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .tooltip.top {
+ margin-top: -3px;
+ padding: 5px 0; }
+ .tooltip.right {
+ margin-left: 3px;
+ padding: 0 5px; }
+ .tooltip.bottom {
+ margin-top: 3px;
+ padding: 5px 0; }
+ .tooltip.left {
+ margin-left: -3px;
+ padding: 0 5px; }
+
+.tooltip-inner {
+ max-width: 200px;
+ padding: 3px 8px;
+ color: #fff;
+ text-align: center;
+ background-color: #000;
+ border-radius: 4px; }
+
+.tooltip-arrow {
+ position: absolute;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid; }
+
+.tooltip.top .tooltip-arrow {
+ bottom: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000; }
+
+.tooltip.top-left .tooltip-arrow {
+ bottom: 0;
+ right: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000; }
+
+.tooltip.top-right .tooltip-arrow {
+ bottom: 0;
+ left: 5px;
+ margin-bottom: -5px;
+ border-width: 5px 5px 0;
+ border-top-color: #000; }
+
+.tooltip.right .tooltip-arrow {
+ top: 50%;
+ left: 0;
+ margin-top: -5px;
+ border-width: 5px 5px 5px 0;
+ border-right-color: #000; }
+
+.tooltip.left .tooltip-arrow {
+ top: 50%;
+ right: 0;
+ margin-top: -5px;
+ border-width: 5px 0 5px 5px;
+ border-left-color: #000; }
+
+.tooltip.bottom .tooltip-arrow {
+ top: 0;
+ left: 50%;
+ margin-left: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000; }
+
+.tooltip.bottom-left .tooltip-arrow {
+ top: 0;
+ right: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000; }
+
+.tooltip.bottom-right .tooltip-arrow {
+ top: 0;
+ left: 5px;
+ margin-top: -5px;
+ border-width: 0 5px 5px;
+ border-bottom-color: #000; }
+
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 1060;
+ display: none;
+ max-width: 276px;
+ padding: 1px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ font-style: normal;
+ font-weight: normal;
+ letter-spacing: normal;
+ line-break: auto;
+ line-height: 1.42857;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ white-space: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ font-size: 14px;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border: 1px solid rgba(0, 0, 0, 0.2);
+ border-radius: 6px;
+ -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+ box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); }
+ .popover.top {
+ margin-top: -10px; }
+ .popover.right {
+ margin-left: 10px; }
+ .popover.bottom {
+ margin-top: 10px; }
+ .popover.left {
+ margin-left: -10px; }
+
+.popover-title {
+ margin: 0;
+ padding: 8px 14px;
+ font-size: 14px;
+ background-color: #f7f7f7;
+ border-bottom: 1px solid #ebebeb;
+ border-radius: 5px 5px 0 0; }
+
+.popover-content {
+ padding: 9px 14px; }
+
+.popover > .arrow, .popover > .arrow:after {
+ position: absolute;
+ display: block;
+ width: 0;
+ height: 0;
+ border-color: transparent;
+ border-style: solid; }
+
+.popover > .arrow {
+ border-width: 11px; }
+
+.popover > .arrow:after {
+ border-width: 10px;
+ content: ""; }
+
+.popover.top > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-bottom-width: 0;
+ border-top-color: #999999;
+ border-top-color: rgba(0, 0, 0, 0.25);
+ bottom: -11px; }
+ .popover.top > .arrow:after {
+ content: " ";
+ bottom: 1px;
+ margin-left: -10px;
+ border-bottom-width: 0;
+ border-top-color: #fff; }
+
+.popover.right > .arrow {
+ top: 50%;
+ left: -11px;
+ margin-top: -11px;
+ border-left-width: 0;
+ border-right-color: #999999;
+ border-right-color: rgba(0, 0, 0, 0.25); }
+ .popover.right > .arrow:after {
+ content: " ";
+ left: 1px;
+ bottom: -10px;
+ border-left-width: 0;
+ border-right-color: #fff; }
+
+.popover.bottom > .arrow {
+ left: 50%;
+ margin-left: -11px;
+ border-top-width: 0;
+ border-bottom-color: #999999;
+ border-bottom-color: rgba(0, 0, 0, 0.25);
+ top: -11px; }
+ .popover.bottom > .arrow:after {
+ content: " ";
+ top: 1px;
+ margin-left: -10px;
+ border-top-width: 0;
+ border-bottom-color: #fff; }
+
+.popover.left > .arrow {
+ top: 50%;
+ right: -11px;
+ margin-top: -11px;
+ border-right-width: 0;
+ border-left-color: #999999;
+ border-left-color: rgba(0, 0, 0, 0.25); }
+ .popover.left > .arrow:after {
+ content: " ";
+ right: 1px;
+ border-right-width: 0;
+ border-left-color: #fff;
+ bottom: -10px; }
+
+.carousel {
+ position: relative; }
+
+.carousel-inner {
+ position: relative;
+ overflow: hidden;
+ width: 100%; }
+ .carousel-inner > .item {
+ display: none;
+ position: relative;
+ -webkit-transition: 0.6s ease-in-out left;
+ -o-transition: 0.6s ease-in-out left;
+ transition: 0.6s ease-in-out left; }
+ .carousel-inner > .item > img,
+ .carousel-inner > .item > a > img {
+ display: block;
+ max-width: 100%;
+ height: auto;
+ line-height: 1; }
+ @media all and (transform-3d), (-webkit-transform-3d) {
+ .carousel-inner > .item {
+ -webkit-transition: -webkit-transform 0.6s ease-in-out;
+ -moz-transition: -moz-transform 0.6s ease-in-out;
+ -o-transition: -o-transform 0.6s ease-in-out;
+ transition: transform 0.6s ease-in-out;
+ -webkit-backface-visibility: hidden;
+ -moz-backface-visibility: hidden;
+ backface-visibility: hidden;
+ -webkit-perspective: 1000px;
+ -moz-perspective: 1000px;
+ perspective: 1000px; }
+ .carousel-inner > .item.next, .carousel-inner > .item.active.right {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.prev, .carousel-inner > .item.active.left {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+ left: 0; }
+ .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right, .carousel-inner > .item.active {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ left: 0; } }
+ .carousel-inner > .active,
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ display: block; }
+ .carousel-inner > .active {
+ left: 0; }
+ .carousel-inner > .next,
+ .carousel-inner > .prev {
+ position: absolute;
+ top: 0;
+ width: 100%; }
+ .carousel-inner > .next {
+ left: 100%; }
+ .carousel-inner > .prev {
+ left: -100%; }
+ .carousel-inner > .next.left,
+ .carousel-inner > .prev.right {
+ left: 0; }
+ .carousel-inner > .active.left {
+ left: -100%; }
+ .carousel-inner > .active.right {
+ left: 100%; }
+
+.carousel-control {
+ position: absolute;
+ top: 0;
+ left: 0;
+ bottom: 0;
+ width: 15%;
+ opacity: 0.5;
+ filter: alpha(opacity=50);
+ font-size: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+ background-color: transparent; }
+ .carousel-control.left {
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); }
+ .carousel-control.right {
+ left: auto;
+ right: 0;
+ background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+ background-repeat: repeat-x;
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); }
+ .carousel-control:hover, .carousel-control:focus {
+ outline: 0;
+ color: #fff;
+ text-decoration: none;
+ opacity: 0.9;
+ filter: alpha(opacity=90); }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right {
+ position: absolute;
+ top: 50%;
+ margin-top: -10px;
+ z-index: 5;
+ display: inline-block; }
+ .carousel-control .icon-prev,
+ .carousel-control .glyphicon-chevron-left {
+ left: 50%;
+ margin-left: -10px; }
+ .carousel-control .icon-next,
+ .carousel-control .glyphicon-chevron-right {
+ right: 50%;
+ margin-right: -10px; }
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 20px;
+ height: 20px;
+ line-height: 1;
+ font-family: serif; }
+ .carousel-control .icon-prev:before {
+ content: '\2039'; }
+ .carousel-control .icon-next:before {
+ content: '\203a'; }
+
+.carousel-indicators {
+ position: absolute;
+ bottom: 10px;
+ left: 50%;
+ z-index: 15;
+ width: 60%;
+ margin-left: -30%;
+ padding-left: 0;
+ list-style: none;
+ text-align: center; }
+ .carousel-indicators li {
+ display: inline-block;
+ width: 10px;
+ height: 10px;
+ margin: 1px;
+ text-indent: -999px;
+ border: 1px solid #fff;
+ border-radius: 10px;
+ cursor: pointer;
+ background-color: #000 \9;
+ background-color: transparent; }
+ .carousel-indicators .active {
+ margin: 0;
+ width: 12px;
+ height: 12px;
+ background-color: #fff; }
+
+.carousel-caption {
+ position: absolute;
+ left: 15%;
+ right: 15%;
+ bottom: 20px;
+ z-index: 10;
+ padding-top: 20px;
+ padding-bottom: 20px;
+ color: #fff;
+ text-align: center;
+ text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); }
+ .carousel-caption .btn {
+ text-shadow: none; }
+
+@media screen and (min-width: 768px) {
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-prev,
+ .carousel-control .icon-next {
+ width: 30px;
+ height: 30px;
+ margin-top: -10px;
+ font-size: 30px; }
+ .carousel-control .glyphicon-chevron-left,
+ .carousel-control .icon-prev {
+ margin-left: -10px; }
+ .carousel-control .glyphicon-chevron-right,
+ .carousel-control .icon-next {
+ margin-right: -10px; }
+ .carousel-caption {
+ left: 20%;
+ right: 20%;
+ padding-bottom: 30px; }
+ .carousel-indicators {
+ bottom: 20px; } }
+
+.clearfix:before, .clearfix:after {
+ content: " ";
+ display: table; }
+
+.clearfix:after {
+ clear: both; }
+
+.center-block {
+ display: block;
+ margin-left: auto;
+ margin-right: auto; }
+
+.pull-right {
+ float: right !important; }
+
+.pull-left {
+ float: left !important; }
+
+.hide {
+ display: none !important; }
+
+.show {
+ display: block !important; }
+
+.invisible {
+ visibility: hidden; }
+
+.text-hide {
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0; }
+
+.hidden {
+ display: none !important; }
+
+.affix {
+ position: fixed; }
+
+@-ms-viewport {
+ width: device-width; }
+
+.visible-xs {
+ display: none !important; }
+
+.visible-sm {
+ display: none !important; }
+
+.visible-md {
+ display: none !important; }
+
+.visible-lg {
+ display: none !important; }
+
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+ display: none !important; }
+
+@media (max-width: 767px) {
+ .visible-xs {
+ display: block !important; }
+ table.visible-xs {
+ display: table !important; }
+ tr.visible-xs {
+ display: table-row !important; }
+ th.visible-xs,
+ td.visible-xs {
+ display: table-cell !important; } }
+
+@media (max-width: 767px) {
+ .visible-xs-block {
+ display: block !important; } }
+
+@media (max-width: 767px) {
+ .visible-xs-inline {
+ display: inline !important; } }
+
+@media (max-width: 767px) {
+ .visible-xs-inline-block {
+ display: inline-block !important; } }
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm {
+ display: block !important; }
+ table.visible-sm {
+ display: table !important; }
+ tr.visible-sm {
+ display: table-row !important; }
+ th.visible-sm,
+ td.visible-sm {
+ display: table-cell !important; } }
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-block {
+ display: block !important; } }
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline {
+ display: inline !important; } }
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .visible-sm-inline-block {
+ display: inline-block !important; } }
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md {
+ display: block !important; }
+ table.visible-md {
+ display: table !important; }
+ tr.visible-md {
+ display: table-row !important; }
+ th.visible-md,
+ td.visible-md {
+ display: table-cell !important; } }
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-block {
+ display: block !important; } }
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline {
+ display: inline !important; } }
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .visible-md-inline-block {
+ display: inline-block !important; } }
+
+@media (min-width: 1200px) {
+ .visible-lg {
+ display: block !important; }
+ table.visible-lg {
+ display: table !important; }
+ tr.visible-lg {
+ display: table-row !important; }
+ th.visible-lg,
+ td.visible-lg {
+ display: table-cell !important; } }
+
+@media (min-width: 1200px) {
+ .visible-lg-block {
+ display: block !important; } }
+
+@media (min-width: 1200px) {
+ .visible-lg-inline {
+ display: inline !important; } }
+
+@media (min-width: 1200px) {
+ .visible-lg-inline-block {
+ display: inline-block !important; } }
+
+@media (max-width: 767px) {
+ .hidden-xs {
+ display: none !important; } }
+
+@media (min-width: 768px) and (max-width: 991px) {
+ .hidden-sm {
+ display: none !important; } }
+
+@media (min-width: 992px) and (max-width: 1199px) {
+ .hidden-md {
+ display: none !important; } }
+
+@media (min-width: 1200px) {
+ .hidden-lg {
+ display: none !important; } }
+
+.visible-print {
+ display: none !important; }
+
+@media print {
+ .visible-print {
+ display: block !important; }
+ table.visible-print {
+ display: table !important; }
+ tr.visible-print {
+ display: table-row !important; }
+ th.visible-print,
+ td.visible-print {
+ display: table-cell !important; } }
+
+.visible-print-block {
+ display: none !important; }
+ @media print {
+ .visible-print-block {
+ display: block !important; } }
+
+.visible-print-inline {
+ display: none !important; }
+ @media print {
+ .visible-print-inline {
+ display: inline !important; } }
+
+.visible-print-inline-block {
+ display: none !important; }
+ @media print {
+ .visible-print-inline-block {
+ display: inline-block !important; } }
+
+@media print {
+ .hidden-print {
+ display: none !important; } }
+
+/*$brand-primary: $cord-red;*/
+elan-map {
+ display: block;
+ width: 100%;
+ height: 380px;
+ position: relative; }
+ elan-map svg {
+ position: absolute;
+ top: 0;
+ left: 0; }
+ elan-map circle.elan,
+ elan-map rect.elan {
+ stroke: #5bc0de;
+ stroke-width: 2;
+ fill: #fff; }
+ elan-map circle.elan,
+ elan-map circle.uni {
+ cursor: pointer; }
+ elan-map .node.uni circle.uni,
+ elan-map .node.uni rect.uni {
+ stroke: #CE5650;
+ stroke-width: 2;
+ fill: #fff; }
+ elan-map .node.uni path {
+ fill: #902d28; }
+ elan-map line {
+ stroke: #CE5650;
+ stroke-width: 1; }
+ elan-map #map {
+ background: #EFEBE2; }
+ elan-map .subunit {
+ fill: #B7DAFF;
+ stroke: white;
+ stroke-width: 1px; }
+ elan-map .subunit._10 {
+ fill: transparent;
+ stroke: transparent; }
+ elan-map .exterior-boundary {
+ fill: none;
+ stroke: black;
+ stroke-linejoin: round;
+ stroke-width: 1px; }
+
+.service-container .btn {
+ font-size: 12px; }
+
+.sla input.input-sm, .sla .input-group-sm > input.form-control, .sla
+.input-group-sm > input.input-group-addon, .sla
+.input-group-sm > .input-group-btn > input.btn {
+ max-width: 60px;
+ text-align: right; }
+
+/*$brand-primary: $cord-red;*/
+service-map {
+ width: 100%;
+ height: 100px;
+ display: block; }
+ service-map .node rect {
+ fill: #fff;
+ stroke-width: 2px; }
+ service-map .node.uni rect {
+ stroke: #CE5650; }
+ service-map .node.uni path {
+ fill: #902d28; }
+ service-map .node.service rect {
+ stroke: #337ab7; }
+ service-map .node.service path {
+ fill: #1d4568; }
+ service-map .node text {
+ font: 12px sans-serif; }
+ service-map .link {
+ fill: none;
+ stroke: #ccc;
+ stroke-width: 1; }
+
+#xosEcordTopology .btn-primary-border {
+ color: #337ab7;
+ background-color: #fff;
+ border-color: #2e6da4; }
+ #xosEcordTopology .btn-primary-border:focus, #xosEcordTopology .btn-primary-border.focus {
+ color: #337ab7;
+ background-color: #e6e6e6;
+ border-color: #122b40; }
+ #xosEcordTopology .btn-primary-border:hover {
+ color: #337ab7;
+ background-color: #e6e6e6;
+ border-color: #204d74; }
+ #xosEcordTopology .btn-primary-border:active, #xosEcordTopology .btn-primary-border.active,
+ .open > #xosEcordTopology .btn-primary-border.dropdown-toggle {
+ color: #337ab7;
+ background-color: #e6e6e6;
+ border-color: #204d74; }
+ #xosEcordTopology .btn-primary-border:active:hover, #xosEcordTopology .btn-primary-border:active:focus, #xosEcordTopology .btn-primary-border:active.focus, #xosEcordTopology .btn-primary-border.active:hover, #xosEcordTopology .btn-primary-border.active:focus, #xosEcordTopology .btn-primary-border.active.focus,
+ .open > #xosEcordTopology .btn-primary-border.dropdown-toggle:hover,
+ .open > #xosEcordTopology .btn-primary-border.dropdown-toggle:focus,
+ .open > #xosEcordTopology .btn-primary-border.dropdown-toggle.focus {
+ color: #337ab7;
+ background-color: #d4d4d4;
+ border-color: #122b40; }
+ #xosEcordTopology .btn-primary-border:active, #xosEcordTopology .btn-primary-border.active,
+ .open > #xosEcordTopology .btn-primary-border.dropdown-toggle {
+ background-image: none; }
+ #xosEcordTopology .btn-primary-border.disabled:hover, #xosEcordTopology .btn-primary-border.disabled:focus, #xosEcordTopology .btn-primary-border.disabled.focus, #xosEcordTopology .btn-primary-border[disabled]:hover, #xosEcordTopology .btn-primary-border[disabled]:focus, #xosEcordTopology .btn-primary-border[disabled].focus,
+ fieldset[disabled] #xosEcordTopology .btn-primary-border:hover,
+ fieldset[disabled] #xosEcordTopology .btn-primary-border:focus,
+ fieldset[disabled] #xosEcordTopology .btn-primary-border.focus {
+ background-color: #fff;
+ border-color: #2e6da4; }
+ #xosEcordTopology .btn-primary-border .badge {
+ color: #fff;
+ background-color: #337ab7; }
diff --git a/views/ngXosViews/ecordTopology/src/css/service-map.css b/views/ngXosViews/ecordTopology/src/css/service-map.css
new file mode 100644
index 0000000..cb4ad8f
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/css/service-map.css
@@ -0,0 +1,22 @@
+/*$brand-primary: $cord-red;*/
+service-map {
+ width: 100%;
+ height: 100px;
+ display: block; }
+ service-map .node rect {
+ fill: #fff;
+ stroke-width: 2px; }
+ service-map .node.uni rect {
+ stroke: #CE5650; }
+ service-map .node.uni path {
+ fill: #902d28; }
+ service-map .node.service rect {
+ stroke: #337ab7; }
+ service-map .node.service path {
+ fill: #1d4568; }
+ service-map .node text {
+ font: 12px sans-serif; }
+ service-map .link {
+ fill: none;
+ stroke: #ccc;
+ stroke-width: 1; }
diff --git a/views/ngXosViews/ecordTopology/src/css/vars.css b/views/ngXosViews/ecordTopology/src/css/vars.css
new file mode 100644
index 0000000..941b456
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/css/vars.css
@@ -0,0 +1 @@
+/*$brand-primary: $cord-red;*/
diff --git a/views/ngXosViews/ecordTopology/src/index.html b/views/ngXosViews/ecordTopology/src/index.html
new file mode 100644
index 0000000..9480913
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/index.html
@@ -0,0 +1,47 @@
+<!-- browserSync -->
+<!-- bower:css -->
+<link rel="stylesheet" href="vendor/bootstrap-css/css/bootstrap.min.css" />
+<link rel="stylesheet" href="vendor/angular-chart.js/dist/angular-chart.css" />
+<!-- endbower -->
+<!-- endcss -->
+<!-- inject:css -->
+<link rel="stylesheet" href="/css/elan-map.css">
+<link rel="stylesheet" href="/css/eline-details.css">
+<link rel="stylesheet" href="/css/main.css">
+<link rel="stylesheet" href="/css/service-map.css">
+<link rel="stylesheet" href="/css/vars.css">
+<link rel="stylesheet" href="/../../../xos/core/static/xosNgLib.css">
+<!-- endinject -->
+
+<div ng-app="xos.ecordTopology" id="xosEcordTopology" class="container-fluid">
+ <div ui-view></div>
+</div>
+
+<!-- bower:js -->
+<script src="vendor/angular/angular.js"></script>
+<script src="vendor/jquery/dist/jquery.js"></script>
+<script src="vendor/bootstrap/dist/js/bootstrap.js"></script>
+<script src="vendor/angular-bootstrap-checkbox/angular-bootstrap-checkbox.js"></script>
+<script src="vendor/topojson.v1.min/index.js"></script>
+<script src="vendor/angular-mocks/angular-mocks.js"></script>
+<script src="vendor/angular-ui-router/release/angular-ui-router.js"></script>
+<script src="vendor/angular-cookies/angular-cookies.js"></script>
+<script src="vendor/angular-animate/angular-animate.js"></script>
+<script src="vendor/angular-resource/angular-resource.js"></script>
+<script src="vendor/lodash/lodash.js"></script>
+<script src="vendor/bootstrap-css/js/bootstrap.min.js"></script>
+<script src="vendor/Chart.js/Chart.js"></script>
+<script src="vendor/angular-chart.js/dist/angular-chart.js"></script>
+<script src="vendor/d3/d3.js"></script>
+<script src="vendor/angular-recursion/angular-recursion.js"></script>
+<!-- endbower -->
+<!-- endjs -->
+<!-- inject:js -->
+<script src="/.tmp/main.js"></script>
+<script src="/.tmp/uni.service.js"></script>
+<script src="/.tmp/service-map.directive.js"></script>
+<script src="/.tmp/eline.service.js"></script>
+<script src="/.tmp/eline-map.directive.js"></script>
+<script src="/.tmp/eline-form.directive.js"></script>
+<script src="/.tmp/eline-details.directive.js"></script>
+<!-- endinject -->
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/js/eline-details.directive.js b/views/ngXosViews/ecordTopology/src/js/eline-details.directive.js
new file mode 100644
index 0000000..e4c1f7c
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/eline-details.directive.js
@@ -0,0 +1,125 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/28/16.
+ */
+
+(function () {
+ 'use strict';
+ angular.module('xos.ecordTopology')
+ .directive('elineDetails', function() {
+ return {
+ restrict: 'E',
+ scope: {
+ },
+ bindToController: true,
+ controllerAs: 'vm',
+ templateUrl: 'templates/eline-details.tpl.html',
+ controller: function ($scope, $stateParams, Eline) {
+
+ this.eline = null;
+
+ const Resource = Eline();
+
+ Eline.get({id: $stateParams.id}).$promise
+ .then((eline) => {
+ this.eline = eline;
+ });
+
+ this.slas = [
+ {
+ name: 'Latency',
+ unit: 'ms',
+ default: 300
+ },
+ {
+ name: 'Latency Variation',
+ unit: '%',
+ default: 5
+ },
+ {
+ name: 'Packet Loss',
+ unit: '%',
+ default: 2
+ }
+ ];
+
+ this.availableServices = {
+ performance: [
+ {id: 1, label: 'WAN Accelerator'},
+ {id: 2, label: 'Traffic Analytics'},
+ {id: 3, label: 'Policy Control'},
+ ],
+ security: [
+ {id: 4, label: 'Firewall'},
+ {id: 5, label: 'Anti-virus'},
+ {id: 6, label: 'IDS'},
+ {id: 7, label: 'Encryption'},
+ ],
+ enterprise: [
+ {id: 8, label: 'vRouter'},
+ {id: 9, label: 'NAT'},
+ {id: 10, label: 'VPN'},
+ ]
+ };
+
+ this.activeServices = [];
+ this.toggleService = (service) => {
+ let isSelected = this.activeServices.indexOf(service);
+ if(isSelected !== -1){
+ this.activeServices.splice(this.activeServices.indexOf(service), 1);
+ }
+ else {
+ this.activeServices.push(service);
+ }
+ };
+
+ this.isServiceActive = (service) => {
+ let isSelected = this.activeServices.indexOf(service);
+ return (isSelected !== -1) ? true : false;
+ };
+
+ $scope.$watch(() => this.el, (val, oldval) => {
+ if(val !== oldval && this.elineUpdate.$saved){
+ this.eline.$saved = false;
+ }
+ }, true);
+
+ this.saveEline = () => {
+
+ const resource = new Eline(this.eline);
+
+ resource.$save()
+ .then(() => {
+ $scope.saved = true;
+ })
+ .catch(e => {
+ console.error(e);
+ });
+ };
+ }
+ }
+ })
+ .directive('bToMb', function() {
+ // TODO improve with this:
+ // https://gist.github.com/thomseddon/3511330
+ return {
+ require: 'ngModel',
+ restrict: 'A',
+ link: function(scope, element, attrs, ngModelController) {
+ ngModelController.$parsers.push(function(data) {
+ //convert data from view format to model format
+ return data * 1000000000; //converted
+ });
+
+ ngModelController.$formatters.push(function(data) {
+ //convert data from model format to view format
+ return data / 1000000000; //converted
+ });
+ }
+ }
+ });
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/js/eline-form.directive.js b/views/ngXosViews/ecordTopology/src/js/eline-form.directive.js
new file mode 100644
index 0000000..8a09b6b
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/eline-form.directive.js
@@ -0,0 +1,185 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/27/16.
+ */
+
+(function () {
+ 'use strict';
+ angular.module('xos.ecordTopology')
+ .directive('elineForm', function(){
+ return {
+ restrict: 'E',
+ scope: {
+ uni: '='
+ },
+ bindToController: true,
+ controllerAs: 'vm',
+ templateUrl: 'templates/eline-form.tpl.html',
+ controller: function ($scope, $timeout, $location, _, Uni, Eline) {
+ // FORM HELPERS
+ const isUniSelected = (uni, list) => {
+ return _.findIndex(list, {id: uni.id, selected: true}) === -1 ? false : true;
+ };
+
+ const deselectOtherUni = (uni, list) => {
+ list.map(u => {
+ if(u.id !== uni.id){
+ u.selected = false;
+ u.alreadySelected = false;
+ }
+ return u;
+ })
+ };
+
+ this.selectUni = (uni, position) => {
+ if(uni.selected){
+
+ deselectOtherUni(uni, this[`${position}Unis`]);
+
+ // need to check if is selected in the other list
+ const list = position === 'start' ? 'end':'start';
+
+ if(isUniSelected(uni, this[`${list}Unis`])){
+ return uni.alreadySelected = true;
+ }
+ this.formErrors[`${position}Error`] = null;
+ return this.el[position] = uni;
+ }
+
+ this.el[position] = null;
+ return uni.alreadySelected = false;
+ };
+ // END FORM HELPERS
+
+ this.el = {};
+
+ Uni.query().$promise
+ .then((unis) => {
+ // TODO we were mapping UNIS to name, location. Bring that back to life!
+ this.startUnis = angular.copy(unis);
+ this.endUnis = angular.copy(unis);
+ this.infrastructureUnis = angular.copy(unis);
+ });
+
+ const createEline = (el) => {
+
+ // NOTE:
+ // name and latlng have been added to request, will XOS manage them?
+
+ let formatted = {
+ adminstate : 'activationrequested',
+ operstate : 'active',
+ uni1 : {'id' : el.start.id},
+ uni2 : {'id' : el.end.id},
+ sid: el.evcCfgidentifier,
+ type : 'Point_To_Point',
+ };
+
+ return formatted;
+ }
+
+
+ this.formErrors = {};
+ this.createEline = (el, form) => {
+
+ if(!el.start){
+ this.formErrors.startError = 'Select a starting point'
+ }
+
+ if(!el.end){
+ this.formErrors.endError = 'Select an ending point'
+ }
+
+ if(!el.start || !el.end){
+ return;
+ }
+
+ let eline = createEline(el);
+
+ Eline.save(eline).$promise
+ .then((res) => {
+ form.$saved = true;
+ $scope.$emit('elan.created', res);
+ //cordConfig.pages.push(res);
+
+ $timeout(() => {
+ $location.path('/');
+ }, 1000);
+ })
+ .catch(e => {
+ throw new Error(e);
+ });
+ };
+
+ $scope.$watch(() => this.el, (val, oldval) => {
+ if(val !== oldval && this.eline.$saved){
+ this.eline.$saved = false;
+ }
+ }, true);
+
+ this.prepareInfrastructure = (el_prefix, unis) => {
+
+ let i = 0;
+
+ const builElines = (elements) => {
+
+ let elines = [];
+
+ let firstEl = elements.shift();
+
+ let newElines = elements.reduce((list, end) => {
+ let el = {};
+ // prepare e-line as the form
+ el.evcCfgidentifier = `${el_prefix}-${++i}`;
+ el.start = firstEl;
+ el.end = end;
+ list.push(createEline(el))
+ return list;
+ }, []);
+
+ elines = elines.concat(...newElines);
+
+ if(elements.length === 1){
+
+ return elines;
+ }
+ else {
+ return elines.concat(...builElines(elements));
+ }
+
+ }
+
+ return builElines(unis);
+ }
+
+ this.createInfrastructure = (unis) => {
+
+ unis = _.filter(unis, {selected: true});
+ $log.info('Send request to MARC!!! - Decide the format!', unis);
+
+ let promises = [];
+
+ this.prepareInfrastructure('test', unis).forEach((eline) => {
+ promises.push(Eline().save(eline).$promise)
+ });
+
+ $q.all(promises)
+ .then((res) => {
+ res.forEach(eline => {
+ $scope.$emit('elan.created', eline);
+ cordConfig.pages.push(eline);
+ });
+
+ $timeout(() => {
+ $location.path('/home');
+ }, 1000);
+ });
+ }
+ }
+ }
+ })
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/js/eline-map.directive.js b/views/ngXosViews/ecordTopology/src/js/eline-map.directive.js
new file mode 100644
index 0000000..f93c314
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/eline-map.directive.js
@@ -0,0 +1,237 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/28/16.
+ */
+
+(function () {
+ 'use strict';
+
+ angular.module('xos.ecordTopology')
+ .directive('elanMap', function(){
+ return {
+ restrict: 'E',
+ scope: {
+ elan: '='
+ },
+ bindToController: true,
+ controllerAs: 'vm',
+ template: '',
+ controller: function($element, $scope, $rootScope, $timeout, _, cordIcons){
+ const el = $element[0];
+ var node, projection;
+ $scope.$watch(() => this.elan, (elan) => {
+ if(elan){
+ $timeout(() => {
+ draw(angular.copy(elan));
+ }, 500)
+ }
+ }, true);
+
+ // set force layout params
+ var force = d3.layout.force();
+
+ // DRAW US MAP
+ const drawMap = () => {
+ projection = d3.geo
+ // .albersUsa()
+ .mercator()
+ .center([-122.2, 37.6])
+ .scale(28000)
+ .translate([el.clientWidth / 2, el.clientHeight / 2]);
+
+ var path = d3.geo.path()
+ .projection(projection);
+
+ var map = d3.select(el).append('svg')
+ .attr('id', 'map')
+ .attr('width', el.clientWidth)
+ .attr('height', el.clientHeight);
+
+ d3.json('/js/json/bayarea.json', function(error, ba) {
+ if (error) {
+ throw new Error(error);
+ };
+
+ //bind feature data to the map
+ map.selectAll('.subunit')
+ .data(topojson.feature(ba, ba.objects.bayareaGEO).features)
+ .enter().append('path')
+ .attr('class', function(d, i) {
+ return 'subunit ' + `_${i}`;
+ })
+ .attr('d', path);
+
+
+ });
+ };
+ // END MAP
+
+ const draw = (elan) => {
+ if (!elan[0]){
+ return;
+ }
+ // set size values
+ force
+ .size([el.clientWidth, el.clientHeight])
+ .charge(-20)
+ .chargeDistance(200)
+ // .linkDistance(80)
+ .linkStrength(0.1);
+
+ // clean svg
+ angular.element(el).children().remove();
+ drawMap();
+
+ // create svg elements
+ const svg = d3.select(el)
+ .append('svg')
+ .style('width', `${el.clientWidth}px`)
+ .style('height', `${el.clientHeight}px`)
+
+
+ var nodes = [];
+ var links = [];
+ var d3id = 0;
+ var unis_i = 0;
+ var latlng_val, lat_val, lng_val;
+
+ // cicle trough E-LINE and create nodes/links
+ _.forEach(elan, (eline) => {
+
+ let isOnMap = _.find(nodes, {id: eline.uni1.pid});
+
+ if(!isOnMap){
+ eline.uni1.fixed = true;
+ try {
+
+ //convert latlng value into array for eline.uni1
+ var uni1_latlng = eline.uni1.latlng;
+ if (typeof uni1_latlng === 'string' || uni1_latlng instanceof String){
+ latlng_val = eline.uni1.latlng;
+ lat_val = latlng_val.substring(1, latlng_val.indexOf(',') - 1);
+ lat_val = lat_val.trim();
+ lng_val = latlng_val.substring(latlng_val.indexOf(',') + 1, latlng_val.length - 1);
+ lng_val = lng_val.trim()
+ eline.uni1.latlng = [lat_val, lng_val];
+ }
+
+ let ps = projection([eline.uni1.latlng[0], eline.uni1.latlng[1]]);
+ eline.uni1.x = ps[0];
+ eline.uni1.y = ps[1];
+ eline.uni1.pid = eline.uni1.pid || d3id++;
+ nodes.push(eline.uni1)
+ }
+ catch(e){
+ throw new Error(e);
+ }
+ }
+ else {
+ eline.uni1.pid = isOnMap.id;
+ }
+
+ isOnMap = _.find(nodes, {id: eline.uni2.pid});
+ if(!isOnMap){
+ eline.uni2.fixed = true;
+ try {
+
+ //convert latlng value into array for eline.uni2
+ var uni2_latlng = eline.uni2.latlng;
+ if (typeof uni2_latlng === 'string' || uni2_latlng instanceof String){
+ latlng_val = eline.uni2.latlng;
+ lat_val = latlng_val.substring(1, latlng_val.indexOf(',') - 1);
+ lat_val = lat_val.trim();
+ lng_val = latlng_val.substring(latlng_val.indexOf(',') + 1, latlng_val.length - 1);
+ lng_val = lng_val.trim()
+ eline.uni2.latlng = [lat_val, lng_val];
+ }
+
+ let ps = projection([eline.uni2.latlng[0], eline.uni2.latlng[1]]);
+ eline.uni2.x = ps[0];
+ eline.uni2.y = ps[1];
+ eline.uni2.pid = eline.uni2.pid || d3id++;
+ nodes.push(eline.uni2)
+ }
+ catch(e){
+ throw new Error(e);
+ }
+ }
+ else {
+ eline.uni2.pid = isOnMap.id;
+ }
+
+ links.push({
+ source: _.findIndex(nodes, eline.uni1),
+ target: _.findIndex(nodes, eline.uni2),
+ value: 1
+ });
+
+ });
+
+ // start force layout
+ force
+ .nodes(nodes)
+ .links(links)
+ .start();
+
+ // draw links
+ var link = svg.selectAll('.link')
+ .data(links)
+ .enter().append('line')
+ .attr({
+ class: 'link',
+ });
+
+ //draw nodes
+ node = svg.selectAll('.node')
+ .data(nodes)
+ .enter()
+ .append('g', d => d.scaEthFppUniN.interfaceCfgIdentifier)
+ .attr({
+ class: d => `node ${d.type ? d.type : 'uni'}`
+ });
+
+ node.append('rect')
+ .attr({
+ class: d => d.type ? d.type : 'uni',
+ width: 24,
+ height: 24,
+ x: -12,
+ y: -12
+ });
+
+ node.append('path')
+ .attr({
+ d: cordIcons.cordLogo,
+ transform: 'translate(-10, -10),scale(0.18)'
+ });
+
+ node.append('text')
+ .attr({
+ x: 0,
+ y: 25,
+ 'text-anchor': 'middle'
+ })
+ .text(d => {
+ return d.pid
+ });
+
+
+ force.on('tick', function() {
+ link
+ .attr('x1', function(d) { return d.source.x; })
+ .attr('y1', function(d) { return d.source.y; })
+ .attr('x2', function(d) { return d.target.x; })
+ .attr('y2', function(d) { return d.target.y; });
+
+ node.attr('transform', (d) => `translate(${d.x},${d.y})`);
+ });
+ };
+
+ }
+ }
+ });
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/js/eline.service.js b/views/ngXosViews/ecordTopology/src/js/eline.service.js
new file mode 100644
index 0000000..731c545
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/eline.service.js
@@ -0,0 +1,45 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/27/16.
+ */
+
+(function () {
+ 'use strict';
+
+ angular.module('xos.ecordTopology')
+ .service('Eline', ($resource) => {
+ return $resource(`/api/service/metronetworkservice/SCA_ETH_FDFr_EC/:id`, {id: '@id'}, {
+ query: {
+ isArray: true,
+ interceptor: {
+ response: (res) => {
+ const augmentedEline = _.map(res.data, (eline, i) => {
+ //convert latlng value into array for eline.uni1
+ var latlng_val = eline.uni1.latlng;
+ var lat_val = latlng_val.substring(1, latlng_val.indexOf(',') - 1);
+ lat_val = lat_val.trim();
+ var lng_val = latlng_val.substring(latlng_val.indexOf(',') + 1, latlng_val.length - 1);
+ lng_val = lng_val.trim()
+ eline.uni1.latlng = [lat_val, lng_val];
+
+ //convert latlng value into array for eline.uni2
+ latlng_val = eline.uni2.latlng;
+ lat_val = latlng_val.substring(1, latlng_val.indexOf(',') - 1);
+ lat_val = lat_val.trim();
+ lng_val = latlng_val.substring(latlng_val.indexOf(',') + 1, latlng_val.length - 1);
+ lng_val = lng_val.trim()
+ eline.uni2.latlng = [lat_val, lng_val];
+
+ return eline;
+ });
+ return augmentedEline;
+ }
+ }
+ }
+ });
+ });
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/js/json/bayarea.json b/views/ngXosViews/ecordTopology/src/js/json/bayarea.json
new file mode 100644
index 0000000..8ee256f
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/json/bayarea.json
@@ -0,0 +1 @@
+{"type":"Topology","transform":{"scale":[0.0004337206541371423,0.00032161558393900655],"translate":[-124.80279358329095,36.36000640296134]},"objects":{"bayareaGEO":{"type":"GeometryCollection","geometries":[{"type":"Polygon","arcs":[[0],[1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12],[13],[14,15],[16],[17],[18],[19,20,21,22,23,24],[25,26,27],[28,29,30,31],[32],[33],[34],[35],[36],[37,38,39,40,41,42,43,44],[45],[46],[47,48,49,50,51,52,53,54],[55],[56],[57,58,59,60,61,62,63,64,65,66,67,68],[69],[70,71,72,73,74,75,76,77,78,79,80,-22,81],[82],[83],[84],[85],[86],[87],[88],[89],[90],[91,-63,92,93,94,95,96,97,98,99,100,101,102,-65,103,104,105,106,107,-43,108,-41,109,-39,110],[111],[112],[113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141]]}]}},"arcs":[[[2334,3790],[220,128],[-2554,2271],[16,3810],[8786,-813],[1197,-7628],[-1345,-1558],[-2636,1490],[-270,-168],[-2981,38],[-433,2430]],[[4144,4175],[1,1],[-1,0],[0,-1]],[[4146,4173],[1,0],[0,1],[0,1],[-1,-1],[0,-1]],[[4081,4251],[1,-1],[1,0],[0,1],[0,1],[-1,0],[-1,-1]],[[3212,7135],[1,-1],[1,0],[0,1],[-1,1],[-1,0],[0,-1]],[[3924,4373],[1,0],[1,0],[1,1],[-1,0],[-1,1],[-1,-1],[0,-1]],[[4649,4935],[1,-1],[1,2],[0,1],[-1,0],[-1,-1],[0,-1]],[[3930,4365],[1,-1],[1,0],[0,1],[-1,1],[-2,0],[-1,-1],[1,0],[0,-1],[1,1]],[[3927,4376],[1,-1],[1,0],[1,0],[-1,1],[-1,1],[-1,0],[0,-1]],[[4148,4177],[0,-1],[1,0],[1,2],[0,1],[-1,0],[-1,-1],[0,-1]],[[5370,4995],[0,-1],[1,-2],[3,1],[-3,2],[-1,0]],[[5269,4414],[1,0],[1,1],[-1,1],[0,1],[-1,0],[-1,0],[0,-1],[0,-1],[1,0],[0,-1]],[[2936,7434],[2,-1],[1,1],[0,1],[-2,1],[-2,0],[0,-1],[0,-1],[1,0]],[[4146,4145],[1,0],[1,0],[2,1],[1,1],[-1,1],[-2,-1],[-2,-1],[0,-1]],[[6650,5258],[-1,0],[0,1]],[[6649,5259],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[0,-1],[1,0],[1,0],[1,0],[0,-1],[1,0],[1,1],[1,1]],[[3908,4386],[0,-1],[2,1],[1,0],[0,2],[0,1],[-1,1],[0,1],[-1,-1],[0,-1],[1,-1],[0,-1],[-2,-1]],[[5273,4408],[1,1],[0,1],[0,1],[-1,1],[-1,-1],[-1,0],[0,-1],[-1,0],[0,-1],[1,0],[0,-1],[1,0],[1,0]],[[4168,5814],[1,-1],[1,0],[2,2],[-1,2],[-1,0],[-1,-1],[-1,-1],[0,-1]],[[6558,5347],[-1,0],[0,1]],[[6557,5348],[-1,0],[-1,0],[-1,0],[-1,0]],[[6553,5348],[-1,0]],[[6552,5348],[0,-1],[-1,0]],[[6551,5347],[1,-1],[0,-1]],[[6552,5345],[1,0],[1,0],[0,1],[1,0],[1,0],[1,0],[1,1]],[[6518,5341],[0,1],[-1,1],[0,1],[0,1],[0,1],[-1,1],[0,1],[0,1],[0,1]],[[6516,5350],[-1,0],[0,1],[0,1]],[[6515,5352],[-1,-1],[0,-1],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[0,-1],[1,-1],[1,0],[0,-1],[1,0],[1,0]],[[6564,5349],[0,-1],[-1,0],[-1,0]],[[6562,5348],[0,-1],[-1,0],[-1,0],[-1,0],[-1,0]],[[6558,5347],[0,-1],[1,0],[0,-1],[1,0],[1,-1],[1,0],[1,-1]],[[6563,5343],[1,1],[0,1],[1,1],[0,1],[0,1],[0,1],[-1,0]],[[5377,4991],[5,-5],[5,4],[-10,1]],[[5601,4793],[5,-6],[5,4],[-10,2]],[[6507,5297],[-1,1],[-2,1],[-1,0],[1,-3],[-1,0],[0,-1],[-1,0],[-2,0],[-1,1],[-1,-1],[-2,0],[0,-1],[1,0],[1,0],[1,0],[1,0],[2,0],[1,-1],[2,0],[2,1],[1,0],[0,1],[-1,2]],[[5685,2329],[-1,1],[0,1],[-1,0],[-1,0],[-1,-1],[1,0],[-2,0],[1,-1],[1,-1],[1,0],[1,0],[0,-1],[-1,0],[0,-1],[1,1],[0,-1],[-1,0],[0,-1],[1,0],[0,-1],[1,0],[0,1],[1,0],[1,0],[1,-2],[1,0],[0,1],[1,0],[-1,1],[0,1],[-1,0],[0,1],[0,1],[-1,0],[-1,0],[-1,1]],[[5484,4560],[4,-3],[2,-1],[3,1],[-3,5],[-2,2],[-3,1],[-1,1],[-3,0],[3,-6]],[[6662,5319],[1,-1],[0,-2],[0,-1],[0,-1],[0,-1]],[[6663,5313],[0,-1],[0,-2]],[[6663,5310],[1,-1],[0,-2],[0,-3]],[[6664,5304],[1,-1]],[[6665,5303],[1,-1],[0,-1],[0,-2]],[[6666,5299],[1,-1],[0,-1],[1,-1]],[[6668,5296],[1,0],[-1,1],[0,1],[0,1],[-1,1],[0,1],[-1,1],[0,1],[-1,1],[0,3],[0,2],[0,2],[0,2],[1,2]],[[6666,5315],[0,3],[-1,1],[0,2],[0,1],[-1,1],[0,-1],[-1,0],[-1,0],[-1,1],[-1,-1],[-1,0],[-1,0],[-1,-1],[-2,0],[0,-1],[1,0],[1,0],[1,0],[1,0],[2,0],[1,-1]],[[4126,4167],[0,-1],[-1,-1],[1,-2],[0,-1],[0,-1],[1,0],[2,0],[0,-1],[-1,-1],[1,-2],[1,-1],[1,0],[0,2],[0,1],[1,0],[2,0],[1,0],[1,1],[0,1],[-1,1],[-1,2],[-2,0],[0,1],[-1,1],[-1,0],[-1,1],[-2,0],[-1,0]],[[5805,4378],[-1,0],[0,1],[-2,2],[-1,-1],[-5,-8],[3,-4],[3,-3],[10,-1],[-11,6],[1,7],[1,-1],[2,0],[2,-1],[-2,3]],[[6674,5341],[0,1]],[[6674,5342],[0,1],[1,0]],[[6675,5343],[1,1],[1,1],[1,0]],[[6678,5345],[1,1],[0,1]],[[6679,5347],[-1,0],[0,1],[-4,2],[-1,1],[-4,6],[0,1]],[[6669,5358],[-1,0],[-1,-1]],[[6667,5357],[0,-1],[-1,0]],[[6666,5356],[1,-1],[0,-1],[1,0],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,0],[0,-1],[1,0],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[-1,0],[0,-1],[0,-1],[-1,0],[1,0],[1,0],[1,0],[1,0],[0,1],[-1,1]],[[6246,3403],[-6,12],[-6,-2],[-2,0],[4,-8],[11,-3],[-1,1]],[[6519,5327],[-1,1],[-1,1],[0,1],[-1,1],[0,1],[0,1],[0,1],[-1,0],[0,1],[-1,0],[0,1],[-1,0],[0,-1],[-1,-1],[1,-1],[1,-1],[0,-1],[0,-1],[-1,0],[0,-1],[-1,0],[-1,0],[0,-1],[0,-1],[0,-1],[0,1],[-1,0],[1,-1],[0,-1],[1,0],[0,-1],[0,-1],[1,0],[-1,-1],[1,0],[1,-1],[1,0],[1,-1],[1,0],[1,0],[1,1],[1,0],[1,0],[1,-1],[1,0],[0,1],[1,0],[0,1],[1,0],[0,1],[-1,0],[-1,1],[-2,1],[-1,1],[-1,1]],[[6649,5281],[1,1],[0,1]],[[6650,5283],[0,1],[1,1]],[[6651,5285],[0,1],[1,2]],[[6652,5288],[0,2],[-2,24]],[[6650,5314],[0,2],[1,0]],[[6651,5316],[1,1]],[[6652,5317],[1,1],[0,1],[-1,-1],[-1,0],[-1,-1],[-1,0],[0,-1],[-1,0],[-1,-1],[1,-1],[0,-1],[0,-1],[-1,0],[-1,-1],[1,-1],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[0,-2],[1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[-1,-1],[1,-1],[1,0],[0,-1],[-1,-1],[0,-1],[0,-3],[-1,-1],[0,-1],[-1,-1],[-2,-1],[-1,0],[-1,0],[-1,-1],[-1,-1],[-2,0],[-2,-1],[-1,-1],[-1,-1],[-1,0],[-2,0],[-2,-1],[-1,0],[-1,-1],[1,0]],[[6629,5273],[1,0]],[[6630,5273],[2,1],[1,0],[1,0],[1,0]],[[6635,5274],[1,1],[2,1]],[[6638,5276],[2,1]],[[6640,5277],[1,1],[2,1],[1,0],[1,-1],[1,-2],[1,4],[1,1],[1,0]],[[4893,4830],[-1,1],[0,1],[-1,0],[-1,1],[0,-1],[-1,-1],[0,-1],[1,-1],[0,-1],[0,-1],[-1,-1],[-1,0],[-1,0],[-1,1],[0,1],[0,1],[-1,0],[0,1],[-1,0],[0,-1],[0,-2],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[1,-1],[1,0],[1,1],[1,0],[0,1],[1,1],[1,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[2,0],[0,-1],[1,0],[1,0],[1,0],[1,-1],[1,0],[1,0],[1,1],[1,1],[1,1],[0,1],[-1,1],[0,1],[-1,1],[-3,0],[-1,-1],[-1,1],[-1,0],[-1,0],[-1,1],[-1,0],[-1,1],[-1,-1],[-1,0],[-1,0]],[[6543,5349],[0,-1],[1,-1]],[[6544,5347],[1,0],[1,-1],[0,-1]],[[6546,5345],[1,0],[0,-1],[-1,-1],[-1,0],[-1,0]],[[6544,5343],[-1,-1]],[[6543,5342],[0,-1],[-1,0]],[[6542,5341],[0,-1],[-1,0],[-1,-1]],[[6540,5339],[0,-1],[-1,0]],[[6539,5338],[1,0],[-1,-1]],[[6539,5337],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[1,0],[1,0],[1,0],[0,-1],[1,-1],[1,1],[1,0],[1,0],[1,1],[1,0],[0,1],[1,1],[0,1],[0,1],[1,1],[1,1],[1,0],[0,-1],[1,0],[1,1],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,0],[0,1]],[[6552,5345],[-1,0],[0,1],[0,1]],[[6551,5347],[0,1],[1,0]],[[6553,5348],[0,1],[1,0],[1,0],[-11,1],[-1,-1]],[[6282,3559],[0,7],[-2,6],[-7,-2],[-5,-7],[3,-7],[6,-1],[5,4]],[[5895,4419],[-8,10],[-8,4],[-4,-1],[16,-20],[4,0],[0,7]],[[5637,4792],[0,-4],[-5,1],[-19,2],[9,-5],[10,1],[5,-3],[1,-11],[14,-4],[-15,23]],[[6422,5409],[-2,2],[-2,0],[-2,-2],[-1,0],[-1,0],[-2,-1],[-2,-2],[-2,0],[-1,0],[-1,-1],[-1,-2],[1,0],[0,1],[1,0],[0,-1],[0,-1],[1,0],[1,-1],[0,-2],[2,0],[2,0],[1,-1],[1,0],[1,-1],[3,0],[3,0],[2,0],[1,0],[0,1],[0,1],[1,1],[0,3],[-1,2],[-1,1],[-2,3]],[[4148,4169],[0,2],[-2,1],[-1,-2],[0,-2],[0,-1],[1,-1],[-1,0],[-1,0],[0,-1],[0,-1],[-2,0],[0,-1],[-1,-2],[-1,0],[-2,0],[0,-1],[0,-1],[1,0],[2,-1],[1,1],[1,-1],[1,-2],[1,0],[0,2],[1,0],[1,0],[1,-2],[0,-1],[1,-2],[2,-1],[3,-1],[1,0],[0,3],[1,1],[0,1],[-1,1],[1,0],[1,0],[1,0],[0,1],[-2,2],[0,1],[1,1],[0,1],[-1,1],[0,1],[0,1],[-1,0],[-1,2],[-2,1],[-1,-1],[-2,0],[0,1],[-1,0]],[[6496,5352],[-2,2],[0,1],[-1,2],[-1,1],[-1,1],[-1,0],[-1,-1],[-1,0],[-1,-1],[0,-1],[-1,-1],[1,0],[0,-1],[-1,0],[0,-1],[-1,0],[0,-1],[-1,0],[-1,0],[-1,0],[0,-1],[-1,0],[-1,0],[1,-1],[-1,0],[0,-1],[0,-1],[1,0],[1,0],[0,-1],[0,-1],[0,-1],[1,0],[1,0],[1,1],[1,0],[0,-1],[1,0],[0,-1],[-1,-1],[-1,-1],[-1,-1],[0,-1],[1,0],[1,0],[0,1],[1,1],[1,-1],[1,0],[0,1],[1,-1],[1,0],[1,0],[0,-1],[0,-1],[1,0],[1,0],[1,0],[0,-1],[0,-1],[1,1],[1,1],[1,-1],[1,0],[1,1],[1,0],[1,-1],[1,-1],[1,0],[1,0],[1,1],[1,1],[-1,0],[0,1],[0,1],[-1,0],[-1,0],[0,1],[-1,1],[-1,1],[-1,1],[0,1],[-1,0],[0,1],[-1,0],[0,1],[-1,1],[-1,2],[-1,1]],[[6389,5330],[-4,1],[-4,1],[-1,1],[-1,0],[-2,0],[-2,-1],[-3,-1],[-1,-1],[-2,0],[-1,-1],[-3,0],[-2,0],[-3,1],[-2,-1],[0,-1],[1,-2],[0,-1],[-1,-1],[0,-1],[-1,0],[-2,0],[-1,-1],[0,-1],[0,-1],[2,0],[1,1],[2,-1],[0,-1],[1,0],[0,-1],[1,0],[1,0],[1,0],[3,-1],[2,0],[2,-1],[1,-1],[3,0],[2,0],[3,1],[1,-1],[2,0],[1,-1],[1,-1],[1,0],[1,0],[1,0],[2,0],[2,0],[1,0],[2,-1],[0,-1],[1,0],[1,1],[1,0],[0,1],[1,1],[1,0],[1,1],[1,1],[2,2],[1,1],[1,0],[2,2],[1,0],[1,0],[1,1],[1,0],[-1,0],[0,1],[-2,0],[-2,-1],[-1,0],[-1,0],[-2,1],[-2,0],[-3,2],[-3,1],[-1,1],[-2,1],[-2,2]],[[5615,4571],[-3,3],[-10,4],[-12,-6],[0,-3],[-1,-3],[-1,-4],[-1,-1],[17,-35],[1,-2],[-1,-10],[-1,-2],[11,-10],[1,-1],[2,0],[10,-1],[1,3],[1,6],[0,1],[2,2],[0,1],[-1,3],[4,4],[1,3],[-1,1],[-20,-8],[-7,11],[4,3],[9,5],[1,-2],[1,1],[-1,0],[2,1],[0,1],[-2,-2],[0,1],[2,1],[0,3],[0,1],[4,-1],[0,1],[-4,1],[1,1],[3,-1],[0,1],[-2,1],[-1,0],[0,1],[1,0],[3,-1],[0,1],[-3,2],[0,1],[-2,5],[-1,3],[-4,7],[-2,4],[0,2],[0,-1],[0,1],[1,1],[0,-1],[1,0],[-1,1],[1,0],[1,-2],[1,1],[-3,5],[1,-3],[-1,0],[0,1],[-1,0],[0,-1],[0,-1],[0,1],[-1,0],[1,0],[0,-1],[-1,0],[0,2]],[[5492,4660],[2,5],[3,6],[-4,4],[-5,11],[-1,3],[-4,8],[-14,5],[-3,-6],[-3,-1],[-3,-2],[0,-2],[-1,-2],[1,-2],[-6,-2],[-3,5],[-4,-10],[-2,-8],[-12,-5],[6,-4],[-1,-2],[1,1],[3,-5],[0,-5],[4,-3],[3,1],[7,-5],[5,-1],[8,6],[13,-2],[6,-3],[9,-4],[0,2],[-5,17]],[[6662,5319],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[0,-1],[0,-1],[-1,0],[-1,0],[-1,0],[-1,0]],[[6651,5316],[0,-1],[-1,0],[0,-1]],[[6650,5314],[2,-24]],[[6652,5290],[0,-1],[0,-1]],[[6652,5288],[0,-1],[-1,-2]],[[6651,5285],[0,-1],[0,-1],[-1,0]],[[6650,5283],[0,-1]],[[6650,5282],[0,-1],[-1,0]],[[6649,5281],[0,-1],[-1,0],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[0,-1],[-1,-1],[-4,7],[-1,0],[-1,0],[-1,-1],[-1,0]],[[6640,5277],[-1,0],[0,-1],[-1,0]],[[6638,5276],[0,-1],[-1,0],[0,-1],[-1,0],[-1,0]],[[6635,5274],[-1,-1],[-1,0],[-1,0],[-2,0]],[[6629,5273],[-1,-1],[-1,0],[-1,0],[-1,0],[-5,1],[-1,0],[0,-1],[-1,-2],[0,-1],[-1,0],[0,-1],[0,-1],[-1,0],[0,-1],[1,-1],[1,0],[1,0],[1,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,1],[-1,0],[0,1],[0,2],[1,1],[0,1],[1,1],[0,1],[0,1],[1,1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,-1],[0,1],[-1,0],[-1,0],[-1,1],[-1,0],[-1,0],[-1,0],[-1,0],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-1,0],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[1,0],[1,-1],[0,-1],[1,0],[1,0],[1,1],[1,0],[1,-1],[0,-1],[1,0],[2,-2],[1,0],[1,1],[1,-1],[1,0],[0,-1],[1,1],[1,0],[0,1],[1,0],[0,1],[0,1],[1,-1],[1,0],[1,0],[1,-1],[1,0],[1,0],[1,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0]],[[6649,5259],[1,0],[1,0],[1,0],[1,0],[1,0],[0,-1],[1,0],[0,1],[1,0],[0,1],[-7,11],[7,-11],[1,0],[0,-1],[-1,0],[-1,-1],[-1,-1],[-1,0],[-1,0],[-1,1],[-1,0]],[[6650,5258],[0,-1],[1,0],[1,0],[0,-1],[1,0],[1,-1],[1,1],[1,0],[0,2],[1,0],[1,-2],[1,0],[-1,2],[1,0],[0,-2],[1,-1],[0,1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[2,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[2,1],[1,0],[1,-1],[1,-1],[1,0],[13,1],[0,1],[-1,1],[-1,0],[-1,-1],[-1,1],[-1,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-1,0],[10,1],[1,0],[1,0],[1,0],[1,0],[1,1],[7,6],[-1,-1],[0,-1],[-1,-1],[-1,0],[0,-1],[-1,-1],[-1,0],[-1,-1],[-1,0],[-1,-1],[-3,-1],[0,-1],[2,0],[0,-1],[1,1],[1,1],[2,1],[1,0],[1,1],[1,1],[1,1],[1,0],[0,1],[1,0],[1,1],[1,0],[1,0],[-5,6],[-2,2],[-1,2],[-2,2],[-1,1],[-2,1],[-1,1],[-1,1],[-1,0],[-2,1],[-1,0],[-1,0],[-2,1]],[[6687,5281],[-2,0]],[[6685,5281],[-1,0],[-2,0],[-1,0],[-1,1],[-1,0],[-1,0],[-1,1],[-1,0],[0,1],[-1,0],[-1,1],[0,1],[-1,1],[-1,1],[-1,1],[0,1],[-2,0],[0,1],[0,2],[-1,3]],[[6666,5299],[-1,2],[0,1],[0,1]],[[6664,5304],[0,2],[-1,1],[0,1],[0,2]],[[6663,5313],[-1,5],[0,1]],[[6373,5380],[-1,1],[0,1],[-1,1],[0,-1],[-1,-1],[0,-2],[-1,-1],[-2,-1],[0,-1],[1,0],[1,1],[1,0],[0,-1],[1,-1],[1,-1],[0,-1],[2,0],[1,-1],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[-2,-2],[0,-1],[-1,0],[1,-1],[1,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[-1,-1],[0,-2],[1,1],[1,0],[1,-2],[2,-1],[1,0],[1,-1],[2,1],[1,0],[1,0],[2,0],[1,2],[3,2],[2,1],[0,1],[1,1],[1,1],[1,2],[2,0],[1,0],[1,-1],[1,0],[2,0],[1,-2],[-1,0],[-1,1],[0,-2],[1,-1],[1,0],[0,-1],[0,-1],[-1,-1],[1,0],[2,-1],[2,-2],[1,-1],[0,-1],[-1,-1],[-1,-1],[-1,-1],[0,-1],[0,-1],[1,-1],[0,-2],[1,-1],[1,-1],[1,-1],[0,-1],[0,1],[0,1],[1,0],[0,1],[0,-1],[0,-3],[-1,-2],[-1,-2],[-2,-2],[0,-1],[0,-1],[1,0],[2,-1],[2,-1],[3,-1],[2,0],[1,1],[1,-1],[1,0],[1,-1],[1,0],[1,1],[1,2],[2,2],[-1,-2],[0,-2],[1,0],[1,-1],[2,0],[2,-1],[1,1],[1,2],[2,0],[4,1],[4,2],[3,2],[3,2],[1,1],[1,0],[0,-1],[2,0],[2,0],[0,1],[-1,1],[-1,1],[-1,1],[0,-1],[1,-1],[-1,0],[-1,0],[0,1],[-1,1],[1,1],[2,2],[2,2],[1,0],[3,1],[1,1],[1,0],[0,1],[1,0],[0,1],[0,1],[0,1],[0,1],[0,1],[1,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,1],[-1,1],[-1,0],[-2,0],[-2,1],[-4,2],[-6,3],[-4,1],[-4,2],[-3,1],[-3,1],[-2,0],[-1,1],[-1,0],[-2,0],[-2,0],[-1,0],[-3,1],[-1,0],[-1,0],[-3,-1],[-2,0],[-2,1],[-1,0],[-3,-1],[-1,-1],[0,1],[-1,0],[-1,0],[0,1],[-1,0],[0,1],[-1,1],[0,-1],[0,-1],[-1,0],[-2,0],[0,-1],[-2,1],[-1,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-1,1],[-1,0],[-1,2],[-2,0],[0,1],[-1,1],[-1,0],[-1,0],[-1,0],[0,-1],[-1,-1],[-2,2],[-1,2],[-1,0],[-1,0],[-2,1]],[[5696,4448],[0,-8],[1,-17],[0,-2],[2,-3],[8,0],[6,-1],[4,-4],[13,0],[5,-9],[3,0],[9,-2],[7,0],[5,-3],[7,-4],[-2,-4],[20,-6],[2,0],[4,-1],[0,-3],[4,3],[2,-3],[1,-1],[5,3],[4,0],[1,-2],[1,-1],[1,2],[2,1],[1,1],[3,2],[0,-1],[0,-5],[3,0],[1,0],[0,-2],[-4,-3],[0,-2],[5,5],[2,1],[5,-2],[0,-13],[24,-14],[18,-9],[16,-8],[29,-13],[3,-1],[1,0],[0,1],[1,0],[3,2],[2,-2],[16,15],[3,3],[0,13],[0,5],[0,4],[0,5],[-5,5],[-1,1],[-1,2],[-5,6],[-1,0],[-2,1],[-8,5],[-4,2],[-5,3],[-12,10],[-9,1],[-6,4],[-2,6],[-1,-1],[-8,2],[2,5],[-5,-9],[-4,3],[3,8],[-6,4],[-2,-14],[-2,1],[0,14],[-2,0],[-1,0],[-4,3],[-2,1],[-1,0],[-1,1],[-1,-1],[-4,-2],[-1,6],[-1,1],[-2,4],[3,-2],[-6,5],[-8,4],[-1,5],[-1,-1],[-3,3],[0,1],[-8,2],[-17,0],[-1,-5],[0,5],[-2,-5],[0,5],[-1,-5],[-1,4],[-1,-4],[0,4],[-7,-3],[-3,-1],[-7,0],[-12,0],[-13,4],[-9,3],[-11,4],[-34,11],[0,-1],[0,-22]],[[6515,5352],[1,0],[0,-1],[0,-1]],[[6516,5350],[1,0],[0,-2],[0,-1],[1,-2],[0,-1],[0,-1],[0,-2]],[[6518,5341],[1,-2],[0,-1],[1,-1],[0,-1],[1,0],[0,-2],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[2,-1],[2,0],[1,0],[1,1],[1,0],[1,0],[0,1],[1,0],[1,0],[0,-1],[1,0],[1,0],[0,1],[1,0],[-1,0],[-1,0],[0,1],[1,0],[1,1],[0,1],[1,0],[0,1],[1,0],[0,1],[0,1],[1,0]],[[6539,5337],[0,1]],[[6539,5338],[0,1],[1,0]],[[6540,5339],[2,2]],[[6542,5341],[0,1],[1,0]],[[6543,5342],[0,1],[1,0]],[[6544,5343],[1,1],[1,0],[0,1]],[[6546,5345],[-2,2]],[[6544,5347],[-1,0],[0,1]],[[6543,5348],[0,1]],[[6543,5349],[0,1],[1,1],[5,-1],[4,0],[2,0],[1,0],[1,0],[0,-1],[0,-1]],[[6557,5348],[1,0],[1,0],[1,0],[1,0],[1,0]],[[6562,5348],[1,1],[1,0]],[[6564,5349],[1,1],[1,0],[1,1],[1,1],[1,1],[0,1],[0,1],[1,1],[0,1],[1,1],[0,1],[0,1],[1,1],[0,1],[0,1],[1,0],[0,-1],[1,0],[-1,0],[0,-1],[-1,0],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[-1,-1],[0,-1],[-1,-1],[0,-1],[-1,0],[-4,-7]],[[6563,5343],[0,-1],[0,-1],[0,-1],[0,-1],[1,0],[1,0],[0,-1],[1,0],[1,0],[0,-1],[1,0],[0,1],[1,-1],[1,0],[1,0],[0,-1],[1,0],[0,-1],[1,1],[0,-1],[1,0],[1,0],[0,-1],[0,-1],[0,1],[1,0],[0,1],[1,0],[0,1],[1,1],[0,1],[-1,1],[0,-1],[-1,0],[-1,0],[0,-1],[0,1],[0,1],[0,1],[0,1],[1,0],[0,1],[1,0],[0,1],[1,1],[0,1],[1,0],[0,1],[1,1],[0,1],[1,0],[1,0],[0,-1],[1,-1],[0,-1],[1,0],[0,-1],[-1,1],[0,-1],[0,1],[-1,0],[-1,-1],[-1,0],[0,-1],[-1,-1],[-1,-1],[1,0],[1,0],[0,1],[1,0],[1,0],[1,0],[-1,0],[-1,-1],[-1,0],[-1,0],[0,-1],[-1,0],[0,-1],[1,0],[1,1],[1,0],[1,0],[1,-1],[1,-1],[1,1],[0,-1],[1,0],[0,1],[0,1],[1,0],[1,0],[0,1],[1,0],[1,0],[1,0],[1,0],[0,1],[1,0],[1,-1],[1,1],[1,1],[1,0],[0,1],[1,0],[1,1],[1,0],[0,1],[0,1],[1,0],[1,0],[1,1],[1,0],[1,0],[1,1],[0,1],[1,0],[0,-1],[0,-1],[1,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[0,1],[1,0],[1,0],[0,-1],[0,1],[1,0],[0,1],[1,0],[0,1],[1,0],[1,0],[0,1],[1,0],[1,0],[1,0],[0,1],[1,0],[0,1],[-1,1],[1,0],[1,-1],[-1,0],[0,-1],[1,0],[1,0],[0,-1],[0,-1],[1,0],[0,-1],[1,1],[1,0],[0,1],[1,0],[0,-1],[1,0],[1,0],[1,1],[1,0],[1,0],[0,-1],[1,1],[1,0],[1,0],[1,0],[1,0],[0,1],[1,0],[0,1],[4,3],[1,0],[-4,-3],[3,1],[1,0],[1,1],[1,1],[0,1],[-1,1],[0,-1],[-1,1],[1,0],[1,0],[1,-2],[1,1],[1,0],[1,0],[0,-1],[1,0],[1,1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,1],[0,-1],[1,0],[0,1],[1,-1],[1,0],[0,-1],[1,0],[1,0]],[[6666,5356],[0,1],[1,0]],[[6667,5357],[-1,1],[0,1],[0,1],[-1,1],[-1,1],[1,0],[1,0],[0,-1],[0,-1],[0,-1],[1,-1],[1,0]],[[6668,5358],[1,0]],[[6669,5358],[1,0],[1,-1],[8,-10]],[[6679,5347],[0,-2],[-1,0]],[[6678,5345],[-1,-1],[-1,-1],[-1,0]],[[6675,5343],[-1,-1],[0,-1]],[[6674,5341],[1,0],[1,-1],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,0],[-1,0],[-2,-1],[-1,-2],[-3,-9],[-1,0],[1,1],[0,1],[0,2],[1,0],[0,1],[0,1],[1,1],[0,1],[0,2],[0,1],[1,0],[0,1],[-1,-1],[-1,0],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-2],[0,-2],[-1,-1]],[[6666,5315],[1,-3],[0,-2],[0,-2],[0,-2],[0,-2],[1,-1],[-1,-1],[1,-1],[1,-3],[1,-2],[1,-1],[1,-2],[1,-1],[0,-1],[1,-1],[0,-1],[1,-2],[1,-2],[1,-1],[1,0],[1,-1],[1,0],[2,-1],[2,0],[1,-1]],[[6685,5281],[1,0],[1,0]],[[6687,5281],[2,0],[2,0],[1,0],[2,-1],[1,0],[1,-1],[1,0],[1,-1],[1,-1],[1,-1],[1,-1],[1,-1],[1,-2],[2,-1],[1,-1],[1,-1],[0,-1],[1,1],[0,-1],[0,-1],[1,-1],[1,0],[1,0],[1,0],[1,-1],[1,0],[1,0],[0,1],[1,0],[1,0],[1,0],[1,0],[1,1],[1,0],[1,0],[1,0],[0,1],[1,0],[1,0],[0,1],[1,0],[0,1],[1,0],[1,1],[1,0],[1,0],[1,1],[1,0],[0,-1],[2,0],[1,1],[1,1],[1,0],[1,1],[1,0],[0,1],[-1,-1],[-1,0],[0,-1],[-1,0],[-1,0],[0,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,-1],[-1,0],[-1,-1],[-1,0],[-1,-1],[-1,0],[-1,-1],[-1,0],[-2,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[-1,1],[1,0],[6,-1],[0,1],[1,0],[1,0],[1,0],[1,1],[1,0],[1,1],[1,1],[1,0],[0,1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,1],[1,0],[1,1],[1,0],[0,1],[1,0],[0,1],[1,1],[1,0],[1,1],[1,1],[1,0],[0,1],[1,0],[1,1],[1,0],[1,1],[0,-28],[-5,-2],[-5,-2],[-7,-3],[-2,0],[-6,-2],[-1,0],[-5,-2],[-5,0],[-4,-1],[-7,-1],[-6,-1],[-5,-1],[-4,0],[-4,0],[-5,-1],[-4,0],[-4,0],[-4,0],[-4,1],[-4,0],[-4,0],[-4,1],[-4,0],[-3,1],[-3,1],[-3,0],[-3,1],[-5,1],[-1,1],[-2,0],[-4,1],[-4,2],[-3,1],[-3,1],[-2,1],[-3,2],[-2,1],[-2,1],[-4,2],[-3,1],[-3,2],[-3,1],[-2,1],[-2,1],[-4,1],[-5,2],[-1,0],[-6,2],[-9,2],[-1,0],[-25,3],[-29,-1],[-20,2],[-1,0],[-24,6],[-4,-5],[-10,2],[-1,-1],[-5,-4],[-11,4],[-7,1],[-7,0],[5,4],[9,-1],[6,-1],[0,1],[-2,1],[-13,1],[-3,-1],[-5,0],[1,0],[0,-1],[0,-1],[0,-1],[-4,0],[-4,1],[0,1],[4,1],[-1,1],[-13,-4],[-3,-1],[-12,-3],[-8,-3],[-1,2],[-1,1],[0,-1],[0,-1],[1,-1],[-1,0],[-7,-4],[-2,-2],[-9,-4],[-8,-5],[-3,0],[-7,1],[-1,0],[-1,0],[-20,6],[-7,-2],[-5,3],[0,-1],[-4,-5],[3,-6],[-3,1],[-3,-2],[-19,-7],[-12,-4],[3,-6],[-1,0],[-6,6],[-3,-1],[-4,-2],[-1,-1],[3,-6],[-5,3],[-2,0],[-3,-1],[-2,0],[-1,-1],[-2,0],[-39,-16],[0,-1],[-9,-7],[-3,-3],[-1,-2],[-1,0],[-2,-4],[-2,-1],[-10,-4],[-2,-2],[-5,-5],[-1,-1],[-5,-5],[-8,-1],[-4,0],[-4,-1],[-5,-6],[-2,-1],[-7,-3],[-1,0],[-2,-1],[-5,0],[-11,4],[-5,1],[-4,2],[-17,10],[-3,2],[-6,3],[-1,2],[-11,15],[-1,5],[0,1],[-2,7],[-9,18],[-11,11],[-16,13],[-6,1],[-19,4],[-1,0],[-4,1],[-2,1],[0,2],[-5,1],[0,-2],[-19,8],[-13,1],[-9,0],[0,-5],[-2,0],[-1,0],[-1,0],[0,2],[-19,1],[-14,4],[-9,0],[-3,-1],[-1,-1],[-5,-5],[-10,-9],[-6,-2],[0,-2],[-6,0],[-7,1],[-3,15],[-6,-1],[1,-1],[4,1],[2,-8],[0,-1],[0,-3],[-1,-1],[1,0],[0,-1],[-1,-1],[-2,-2],[-1,-6],[1,-2],[-2,-17],[-3,-1],[1,-2],[-2,-5],[-1,-1],[-11,-4],[-1,2],[-7,-1],[-1,-2],[0,-3],[-1,-2],[-2,1],[1,-3],[0,-2],[0,-1],[-6,-14],[-4,-9],[-7,-15],[-6,-3],[-4,-2],[-7,6],[0,-7],[2,0],[-6,-11],[-5,-3],[-5,-3],[-1,-1],[0,-3],[-2,0],[-6,-10],[-1,-1],[-11,0],[-12,-1],[-1,1],[-1,0],[-4,1],[-2,0],[-1,0],[-4,1],[-1,3],[0,-3],[-1,0],[-2,-1],[-3,-3],[-20,-20],[-4,-2],[-2,-3],[-3,-1],[-7,0],[-19,5],[-8,6],[-12,9],[-13,0],[-12,3],[-4,10],[-7,-1],[-3,-17],[5,-22],[0,-2],[4,-8],[1,1],[7,-6],[3,-11],[-6,-15],[-4,2],[2,-4],[-3,-1],[4,-3],[-9,-16],[-2,5],[-3,-4],[3,-2],[1,-3],[-11,-11],[-25,5],[-1,-2],[0,2],[-5,-15],[0,-9],[-2,-2],[5,-1],[-6,-12],[-16,-3],[-1,-7],[2,-7],[-2,-1],[0,-1],[-4,3],[-7,-1],[1,-3],[8,-6],[-8,-8],[-19,8],[-10,3],[0,3],[1,7],[-4,9],[-2,2],[-4,1],[-9,-3],[-11,7],[-9,2],[-2,0],[-1,0],[-2,-3],[1,-8],[4,-3],[6,-11],[2,-3],[3,-2],[1,0],[6,-8],[3,-6],[-4,-4],[-5,-6],[0,-2],[0,-1],[4,-3],[1,0],[3,2],[15,-10],[3,-13],[-6,-9],[9,-11],[1,-4],[18,-1],[3,-6],[-1,-5],[-18,-14],[0,1],[-4,-3],[-8,11],[-1,0],[12,-17],[1,1],[-3,4],[2,2],[2,-4],[1,1],[-3,3],[19,14],[5,7],[12,-10],[5,-4],[1,-8],[10,-7],[-7,-30],[-8,-8],[1,0],[3,1],[1,1],[2,2],[5,1],[0,-4],[3,0],[1,0],[5,1],[2,4],[1,1],[1,0],[1,0],[0,1],[0,3],[1,0],[0,-1],[1,-3],[0,-1],[-2,-1],[0,-1],[0,-1],[0,-1],[1,0],[0,1],[0,1],[1,1],[1,0],[1,0],[0,1],[0,1],[-1,0],[-1,3],[1,0],[6,-3],[0,-1],[-1,-3],[-1,-1],[-2,-1],[-1,1],[0,1],[-1,0],[0,-1],[0,-1],[1,-1],[1,0],[2,0],[1,1],[1,1],[0,1],[1,3],[1,0],[4,-5],[9,-7],[-3,-3],[5,1],[-3,-2],[9,-2],[3,1],[7,2],[-6,38],[-14,13],[-4,2],[-7,4],[3,4],[6,-1],[12,-12],[2,12],[0,-16],[9,-1],[1,5],[1,-8],[1,-3],[1,-9],[0,-7],[2,-8],[11,-1],[2,0],[0,3],[2,13],[2,-11],[1,11],[6,0],[6,0],[0,-4],[0,-12],[-10,0],[0,-4],[27,3],[7,0],[-2,13],[5,-10],[3,4],[-1,-6],[3,4],[3,-1],[3,-2],[3,2],[1,-2],[6,1],[-4,-3],[13,-4],[4,-7],[-16,10],[19,-14],[0,1],[-2,5],[2,-1],[4,-5],[-1,-3],[-1,0],[-2,3],[-18,-8],[12,-19],[13,13],[3,-3],[6,-4],[8,-15],[-17,-9],[3,-7],[3,-9],[2,-7],[2,-3],[4,-11],[6,-21],[-14,-4],[-2,4],[-4,6],[-13,-5],[8,-14],[1,5],[7,1],[1,-2],[4,-2],[3,-7],[-2,-1],[-3,-1],[-2,0],[-3,-1],[-3,6],[-1,0],[0,-8],[2,1],[-2,-1],[0,-2],[3,-12],[0,-1],[2,4],[0,7],[7,3],[2,4],[11,2],[1,2],[1,-20],[4,11],[2,-4],[7,-34],[-1,-10],[-4,-3],[0,-2],[6,1],[4,-18],[-11,-3],[0,-2],[0,-1],[-3,0],[-15,-3],[0,-2],[27,-1],[4,-10],[0,-2],[5,-10],[-10,4],[0,-8],[-22,-3],[-3,2],[-8,5],[-7,-5],[-8,-11],[-20,-8],[0,-1],[1,-3],[2,0],[20,4],[0,-8],[8,8],[8,1],[9,-3],[0,-6],[-9,0],[-2,0],[-13,-13],[-3,-2],[-4,-9],[-1,-3],[-24,1],[-1,-2],[-19,-17],[3,-6],[6,3],[11,5],[7,5],[3,2],[2,0],[1,-1],[4,-1],[0,-3],[-1,-4],[-3,-10],[-7,-1],[-2,0],[-1,0],[-1,-2],[11,-7],[18,-5],[16,-4],[15,-4],[22,0],[6,2],[0,2],[1,0],[1,-2],[1,2],[2,4],[1,0],[-1,-3],[2,-2],[3,7],[1,0],[0,-2],[2,-1],[6,0],[5,-1],[0,-1],[2,2],[3,-1],[-1,-1],[2,0],[1,0],[5,-3],[3,-3],[3,-1],[0,-1],[2,-1],[1,2],[1,-3],[6,-5],[6,-1],[-1,-2],[10,5],[2,-1],[-2,-1],[-2,-4],[2,1],[-1,-3],[3,1],[-2,-3],[3,1],[5,2],[3,2],[1,-1],[-6,-8],[7,-3],[12,6],[12,-5],[1,0],[2,-1],[7,-9],[2,1],[0,-3],[-1,-1],[2,-3],[-2,-2],[0,-5],[8,-13],[2,-1],[3,-4],[5,-4],[8,-5],[3,-2],[3,-1],[1,0],[12,-15],[1,-6],[3,-13],[6,4],[5,2],[5,3],[2,0],[5,0],[3,-7],[-3,-2],[-4,-4],[2,6],[1,0],[0,4],[-4,2],[-1,-1],[-4,-5],[3,-4],[1,-4],[3,-15],[2,-1],[0,-1],[3,1],[2,2],[3,1],[4,1],[-7,-3],[-5,-4],[-1,-1],[0,-2],[-1,-1],[13,-22],[-3,-2],[-1,2],[-1,1],[-2,1],[0,3],[-1,4],[-2,3],[-3,3],[-4,3],[-3,2],[-1,1],[-1,0],[11,-24],[2,-2],[1,-2],[0,-2],[0,-3],[8,-24],[-2,2],[-1,-1],[-1,1],[-8,21],[-3,7],[-17,19],[-7,-2],[-1,0],[1,4],[-3,0],[-22,2],[-1,0],[-5,0],[-10,1],[-17,1],[-1,-1],[-4,-3],[-3,-2],[-1,-1],[-2,-1],[-2,-2],[-7,-5],[0,-7],[0,-4],[3,-3],[1,0],[1,-1],[0,-2],[0,-1],[1,-1],[27,-37],[-3,1],[-9,2],[-1,0],[-1,0],[0,-1],[-2,-2],[0,-2],[0,-1],[1,0],[13,-13],[8,-2],[66,-65],[7,9],[-2,23],[4,5],[25,8],[11,3],[-2,-2],[-15,-9],[8,-23],[16,3],[-3,15],[1,-3],[5,-23],[1,-1],[-3,-1],[-1,-4],[-7,-1],[-2,-10],[2,-1],[0,1],[1,9],[11,0],[1,-7],[-6,-1],[-5,-1],[15,1],[0,-1],[-3,-12],[-3,-3],[-4,9],[-5,1],[1,-3],[8,-9],[6,2],[6,1],[17,-28],[8,-3],[9,-10],[5,-12],[2,-3],[3,1],[-1,-3],[6,-5],[3,-9],[1,-4],[0,-1],[0,-4],[8,-23],[0,-1],[2,-1],[-3,-1],[8,-28],[1,-11],[1,-5],[1,-19],[1,-11],[0,-7],[3,-16],[3,-21],[-1,0],[-1,-1],[0,-1],[2,1],[0,-1],[0,-2],[1,-2],[1,-1],[1,-2],[0,-3],[2,-2],[0,-1],[0,-1],[0,-2],[0,-2],[0,-3],[1,-3],[0,-1],[1,-3],[1,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[1,0],[0,-1],[-1,0],[0,-1],[0,-1],[1,0],[-1,-1],[0,-2],[1,-1],[1,0],[0,-1],[1,0],[0,-1],[1,0],[-1,-2],[0,-1],[0,-1],[1,-2],[0,-1],[-4,-28],[-1,-4],[-1,-2],[1,-1],[0,-2],[0,-2],[1,0],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[0,-2],[0,-1],[1,-2],[0,-2],[0,-1],[0,-2],[0,-2],[1,0],[0,-2],[0,-1],[1,-1],[1,-1],[1,0],[1,0],[0,1],[1,-1],[0,-1],[0,-1],[1,-1],[1,-2],[1,-2],[1,-1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[0,-2],[0,-1],[1,-1],[0,-2],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,0],[1,-1],[0,-1],[1,-1],[1,0],[0,-1],[1,-1],[0,-2],[1,-1],[0,-1],[0,-1],[1,-1],[0,-1],[0,-2],[1,-2],[0,-1],[0,-1],[1,-2],[0,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,-1],[1,-1],[1,0],[1,0],[1,0],[2,0],[3,6],[19,-53],[22,-53],[4,-31],[0,-3],[-1,-21],[-2,-6],[1,-1],[1,-3],[3,-17],[1,-2],[7,-9],[4,-1],[3,0],[1,0],[33,12],[-1,3],[3,-3],[1,5],[1,5],[3,-1],[6,6],[8,4],[0,-1],[1,-1],[2,-9],[-1,-5]],[[6282,3559],[-4,-5],[-1,-3],[12,-3],[12,-1],[-10,-1],[5,-2],[12,-3],[15,-2],[15,-10],[1,-6],[30,2],[5,0],[9,-7],[5,-15],[2,-16],[8,-11],[5,1],[3,14],[-2,-15],[0,-3],[-7,1],[-11,17],[-5,22],[-10,6],[-2,0],[-36,-3],[-1,0],[9,-41],[-3,-17],[8,-17],[19,6],[3,1],[8,2],[45,-5],[42,6],[16,-2],[13,-10],[18,15],[10,-2],[2,0],[0,-5],[-2,1],[-7,3],[-17,-14],[-5,-2],[-10,1],[11,-5],[26,-6],[3,0],[-1,-2],[0,-1],[-10,1],[-2,0],[-28,11],[-3,-5],[-4,4],[-59,-8],[6,-20],[1,-24],[20,1],[13,-19],[27,-10],[1,-15],[-3,13],[-26,9],[-13,19],[-21,-1],[-4,27],[-9,18],[-4,0],[-9,1],[-19,-18],[-2,-2],[-1,0],[3,-1],[12,-5],[3,-3],[5,-5],[-5,-15],[2,15],[-3,1],[-10,3],[-21,-8],[-8,-5],[-1,6],[-24,-10],[-9,-2],[-8,15],[-14,-4],[-9,3],[-2,-5],[-5,11],[-6,0],[0,-3],[-4,0],[-4,0],[-3,2],[-7,4],[2,-8],[0,-1],[1,-1],[0,-3],[1,-4],[0,-3],[-1,-4],[2,-3],[-2,3],[-1,2],[0,1],[0,2],[0,2],[-1,-1],[0,2],[0,1],[1,5],[-2,2],[0,1],[-1,3],[-2,4],[-10,3],[-11,9],[-2,-4],[-4,-1],[1,-2],[-1,-1],[-1,3],[-9,-1],[5,-11],[-4,2],[-3,8],[1,4],[7,9],[-2,1],[-4,-4],[0,2],[-3,0],[-3,-2],[2,-4],[-2,-2],[-3,0],[0,4],[9,8],[6,-3],[-2,-7],[4,-2],[2,2],[5,6],[1,3],[-1,12],[-8,-4],[-3,-2],[-7,7],[-3,-1],[-3,2],[-2,-1],[-4,5],[-1,1],[-1,2],[-1,1],[0,1],[-4,7],[-7,4],[-3,8],[-1,8],[3,4],[-1,1],[-4,-1],[-2,34],[-3,12],[-5,26],[-12,17],[-15,8],[-43,-23],[-12,7],[-8,5],[-3,1],[-1,0],[-21,18],[-8,24],[-1,6],[-3,3],[-2,-3],[-2,-9],[-12,8],[-2,2],[-14,10],[5,27],[1,0],[-3,7],[-3,7],[-23,7],[-22,-3],[-3,12],[-14,-1],[-1,6],[0,7],[-4,3],[-4,2],[-2,3],[-2,1],[-4,3],[-3,2],[-5,0],[-2,0],[-5,0],[-5,1],[-5,2],[-3,2],[-3,1],[-11,-11],[-2,1],[2,3],[10,10],[2,11],[-11,20],[-1,2],[-7,8],[-12,9],[-9,9],[-2,1],[-2,1],[-6,0],[-15,-8],[-6,-1],[-4,3],[-1,-1],[-4,0],[-2,0],[-1,0],[-1,0],[0,1],[1,6],[0,2],[-1,0],[-2,1],[-2,1],[-2,1],[0,1],[-1,0],[0,1],[-3,1],[-4,1],[-1,0],[-2,-1],[-1,0],[-1,-1],[-1,0],[-3,-1],[-1,0],[-6,-9],[0,-1],[0,-1],[2,-2],[1,-1],[-3,0],[0,-1],[-3,0],[-1,2],[-1,0],[0,1],[-1,-1],[0,1],[-1,0],[-2,1],[0,12],[-13,1],[-6,-2],[-3,4],[-8,7],[-6,8],[-9,11],[0,2],[1,-1],[4,3],[-2,16],[0,2],[-8,-1],[-5,2],[-7,-3],[-20,-9],[-3,-1],[-1,0],[0,16],[-4,-1],[-4,1],[0,-9],[0,-4],[0,-4],[-1,0],[-40,3],[-4,1],[0,1],[4,0],[3,4],[6,0],[0,-5],[31,-1],[0,6],[0,7],[-1,0],[-5,1],[0,-1],[0,-2],[2,-1],[2,0],[-1,-3],[0,-1],[-4,0],[-2,-1],[-3,-1],[-2,2],[-3,-1],[0,-2],[-2,-1],[-1,1],[0,3],[-2,-1],[-1,1],[0,4],[2,1],[4,0],[5,0],[0,2],[0,1],[-16,-1],[-15,0],[-4,0],[-1,0],[-3,0],[-10,11],[2,1],[0,2],[-1,3],[-3,-1],[-5,8],[-4,4],[-5,4],[-7,4],[-5,3],[-3,1],[0,5],[12,22],[3,3],[6,-3],[25,-13],[8,18],[-21,11],[-4,4],[-3,2],[-2,1],[5,15],[2,4],[-1,3],[-5,3],[-2,-6],[-8,4],[-3,-3],[-9,5],[-6,10],[-1,-7],[-12,-5],[-8,5],[-1,8],[7,7],[12,0],[-3,3],[-4,5],[-1,0],[-3,5],[-13,-2],[3,5],[-2,14],[-6,-9],[4,-11],[-7,2],[-2,0],[0,1],[0,1],[1,0],[1,0],[0,1],[-3,-1],[-1,1],[4,1],[-1,1],[-3,-1],[3,2],[0,1],[-4,-2],[0,1],[4,1],[-1,1],[-4,-1],[4,2],[0,1],[-4,-2],[0,1],[3,1],[0,1],[1,0],[1,1],[1,2],[2,3],[0,1],[0,1],[1,2],[-1,0],[-1,0],[0,1],[5,6],[3,0],[3,0],[6,1],[17,0],[2,9],[4,2],[1,2],[-3,6],[2,2],[0,2],[3,0],[3,1],[-1,1],[-1,-1],[-5,6],[-5,5],[0,4],[12,1],[0,5],[0,4],[-17,1],[0,1],[0,2],[0,6],[-11,0],[1,-3],[0,-3],[0,-1],[-4,-3],[2,-1],[-3,-1],[0,4],[-1,2],[0,1],[-6,-1],[-2,1],[-1,-1],[-5,-3],[-1,1],[2,2],[4,2],[0,2],[3,0],[0,3],[-4,0],[1,1],[1,1],[3,1],[6,0],[2,0],[1,1],[0,1],[1,2],[15,-1],[0,2],[0,24],[-15,0],[-2,4],[-4,25],[-1,5],[-8,57],[-1,2],[2,1],[1,1],[3,2],[2,-2],[2,2],[4,-3],[3,5],[8,-1],[6,-1],[5,0],[5,1],[1,1],[0,1],[-1,1],[-2,1],[-1,1],[0,-1],[-1,-2],[-1,-1],[-2,-1],[-2,-1],[0,1],[-2,2],[0,1],[-1,1],[0,1],[1,2],[10,13],[-18,14],[1,5],[-5,5],[0,1],[0,2],[5,-4],[3,-3],[1,-2],[2,-1],[2,1],[0,2],[0,3],[1,1],[2,1],[2,0],[2,0],[2,2],[0,2],[-1,1],[1,0],[2,-2],[1,-1],[-1,-1],[-1,-1],[-2,-2],[-1,-2],[1,-4],[1,-1],[0,-2],[2,-1],[2,-3],[0,-1],[1,-1],[0,-1],[3,0],[1,0],[1,0],[2,0],[0,-1],[2,0],[2,-1],[2,-1],[2,-1],[1,-2],[3,-2],[1,1],[2,0],[1,0],[8,-5],[0,1],[-8,6],[2,4],[9,-6],[1,0],[4,37],[1,6],[-7,5],[-15,17],[-3,-4],[-6,-10],[-5,5],[-7,0],[-1,3],[1,2],[-1,0],[0,1],[0,2],[2,4],[0,1],[-3,2],[3,4],[9,0],[-7,12],[-6,11],[-24,-2],[-1,1],[-7,0],[-4,1],[-1,1],[0,2],[1,0],[4,-2],[7,0],[2,1],[1,2],[7,-1],[5,6],[2,8],[-3,0],[1,1],[0,1],[2,2],[-5,-2],[-1,0],[-1,3],[0,1],[-3,-1],[1,2],[7,0],[0,6],[-1,0],[0,1],[1,2],[-1,0],[-1,-1],[1,1],[0,5],[1,0],[2,0],[0,9],[-1,-1],[1,-6],[-2,0],[0,6],[0,-6],[-1,0],[0,4],[0,3],[-1,5],[-1,0],[1,-5],[-1,0],[-1,5],[0,-5],[-1,0],[0,5],[-1,0],[0,-5],[0,-1],[-1,6],[-1,0],[1,-5],[-1,0],[-1,3],[-4,-1],[-1,1],[2,3],[0,3],[-1,0],[0,1],[2,0],[0,3],[6,0],[0,1],[-4,0],[0,1],[3,0],[0,1],[-1,0],[-1,1],[-2,0],[1,2],[-2,4],[5,-2],[1,2],[-7,2],[-2,7],[1,0],[0,1],[4,0],[8,-4],[-2,9],[-11,-1],[0,2],[5,1],[0,3],[1,7],[-1,2],[-6,-1],[0,2],[7,1],[0,1],[-7,0],[0,1],[7,1],[0,1],[-8,0],[1,1],[7,1],[-1,1],[-7,0],[1,1],[6,0],[0,2],[-6,-1],[0,2],[4,0],[0,1],[0,1],[-4,0],[0,2],[4,0],[0,1],[-5,0],[1,2],[7,1],[-1,5],[-6,-1],[0,2],[5,1],[-1,1],[-3,0],[0,2],[4,1],[-1,1],[-3,-1],[-1,1],[2,1],[2,2],[-2,-1],[-4,-1],[0,1],[0,1],[4,2],[0,1],[-5,-2],[-1,1],[-1,1],[-1,2],[-1,1],[0,1],[-3,4],[0,1],[-1,1],[1,1],[2,2],[-1,2],[-3,-3],[-3,4],[1,1],[1,2],[0,1],[-4,-3],[-1,1],[4,3],[-1,1],[-4,-3],[-1,1],[4,3],[-1,1],[-3,-3],[-1,1],[5,4],[-1,1],[-5,-4],[0,1],[-1,1],[5,4],[-1,1],[-5,-3],[-1,0],[5,4],[-3,4],[-5,-4],[0,2],[5,3],[-1,2],[-5,-4],[-1,1],[5,4],[-1,1],[-5,-4],[-1,1],[5,5],[-1,1],[-4,-4],[-2,2],[3,6],[-1,1],[-3,-4],[-2,2],[3,4],[-1,1],[-3,-5],[-2,1],[2,6],[-1,0],[-2,-5],[-2,0],[0,9],[-1,0],[0,-6],[-3,1],[-2,7],[-1,-1],[2,-6],[-3,1],[-3,7],[-1,-1],[3,-6],[-2,0],[-5,8],[-2,-1],[4,-6],[-5,5],[-2,-1],[4,-3],[-4,1],[1,-1],[-1,0],[-9,7],[-1,0],[0,-1],[1,0],[0,-1],[-1,1],[-2,1],[0,-1],[2,-2],[3,-3],[2,-2],[3,-1],[-1,-1],[-2,0],[0,1],[-1,0],[-4,3],[0,-1],[1,-1],[2,-1],[0,-1],[-2,0],[-1,0],[-1,0],[-1,0],[0,1],[-2,2],[-2,3],[-1,-1],[4,-4],[-4,-3],[-1,-1],[-2,-2],[-1,-1],[-1,1],[-2,0],[0,1],[-1,1],[-1,2],[0,2],[0,1],[0,1],[0,1],[1,1],[2,1],[1,0],[1,0],[0,1],[-2,0],[-1,-1],[-2,0],[-1,-2],[0,-1],[0,-4],[0,1],[-2,1],[-1,0],[1,0],[2,-2],[-3,1],[-4,0],[0,2],[-1,0],[-3,0],[-2,-2],[1,-8],[-1,-1],[-2,0],[-2,4],[-2,0],[-2,2],[-14,-2],[-1,3],[5,1],[1,1],[-1,0],[-6,-1],[1,-4],[0,-1],[-3,-1],[3,1],[0,-2],[-11,-2],[0,3],[8,4],[0,1],[-3,-1],[-2,0],[-3,-1],[-2,0],[-12,-2],[-2,-1],[-22,-5],[-5,3],[-4,3],[0,1],[-6,5],[-3,1],[-10,3],[-1,3],[-2,1],[-2,-1],[-1,-2],[0,-2],[0,-1],[0,-1],[-1,-1],[-1,-4],[0,-5],[-1,-5],[-1,-4],[-2,-5],[-2,-4],[-1,-4],[-1,-6],[-2,-6],[-2,-5],[-2,-4],[-1,-3],[0,-1],[-3,-3],[-6,0],[-1,-2],[-6,-3],[-4,0],[-3,0],[-3,-1],[-2,2],[-2,2],[-3,1],[-2,-1],[-4,-1],[-3,0],[-3,-1],[-2,-2],[-1,-1],[-1,-1],[-1,-3],[-4,-2],[-1,-2],[-2,-1],[-1,1],[-2,-3],[-2,0],[1,-1],[-2,-3],[-1,-4],[-2,-1],[1,-3],[-1,-2],[1,-4],[1,-1],[1,-1],[3,-19],[0,-23],[2,-13],[1,-27],[3,-7],[3,-26],[0,-6],[1,-10],[2,-36],[4,-20],[4,-22],[2,-6],[5,-23],[8,-45],[3,-39],[-1,-23],[-1,-1],[1,-1],[1,-1],[2,-4],[0,-2],[1,-14],[0,-8],[0,-2],[0,-33],[0,-4],[-1,-7],[-3,-37],[-2,-27],[0,-1],[-3,-1],[-2,-1],[3,-3],[0,1],[1,-10],[-1,-1],[-1,-6],[3,-6],[-1,-4],[-2,-6],[-2,-4],[-6,-1],[0,-6],[1,-1],[3,-3],[-4,-14],[-6,-6],[-3,-4],[-5,-1],[-8,5],[-6,1],[-3,1],[2,-2],[0,-3],[-2,-4],[-13,-4],[3,-5],[5,-6],[0,-12],[0,-15],[-2,-18],[-5,-6],[2,-6],[4,-13],[7,-4],[-2,-14],[0,-12],[4,-19],[-3,-19],[-4,-4],[-1,-5],[0,-1],[0,-1],[-3,-8],[0,-1],[0,-3],[0,-2],[0,-2],[-1,-1],[-2,1],[4,-17],[1,-3],[1,-6],[-1,-4],[1,-7],[-2,-5],[3,-8],[3,-7],[8,-17],[0,-1],[1,-1],[2,-2],[9,-12],[16,-22],[-1,-8],[0,-2],[2,-9],[9,-1],[4,-8],[13,5],[0,1],[-12,-5],[-4,9],[-2,12],[8,7],[3,-6],[0,1],[-3,5],[12,4],[1,0],[7,1],[0,-1],[1,-1],[1,0],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[-1,0],[-1,0],[2,0],[0,1],[0,2],[0,1],[1,0],[2,1],[9,-2],[-2,-3],[5,-2],[3,-4],[-2,-1],[-11,-8],[-14,-5],[1,-1],[14,5],[11,8],[1,1],[5,4],[3,-2],[7,-5],[14,-20],[0,-1],[23,-34],[10,-46],[4,-13],[1,-16],[0,-3],[1,-6],[1,-20],[2,-25],[0,-8],[0,-2],[4,-7],[5,-13],[5,-14],[4,-8],[1,-8],[4,-13],[3,-4],[2,-8],[1,0],[-1,-2],[2,1],[4,-4],[1,-1],[2,0],[-1,-8],[1,-4],[2,-7],[6,-7],[1,-1],[2,-7],[-1,-8],[2,-1],[0,-10],[-2,-1],[7,-13],[2,-1],[6,-9],[3,-1],[-2,-5],[2,-3],[-1,0],[3,-10],[2,-1],[1,1],[1,-3],[2,2],[4,-3],[-2,-4],[4,-4],[1,-1],[0,-1],[0,-1],[1,-1],[-1,-1],[0,-2],[0,-1],[1,-2],[0,-2],[1,-2],[0,-4],[0,-1],[-1,-2],[-1,-1],[1,0],[0,-1],[0,-2],[-1,-1],[0,-1],[0,-1],[2,-1],[1,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[2,-1],[0,-2],[0,-1],[2,0],[1,-1],[1,-1],[1,0],[2,0],[1,-1],[1,0],[2,-2],[2,-2],[1,-2],[1,-2],[1,-3],[0,-3],[0,-1],[0,-1],[1,0],[0,-1],[-1,-1],[0,-2],[0,-1],[-1,-3],[0,-2],[0,-3],[0,-2],[0,-1],[0,-3],[0,-3],[0,-1],[-1,-2],[-1,0],[-1,0],[0,-2],[0,-1],[2,-2],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[1,0],[0,-1],[0,-3],[0,-2],[0,-4],[0,-1],[0,-2],[1,-4],[-1,-3],[0,-3],[0,-1],[0,-2],[0,-3],[-1,-1],[0,-3],[-1,-3],[0,-4],[0,-3],[0,-2],[-1,-2],[0,-5],[-1,-2],[0,-3],[0,-2],[0,-2],[0,-2],[-1,-1],[-1,0],[0,-1],[0,-1],[0,-1],[0,-2],[1,-1],[0,-2],[0,-3],[1,1],[-1,-3],[-1,-3],[0,-2],[0,-2],[0,-1],[0,-2],[-1,-1],[0,-2],[0,-4],[-1,0],[0,-1],[1,0],[-1,-4],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-2],[0,-1],[0,-1],[0,-6],[0,-1],[0,-1],[-1,-4],[0,-2],[-1,-1],[0,-1],[1,-1],[0,-2],[-1,-8],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[1,-1],[0,-5],[-1,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[1,-1],[0,-1],[-1,-7],[0,-1],[1,0],[0,-1],[1,0],[-1,0],[-1,0],[0,-1],[0,-7],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-3],[0,-1],[-1,-1],[1,-1],[-1,-1],[0,-1],[0,-1],[0,-2],[0,-1],[0,-1],[-1,-1],[0,-1],[1,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[-1,0],[0,-3],[1,0],[0,-1],[-1,-1],[0,-2],[-1,-1],[0,-1],[0,-1],[0,-6],[-3,-12],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[-1,-1],[0,1],[-1,0],[-1,1],[0,1],[0,1],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-1],[0,-2],[-1,-2],[0,-1],[1,-1],[0,-1],[-1,-1],[-2,-3],[2,-4],[-1,-1],[-2,0],[0,-1],[1,0],[1,-1],[0,-1],[0,-2],[-2,-4],[1,-1],[0,-1],[0,-1],[-1,-2],[0,-1],[-1,0],[0,-1],[-1,1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[-1,-1],[-1,0],[0,-2],[0,-1],[1,-1],[-1,-1],[0,1],[-1,0],[1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[-3,-4],[0,-9],[1,-2],[0,-1],[-1,-2],[0,-4],[0,-2],[-1,-2],[1,0],[0,-2],[1,-1],[0,-2],[1,-1],[1,-2],[0,-2],[1,-1],[1,-1],[0,-1],[1,-1],[0,-3],[-1,0],[0,-1],[1,-1],[0,-1],[0,-2],[0,-2],[1,-2],[0,-1],[-1,0],[0,-1],[1,0],[1,0],[1,-1],[1,-2],[1,-2],[0,-1],[1,-3],[1,-1],[1,-1],[1,0],[0,-2],[2,-2],[-1,0],[0,-1],[2,0],[0,-1],[-1,0],[-1,-2],[1,0],[2,0],[1,0],[1,-2],[1,-2],[0,-1],[0,-1],[-3,0],[0,-2],[1,0],[0,-1],[0,-1],[2,0],[1,-1],[0,-3],[-1,0],[0,-1],[1,-1],[1,-1],[1,-1],[0,-2],[1,-2],[0,-2],[-1,-4],[0,-1],[0,-1],[0,-2],[0,-2],[0,-1],[-1,-1],[-1,0],[-1,0],[0,-1],[-1,-1],[1,0],[1,0],[0,-1],[1,0],[1,0],[1,-3],[-1,-1],[-1,-1],[1,0],[-1,-4],[1,0],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[0,-3],[0,-1],[2,-1],[1,-1],[1,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[1,-1],[1,-1],[-1,-2],[0,-1],[-1,-2],[1,-1],[-1,-1],[0,-3],[0,-3],[0,-3],[0,-1],[0,-4],[0,-1],[0,-1],[0,-1],[0,-1],[1,-1],[1,-2],[-1,-1],[1,-1],[3,-2],[0,-1],[1,0],[1,-1],[2,-1],[5,-3],[2,-1],[1,0],[1,-2],[0,-2],[1,-4],[0,-2],[0,-6],[1,-1],[1,-2],[0,-2],[-1,-2],[1,-1],[1,-1],[0,-1],[0,-1],[1,-1],[1,-1],[2,-2],[0,-1],[-1,-1],[0,-1],[0,-1],[3,0],[0,1],[1,0],[1,0],[1,1],[-1,1],[1,1],[1,1],[1,0],[1,0],[1,0],[0,1],[1,-1],[2,0],[2,0],[1,1],[3,0],[3,-1],[2,-2],[2,0],[2,-1],[2,-1],[0,-1],[1,-1],[0,-1],[1,0],[1,1],[2,0],[1,0],[2,-1],[1,-1],[1,-1],[2,-2],[0,-2],[1,0],[1,0],[0,1],[1,-2],[1,1],[1,-2],[2,-2],[1,-2],[1,0],[0,-1],[-1,-1],[1,0],[0,-1],[1,0],[1,-1],[1,-2],[1,0],[0,-1],[2,-1],[1,-1],[0,-1],[1,0],[1,0],[1,-1],[1,0],[1,-1],[1,0],[0,-1],[0,-1],[0,-1],[1,0],[1,-2],[2,-1],[0,-1],[1,-3],[1,-3],[-1,-1],[2,-1],[0,-1],[1,-2],[2,-5],[0,-2],[1,-2],[1,-1],[0,-1],[0,-2],[0,-2],[1,-3],[1,-4],[0,-1],[0,-1],[0,-1],[1,-1],[-1,-1],[0,-1],[1,-3],[1,-3],[1,-2],[0,-2],[0,-1],[0,-2],[0,-1],[0,-1],[0,-2],[0,-2],[0,-3],[0,-1],[-1,-1],[-1,0],[-1,-1],[2,-3],[0,1],[1,1],[2,-1],[1,0],[1,-1],[3,0],[1,0],[1,0],[0,-1],[1,0],[0,-1],[0,-1],[1,-1],[-1,0],[-1,1],[0,-1],[2,0],[2,-3],[1,0],[0,-1],[1,0],[2,1],[1,0],[1,-1],[0,-1],[0,-1],[-1,0],[0,-1],[0,-1],[1,1],[1,-1],[2,0],[2,1],[2,0],[2,0],[1,1],[2,-1],[1,-1],[1,-1],[1,-2],[1,0],[1,-1],[1,-1],[0,-2],[0,-1],[0,-2],[0,-2],[0,-1],[1,-3],[1,-1],[1,0],[1,-2],[1,-1],[2,-1],[1,-1],[2,-2],[1,-3],[1,-1],[1,0],[0,-1],[1,-1],[0,-2],[0,-1],[1,-2],[-1,-3],[0,-3],[0,-1],[1,0],[0,-1],[0,-2],[0,-3],[0,-1],[-1,-3],[0,-1],[0,-2],[0,-3],[0,-4],[0,-1],[-1,-2],[-1,-5],[0,-2],[-1,-3],[-1,-1],[1,0],[1,-3],[1,0],[-1,-1],[0,-1],[1,-2],[0,-1],[1,-1],[0,-1],[1,0],[0,-1],[1,0],[1,0],[1,0],[2,1],[1,0],[1,0],[1,0],[1,0],[0,-1],[0,1],[1,-1],[1,-1],[1,-1],[1,-2],[1,-1],[1,-1],[1,-1],[0,-1],[1,-4],[0,-1],[1,0],[-1,-1],[1,0],[-1,-1],[1,-1],[1,1],[1,1],[1,1],[0,1],[3,0],[2,2],[0,1],[1,0],[1,1],[1,0],[1,0],[0,-1],[0,1],[1,0],[0,1],[1,0],[1,1],[2,1],[1,1],[2,0],[1,0],[1,-1],[0,1],[0,1],[1,0],[1,1],[1,1],[0,-1],[1,0],[0,1],[1,1],[0,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[0,-1],[-1,-1],[1,0],[1,1],[0,1],[1,1],[0,1],[1,0],[0,1],[2,0],[1,0],[2,0],[2,-1],[2,-1],[3,-1],[1,0],[1,-1],[1,-1],[1,1],[2,-1],[1,-1],[1,-1],[0,-1],[1,0],[1,-1],[1,0],[1,-2],[1,-1],[2,-1],[1,0],[0,-1],[1,0],[1,-1],[2,-2],[1,0],[1,-1],[1,0],[5,-4],[8,-12],[2,2],[1,4],[5,11],[1,3],[-4,7],[0,1],[-5,10],[0,1],[-10,20],[-3,7],[-2,2],[-6,14],[-1,1],[-7,14],[0,1],[-8,16],[-2,4],[-2,4],[-1,3],[-1,1],[-8,70],[0,1],[-2,16],[-2,21],[0,6],[-1,8],[26,0],[10,0],[31,0],[5,1],[5,1],[13,3],[16,3],[6,1],[20,0],[27,0],[2,0],[5,0],[7,1],[0,8],[0,1],[0,1],[0,19],[0,2],[0,1],[0,14],[0,9],[0,9],[0,4],[0,10],[5,0],[6,0],[2,0],[3,0],[1,0],[4,0],[3,0],[2,0],[1,0],[11,0],[1,0],[4,0],[1,0],[2,0],[3,0],[1,0],[2,0],[1,0],[2,0],[2,0],[1,0],[1,0],[2,0],[2,0],[16,0],[2,0],[27,0],[33,0],[1,0],[2,0],[4,1],[5,-1],[2,0],[4,0],[5,0],[15,1],[16,0],[1,0],[5,0],[1,0],[5,0],[0,2],[0,12],[0,8],[1,8],[2,8],[0,1],[0,5],[0,1],[-1,11],[-1,19],[0,1],[0,4],[-1,10],[0,10],[0,4],[0,3],[0,31],[1,37],[0,4],[0,26],[0,2],[0,11],[0,2],[1,-2],[1,-1],[0,-1],[1,0],[1,-1],[0,-1],[1,-2],[0,-1],[1,-2],[2,-4],[0,-4],[-2,-8],[-2,-5],[2,-1],[1,0],[1,0],[1,-1],[1,-1],[1,-1],[3,-6],[3,-6],[1,-1],[11,-6],[1,0],[0,-1],[1,0],[2,-2],[1,-2],[2,-2],[2,-1],[2,-5],[1,-1],[3,-4],[2,-4],[1,0],[10,-7],[4,1],[5,1],[6,-4],[1,-3],[6,-8],[1,-1],[6,-10],[15,-24],[0,-1],[7,-9],[1,-4],[0,-2],[1,-4],[1,-4],[0,-6],[1,0],[10,-4],[1,0],[5,-4],[8,-7],[2,-12],[2,-3],[5,-5],[6,-1],[6,-1],[1,0],[4,2],[2,0],[2,1],[3,0],[1,-1],[1,-2],[1,-2],[0,-2],[3,-2],[1,-1],[2,-1],[2,-2],[1,-2],[6,-5],[7,-9],[3,-6],[2,-5],[1,0],[5,-2],[2,2],[5,6],[3,2],[5,-2],[4,1],[0,-3],[2,-5],[1,-3],[3,-3],[8,-7],[2,-2],[1,-1],[2,-4],[3,-6],[3,-2],[0,-2],[2,-4],[6,-12],[2,-2],[7,-6],[1,0],[3,-2],[1,0],[6,-3],[3,-4],[-3,-5],[1,-4],[-3,-2],[1,-4],[1,-7],[1,-2],[-1,-3],[1,-2],[5,-3],[1,-2],[0,-2],[0,-1],[1,-3],[1,-1],[3,-1],[1,0],[0,-1],[0,-1],[-1,0],[0,1],[-1,-2],[-1,-3],[0,-1],[2,0],[0,-1],[3,1],[1,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[-1,-1],[-2,-1],[-2,-3],[1,-1],[1,-2],[1,-1],[2,-1],[0,-4],[-1,-4],[0,-2],[2,-1],[2,2],[1,-1],[1,2],[1,-1],[1,0],[1,-1],[2,-1],[2,1],[0,1],[1,0],[1,-1],[1,-1],[3,-4],[1,3],[1,1],[0,1],[1,0],[1,-1],[1,-1],[1,-1],[0,-1],[0,-1],[0,-1],[2,-1],[1,-1],[-1,-1],[2,-2],[2,-1],[-1,-2],[4,0],[1,-1],[2,0],[3,-1],[1,1],[2,-1],[2,-1],[0,-1],[0,-1],[0,-1],[1,0],[1,0],[2,1],[1,0],[1,0],[1,0],[1,0],[0,-1],[2,1],[1,0],[0,-1],[1,0],[0,-1],[1,0],[1,0],[1,-1],[0,-2],[0,-2],[1,-2],[1,-3],[0,-1],[0,-1],[3,-6],[1,-5],[2,-1],[6,-8],[1,-2],[1,-1],[0,-2],[0,-1],[0,-4],[1,-1],[0,-1],[1,-3],[1,0],[2,-2],[3,-1],[2,0],[1,0],[2,0],[0,5],[1,0],[3,-2],[0,-2],[1,-4],[1,0],[0,-1],[3,-2],[4,-1],[2,1],[2,-1],[4,0],[1,3],[2,-2],[2,1],[7,0],[2,-1],[2,-1],[1,-2],[2,-2],[2,-5],[4,-4],[3,-4],[5,-5],[1,0],[1,-1],[1,-2],[2,-2],[2,-1],[2,0],[1,-1],[1,-1],[4,-3],[1,-1],[2,-1],[2,-1],[2,-1],[2,0],[1,0],[3,-1],[1,-1],[10,-2],[5,-2],[7,-4],[18,-8],[6,-3],[3,4],[13,-6],[32,-25],[11,-1],[2,-3],[0,-2],[0,-2],[1,-1],[2,-2],[1,1],[1,3],[-1,0],[1,1],[0,1],[0,1],[1,-1],[1,0],[1,-1],[-1,-1],[2,0],[0,1],[1,1],[1,0],[0,-1],[0,-1],[1,-3],[2,2],[2,-1],[1,0],[1,0],[1,1],[1,-1],[0,-1],[0,-1],[2,2],[0,-1],[0,-1],[-1,0],[0,-1],[-1,-1],[1,-1],[1,-1],[1,0],[1,-2],[1,0],[1,1],[0,-2],[0,-1],[1,-1],[2,-1],[1,0],[1,1],[1,-1],[1,2],[3,-3],[-2,-1],[0,-1],[-1,-1],[0,-1],[1,-1],[1,-1],[1,1],[2,0],[1,1],[1,1],[0,-2],[2,3],[1,2],[4,4],[6,-3],[4,-2],[10,-5],[4,-2],[10,-5],[8,2],[5,1],[7,1],[1,1],[2,1],[-2,-7],[0,-2],[-2,-6],[2,0],[2,0],[7,0],[3,-2],[2,-1],[6,1],[1,1],[0,1],[1,0],[1,-1],[1,1],[2,0],[1,0],[1,-1],[2,-1],[1,-1],[1,-2],[4,-1],[0,-3],[1,0],[1,1],[1,0],[0,-2],[1,0],[0,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[2,-1],[1,0],[0,1],[2,0],[1,1],[1,0],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,0],[0,1],[4,-1],[0,-2],[-1,0],[0,-1],[0,-1],[1,0],[2,-3],[2,3],[2,0],[1,-3],[3,1],[0,-1],[2,0],[1,-1],[1,-1],[1,-1],[-1,-3],[1,-2],[0,-1],[1,0],[2,1],[1,0],[1,-1],[1,1],[1,0],[2,2],[2,-3],[2,0],[1,1],[1,0],[2,-1],[2,1],[1,-1],[2,0],[1,-1],[0,-1],[0,-1],[1,-1],[1,0],[1,-1],[1,-3],[2,-2],[1,-2],[0,-1],[1,-2],[0,-1],[3,-1],[2,-1],[1,-1],[1,-2],[0,-4],[-3,-3],[0,-1],[0,-4],[3,-3],[1,0],[1,0],[2,-2],[3,-1],[2,-2],[0,-1],[1,-1],[1,-1],[1,-2],[0,-2],[-1,-3],[-2,3],[0,-2],[1,-3],[1,-3],[1,-1],[2,-1],[3,-2],[1,0],[1,-2],[2,0],[2,1],[2,0],[1,0],[1,-1],[2,-1],[6,-1],[13,-14],[5,3],[17,-10],[8,-12],[5,-3],[7,-3],[10,-7],[17,-1],[2,-6],[-3,-3],[5,-4],[5,-1],[5,3],[2,3],[4,-2],[1,-3],[3,-7],[8,-15],[7,-11],[3,-9],[4,-3],[12,-21],[2,-1],[2,-1],[7,-5],[20,-12],[0,-1],[-5,1],[-1,-3],[-5,1],[1,6],[-2,1],[-12,-22],[20,-17],[3,6],[9,-9],[2,-1],[0,-1],[7,-3],[-25,-30],[1,-2],[2,-1],[-1,-3],[-1,-2],[-1,-2],[0,-2],[-1,-1],[0,-1],[-2,-1],[-1,-1],[-2,0],[-1,0],[-1,0],[-1,0],[-2,0],[-1,-1],[-1,-2],[1,-2],[-2,0],[-2,-1],[-1,-1],[-4,-1],[5,-3],[1,1],[2,0],[1,0],[3,1],[2,0],[1,0],[1,1],[3,2],[27,14],[2,1],[0,-1],[0,-1],[0,-1],[1,-1],[6,-4],[9,0],[1,-2],[-1,-2],[-1,-3],[1,-3],[2,0],[0,3],[3,-2],[3,-1],[4,-1],[1,-10],[9,0],[4,0],[10,-3],[0,-8],[-3,-4],[1,-3],[0,-2],[-2,-2],[-1,-2],[-1,-2],[0,-3],[-1,-3],[0,-3],[0,-3],[0,-2],[0,-2],[1,-2],[1,-2],[2,-1],[2,-2],[1,-2],[1,-1],[2,-2],[1,-2],[3,-1],[1,0],[3,-1],[1,-1],[1,0],[4,-1],[3,2],[2,-1],[5,-1],[3,2],[9,1],[2,-3],[0,-1],[1,0],[-1,-3],[3,1],[3,-2],[2,0],[3,1],[0,-2],[1,-2],[1,0],[4,-2],[9,2],[3,-2],[1,-2],[1,-7],[3,-5],[-1,-6],[-3,-7],[2,-5],[1,-5],[4,0],[6,-4],[1,0],[2,0],[6,1],[3,-1],[0,-9],[3,0],[-1,-6],[-3,-3],[1,-3],[1,-6],[10,-14],[5,-11],[2,-4],[11,-1],[-2,9],[-1,4],[4,4],[2,1],[0,-1],[2,0],[2,3],[2,1],[12,1],[1,1],[2,3],[10,-2],[5,-7],[-1,5],[-1,2],[0,2],[9,-9],[32,-36],[39,0],[0,-3],[0,-18],[21,0],[0,-3],[-1,-53],[0,-2],[4,-4],[11,-16],[9,10],[4,2],[15,-1],[6,0],[1,13],[4,29],[12,13],[7,3],[4,3],[1,0],[6,3],[11,6],[0,16],[14,17],[16,14],[31,30],[5,9],[0,3],[0,1],[0,11],[3,3],[1,8],[-5,8],[6,3],[2,8],[2,4],[5,1],[9,24],[2,2],[3,4],[22,27],[1,1],[2,2],[37,-15],[1,-1],[2,0],[2,-1],[1,0],[2,-1],[0,-1],[3,-1],[10,4],[-5,12],[6,11],[2,0],[5,1],[3,2],[3,3],[1,0],[1,-3],[5,4],[3,0],[1,0],[1,3],[5,0],[2,-2],[0,-4],[-1,-2],[2,-2],[3,-8],[8,-4],[0,-1],[17,-10],[5,-13],[7,-7],[25,-28],[4,-5],[1,-2],[1,0],[0,1],[5,0],[38,0],[37,0],[0,-1],[4,0],[1,0],[4,0],[4,0],[11,0],[2,0],[4,0],[38,0],[5,0],[1,0],[15,0],[0,1],[0,-1],[13,0],[1,0],[163,2],[108,0],[13,0],[-1,2],[-1,1],[-4,1],[-4,2],[-2,2],[-2,3],[-1,3],[-1,3],[-1,1],[-3,2],[-4,0],[-3,0],[-3,0],[-2,0],[-2,2],[-2,1],[-2,1],[-2,2],[-2,3],[-1,1],[-5,5],[-2,2],[-5,7],[0,3],[-4,4],[-2,3],[-2,2],[-2,3],[-3,5],[-2,4],[-2,7],[0,6],[2,8],[1,4],[1,1],[0,5],[1,2],[0,1],[4,1],[2,3],[0,2],[0,2],[1,2],[0,1],[1,0],[2,1],[10,2],[6,3],[-1,6],[-2,1],[-1,2],[0,1],[0,2],[0,2],[-1,3],[0,3],[-3,1],[-1,1],[2,6],[-1,1],[-2,0],[-1,1],[0,1],[0,1],[1,1],[1,1],[1,1],[2,-1],[1,1],[5,3],[-3,5],[-2,0],[-1,1],[-1,3],[-1,2],[-2,2],[0,3],[-4,5],[-1,0],[-1,1],[0,1],[-1,2],[0,2],[-2,3],[-2,1],[-1,0],[-1,2],[-1,2],[0,1],[-2,1],[-1,3],[-2,3],[-2,3],[-1,3],[0,2],[0,1],[1,1],[0,1],[-1,1],[-1,2],[0,4],[0,2],[-1,2],[-1,3],[0,1],[2,-1],[4,-3],[1,-1],[2,-1],[2,0],[2,1],[1,-1],[3,0],[1,0],[1,0],[2,1],[1,1],[0,1],[1,1],[-1,3],[0,1],[1,0],[5,8],[12,3],[0,1],[1,0],[14,5],[0,1],[0,5],[-1,8],[-2,24],[1,2],[1,2],[1,2],[2,3],[1,1],[-3,3],[3,4],[3,-1],[3,0],[5,0],[3,-2],[5,-2],[1,-1],[2,-1],[2,-1],[1,0],[1,1],[1,1],[0,1],[1,1],[1,1],[0,2],[2,2],[2,2],[0,5],[1,1],[0,1],[1,1],[0,2],[0,1],[-2,4],[-1,1],[0,2],[0,1],[0,1],[-2,3],[0,2],[0,2],[0,1],[0,1],[1,1],[-6,2],[-1,0],[-1,0],[-2,0],[-4,1],[-1,3],[-1,1],[-6,7],[-4,0],[-2,1],[-1,1],[-1,1],[-1,2],[0,3],[-3,11],[-7,7],[-1,0],[-2,0],[-1,1],[0,1],[-1,1],[-1,1],[-1,1],[0,1],[-1,1],[-5,5],[-1,0],[-1,1],[-1,1],[-1,1],[-1,1],[-11,0],[-1,-3],[-1,0],[-2,0],[-1,1],[-2,2],[-1,2],[-3,6],[-1,0],[0,1],[0,1],[1,1],[1,0],[0,1],[1,1],[1,1],[1,3],[0,1],[1,2],[0,1],[2,1],[1,-1],[2,0],[1,0],[1,1],[2,0],[1,0],[11,7],[1,2],[1,1],[1,1],[1,1],[1,0],[1,0],[1,-1],[1,0],[1,7],[-1,5],[0,2],[0,3],[0,2],[0,1],[-1,2],[-1,2],[1,1],[1,1],[2,0],[2,1],[2,0],[5,4],[-1,6],[-2,3],[0,1],[0,2],[1,2],[4,7],[1,2],[1,3],[1,1],[1,1],[3,1],[1,1],[3,8],[0,1],[1,2],[1,1],[4,9],[-3,1],[-1,1],[-2,1],[-2,2],[-1,2],[-1,1],[-1,2],[0,1],[0,1],[0,2],[-1,1],[-2,2],[0,1],[0,1],[0,1],[1,1],[0,1],[0,1],[0,1],[0,1],[-1,1],[-1,1],[-1,1],[-1,1],[-1,2],[0,1],[-2,2],[-2,2],[-1,1],[-3,3],[-3,3],[-4,5],[0,3],[-2,1],[0,1],[-1,4],[-1,2],[0,3],[0,1],[-4,13],[-1,2],[-1,1],[0,1],[-1,2],[0,2],[0,1],[0,1],[1,-1],[0,-1],[1,6],[0,2],[-1,2],[-2,2],[0,1],[1,3],[0,2],[-1,2],[-1,2],[-1,1],[-2,0],[-2,0],[-2,-1],[-4,0],[-1,1],[-2,2],[-1,1],[-3,0],[-2,-2],[-3,0],[-1,-1],[-3,0],[-1,1],[-3,1],[-4,0],[-3,1],[-2,0],[-1,0],[-2,1],[-2,0],[-2,0],[-3,0],[-2,0],[-2,1],[-1,0],[-1,0],[-1,0],[-1,1],[0,1],[0,1],[-3,6],[-2,6],[-3,5],[-3,5],[-3,6],[0,1],[-3,5],[-2,3],[-3,1],[-3,3],[-1,2],[-1,5],[-1,5],[-2,5],[-3,2],[-3,0],[-1,4],[-2,4],[-2,3],[-2,2],[-3,0],[-3,-2],[-1,-2],[-1,-1],[0,-4],[-2,1],[-2,0],[-1,-2],[-1,-2],[-1,-2],[-1,-6],[-3,-2],[-2,-2],[-2,-2],[0,-1],[0,-6],[0,1],[1,-1],[0,-3],[-1,-2],[0,-1],[-1,-1],[0,-1],[-3,0],[-4,-3],[-3,-2],[-3,-6],[2,2],[-1,-1],[-1,-1],[-2,-2],[-2,-1],[-1,-1],[0,1],[-1,0],[-2,1],[-5,6],[-7,-5],[-1,0],[-5,4],[-8,7],[-3,0],[-2,-1],[0,-1],[0,-2],[0,-3],[-5,-1],[-4,-1],[-1,0],[-1,1],[-1,0],[-3,0],[-2,-1],[-4,-3],[-2,1],[-1,1],[-2,0],[-2,-1],[-2,-1],[-2,-1],[-1,0],[-8,13],[-1,3],[-1,0],[-3,0],[-1,-1],[-1,0],[-1,2],[-3,3],[-2,2],[-2,1],[-5,2],[-5,1],[-1,1],[0,2],[-1,2],[-1,3],[-1,2],[-1,1],[-1,1],[-1,1],[-1,1],[-1,3],[-2,2],[-3,2],[-3,2],[-4,1],[-3,2],[-2,1],[-2,3],[-5,-2],[-5,2],[-1,1],[-3,0],[-4,-1],[-1,-1],[-2,-3],[-1,-2],[0,-2],[0,-2],[-1,-1],[-1,-1],[-1,-1],[-3,-1],[-12,-8],[-3,-10],[-1,-2],[-1,0],[-2,0],[-3,-2],[-2,-2],[-2,-5],[-1,-2],[-1,-2],[-2,-3],[-1,0],[-2,0],[-2,1],[-2,-1],[-1,-1],[-1,-3],[-1,-1],[-1,-2],[1,-3],[1,-3],[1,-2],[-1,-2],[-1,-1],[0,-4],[1,-2],[1,-3],[2,-2],[1,-2],[1,-1],[0,-1],[-1,-1],[-1,-1],[0,-2],[0,-2],[-1,-4],[-1,-5],[0,-3],[-2,0],[-1,1],[-2,0],[-1,0],[-3,-1],[-3,0],[-4,-2],[-2,0],[-2,-2],[-1,-3],[0,-3],[-1,0],[-1,0],[-2,1],[-1,1],[-1,1],[-1,1],[-2,2],[-3,1],[-1,0],[-1,-1],[-1,0],[-1,1],[-1,1],[-1,2],[-1,3],[0,4],[-1,2],[0,2],[-2,1],[-1,1],[-2,0],[-2,1],[-1,0],[-1,2],[-1,1],[-1,3],[-1,3],[-1,3],[-1,6],[-1,3],[0,1],[0,7],[0,7],[0,4],[-3,4],[-4,2],[-4,2],[-2,2],[0,1],[0,1],[0,1],[2,0],[2,1],[1,2],[2,1],[0,3],[0,1],[0,2],[-1,1],[-1,1],[0,2],[0,1],[0,1],[1,2],[1,0],[1,4],[1,2],[1,0],[0,2],[0,3],[0,4],[-1,2],[-2,0],[-2,2],[-1,1],[0,2],[0,2],[1,3],[1,3],[1,1],[0,2],[0,3],[0,3],[-1,2],[-1,1],[-1,2],[0,2],[0,2],[0,2],[-1,2],[-1,1],[-2,3],[-1,2],[-2,2],[-2,3],[-1,2],[0,2],[0,2],[0,4],[-1,3],[0,2],[0,3],[-1,4],[0,3],[0,4],[0,4],[0,5],[-1,2],[-1,2],[-2,2],[-1,2],[-5,3],[-1,4],[-1,6],[1,3],[0,1],[0,2],[0,3],[-1,1],[-1,2],[-1,1],[-1,1],[-2,2],[-2,1],[-2,0],[-1,0],[-3,3],[-1,2],[-1,1],[-1,0],[-1,1],[-1,2],[-1,1],[-1,2],[-1,0],[-1,1],[-3,-1],[0,-2],[-3,-1],[-1,3],[-1,0],[0,2],[-1,1],[-1,1],[-1,2],[-1,1],[-2,0],[-3,1],[-1,1],[-1,1],[-5,2],[-1,2],[-3,5],[-1,0],[-1,2],[-2,1],[-1,3],[-1,2],[-1,0],[-2,1],[-1,1],[-1,1],[-1,1],[0,1],[0,1],[1,1],[0,2],[0,1],[1,1],[-2,2],[-1,1],[0,2],[-3,4],[-1,2],[0,1],[0,1],[-1,1],[-1,1],[-1,1],[-1,2],[0,3],[-3,5],[-2,2],[-1,1],[-1,2],[0,4],[0,2],[0,1],[1,3],[-2,2],[1,1],[0,1],[1,3],[0,-1],[1,3],[-1,1],[0,1],[0,1],[-1,3],[-1,2],[0,3],[-2,5],[1,4],[2,2],[1,1],[1,0],[0,4],[0,1],[1,4],[0,3],[0,3],[0,1],[0,2],[0,9],[0,1],[1,4],[0,2],[0,1],[0,5],[0,1],[0,2],[0,1],[-2,4],[-1,0],[-1,1],[0,1],[-2,2],[-2,3],[0,1],[-1,1],[-1,1],[-2,2],[0,1],[1,0],[1,3],[1,1],[5,0],[1,-1],[3,1],[1,2],[0,2],[1,2],[0,1],[0,1],[1,1],[0,1],[1,1],[1,2],[1,0],[1,1],[3,2],[1,1],[0,1],[1,1],[0,1],[-2,11],[14,8],[2,-1],[2,-4],[2,-3],[3,-2],[3,-1],[2,-2],[2,-1],[3,1],[3,2],[1,2],[2,2],[2,1],[1,1],[3,1],[4,1],[3,1],[1,1],[1,0],[1,0],[1,0],[2,0],[-3,-1],[-1,0],[4,-2],[3,0],[0,2],[0,2],[1,8],[9,9],[0,2],[1,1],[0,1],[1,0],[1,1],[2,1],[4,4],[1,0],[1,4],[0,1],[1,0],[2,2],[3,2],[6,5],[3,0],[3,2],[1,2],[-1,2],[0,3],[-1,1],[0,-1],[-1,0],[-1,1],[0,3],[-1,6],[-1,6],[-2,11],[-6,10],[4,2],[0,1],[-2,6],[4,10],[-26,44],[0,1],[0,2],[2,1],[0,1],[-1,3],[-1,1],[0,6],[0,1],[0,2],[3,2],[0,2],[-1,3],[-3,3],[0,2],[0,2],[0,1],[-2,2],[-4,9],[2,6],[0,4],[0,2],[1,1],[1,1],[1,1],[1,1],[1,0],[2,1],[1,0],[0,1],[0,1],[0,2],[1,2],[0,2],[2,1],[1,8],[3,12],[0,1],[0,1],[0,1],[1,0],[0,2],[0,1],[0,1],[1,0],[1,0],[1,1],[1,1],[1,1],[1,2],[1,0],[1,1],[2,1],[1,0],[2,3],[1,2],[2,3],[-1,2],[-1,2],[-1,1],[0,1],[1,1],[-1,1],[0,2],[-1,6],[-3,4],[-1,7],[-4,0],[-1,2],[-5,0],[-6,2],[-11,9],[-17,2],[-2,0],[-3,3],[-3,2],[-3,1],[-3,-2],[-3,-3],[-3,0],[-4,-4],[-1,-1],[-1,-1],[-4,2],[-2,0],[-1,-1],[-2,-1],[-3,-3],[-6,2],[-2,7],[-12,3],[-4,8],[6,9],[-1,18],[-17,28],[-6,-3],[-14,25],[-1,1],[1,3],[1,0],[1,0],[1,0],[1,1],[2,0],[1,1],[1,0],[0,1],[0,1],[0,1],[-4,6],[0,1],[0,2],[0,2],[0,2],[1,3],[2,2],[1,2],[1,2],[2,2],[0,1],[1,1],[1,2],[2,2],[0,1],[2,4],[1,1],[1,0],[0,1],[4,1],[1,2],[0,1],[0,4],[0,1],[-1,5],[-3,11],[2,8],[0,10],[-2,1],[-1,2],[0,4],[-2,2],[-1,0],[-4,-3],[-3,1],[-1,0],[-2,6],[-6,2],[-1,0],[-1,1],[0,2],[-1,5],[0,3],[0,1],[-1,2],[-1,2],[-1,2],[-2,1],[-3,2],[-2,1],[-4,2],[-8,3],[-3,3],[-4,26],[-1,2],[0,2],[1,0],[2,0],[2,-1],[2,0],[2,2],[1,1],[1,1],[1,2],[1,2],[1,1],[1,1],[1,1],[1,1],[1,2],[1,0],[1,1],[4,0],[2,-2],[2,-1],[2,3],[1,2],[1,4],[2,-1],[0,2],[1,1],[1,2],[0,1],[0,2],[-1,2],[1,1],[1,0],[0,1],[0,1],[0,2],[1,2],[1,3],[0,2],[1,1],[0,1],[0,1],[-1,0],[-1,1],[-1,1],[-1,1],[0,1],[-1,1],[-1,1],[-1,1],[-2,1],[-1,1],[-2,3],[-1,1],[-1,2],[-1,2],[-1,0],[-1,1],[-2,0],[-1,1],[-2,1],[-1,1],[-1,0],[-1,3],[0,1],[-1,2],[-1,0],[-2,4],[-8,8],[-19,0],[-6,8],[1,11],[-4,15],[-7,9],[-1,3],[-3,4],[3,3],[3,4],[2,6],[-5,4],[-8,6],[-10,-3],[-18,2],[-13,-2],[-11,7],[-4,2],[-2,-2],[-23,8],[-8,5],[-6,4],[-3,8],[-3,2],[-5,11],[-15,10],[0,24],[0,75],[0,35],[-1,93],[0,3],[0,1],[1,58],[0,2],[0,104],[0,3],[0,103],[0,12],[-1,21],[0,1],[0,1],[0,24],[0,21],[0,11],[0,12],[0,6],[1,9],[0,5],[0,1],[-1,8],[1,31],[0,39],[0,4],[0,4],[0,5],[0,38],[0,30],[0,13],[0,1],[-1,51],[1,0],[-1,0],[1,4],[0,10],[2,1],[1,0],[1,1],[1,1],[-1,2],[0,1],[1,3],[1,2],[1,0],[1,1],[2,0],[1,0],[2,0],[0,2],[-1,1],[-1,1],[-2,1],[-1,2],[0,1],[1,1],[0,1],[2,2],[-2,9],[-2,3],[0,2],[0,3],[1,1],[1,2],[1,1],[1,2],[1,3],[2,2],[1,1],[0,-1],[0,-2],[-1,-2],[0,-2],[2,0],[1,0],[2,1],[1,1],[2,0],[2,1],[2,0],[2,1],[2,2],[0,1],[1,2],[1,2],[0,1],[1,1],[3,2],[1,1],[1,1],[0,2],[0,1],[-1,2],[0,2],[1,0],[1,1],[1,2],[-1,1],[-1,0],[-1,-1],[-1,-1],[-1,0],[0,1],[0,1],[0,1],[1,1],[2,3],[2,1],[1,2],[1,1],[0,2],[-2,1],[0,1],[1,1],[0,1],[2,0],[1,2],[2,1],[1,1],[0,2],[1,0],[0,2],[-1,2],[-1,1],[-1,2],[-2,0],[-2,1],[-1,-1],[0,-1],[1,-1],[-1,-3],[0,-1],[-2,0],[-2,0],[-1,-2],[-1,0],[-1,1],[0,1],[0,2],[0,1],[-1,2],[-1,2],[0,1],[0,2],[0,1],[0,2],[0,2],[0,3],[1,2],[1,2],[1,1],[0,2],[-1,2],[-1,0],[-1,0],[-1,0],[-2,-1],[-2,-2],[-3,-2],[-4,-2],[-3,-1],[-1,1],[-1,3],[0,1],[-1,1],[-1,2],[-1,4],[-2,3],[-1,2],[-1,2],[0,1],[-1,0],[-1,-1],[0,-1],[-1,-2],[0,-3],[-2,-2],[-2,-1],[-1,0],[-1,1],[-2,0],[-2,1],[-1,1],[-1,1],[-1,0],[-1,-1],[-1,-1],[-1,-2],[-2,-2],[-1,-2],[0,-1],[0,-2],[0,-1],[1,-1],[0,-2],[1,-3],[-1,-1],[0,-1],[-1,0],[-1,1],[-1,0],[-1,2],[-1,3],[-2,3],[-1,2],[-1,2],[-1,2],[-1,0],[-1,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-1,1],[0,1],[0,1],[2,1],[1,1],[1,1],[1,1],[-1,1],[0,2],[-1,1],[-1,0],[-2,0],[-3,0],[-3,-1],[-3,-1],[-2,-1],[-2,-1],[-1,-3],[-2,-2],[-1,-1],[-1,-1],[-2,0],[0,1],[0,1],[-1,1],[0,1],[-1,1],[0,1],[-1,2],[1,0],[0,2],[0,1],[2,1],[2,1],[2,1],[2,1],[2,2],[2,3],[1,2],[0,3],[-1,1],[-1,2],[-1,1],[-3,2],[-1,2],[-2,2],[-1,2],[-1,1],[-2,3],[-1,4],[0,2],[0,3],[-1,2],[1,3],[0,2],[1,3],[1,2],[0,2],[1,2],[1,2],[1,1],[4,5],[2,3],[1,1],[0,2],[1,1],[0,1],[-1,2],[-1,4],[-1,2],[-1,2],[-1,3],[0,1],[0,2],[1,1],[0,1],[1,0],[1,1],[2,1],[2,1],[2,0],[2,1],[1,1],[1,0],[2,1],[2,1],[1,2],[1,2],[1,2],[0,3],[0,2],[0,3],[1,3],[0,4],[0,1],[-1,2],[0,2],[-1,0],[-1,1],[-1,1],[-1,1],[-1,1],[-2,1],[-1,1],[-1,2],[-1,1],[-1,1],[0,2],[0,1],[1,2],[1,2],[2,1],[1,1],[1,0],[1,2],[2,1],[1,1],[2,1],[2,1],[1,1],[1,1],[2,2],[1,1],[0,1],[1,0],[0,2],[0,2],[0,1],[-1,2],[0,1],[-2,1],[-1,1],[-1,3],[-1,3],[-2,3],[0,2],[0,1],[0,1],[1,2],[0,1],[1,1],[1,1],[1,1],[2,1],[3,1],[3,0],[2,1],[3,1],[3,1],[2,1],[2,1],[1,1],[-1,1],[-1,1],[-1,1],[-1,1],[-2,2],[-1,3],[-1,2],[-1,3],[0,3],[1,2],[0,1],[1,2],[1,3],[1,3],[-1,1],[-1,1],[-1,2],[-2,2],[-3,3],[-1,2],[-1,2],[0,3],[0,2],[1,2],[0,2],[1,2],[0,1],[0,1],[-1,2],[-1,2],[-1,2],[-1,2],[0,2],[-1,2],[0,3],[-1,2],[1,2],[1,1],[2,0],[1,0],[2,0],[1,0],[1,0],[0,1],[1,1],[0,1],[-1,1],[-1,1],[-2,1],[-1,0],[-2,-1],[-2,-2],[-1,-1],[-2,-2],[-1,-1],[0,-1],[-1,0],[-1,0],[-1,0],[-2,0],[-1,1],[-1,2],[0,1],[0,2],[0,3],[0,2],[1,2],[0,2],[1,1],[1,1],[0,1],[1,1],[1,1],[1,1],[2,2],[2,2],[0,1],[1,0],[0,2],[-1,1],[-1,1],[-1,1],[-1,1],[-3,0],[-2,0],[-2,-1],[-5,-1],[-4,-2],[-2,0],[-2,0],[-2,1],[-1,1],[0,1],[0,1],[0,1],[1,1],[1,1],[2,1],[2,1],[1,0],[3,1],[3,0],[1,1],[2,0],[2,0],[2,1],[2,1],[1,2],[0,2],[0,1],[0,2],[-1,1],[-2,0],[-3,2],[-3,1],[-3,3],[-3,3],[0,1],[-1,1],[-1,2],[-1,3],[0,2],[0,1],[0,2],[1,4],[0,2],[0,2],[-1,2],[-2,2],[-1,1],[-1,1],[-2,2],[-2,2],[-3,2],[-1,0],[-1,1],[-1,2],[-1,2],[0,1],[0,2],[1,1],[2,0],[1,1],[3,-1],[3,0],[2,-1],[3,1],[0,1],[2,1],[0,1],[0,1],[0,1],[0,1],[-2,2],[-2,1],[-3,0],[-3,1],[-3,0],[-3,1],[-1,1],[-1,1],[-2,1],[0,1],[-1,2],[0,2],[0,3],[1,3],[0,2],[1,2],[0,4],[1,2],[0,3],[2,2],[2,3],[1,3],[2,2],[1,2],[1,3],[0,2],[-1,1],[-1,1],[-1,1],[-2,0],[-1,1],[-1,2],[0,2],[1,2],[1,0],[1,1],[2,0],[3,0],[4,0],[3,0],[1,0],[2,0],[1,0],[1,1],[0,1],[1,2],[1,3],[0,3],[1,2],[-1,1],[-1,1],[-1,0],[-3,1],[-4,0],[-2,-1],[-4,0],[-2,1],[-1,0],[-2,1],[-2,1],[-1,2],[0,1],[-1,2],[0,3],[0,1],[0,1],[0,3],[0,2],[1,2],[2,2],[2,1],[2,2],[3,0],[2,0],[3,0],[3,-1],[4,0],[2,1],[2,0],[1,1],[1,2],[1,1],[0,2],[-2,3],[-3,1],[-2,2],[-3,1],[-2,1],[-1,1],[0,2],[0,2],[0,1],[1,1],[2,1],[1,0],[2,1],[1,0],[3,-1],[2,-1],[3,-1],[3,-2],[2,-1],[3,-2],[3,-1],[2,-1],[2,0],[2,1],[1,1],[0,1],[1,2],[-1,1],[0,2],[-1,2],[-2,3],[-1,2],[-2,2],[-2,1],[-1,2],[-2,2],[-2,3],[-1,1],[-2,3],[0,3],[1,3],[0,3],[0,3],[-2,2],[-1,0],[-1,1],[-1,-1],[-1,-1],[-2,-1],[-2,-1],[-2,-1],[-1,1],[-2,1],[-2,1],[0,2],[0,2],[0,3],[0,3],[1,4],[0,3],[1,4],[0,2],[-1,5],[-2,3],[-2,3],[-3,3],[-2,1],[-3,1],[-3,-1],[-2,-1],[-2,-2],[-2,-1],[-1,-4],[0,-3],[1,-4],[1,-3],[2,-3],[2,-3],[0,-4],[0,-3],[-1,-1],[-2,-1],[-1,-1],[-2,1],[-2,1],[-2,2],[-1,3],[-1,2],[-1,3],[-1,4],[-1,4],[0,6],[1,5],[0,4],[0,5],[1,5],[1,5],[1,5],[0,5],[0,4],[0,4],[-1,4],[-1,5],[0,4],[-1,2],[0,2],[2,3],[3,3],[1,2],[1,3],[1,2],[0,4],[-1,2],[0,2],[0,2],[0,3],[0,2],[2,2],[1,1],[3,1],[3,1],[3,1],[2,1],[4,3],[2,1],[3,3],[1,3],[-1,3],[0,1],[-1,1],[-2,2],[-2,1],[-2,3],[-1,3],[0,2],[-1,5],[0,4],[0,3],[0,6],[-1,2],[0,2],[0,5],[-2,7],[-2,4],[-1,3],[-1,3],[-1,3],[-3,3],[-7,5],[-3,1],[-3,0],[-1,0],[-2,1],[-5,1],[-4,1],[-10,3],[-17,4],[-14,-1],[-20,-1],[-15,-3],[-3,0],[-2,-1],[-1,-2],[-2,-4],[-1,-5],[-2,-6],[-2,-6],[-2,-6],[-3,-5],[-6,-2],[-3,-1],[-6,1],[-5,1],[-6,2],[-4,3],[-3,3],[0,1],[-1,1],[0,1],[-1,0],[-7,4],[-22,13],[-2,0],[-24,-7],[-14,-13],[-6,-23],[0,-2],[0,-2],[1,-2],[1,-4],[0,-3],[1,-3],[1,-4],[0,-4],[0,-4],[0,-3],[1,-4],[0,-4],[0,-4],[0,-3],[0,-4],[0,-1],[0,-1],[-1,-2],[-1,-3],[0,-2],[-1,-3],[-1,-2],[-2,-2],[-2,-3],[-1,-1],[0,-1],[-1,0],[-1,-2],[-2,-1],[0,-1],[-2,-2],[-13,-11],[-1,-1],[-3,-5],[-3,-4],[-3,-4],[-3,-4],[-1,-2],[-1,-1],[-1,-2],[-3,-3],[-2,-2],[-4,-4],[-4,-3],[-3,-2],[-1,0],[-1,-1],[-1,-1],[-2,-1],[-4,-3],[-3,-1],[-4,-2],[-3,-1],[-3,-1],[-3,-1],[-1,0],[-20,-13],[-1,0],[-2,-2],[-1,-2],[-3,-2],[-2,-2],[-5,-5],[-1,0],[-1,-1],[0,-1],[-1,0],[-2,-1],[-2,-2],[-4,-2],[-3,-2],[-4,-1],[-6,-2],[-6,-2],[-5,-1],[-5,-1],[-4,0],[-3,0],[-4,-1],[-3,0],[-2,0],[-5,0],[-4,0],[-5,-1],[-3,-1],[-4,-1],[-3,-1],[-4,-2],[-3,-2],[-3,-1],[-3,-1],[-2,-1],[-4,-2],[-3,-1],[-4,-2],[-2,0],[-1,0],[-2,0],[-4,-1],[-4,0],[-2,0],[-3,0],[-2,0],[-3,0],[-3,0],[-2,0],[-2,0],[-1,0],[-2,1],[-4,1],[-3,1],[-3,2],[-1,0],[-3,2],[-5,1],[-2,1],[-1,0],[-4,0],[-4,-1],[-4,-1],[-4,-1],[-2,-1],[-3,0],[-3,1],[-3,0],[-3,1],[-3,1],[-3,1],[-3,2],[-2,3],[-2,2],[-3,2],[-2,2],[-1,1],[-1,0],[-2,1],[-2,2],[-1,1],[-1,1],[-3,1],[-1,2],[-1,0],[-1,1],[-1,1],[-3,3],[-1,1],[-3,3],[-1,1],[-5,11],[-5,9],[-1,1],[0,1],[-1,0],[-1,2],[-1,4],[-2,4],[-1,5],[-2,7],[-1,5],[0,5],[-2,11],[-1,2],[-11,23],[-9,9],[-6,6],[-1,0],[-1,1],[-18,3],[-1,0],[0,2],[0,4],[1,1],[1,5],[1,0],[2,2],[2,1],[2,1],[3,2],[6,2],[4,1],[5,2],[2,1],[3,1],[5,3],[4,2],[2,2],[2,1],[1,0],[2,-1],[6,-3],[4,-3],[3,-4],[5,-6],[4,-6],[8,-8],[2,-2],[10,-5],[14,-6],[15,-6],[13,-3],[9,-1],[3,1],[3,1],[1,0],[5,2],[8,6],[13,9],[14,9],[9,7],[9,6],[15,10],[12,8],[14,7],[3,3],[12,7],[9,8],[4,2],[2,1],[2,-1],[3,-1],[5,-4],[7,-5],[8,-4],[5,-1],[5,0],[6,2],[6,1],[5,1],[4,0],[5,2],[5,1],[4,3],[3,3],[2,4],[1,3],[1,4],[1,5],[1,6],[0,12],[0,13],[1,11],[1,9],[0,6],[2,6],[2,4],[1,2],[3,4],[5,7],[4,6],[4,6],[3,8],[2,4],[1,2],[2,7],[4,11],[2,5],[1,4],[0,5],[1,6],[1,6],[2,7],[2,6],[2,4],[1,5],[1,4],[0,7],[1,4],[1,4],[1,5],[1,5],[0,6],[0,5],[1,1],[0,1],[1,1],[3,2],[2,1],[2,1],[3,2],[2,3],[1,1],[3,3],[3,4],[1,2],[3,5],[4,6],[3,6],[0,1],[2,1],[2,2],[4,5],[2,4],[1,0],[0,2],[0,2],[1,2],[2,3],[2,3],[1,1],[3,4],[2,0],[4,2],[8,1],[1,1],[3,0],[3,1],[2,1],[2,1],[9,3],[4,3],[2,1],[1,2],[3,5],[4,4],[3,2],[3,1],[2,1],[3,2],[3,2],[2,2],[1,0],[3,2],[1,0],[1,1],[1,0],[1,1],[13,-3],[0,-1],[1,0],[2,0],[3,0],[2,0],[3,1],[3,2],[5,2],[3,1],[3,2],[2,2],[2,3],[2,5],[2,4],[1,5],[1,3],[0,4],[-1,3],[0,4],[1,2],[1,4],[2,5],[2,5],[2,4],[2,4],[2,3],[2,3],[2,5],[3,5],[2,4],[1,3],[0,4],[-1,4],[-1,5],[0,5],[0,6],[0,3],[0,1],[1,3],[0,4],[-1,4],[0,3],[-1,4],[0,3],[1,4],[1,5],[1,5],[0,4],[0,5],[0,4],[0,1],[0,5],[-1,4],[1,2],[0,7],[0,1],[1,2],[1,1],[0,1],[1,2],[0,1],[0,1],[0,2],[0,2],[1,2],[0,2],[0,1],[0,1],[-1,2],[0,1],[0,2],[-1,2],[0,2],[0,2],[-1,3],[0,2],[0,2],[0,1],[-1,2],[0,2],[-1,2],[0,2],[-1,2],[-1,2],[-1,3],[-1,1],[0,2],[0,2],[0,1],[0,1],[1,1],[0,2],[1,1],[0,1],[1,2],[1,2],[1,2],[1,3],[0,1],[1,2],[0,2],[1,3],[0,1],[0,2],[-1,2],[0,2],[-1,2],[-1,1],[0,2],[-1,1],[-1,1],[-2,2],[-2,2],[-1,2],[-1,3],[0,1],[0,1],[1,1],[1,2],[0,1],[1,2],[0,2],[0,1],[0,2],[0,2],[0,1],[0,2],[0,2],[-1,2],[0,2],[-1,3],[-1,3],[0,1],[1,1],[0,1],[0,1],[1,2],[1,1],[1,2],[1,1],[1,1],[1,1],[2,1],[1,2],[1,1],[1,1],[1,2],[0,1],[0,2],[0,2],[0,1],[0,2],[0,1],[1,2],[0,1],[1,1],[2,2],[1,1],[0,1],[0,1],[0,1],[-1,2],[0,1],[-1,1],[0,1],[0,1],[0,1],[0,1],[1,0],[1,1],[1,1],[2,1],[2,2],[1,1],[1,1],[4,2],[-1,0],[-1,0],[-1,0],[-1,0],[-50,0],[-1,0],[-32,0],[-42,1],[-5,0],[-1,0],[-2,0],[-2,0],[-1,0],[-2,0],[-2,0],[-1,0],[-1,0],[-24,0],[-1,0],[-1,0],[-1,0],[-18,0],[-21,1],[-17,0],[-1,0],[-2,0],[-2,0],[0,1],[0,1],[1,43],[0,2],[-1,5],[0,40],[1,32],[0,10],[0,1],[-1,2],[1,25],[0,25],[-1,13],[1,26],[0,46],[0,7],[0,16],[0,21],[0,1],[0,9],[0,14],[0,23],[0,67],[0,19],[0,47],[0,44],[-4,1],[0,22],[0,16],[0,6],[1,10],[-1,1],[1,1],[0,16],[0,12],[0,13],[0,4],[0,11],[1,2],[0,8],[-2,0],[-1,0],[-1,-1],[-2,0],[-2,1],[-1,1],[-1,0],[-1,0],[-1,0],[-2,0],[-1,2],[-2,2],[0,1],[-1,0],[-1,0],[0,1],[0,1],[-1,1],[0,1],[-1,0],[-1,0],[0,3],[0,1],[-1,1],[0,1],[-1,-1],[-1,0],[-1,0],[-1,2],[0,2],[0,1],[-1,2],[-1,2],[-1,2],[-1,0],[-1,0],[0,-1],[-1,1],[-1,0],[-1,0],[-1,1],[0,2],[0,1],[0,1],[-1,1],[-2,1],[-2,1],[-1,-1],[-2,0],[-21,-8],[-6,3],[-6,0],[-1,0],[-3,0],[-1,1],[-1,0],[-4,0],[-4,4],[-1,0],[-1,1],[-6,0],[-2,0],[-4,-5],[-5,-6],[-2,-1],[-4,-4],[-2,-2],[-1,-1],[-3,-1],[-1,0],[0,-1],[-1,0],[-1,-1],[-2,-1],[-2,0],[-1,0],[-7,-2],[-2,0],[-4,-1],[-4,-1],[-3,-2],[-1,-1],[-2,-2],[-4,-3],[-3,-2],[-2,-1],[-2,0],[-2,1],[-1,0],[-2,3],[-1,3],[0,10],[-6,5],[-12,-7],[-1,0],[-5,0],[-9,-9],[-2,-11],[-1,-2],[-5,0],[-23,13],[-1,1],[-6,-1],[-5,0],[-3,0],[-2,-1],[-1,0],[-2,0],[-3,0],[-3,0],[-2,0],[-2,0],[-1,-1],[-2,0],[-2,-1],[-3,-1],[-1,0],[-2,0],[-2,1],[-4,2],[-7,3],[-5,1],[-2,1],[-1,1],[-4,1],[-3,1],[-2,0],[-4,0],[-3,0],[-2,0],[-2,1],[-2,0],[-2,1],[-2,1],[-6,5],[-3,2],[-1,1],[-2,1],[-3,2],[-4,1],[-5,2],[-2,1],[-1,0],[-1,0],[-1,1],[-3,1],[-2,1],[-2,0],[-1,0],[-2,0],[-1,0],[-2,0],[-3,0],[-1,0],[-1,1],[-1,1],[-2,1],[-3,1],[-6,3],[-2,0],[-1,0],[-2,0],[-3,-1],[-2,-5],[-8,0],[-9,6],[-2,0],[-2,0],[-3,-1],[-2,-1],[-12,0],[-2,0],[-2,1],[-2,2],[-3,0],[-3,0],[-1,-1],[-2,0],[-4,-3],[-1,0],[0,-1],[-1,-1],[-2,-1],[0,-2],[-2,-2],[-1,-2],[-3,-3],[-1,-1],[-2,-1],[-1,0],[-4,0],[-2,0],[-2,-1],[-3,-1],[-2,0],[-2,-1],[-4,-2],[-8,-4],[-4,-1],[-1,-1],[-1,0],[-1,0],[-2,0],[-3,0],[-1,0],[-5,0],[-6,0],[-5,1],[-2,0],[-1,0],[-2,-1],[-1,0],[-2,0],[-1,0],[-1,1],[-2,-1],[-2,0],[-2,1],[-2,0],[-2,0],[-3,1],[-2,0],[-3,1],[-4,2],[-1,1],[-3,1],[-2,2],[-1,1],[-2,0],[-1,0],[-2,0],[-1,0],[-2,0],[-1,1],[-3,0],[-1,1],[-1,-1],[-2,0],[-1,-1],[-1,-1],[0,-1],[-2,-3],[0,-2],[-1,-2],[-1,-2],[-2,-2],[0,-1],[-1,-1],[-3,-2],[-5,-2],[-4,-1],[-2,-1],[-3,-1],[-1,0],[-1,0],[-1,-1],[-2,-1],[-1,0],[0,-1],[-2,-2],[-1,0],[-2,-1],[-2,-1],[-3,-1],[-1,0],[-1,0],[-1,0],[-2,0],[-1,0],[-2,-1],[-1,0],[-2,-1],[-1,-1],[-1,-2],[-2,-2],[-1,0],[-2,-1],[-1,-1],[-2,-1],[-1,-1],[-1,-2],[-1,-1],[0,-1],[0,-1],[0,-1],[0,-2],[0,-1],[-1,-2],[-2,-1],[-2,-1],[-2,-1],[-1,0],[-2,0],[-1,-1],[-1,-2],[-1,-1],[-1,-2],[-1,-3],[0,-1],[0,-1],[0,-1],[0,-1],[0,-2],[0,-3],[0,-1],[-1,-1],[-1,0],[-1,-2],[-2,-1],[-1,0],[-1,0],[-3,-2],[-3,-1],[2,-2],[0,-2],[-1,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-1,0],[-1,-1],[0,-1],[-1,-1],[-1,-2],[-1,-2],[0,-1],[-1,-1],[-1,0],[-1,-1],[-1,-1],[-1,-1],[-2,-1],[-3,-1],[-1,0],[-1,0],[-2,0],[-1,0],[-2,0],[-1,-1],[-1,-1],[0,-2],[-2,-2],[-2,-1],[-1,-2],[0,-1],[0,-2],[-1,-1],[-1,-2],[-2,-1],[-2,-1],[0,-1],[-3,-2],[-1,-1],[-1,0],[-2,0],[-2,-1],[-1,0],[-4,-4],[-4,-4],[-1,0],[-3,-3],[-2,-3],[-2,-2],[-12,2],[-3,2],[-4,0],[-4,2],[-3,3],[-4,2],[-4,1],[-3,2],[-9,5],[-5,5],[-6,5],[-3,6],[-2,3],[-1,3],[-1,2],[-1,2],[0,1],[0,1],[-1,2],[-1,1],[0,2],[-1,1],[-3,2],[-2,2],[-1,1],[-2,1],[-2,2],[-1,2],[-1,1],[-2,2],[-1,1],[-4,4],[-2,1],[-1,1],[-2,2],[-2,3],[-3,4],[-3,4],[-2,2],[-1,1],[-2,0],[-1,0],[-1,-2],[-1,-1],[-2,-1],[-2,-1],[-2,-1],[-1,0],[-1,0],[-1,0],[-3,-1],[-2,0],[-2,-1],[-2,-1],[-3,-1],[-2,0],[-3,-1],[-2,0],[-2,-1],[-2,0],[-2,0],[-3,1],[-3,0],[-4,1],[-3,-1],[-2,0],[-1,1],[-1,2],[-3,0],[-5,-1],[-7,0],[-1,0],[-1,0],[-4,4],[-2,0],[-1,0],[-1,0],[-1,-4],[-1,-2],[-2,-1],[-1,-1],[-1,-1],[-2,0],[-1,0],[-2,0],[-1,0],[-2,-1],[-1,1],[0,1],[-1,0],[-1,0],[-2,0],[-2,0],[-3,1],[-2,-1],[0,1],[0,2],[-1,1],[0,2],[-1,2],[-1,2],[-1,2],[-1,1],[-1,2],[-8,10],[-1,2],[1,3],[0,1],[-2,2],[-2,0],[-1,1],[-1,1],[0,2],[0,2],[-1,2],[-1,1],[0,2],[0,2],[0,3],[0,2],[2,0],[0,1],[1,2],[-1,2],[-1,1],[-1,2],[-1,2],[-2,0],[-1,1],[-1,2],[0,1],[0,1],[-1,2],[1,2],[1,2],[0,1],[1,2],[0,1],[0,1],[0,2],[-1,3],[0,2],[-1,2],[-1,3],[-1,1],[0,2],[-1,3],[0,2],[-1,3],[-1,3],[-1,3],[0,3],[-1,4],[0,4],[-1,2],[0,2],[-2,4],[0,2],[0,2],[-1,3],[-1,2],[0,2],[0,3],[-1,2],[0,2],[0,2],[-1,2],[-1,1],[0,2],[-1,1],[-1,2],[-7,32],[-1,0],[0,3],[-1,2],[0,3],[-1,2],[-1,1],[-1,1],[0,1],[0,3],[-1,3],[0,2],[-1,1],[-1,1],[0,2],[-1,3],[0,2],[1,2],[1,1],[1,1],[0,2],[-1,0],[-1,5],[0,1],[0,2],[-1,1],[0,1],[-1,2],[0,1],[-1,3],[0,2],[-1,0],[0,1],[-1,1],[-1,1],[-2,2],[-2,3],[0,3],[-2,3],[0,1],[0,1],[0,2],[1,2],[0,2],[0,1],[-1,2],[-3,5],[-1,3],[0,1],[0,2],[-1,0],[-1,3],[0,2],[-1,2],[1,2],[-1,1],[-1,2],[-1,2],[-1,3],[-1,2],[-1,2],[0,2],[-1,3],[-1,0],[-2,-1],[-2,0],[-1,0],[0,2],[-1,1],[-4,5],[-1,2],[0,1],[0,2],[-1,2],[0,2],[0,1],[0,1],[-1,0],[-1,2],[-1,2],[-1,1],[0,1],[0,1],[-1,1],[0,1],[-4,4],[-1,2],[0,1],[-1,0],[-1,1],[-1,2],[-1,1],[0,2],[0,1],[1,1],[0,2],[0,1],[0,1],[0,1],[-1,0],[-1,0],[-2,0],[-1,-1],[-1,-1],[-1,-1],[-2,-3],[-2,-1],[-1,0],[-2,0],[-1,-1],[-1,0],[-1,-2],[-3,-3],[-1,-2],[0,-1],[-1,-2],[-1,0],[-1,0],[-1,0],[-1,0],[-2,-1],[-1,-1],[-1,0],[-4,-3],[-1,0],[-1,0],[-2,3],[-2,2],[0,1],[0,1],[0,1],[0,5],[0,1],[0,1],[0,1],[0,2],[0,1],[0,1],[0,1],[-1,1],[0,2],[-1,1],[-1,2],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,2],[-1,2],[0,1],[1,0],[1,1],[3,0],[1,1],[2,2],[1,1],[1,0],[2,0],[3,1],[2,2],[1,0],[1,1],[1,2],[0,2],[1,2],[1,1],[0,1],[0,1],[-2,2],[-1,1],[-1,1],[-1,1],[0,2],[-1,2],[-1,0],[-4,4],[0,1],[-1,2],[0,2],[1,1],[0,1],[1,0],[1,1],[2,1],[2,1],[2,1],[0,1],[0,1],[-1,1],[-1,1],[0,2],[0,1],[0,3],[0,1],[0,1],[-1,1],[0,1],[-2,2],[-1,2],[-1,1],[0,2],[-2,6],[-1,2],[-1,1],[0,2],[-1,1],[-1,2],[-1,2],[-1,0],[-1,1],[-2,1],[-4,2],[-3,2],[-2,2],[-1,0],[-3,2],[-1,0],[-1,0],[-1,-1],[-1,-1],[-1,0],[-2,0],[-1,1],[-2,-1],[-1,-1],[-1,0],[-1,1],[-1,0],[-1,0],[0,-2],[-1,-1],[-1,0],[-3,3],[-3,3],[-2,1],[-1,1],[-1,2],[-1,1],[-1,1],[-3,3],[-1,1],[-2,1],[-1,1],[-1,1],[0,1],[-1,1],[-1,2],[0,1],[-1,2],[-1,1],[-1,2],[-1,1],[-1,1],[-2,1],[-1,1],[-1,0],[0,2],[-1,1],[-2,1],[0,1],[-1,0],[-1,1],[0,2],[-1,3],[-1,2],[0,1],[0,1],[-1,2],[-1,2],[-2,3],[-1,2],[-2,2],[-1,3],[-1,1],[0,1],[1,1],[0,1],[0,1],[1,1],[1,0],[2,2],[1,1],[1,1],[1,3],[0,1],[1,3],[0,3],[-1,1],[0,2],[-2,2],[0,1],[-1,1],[0,1],[-1,1],[-1,0],[0,2],[0,1],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,0],[-2,2],[0,1],[0,2],[-1,1],[-1,2],[-2,2],[-1,1],[-1,1],[-3,2],[-1,2],[0,1],[0,1],[0,2],[-1,1],[-1,0],[-2,-2],[-1,0],[-2,0],[-1,1],[-1,0],[0,1],[-1,1],[-1,0],[-1,-1],[0,-1],[1,-2],[1,-1],[-1,-1],[-1,-1],[-2,-1],[-2,0],[-1,1],[-2,2],[-2,1],[-2,1],[-1,0],[-2,0],[-2,0],[-1,1],[-1,1],[-2,1],[0,1],[-6,12],[3,14],[-5,15],[-7,35],[6,1],[1,0],[0,1],[0,1],[1,1],[-1,1],[0,1],[-1,1],[0,2],[-1,1],[-1,1],[1,2],[-2,2],[0,2],[1,2],[0,1],[-2,0],[-2,1],[-1,3],[-1,2],[-2,1],[1,2],[-3,2],[0,2],[1,2],[0,1],[-1,1],[-1,4],[-1,2],[-1,1],[-4,4],[0,1],[-1,1],[1,1],[0,1],[1,1],[0,1],[-1,1],[-2,0],[0,1],[-1,0],[0,1],[0,3],[0,1],[-1,0],[-1,0],[-3,5],[-1,1],[-1,0],[-1,0],[-2,2],[-1,1],[0,-1],[-2,0],[-1,0],[-1,1],[-1,7],[-1,3],[-2,3],[-1,3],[-1,1],[-2,1],[-3,2],[-1,1],[0,1],[-1,2],[-1,4],[-3,6],[-1,2],[-1,2],[-1,4],[1,2],[0,3],[-2,2],[-1,7],[0,3],[-1,3],[1,4],[-2,10],[-2,7],[0,6],[0,3],[-2,4],[-1,4],[0,2],[-1,5],[-1,3],[-1,4],[0,4],[-1,3],[-2,5],[-2,4],[-1,2],[-2,1],[-1,1],[-1,0],[0,2],[0,2],[0,2],[1,2],[0,2],[0,1],[-2,1],[-2,2],[-1,1],[0,2],[1,2],[-1,2],[-2,3],[-3,4],[-3,3],[-1,2],[-2,6],[-1,6],[-6,3],[-2,5],[-1,4],[-4,8],[-3,7],[-2,5],[0,6],[-1,3],[-2,8],[-2,3],[0,4],[-5,10],[-6,8],[-2,6],[-1,6],[-3,8],[-3,8],[-1,7],[-2,4],[0,3],[-2,3],[-1,3],[-4,-2],[-6,-1],[-5,-1],[-3,0],[-5,2],[-3,0],[-4,0],[-2,1],[-1,1],[-1,2],[0,2],[1,2],[-1,1],[-3,0],[-3,-1],[-4,-3],[-3,0],[-4,-1],[-3,-2],[-6,-1],[-3,-1],[-5,5],[-6,9],[-7,6],[-2,1],[-5,-1],[-3,-3],[-4,-6],[-1,-2],[-3,0],[-4,0],[-4,4],[-2,0],[-7,-4],[-5,-1],[-4,1],[-3,-3],[-1,-3],[-1,-2],[-3,-2],[-2,-3],[-3,-4],[-2,-2],[-3,-1],[-4,1],[-6,3],[-4,3],[-6,4],[-8,4],[-5,4],[-5,4],[-5,2],[-6,3],[-4,3],[-1,4],[-4,4],[-4,3],[-6,0],[-6,4],[-3,3],[-4,3],[0,4],[-4,4],[-1,2],[-2,1],[-2,1],[-2,1],[-1,2],[-2,4],[-1,3],[-2,4],[-1,3],[-1,3],[-1,2],[-2,2],[-1,0],[-19,-25],[-1,-1],[3,-4],[3,-5],[44,-59],[20,-52],[-14,-47],[-42,6],[-13,-21],[-11,-20],[-9,-15],[5,-1],[2,-29],[14,-11],[-29,-15],[-32,-56],[-16,-27],[-63,-112],[-39,-12],[-61,-19],[-24,-7],[-10,-3],[-7,-2],[-86,-27],[-4,-1],[-10,-4],[-5,-1],[-48,-15],[-2,0],[-31,-10],[-50,-16],[-1,2],[1,2],[1,3],[0,3],[1,1],[0,2],[1,1],[1,3],[0,4],[-2,5],[-3,4],[-2,3],[-3,4],[-4,2],[-2,4],[-2,2],[0,4],[-1,3],[0,2],[0,1],[-4,2],[-3,3],[-2,2],[-1,2],[-3,3],[0,2],[1,2],[1,3],[0,2],[0,2],[1,1],[2,2],[-3,1],[-3,3],[-1,4],[-1,3],[-4,3],[-3,3],[-1,1],[0,2],[0,1],[-1,1],[0,3],[1,2],[1,1],[-3,0],[0,2],[-1,2],[-2,2],[0,3],[-1,2],[0,1],[-2,1],[-2,-1],[-3,0],[-2,1],[-1,0],[-1,0],[-3,0],[-3,1],[-4,-2],[-3,-1],[-4,0],[-2,1],[-2,-1],[-4,-1],[-1,1],[-1,2],[-3,2],[-3,-2],[-3,3],[-5,2],[-3,-3],[-4,-4],[-4,1],[-4,2],[-2,3],[-5,-1],[-3,-1],[-5,1],[-2,2],[-2,3],[-1,0],[-7,3],[-6,1],[-4,1],[-2,4],[-2,2],[-2,0],[-2,0],[0,4],[-1,4],[-2,4],[-1,4],[-1,3],[3,3],[-1,3],[-2,3],[-1,4],[-2,5],[-2,2],[-2,3],[1,2],[-1,3],[0,2],[-1,1],[-6,5],[-4,1],[-4,2],[-4,2],[-1,0],[-3,-1],[-2,8],[1,3],[-2,2],[0,5],[1,4],[1,4],[-2,3],[-1,3],[0,1],[2,2],[1,2],[0,1],[1,2],[2,2],[2,2],[0,3],[1,2],[0,2],[-1,2],[-1,0],[-2,0],[-1,1],[-2,2],[0,1],[-1,2],[-1,0],[-1,0],[-1,1],[-1,0],[-1,1],[-1,0],[-2,1],[-1,0],[-1,0],[-1,0],[-1,3],[-2,0],[-2,1],[-1,0],[-2,1],[0,2],[-1,3],[-1,3],[-1,2],[-1,0],[-3,-1],[-2,0],[0,1],[0,1],[1,3],[1,2],[-1,2],[0,2],[0,2],[0,2],[1,3],[1,1],[0,1],[0,1],[-1,0],[-1,0],[-1,0],[-1,2],[0,2],[-1,0],[-1,0],[-2,2],[-2,3],[-2,0],[-1,0],[0,1],[0,2],[0,5],[-1,1],[-1,1],[0,2],[0,1],[-1,2],[-2,0],[-1,0],[-2,0],[-2,0],[-2,2],[-1,1],[-1,1],[0,2],[-1,1],[0,1],[-2,3],[0,2],[1,0],[-2,2],[0,2],[0,1],[-1,1],[1,1],[2,1],[0,1],[-2,1],[0,1],[-1,1],[0,2],[0,1],[-2,1],[-1,1],[0,2],[-2,0],[0,2],[-1,1],[-2,0],[-3,1],[-2,0],[-1,1],[-1,2],[-1,2],[-1,2],[-1,2],[-2,2],[-2,1],[-1,0],[0,1],[-1,2],[-3,1],[0,1],[1,2],[0,2],[0,1],[1,1],[-1,1],[-1,1],[1,2],[-1,3],[2,0],[0,1],[2,5],[0,1],[-1,1],[0,1],[0,1],[0,3],[1,2],[0,1],[0,1],[0,1],[-1,1],[1,1],[0,1],[1,1],[0,2],[-1,1],[0,2],[-1,2],[-1,2],[0,2],[-1,2],[-1,2],[-1,1],[-2,0],[-1,1],[-2,0],[-1,1],[-3,1],[-4,2],[-4,2],[-3,2],[-3,2],[-3,2],[0,3],[-1,3],[-2,2],[-3,2],[-3,2],[-2,2],[-3,1],[-1,1],[0,1],[2,1],[0,1],[0,1],[0,1],[-2,2],[-2,0],[-2,1],[-1,1],[-1,2],[-1,2],[-1,2],[0,2],[1,2],[0,1],[-2,0],[-4,1],[0,1],[-1,3],[-1,0],[-2,0],[-2,0],[-2,1],[-1,3],[-1,2],[-2,1],[-1,2],[-2,2],[-2,3],[0,1],[-2,1],[-2,1],[-1,0],[-2,0],[-1,1],[-2,0],[-1,0],[-1,0],[-3,0],[-1,1],[-1,1],[-2,2],[-2,2],[-1,2],[-1,1],[-3,-1],[-1,1],[-2,3],[-2,3],[0,3],[-1,2],[-1,1],[-2,1],[-1,2],[0,1],[-1,1],[1,2],[-2,1],[0,1],[1,1],[1,2],[-1,2],[-1,1],[-1,0],[-2,1],[-1,1],[-2,-1],[-1,-1],[0,-1],[0,-1],[0,-2],[-1,0],[0,-1],[-1,-1],[-2,0],[-1,0],[-1,0],[-1,-1],[-1,0],[-2,0],[-1,0],[-2,0],[-2,0],[-2,-2],[0,2],[-2,0],[-1,-1],[-2,1],[-1,2],[-1,1],[-3,0],[-1,1],[-2,1],[0,1],[0,2],[0,2],[1,2],[1,2],[-1,3],[-1,2],[-2,1],[-3,1],[-3,0],[-2,1],[-3,1],[-2,1],[2,3],[1,3],[1,1],[0,3],[0,1],[-1,2],[0,1],[-1,3],[-1,-1],[-1,-1],[-1,-1],[-2,0],[-1,1],[-2,1],[-1,2],[-8,0],[-6,0],[-6,0],[-6,0],[-6,0],[-2,0],[-8,0],[-6,0],[-6,0],[-7,0],[-9,0],[-10,0],[-6,0],[-6,0],[-4,0],[-3,0],[-4,0],[-5,0],[-4,0],[-3,0],[-4,0],[-2,0],[-2,0],[-3,0],[-5,1],[-8,0],[-3,0],[-7,-1],[-1,0],[-8,0],[-9,0],[-3,0],[-6,0],[-6,1],[-9,0],[-8,-1],[-8,0],[-5,0],[-2,1],[-8,-1],[-6,1],[-10,0],[-2,0],[-7,0],[-7,0],[-6,0],[-5,0],[-2,0],[-2,0],[-2,0],[-2,0],[-6,-1],[-4,1],[-3,0],[-7,0],[-8,1],[-1,0],[-1,0],[-5,0],[-6,0],[-5,1],[-1,0],[-6,-1],[-7,1],[-10,0],[-1,0],[-5,0],[-6,0],[-5,0],[-1,0],[-4,1],[-7,0],[-1,0],[-4,0],[-5,-1],[-5,0],[-6,0],[-5,0],[-4,0],[-2,0],[-5,0],[-5,0],[-9,0],[-4,0],[-5,0],[-6,1],[-8,1],[-9,2],[-2,0],[-5,0],[-8,1],[-2,0],[-3,0],[-4,0],[-2,0],[-3,0],[-10,-1],[-19,0],[-14,0],[-15,0],[-13,-1],[-8,0],[-6,0],[-6,0],[-9,1],[-6,0],[-8,0],[0,-8],[0,-5],[0,-3],[-1,-28],[-24,1],[-18,0],[-6,1],[-22,1],[-15,1],[-18,-1],[-5,0],[-19,0],[0,-44],[0,-1],[0,-19],[0,-30],[-12,-1],[-1,0],[-42,0],[-3,0],[-16,0],[-19,0],[-60,0],[-14,0],[-13,0],[-29,0],[-11,0],[-3,0],[-13,-1],[-11,0],[-17,0],[-17,0],[-24,0],[-7,0],[-12,-1],[-11,-2],[-2,0],[-14,0],[-14,-1],[-119,-1],[-1,0],[-8,0],[-42,-1],[0,-44],[0,-3],[0,-20],[1,-9],[0,-16],[-19,1],[-19,-1],[-2,0],[-45,-1],[-2,0],[-3,0],[-9,0],[-46,0],[-5,0],[-9,0],[-16,1],[-34,1],[-23,2],[-8,0],[-13,1],[-4,0],[-30,1],[-2,0],[-6,0],[-2,0],[-1,0],[-4,-1],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[1,-2],[-1,-4],[0,-2],[-1,-1],[-1,0],[-2,1],[-2,1],[-8,0],[-3,-1],[-1,-1],[-1,-2],[0,-2],[-2,-5],[-1,-2],[0,-4],[-1,-3],[-1,-1],[-1,-1],[-1,0],[-1,1],[-2,1],[-1,1],[-2,0],[-1,0],[-2,1],[-1,-1],[-2,0],[-1,-1],[-1,-2],[0,-2],[-1,-3],[-1,-1],[0,-2],[-1,-4],[0,-2],[0,-4],[-1,-3],[-1,-2],[0,-2],[-1,-1],[-2,-1],[-2,0],[-1,1],[-2,2],[-2,4],[-5,6],[-4,2],[-3,3],[-3,4],[-3,4],[-3,3],[-1,2],[-1,0],[0,-1],[-1,0],[0,-1],[2,-3],[2,-2],[1,-7],[1,-4],[0,-6],[-1,-3],[-1,-1],[0,-1],[1,-1],[2,-1],[1,0],[2,-1],[1,-1],[1,-1],[1,-1],[2,1],[1,-1],[0,-2],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[0,-1],[2,-1],[0,-1],[1,-1],[-1,-1],[-2,0],[0,-1],[-2,-1],[0,-1],[1,0],[1,-1],[0,-1],[2,-2],[0,-1],[1,-1],[0,-2],[0,-1],[1,-1],[1,0],[2,1],[2,0],[1,0],[1,-1],[1,-2],[0,-1],[3,-1],[3,-3],[0,-1],[1,-1],[0,-1],[0,-1],[1,0],[0,-2],[2,-1],[0,-1],[1,-1],[1,-1],[1,-1],[-1,-1],[4,-1],[1,-1],[-1,0],[-1,-1],[0,-1],[1,-1],[4,0],[1,-2],[1,-1],[3,-1],[1,0],[0,1],[0,1],[2,1],[4,0],[1,-1],[2,0],[0,-1],[1,-1],[3,0],[2,-1],[1,-1],[0,-1],[1,-1],[3,0],[1,-1],[1,0],[1,0],[1,0],[0,-1],[1,-2],[1,0],[2,0],[2,0],[2,-1],[1,0],[0,-1],[2,0],[1,-1],[1,-1],[2,0],[2,-2],[0,-1],[-1,-1],[2,-1],[1,-2],[1,-1],[1,-4],[1,-1],[0,-2],[1,-2],[1,-2],[1,-1],[2,-1],[2,1],[3,-2],[1,-1],[1,-2],[0,-1],[0,-2],[3,-2],[0,-2],[1,0],[1,1],[1,-1],[1,1],[1,0],[1,-1],[1,-2],[2,-1],[1,-1],[0,-1],[0,-1],[2,0],[1,-1],[1,-1],[1,-1],[0,-1],[1,0],[0,-1],[2,-2],[2,-1],[1,0],[2,1],[0,1],[2,0],[1,0],[2,0],[0,-2],[-1,-1],[1,-1],[2,0],[2,0],[1,0],[0,-1],[0,-1],[1,-1],[1,0],[1,-1],[1,0],[2,1],[0,-1],[1,0],[1,-1],[0,-1],[1,0],[1,1],[1,-1],[0,-1],[0,-1],[0,-1],[3,0],[2,-1],[2,-1],[0,-1],[0,-1],[-1,0],[3,-3],[1,-1],[0,-2],[1,-1],[1,0],[0,-1],[1,0],[0,-1],[1,-1],[2,0],[2,-1],[1,-1],[0,-2],[1,-1],[0,-1],[1,-1],[0,-3],[-1,0],[1,-1],[0,-1],[1,-2],[1,0],[1,-1],[2,-1],[0,-1],[0,-2],[-1,0],[-1,-1],[0,-1],[2,0],[2,0],[0,-1],[-1,-1],[0,-1],[0,-1],[2,-1],[2,-1],[0,1],[1,0],[1,-1],[-1,-1],[0,-1],[1,0],[0,-1],[2,1],[0,-1],[-1,0],[0,-1],[2,-1],[1,-1],[0,-1],[1,0],[0,1],[0,1],[1,0],[2,0],[1,0],[0,-2],[1,0],[2,-1],[-1,-1],[0,-1],[-1,0],[-1,0],[0,-1],[1,-2],[0,-1],[2,0],[3,0],[1,0],[2,-2],[1,0],[1,-2],[1,0],[0,-2],[0,-2],[0,-1],[1,0],[1,-1],[1,-1],[0,-2],[0,-3],[0,-1],[-1,-1],[0,-1],[0,-1],[1,0],[2,0],[0,-1],[2,-2],[0,-1],[1,0],[1,0],[0,-1],[0,-2],[1,-1],[-1,-1],[-1,-1],[1,-2],[1,0],[1,1],[2,-1],[2,-1],[1,-1],[1,0],[1,-1],[1,-6],[0,-7],[1,-6],[-1,-1],[-1,-1],[-1,0],[-4,0],[-1,0],[0,-1],[1,-2],[1,0],[2,0],[1,-1],[0,-1],[1,-1],[1,0],[1,1],[1,0],[0,-1],[-1,-1],[0,-1],[0,-1],[-1,-1],[0,-1],[1,-1],[2,0],[0,1],[1,0],[0,3],[1,1],[1,-1],[0,-2],[-1,-1],[0,-1],[1,0],[1,0],[1,0],[1,0],[0,-1],[-1,-1],[0,-1],[0,-1],[0,-1],[1,0],[0,1],[0,1],[1,0],[1,1],[1,1],[0,-1],[0,-1],[1,0],[1,0],[0,-2],[0,-1],[1,0],[1,0],[1,0],[1,0],[0,-2],[1,-2],[1,0],[1,1],[0,-1],[1,-1],[4,0],[2,-1],[2,0],[0,-2],[0,-1],[0,-1],[0,-2],[2,0],[1,-2],[1,-1],[0,-2],[1,-1],[2,0],[1,-1],[-1,0],[0,-1],[1,-1],[0,-2],[1,0],[1,-1],[1,-1],[-2,-1],[0,-1],[-2,0],[0,-1],[1,-1],[1,-1],[2,0],[-1,-2],[1,0],[1,-2],[2,0],[1,-1],[2,-2],[1,-2],[3,-3],[0,-1],[2,0],[0,-1],[0,-1],[1,-1],[0,-2],[0,-1],[0,-1],[1,0],[0,-2],[-1,0],[0,-1],[0,-1],[1,0],[1,0],[0,-1],[1,-2],[1,-1],[4,-3],[0,-1],[0,-1],[0,-1],[-2,0],[-1,-1],[-1,-2],[-1,0],[-1,0],[0,-1],[1,-1],[1,-1],[0,-2],[4,0],[0,-1],[1,-1],[0,-1],[1,0],[1,-1],[1,-1],[-1,-1],[0,-1],[1,0],[1,0],[1,-1],[1,0],[0,-1],[0,-1],[0,-1],[-1,0],[0,-1],[4,-8],[0,-1],[3,-2],[1,0],[0,-1],[-2,-1],[0,-1],[0,-1],[0,-1],[2,0],[1,-1],[1,0],[-1,-2],[1,0],[0,-1],[2,0],[1,-1],[1,0],[0,-2],[2,-1],[0,-1],[1,-1],[2,-1],[3,-3],[0,-1],[0,-3],[0,-1],[-1,0],[-3,-1],[0,-1],[0,-1],[2,-1],[3,-1],[3,-2],[1,0],[1,0],[1,-1],[1,-2],[2,-2],[0,-1],[2,-4],[1,0],[1,-3],[0,-2],[0,-2],[-1,0],[-1,1],[-3,2],[-1,-1],[0,-1],[0,-1],[1,-1],[0,-2],[3,-2],[1,0],[1,-1],[0,-1],[1,-1],[0,1],[1,1],[1,0],[-1,-3],[-1,0],[0,-1],[3,-1],[2,0],[0,-1],[1,-2],[1,0],[0,-1],[1,-1],[3,1],[1,-1],[0,-1],[1,0],[0,-1],[0,-1],[1,0],[0,-2],[0,-1],[1,-1],[-1,-2],[1,0],[1,-1],[1,0],[1,-1],[0,-1],[1,-1],[0,-2],[3,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-1],[0,-1],[1,-1],[2,-2],[1,0],[1,-1],[0,-1],[-1,-1],[1,-1],[2,0],[2,-2],[2,-1],[3,-1],[1,0],[1,-2],[1,0],[5,-1],[2,-4],[0,-1],[0,-1],[-1,-1],[0,-1],[-2,-2],[0,-1],[0,-1],[0,-1],[2,-1],[1,-2],[-1,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,1],[-1,0],[0,-1],[-3,0],[-3,-3],[1,-1],[-1,-1],[1,-1],[1,1],[0,-1],[2,-2],[0,-1],[-1,-1],[2,-2],[2,-2],[1,0],[0,1],[1,0],[1,-1],[3,-3],[0,-1],[-1,0],[1,-1],[2,0],[2,-1],[1,0],[1,0],[2,-2],[1,-1],[1,1],[1,-1],[1,0],[1,0],[0,-1],[-1,0],[0,-2],[1,-1],[1,-1],[0,-1],[0,-1],[-1,-1],[1,-1],[1,-2],[1,0],[0,1],[2,0],[0,-1],[2,0],[1,0],[1,0],[0,1],[2,2],[1,0],[1,0],[1,0],[1,0],[1,1],[1,0],[1,-2],[1,0],[2,-3],[2,1],[0,1],[1,-1],[2,-1],[0,-1],[0,-3],[0,-1],[2,-2],[2,-1],[2,-3],[2,-2],[1,-1],[-1,-1],[0,-1],[2,-2],[4,-2],[0,-1],[-1,-2],[0,-1],[3,-3],[0,-1],[1,0],[0,-1],[-1,0],[-2,-1],[0,-1],[1,-1],[2,0],[1,-1],[0,-1],[1,-1],[2,-1],[0,-1],[0,-2],[1,0],[0,-2],[1,-1],[1,0],[3,-1],[3,-1],[2,0],[0,-1],[0,-2],[-1,-1],[-2,0],[-2,0],[-1,1],[-2,-1],[0,-1],[0,-1],[-1,-3],[-1,-1],[0,-2],[-1,-2],[0,-3],[0,-2],[1,-1],[0,-1],[1,-1],[0,-2],[1,-1],[0,-1],[-1,0],[0,-1],[1,0],[1,-1],[0,-1],[-1,-1],[-1,0],[0,-1],[-1,-1],[-1,-1],[1,0],[0,-1],[2,0],[1,0],[0,-1],[0,-2],[1,-1],[1,1],[2,-1],[2,0],[1,-1],[0,-1],[-1,0],[-1,-1],[1,-2],[1,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-2],[1,-1],[1,-2],[1,0],[1,-1],[1,0],[1,1],[1,1],[1,1],[1,0],[0,1],[0,2],[1,0],[2,-1],[1,-2],[-1,-1],[0,-1],[3,0],[3,-4],[1,0],[2,-2],[3,0],[1,0],[0,-2],[0,-2],[0,-2],[1,-1],[0,-1],[-2,-1],[2,-1],[1,0],[1,0],[1,-1],[2,0],[2,0],[1,-1],[2,-1],[1,0],[2,1],[0,-2],[1,-2],[2,0],[1,0],[2,-1],[0,-1],[3,0],[1,-2],[1,0],[2,-1],[1,0],[1,0],[1,0],[0,-2],[1,0],[9,-13],[1,-2],[1,0],[-1,-2],[1,-1],[0,-2],[1,-1],[1,-1],[1,-2],[0,-2],[0,-1],[1,0],[1,-1],[1,2],[1,0],[3,-2],[-1,-1],[1,0],[1,0],[1,-1],[1,0],[2,0],[1,1],[1,0],[1,0],[1,-1],[-1,-2],[0,-1],[-2,-1],[0,-1],[1,0],[0,-1],[-1,-1],[0,-1],[1,0],[1,0],[1,-2],[2,-1],[2,0],[1,0],[2,0],[1,-1],[2,-2],[1,-1],[0,-1],[1,0],[1,0],[1,-2],[1,0],[1,-1],[2,-1],[1,1],[1,1],[0,1],[1,0],[0,-1],[0,-2],[1,0],[2,0],[0,-2],[1,0],[1,1],[1,0],[0,-1],[3,-3],[0,-1],[0,-1],[1,-2],[1,0],[1,-1],[0,-1],[0,-1],[0,-1],[2,-1],[2,1],[1,0],[1,0],[1,0],[1,0],[1,-1],[0,-2],[0,-1],[0,-2],[1,0],[0,-2],[-1,-1],[0,-2],[1,-1],[0,-1],[0,-1],[0,-1],[1,0],[21,-19],[1,-1],[4,-2],[2,0],[1,-1],[1,0],[2,0],[1,-2],[0,-1],[-1,0],[-1,-1],[0,-1],[0,-1],[3,-1],[0,-1],[1,-1],[0,-1],[1,-1],[2,0],[0,-2],[1,0],[1,0],[2,-1],[1,-2],[2,1],[0,-1],[1,-1],[0,-1],[0,-1],[-1,-1],[1,-1],[0,-1],[0,-1],[1,0],[2,0],[1,0],[1,0],[3,-1],[2,-2],[0,-3],[0,-1],[-3,-5],[0,-1],[1,-1],[1,-1],[3,0],[0,-1],[2,0],[1,-1],[0,-2],[2,-1],[1,0],[0,-1],[2,0],[1,1],[0,1],[15,0],[0,-1],[3,-1],[1,0],[0,-2],[2,-1],[0,1],[3,2],[1,0],[2,0],[1,-1],[1,-1],[1,1],[1,0],[2,-2],[0,-1],[0,-2],[0,-2],[0,-1],[0,-1],[0,-1],[1,-1],[2,0],[3,0],[1,-1],[1,-1],[1,-1],[0,-2],[-1,-3],[-1,0],[0,-1],[1,-1],[1,0],[1,0],[1,0],[1,-1],[2,0],[4,-1],[1,-2],[3,-1],[2,-2],[1,-1],[3,-2],[2,-1],[4,-1],[2,0],[3,0],[3,1],[2,0],[2,0],[2,-2],[3,-3],[3,-1],[2,-2],[3,-2],[2,0],[6,-1],[2,-1],[2,-1],[4,-2],[3,-2],[2,-3],[1,-2],[1,-1],[9,-3],[3,-2],[4,-1],[3,-4],[3,-2],[4,-3],[6,-4],[1,-1],[2,-1],[2,-1],[1,-1],[1,-2],[0,-2],[1,-1],[5,-2],[2,-1],[1,-1],[1,-2],[1,-1],[1,0],[3,-1],[2,-3],[2,-2],[2,-3],[2,-1],[3,0],[2,-1],[1,-1],[1,-1],[0,-1],[-1,-1],[0,-1],[1,-1],[2,1],[2,-1],[2,0],[1,0],[4,-4],[1,-1],[0,-1],[1,-4],[0,-2],[0,-1],[0,-1],[-1,0],[0,1],[-1,-1],[0,-1],[1,0],[2,0],[1,-1],[1,-1],[0,-1],[-2,-1],[0,-2],[1,-1],[1,0],[1,-1],[2,2],[1,0],[1,0],[1,1],[3,-2],[1,0],[1,-3],[1,-1],[3,-1],[0,-2],[-1,-2],[0,-1],[2,-1],[2,0],[3,1],[2,-1],[1,0],[1,-2],[0,-2],[0,-1],[-1,0],[-1,0],[-1,-1],[0,-2],[0,-3],[1,0],[1,0],[1,0],[0,1],[0,2],[0,1],[1,0],[1,-1],[1,-1],[2,0],[1,-1],[2,-3],[3,-1],[3,0],[0,-1],[1,0],[-2,-3],[-1,-1],[0,-1],[2,0],[1,2],[1,0],[1,-1],[1,-1],[1,-1],[1,-1],[-1,-1],[-2,0],[0,-1],[0,-1],[0,-1],[2,0],[0,1],[3,0],[2,0],[1,0],[3,-1],[1,-1],[2,-1],[5,-1],[4,-2],[2,-1],[2,-2],[2,-2],[3,-4],[3,-1],[0,-2],[1,0],[-1,-1],[1,-2],[1,-2],[1,-2],[2,-7],[0,-6],[1,-4],[0,-2],[0,-1],[-1,-1],[-1,-1],[-1,0],[-1,-3],[0,-2],[1,-1],[1,0],[1,1],[2,2],[2,2],[1,0],[1,-1],[1,-1],[1,-2],[1,-3],[1,-2],[0,-1],[0,-1],[2,-9],[0,-3],[0,-3],[2,-2],[0,-2],[0,-1],[-1,-1],[-1,-1],[-1,0],[1,-1],[2,-1],[1,0],[1,0],[1,0],[1,-2],[1,0],[1,1],[1,0],[1,-1],[1,-1],[1,-4],[0,-2],[1,-2],[0,-3],[0,-1],[2,-3],[0,-2],[0,-1],[1,-1],[1,-1],[0,-1],[0,-1],[3,0],[3,-2],[3,-1],[2,0],[2,-1],[0,-3],[0,-1],[2,-3],[5,-2],[2,-2],[0,-1],[0,-1],[2,-1],[0,-1],[3,-4],[0,-1],[2,-2],[0,-3],[2,-3],[1,-1],[1,-2],[0,-1],[0,-3],[0,-1],[1,0],[1,-1],[0,-1],[0,-2],[2,-2],[0,-1],[-1,-1],[0,-1],[1,-1],[0,-5],[1,-4],[1,-2],[2,-5],[0,-2],[1,-2],[-1,-5],[1,-4],[-1,0],[-2,0],[1,-1],[1,-1],[1,0],[0,-1],[-1,-1],[0,-2],[0,-1],[2,0],[0,-2],[1,-1],[3,0],[1,1],[0,1],[0,1],[-1,2],[1,0],[0,1],[1,-1],[1,1],[1,0],[1,-3],[2,0],[1,0],[3,-3],[1,-2],[1,0],[1,-1],[5,-3],[0,-2],[1,-1],[0,-2],[0,-3],[1,-2],[1,-3],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[1,-2],[1,-2],[1,-3],[1,-2],[1,-3],[1,-4],[0,-4],[0,-1],[0,-1],[0,-1],[1,-1],[1,-1],[2,0],[1,-1],[1,-1],[1,-1],[0,-1],[0,-1],[-1,-2],[0,-2],[2,-1],[2,-3],[2,-3],[1,-1],[1,-1],[1,-1],[1,-3],[2,-1],[3,-10],[0,-1],[3,-4],[1,-2],[2,-5],[0,-1],[1,-4],[1,-3],[1,-1],[0,-2],[0,-1],[1,-1],[1,-5],[0,-5],[0,-3],[-1,-3],[1,-2],[0,-2],[-1,-3],[0,-6],[0,-11],[0,-9],[-1,-8],[0,-4],[0,-4],[0,-7],[-1,-3],[-1,-2],[0,-3],[-2,-4],[-1,-3],[0,-1],[-1,-4],[-2,-6],[-1,-2],[0,-2],[-2,-5],[-2,-3],[-2,-2],[-1,0],[-1,0],[-1,1],[-2,1],[-1,1],[-1,0],[-1,-1],[2,-4],[0,-1],[0,-1],[2,-2],[4,-2],[1,-2],[1,-2],[4,-7],[1,-1],[1,0],[1,2],[2,1],[1,0],[1,-2],[0,-1],[0,-1],[-2,-2],[-1,-3],[1,-1],[1,-3],[1,-3],[0,-1],[2,-3],[2,-2],[0,-2],[0,-1],[0,-1],[1,-1],[1,-3],[1,-1],[2,-2],[0,-2],[0,-3],[1,-1],[0,-2],[0,-1],[0,-1],[0,-1],[2,-2],[1,0],[1,0],[1,0],[0,-1],[1,-3],[2,-4],[2,0],[1,-1],[1,-1],[1,-1],[1,0],[1,-1],[1,0],[1,0],[1,1],[1,1],[0,1],[2,0],[3,-1],[1,0],[1,1],[1,1],[2,4],[-1,2],[1,1],[1,1],[0,1],[-1,1],[-3,3],[-1,2],[-2,1],[-2,0],[-2,-1],[-1,1],[-1,1],[0,3],[0,3],[0,2],[-3,6],[-4,5],[-1,2],[0,2],[0,1],[2,1],[6,2],[1,2],[1,0],[1,1],[-1,3],[-1,2],[0,1],[1,2],[4,6],[1,1],[0,1],[-1,4],[0,6],[0,6],[0,3],[-1,2],[-1,1],[-3,3],[-2,2],[0,1],[0,2],[-2,8],[-1,2],[-1,2],[0,3],[1,2],[2,3],[1,1],[1,0],[2,-1],[1,-2],[2,-1],[2,-1],[1,0],[1,0],[1,-1],[1,-2],[1,0],[1,0],[0,2],[1,0],[2,0],[0,-1],[-2,-1],[-1,-1],[1,-1],[1,0],[1,0],[2,3],[1,-1],[1,-2],[3,-5],[2,-3],[2,-3],[2,-2],[0,-1],[3,-2],[1,0],[3,-3],[3,-3],[2,-3],[0,-2],[1,-1],[2,-4],[1,-1],[0,-1],[-1,0],[-1,0],[-1,-1],[-1,-6],[0,-3],[1,-2],[2,-4],[1,0],[2,-1],[0,-2],[-2,-2],[-1,-1],[-5,1],[-5,-1],[-3,0],[-2,-1],[-1,0],[-1,1],[-1,0],[-3,1],[-2,0],[-2,0],[-3,-3],[-1,-1],[0,-1],[2,-2],[0,-1],[-1,-1],[-1,-1],[-2,0],[-1,-1],[-1,-2],[-2,-2],[-1,-2],[-1,-3],[-1,-2],[0,-3],[1,-3],[1,-2],[1,0],[1,0],[1,1],[-1,2],[1,4],[2,5],[2,3],[3,2],[2,2],[2,1],[3,1],[4,2],[4,1],[5,0],[5,0],[8,-1],[12,-3],[7,-3],[2,-1],[3,0],[1,-1],[4,-5],[4,-2],[4,-3],[3,-3],[2,-3],[4,-2],[2,-1],[2,-2],[1,-1],[2,-2],[2,-2],[3,-4],[2,-1],[2,-2],[2,-4],[3,-3],[2,-1],[2,0],[1,-1],[3,-4],[2,-2],[1,-2],[1,-2],[0,-19],[43,-118],[35,0],[0,-1],[0,-1],[-1,-2],[0,-2],[-1,-3],[0,-4],[0,-5],[-1,-4],[-1,-3],[-1,-5],[-1,-5],[0,-1],[-2,-3],[-1,-4],[-3,-5],[-1,-2],[0,-3],[2,-3],[1,0],[1,0],[9,1],[6,-1],[3,-2],[1,1],[0,1],[0,1],[0,3],[0,2],[0,1],[1,0],[1,-1],[1,1],[1,1],[1,0],[1,-1],[1,-1],[1,-2],[1,0],[0,2],[0,1],[0,1],[0,3],[1,0],[1,0],[3,-2],[2,-2],[1,-1],[2,-2],[0,-1],[1,0],[0,-2],[2,-2],[2,-4],[0,-2],[-1,-4],[-1,-2],[0,-4],[0,-1],[3,-5],[0,-4],[-1,-2],[-1,-4],[-2,-4],[0,-1],[0,-4],[-1,-3],[1,0],[0,-3],[0,-2],[1,-3],[1,-1],[2,1],[3,2],[1,1],[1,2],[1,2],[1,2],[3,3],[0,1],[-1,1],[0,1],[-1,1],[-1,0],[1,1],[1,0],[1,-1],[2,0],[4,2],[3,-2],[3,0],[2,-2],[2,-1],[1,-1],[1,-3],[3,-3],[1,-1],[4,-4],[1,-2],[1,-2],[0,-4],[3,-2],[1,-1],[1,2],[3,0],[1,1],[0,1],[2,1],[1,1],[0,2],[1,1],[3,2],[1,1],[0,1],[0,3],[1,2],[4,3],[1,2],[1,2],[5,5],[1,0],[-1,-1],[-2,-8],[-1,-3],[-2,-3],[-2,-9],[1,-8],[-1,-3],[0,-4],[1,-6],[-1,-1],[1,-3],[1,0],[1,-1],[1,-1],[0,-1],[1,-2],[3,-6],[1,-1],[1,-3],[0,-1],[2,-2],[0,-1],[-1,0],[1,-2],[0,-4],[0,-2],[1,-1],[1,-1],[0,-2],[1,-2],[2,-3],[0,-2],[1,-1],[0,-2],[1,-3],[0,-2],[2,-2],[1,-1],[3,-1],[4,-2],[0,-1],[0,-1],[1,-1],[0,-2],[0,-1],[0,-1],[1,-2],[1,-2],[0,-1],[0,-1],[1,-2],[3,-2],[1,-1],[-1,-3],[1,-3],[2,-3],[0,-2],[1,0],[3,-4],[1,-2],[2,-4],[0,-1],[1,-2],[1,-1],[2,0],[1,0],[0,-2],[0,-1],[1,-2],[0,-4],[0,-2],[1,-2],[1,-1],[0,-1],[0,-2],[1,-3],[1,-2],[2,-2],[0,-1],[0,-4],[1,-2],[1,0],[2,-1],[1,-1],[1,-2],[0,-1],[5,-2],[2,-1],[1,-1],[1,0],[0,-2],[-1,-6],[0,-2],[3,-5],[1,-3],[1,-3],[3,-4],[2,-3],[3,-2],[2,-3],[0,-1],[-1,-2],[0,-1],[2,-2],[1,-2],[1,-1],[3,0],[3,0],[1,-1],[1,-1],[2,-7],[1,-3],[3,-4],[2,-1],[1,-1],[1,0],[2,0],[1,0],[4,-3],[3,-2],[1,-1],[3,-1],[0,-1],[1,-1],[0,-1],[1,-1],[0,-3],[-1,-3],[0,-1],[1,-2],[1,-2],[1,-1],[0,-4],[0,-2],[1,-1],[6,-8],[1,-1],[3,-2],[2,-2],[1,0],[2,-1],[3,-3],[0,-1],[0,-6],[1,0],[0,-1],[0,-2],[0,-1],[-1,-5],[-1,-1],[-3,-5],[0,-1],[0,-2],[0,-1],[1,-1],[7,-5],[1,-2],[1,0],[1,1],[0,1],[0,1],[-1,2],[-1,2],[3,-2],[1,-2],[0,-1],[-2,-2],[0,-1],[1,0],[2,0],[0,-1],[0,-1],[5,2],[2,1],[3,-1],[1,-2],[1,-1],[1,-1],[2,-2],[3,-3],[0,-2],[-1,-1],[-1,-1],[0,-1],[-1,-5],[-1,-3],[0,-2],[0,-1],[1,-2],[2,-3],[3,-2],[1,-1],[1,0],[1,2],[5,4],[3,0],[2,-1],[0,1],[1,0],[2,0],[1,0],[1,-1],[1,-1],[0,-4],[1,-1],[0,-1],[-1,-1],[0,-1],[1,0],[0,1],[1,1],[1,0],[0,-1],[3,-3],[2,-4],[2,-4],[2,-2],[4,-5],[4,-3],[7,-11],[0,-1],[2,-1],[1,-1],[1,-2],[1,0],[1,-2],[1,-1],[3,-1],[1,-1],[0,-2],[0,-1],[0,-1],[-1,0],[-1,2],[-1,0],[0,-3],[-1,-2],[0,-2],[1,-2],[-1,-1],[-1,-1],[-1,1],[-1,0],[-1,1],[-3,0],[0,1],[-1,1],[-2,2],[0,2],[-1,1],[-1,1],[-1,0],[0,-1],[2,-3],[1,-2],[1,-2],[3,-5],[0,-1],[-1,0],[-4,4],[-1,4],[-1,2],[-1,0],[-1,-1],[0,-2],[2,-3],[0,-2],[1,-3],[-1,1],[-2,2],[-1,3],[-5,5],[-1,0],[-1,0],[-1,-1],[0,-1],[1,-1],[4,-8],[0,-2],[1,-2],[1,-3],[0,-1],[-1,0],[-3,4],[0,1],[-1,1],[-3,3],[-3,5],[-3,5],[-1,1],[-2,2],[0,1],[-2,2],[-4,0],[-1,1],[-1,1],[-2,4],[-2,2],[0,1],[-2,1],[-3,2],[-3,3],[-1,2],[0,3],[-1,1],[0,1],[-2,1],[-1,1],[-3,4],[-2,2],[0,1],[-3,3],[-1,2],[-1,1],[0,2],[-1,1],[-3,2],[-3,3],[-2,1],[-1,4],[-3,3],[-4,3],[-1,2],[-1,2],[-1,3],[-3,3],[-1,1],[-2,0],[-2,2],[0,2],[-1,3],[-1,1],[-2,1],[0,1],[-2,2],[-2,1],[-2,1],[-1,1],[-1,0],[-1,1],[0,2],[0,1],[-3,2],[-2,3],[-2,1],[-3,5],[0,1],[-2,2],[-2,0],[-2,1],[-2,0],[1,3],[0,2],[-1,3],[-1,2],[-1,0],[-1,1],[-2,1],[-1,0],[-2,1],[0,1],[-1,1],[-1,1],[0,5],[-2,2],[-3,4],[-2,1],[-2,1],[-3,0],[-3,0],[0,1],[-2,3],[-1,1],[0,2],[-1,2],[-3,2],[0,3],[2,3],[1,2],[-2,3],[-1,3],[-1,1],[-3,2],[-1,1],[0,1],[-1,2],[-4,1],[-1,1],[1,2],[-1,1],[-2,2],[-1,0],[-1,1],[-1,0],[-1,0],[0,2],[0,1],[2,4],[0,2],[-1,1],[0,1],[-1,0],[-1,1],[-3,1],[0,4],[-2,1],[-1,1],[-2,1],[-3,0],[-2,0],[-1,0],[-1,1],[2,2],[4,3],[2,4],[1,2],[0,1],[0,1],[-1,2],[0,1],[-1,1],[-1,1],[-2,3],[-1,1],[-1,1],[-4,0],[-1,0],[0,1],[-1,1],[-6,2],[0,3],[-1,1],[1,4],[0,1],[0,1],[0,2],[-2,2],[-2,2],[-1,2],[-2,4],[-2,2],[-3,0],[-1,1],[0,2],[-1,0],[0,2],[0,1],[-1,4],[-1,0],[-2,1],[-1,1],[0,1],[-1,2],[1,1],[0,1],[1,2],[0,1],[-2,2],[-1,0],[-4,1],[-2,1],[0,1],[-1,2],[0,4],[-1,1],[-1,2],[-1,1],[-3,1],[-1,1],[0,2],[-1,1],[0,2],[1,2],[0,1],[0,3],[-4,7],[0,1],[1,2],[0,1],[-4,-2],[-1,0],[-3,2],[-1,3],[0,1],[-2,0],[-2,2],[-1,1],[1,2],[-1,1],[-1,1],[-2,2],[-2,1],[-2,0],[-1,1],[0,1],[0,1],[-2,1],[-2,2],[-2,0],[-1,0],[-2,0],[-2,-1],[-1,-1],[-3,0],[-1,0],[-2,0],[-1,0],[-1,1],[-3,5],[0,1],[3,1],[1,-2],[2,0],[3,1],[1,1],[0,1],[-1,1],[-1,1],[0,1],[0,1],[2,0],[1,0],[1,1],[1,4],[0,1],[-1,2],[0,3],[0,1],[-3,3],[-1,1],[-3,1],[-2,-2],[-3,0],[0,1],[2,0],[0,3],[1,2],[0,1],[0,1],[-1,1],[-2,1],[-1,1],[-3,1],[-2,0],[-2,0],[-1,2],[-1,0],[0,1],[-2,1],[-1,1],[-1,1],[-3,0],[-1,1],[-1,1],[-1,3],[-1,1],[-1,1],[-1,1],[0,1],[-1,4],[-3,3],[0,2],[-1,1],[-3,4],[-1,2],[-2,1],[0,1],[-3,4],[0,1],[-2,2],[0,1],[-1,1],[-1,1],[-2,2],[-1,1],[0,3],[-1,2],[-1,2],[-1,1],[-1,1],[-2,1],[-5,4],[-4,3],[-2,2],[-1,2],[0,2],[-1,1],[-1,2],[-3,2],[-3,3],[0,1],[-1,3],[0,2],[-1,2],[0,1],[-1,1],[-4,2],[-1,1],[0,1],[-1,2],[0,1],[-2,0],[-2,2],[0,1],[-1,1],[-1,1],[-2,-1],[-3,1],[-1,1],[-2,1],[0,1],[-1,1],[-2,0],[-1,0],[-2,2],[0,1],[-1,2],[-1,0],[-1,-1],[0,-3],[0,-1],[0,-1],[2,-2],[0,-3],[2,0],[1,-3],[0,-1],[-1,-2],[1,0],[2,-2],[1,-2],[0,-4],[-1,0],[0,-1],[1,0],[1,-1],[2,-3],[2,-2],[2,-1],[0,-1],[0,-2],[0,-1],[1,1],[1,0],[1,-1],[0,-2],[0,-2],[1,-1],[1,-1],[-2,-1],[1,-1],[1,0],[2,0],[0,-1],[0,-3],[2,-2],[2,0],[1,-1],[1,0],[2,-2],[0,-1],[2,-1],[0,-2],[1,-2],[0,-1],[0,-1],[0,-2],[0,-1],[0,-2],[-1,-1],[0,-1],[1,0],[0,-7],[0,-2],[1,-1],[0,-2],[1,-1],[-1,-1],[1,-2],[2,-1],[0,-1],[1,0],[1,-1],[1,-1],[1,-1],[4,-6],[0,-2],[1,-2],[2,0],[1,-1],[5,-5],[0,-1],[1,0],[1,-3],[0,-3],[1,-2],[2,-2],[0,-1],[2,-1],[1,0],[1,-1],[0,-2],[1,-1],[0,-1],[1,-3],[1,-2],[1,-4],[1,-7],[0,-8],[0,-2],[0,-3],[0,-2],[1,-1],[0,-1],[0,-11],[0,-4],[-1,-3],[-2,-3],[0,1],[-1,0],[-1,-1],[0,-1],[-1,-3],[3,2],[1,0],[1,-1],[0,-1],[3,-2],[0,-1],[2,0],[1,-2],[2,-1],[1,0],[1,-2],[2,0],[3,-2],[8,-4],[2,-3],[1,-1],[1,-1],[1,-1],[0,-2],[1,-3],[0,-3],[1,-2],[-1,-5],[0,-1],[-2,0],[-1,0],[0,-1],[1,-2],[1,1],[3,0],[0,-1],[1,-1],[1,0],[-1,-4],[1,0],[0,-2],[-1,-2],[0,-2],[1,-1],[1,-3],[1,-1],[2,-2],[1,-1],[0,-4],[0,-2],[0,-1],[0,-5],[0,-1],[0,-6],[0,-1],[1,-6],[0,-2],[1,-1],[0,-1],[-1,-1],[-1,-3],[0,-5],[-1,-2],[0,-4],[0,-5],[-1,-9],[-2,-2],[0,-4],[-1,-7],[0,-2],[-1,-5],[-1,-4],[0,-2],[-1,-2],[-1,-3],[0,-2],[0,-1],[-1,-2],[0,-4],[-2,-5],[-1,-3],[0,-2],[-2,-2],[0,-3],[-1,-2],[-1,-5],[-2,-6],[0,-5],[-2,-5],[-1,-2],[-2,-9],[-2,-5],[0,-4],[0,-2],[-3,-5],[-1,-5],[0,-2],[-2,-5],[-1,-4],[-1,-2],[-2,-4],[0,-1],[0,-1],[0,-3],[0,-1],[-2,-1],[0,-1],[-1,-3],[-1,-4],[-1,-3],[-2,-4],[0,-5],[-2,-4],[-1,-2],[-1,-3],[-1,-4],[-3,-11],[-2,-4],[-1,-6],[-2,-3],[0,-1],[0,-5],[-1,-3],[-4,-8],[-1,-2],[-1,-6],[-2,-3],[0,-1],[0,-4],[-2,-4],[-3,-6],[0,-5],[-2,-3],[-1,-3],[-1,-4],[0,-3],[-3,-5],[-2,-7],[-3,-7],[-1,-2],[0,-3],[-2,-4],[-2,-6],[-3,-8],[0,-2],[-2,-4],[-1,-4],[-3,-8],[-1,-2],[-2,-4],[0,-3],[-2,-5],[-1,-3],[0,-2],[-2,-4],[-2,-2],[0,-2],[-1,-6],[-2,-5],[-3,-6],[0,-1],[-1,-4],[0,-2],[-4,-7],[0,-1],[-2,-6],[-3,-9],[-4,-10],[-2,-3],[-1,-4],[-2,-6],[-1,-4],[-1,-2],[0,-2],[-2,-5],[-1,-2],[-1,-2],[-2,-4],[-2,-4],[-1,-3],[-1,-3],[-2,-4],[-1,-2],[-2,-2],[-2,0],[-1,0],[0,-2],[-1,-1],[-1,-1],[-1,-1],[0,-1],[-2,-1],[-2,1],[-1,1],[-2,0],[-2,1],[-1,0],[-2,-3],[0,-1],[0,-1],[-1,0],[-1,-1],[-1,-3],[-2,-1],[-1,-3],[0,-1],[0,-1],[1,0],[2,-1],[0,1],[0,1],[1,0],[1,-1],[1,0],[0,1],[1,0],[2,-1],[2,0],[1,-1],[1,-1],[1,0],[1,0],[0,1],[1,-1],[1,-1],[0,1],[2,0],[0,-1],[1,0],[1,0],[1,0],[1,0],[0,1],[1,1],[1,0],[1,1],[2,2],[0,-1],[1,-2],[1,1],[0,1],[1,0],[1,0],[2,1],[4,0],[0,-1],[3,-1],[0,-1],[0,-1],[0,-1],[1,-2],[1,0],[1,0],[3,-1],[0,1],[2,-1],[1,1],[3,0],[1,1],[0,1],[1,0],[1,-1],[1,0],[0,1],[1,0],[1,0],[1,1],[3,0],[2,0],[1,-1],[0,-2],[1,-1],[1,0],[2,1],[0,2],[1,1],[2,1],[1,0],[2,1],[1,0],[1,-1],[2,-1],[1,-1],[2,-1],[2,0],[0,-1],[0,-2],[1,-1],[1,0],[1,0],[0,2],[2,1],[0,-1],[1,0],[1,1],[2,-1],[0,-1],[2,0],[1,1],[1,0],[2,-1],[1,0],[0,1],[2,0],[2,0],[3,0],[1,-1],[2,0],[0,-1],[1,1],[3,0],[1,-1],[0,-1],[1,-1],[-1,-1],[0,-1],[1,-1],[1,-1],[3,0],[4,1],[4,-1],[3,0],[1,-1],[0,-1],[1,0],[1,1],[1,0],[1,1],[1,0],[-1,1],[-1,1],[-1,0],[-1,3],[-1,1],[-1,2],[-1,1],[0,2],[-4,-1],[-2,0],[-2,2],[-1,0],[-2,0],[-1,0],[-1,0],[-3,2],[-3,0],[-3,3],[-2,2],[-1,1],[-2,0],[-1,1],[-2,0],[-3,2],[-3,0],[-1,1],[0,4],[0,2],[0,1],[-1,2],[-1,2],[1,3],[0,2],[0,2],[1,6],[2,5],[2,6],[5,8],[1,3],[7,12],[4,5],[2,3],[2,3],[5,5],[4,3],[5,5],[7,5],[2,1],[2,3],[11,5],[16,5],[9,2],[7,1],[3,0],[3,1],[1,0],[1,0],[0,1],[1,2],[1,1],[1,1],[3,0],[1,1],[1,1],[0,1],[0,2],[0,1],[-1,1],[-2,1],[-4,0],[-1,-1],[1,0],[1,-2],[-1,-1],[-1,0],[-1,1],[-1,0],[0,1],[0,1],[-1,3],[-1,1],[-3,7],[-1,1],[-2,1],[-2,4],[-5,6],[-3,6],[-1,2],[-1,2],[-2,0],[-1,1],[-1,0],[-1,1],[-3,3],[-6,4],[-2,-1],[-1,0],[-1,0],[-1,3],[0,1],[-1,1],[-1,1],[-1,2],[0,1],[-3,1],[-1,1],[-2,1],[-1,1],[1,1],[2,-1],[1,0],[0,1],[-2,3],[-4,2],[-2,0],[-1,1],[0,1],[-1,1],[0,1],[1,1],[1,0],[3,-3],[2,-1],[2,0],[2,-3],[3,-1],[3,-4],[1,-1],[1,-2],[1,0],[2,0],[4,-3],[4,-2],[2,-3],[1,-1],[1,0],[2,4],[0,7],[1,6],[-1,1],[-2,3],[-1,2],[0,1],[-2,5],[-1,0],[-3,1],[-5,3],[-3,4],[-5,2],[0,1],[0,1],[1,0],[2,3],[1,2],[0,1],[-1,2],[-1,2],[-1,1],[0,2],[0,3],[0,1],[0,2],[1,1],[0,1],[2,1],[1,1],[1,1],[0,1],[-2,2],[0,1],[0,1],[0,1],[0,2],[0,1],[0,2],[0,1],[-1,0],[1,3],[0,1],[-1,1],[-1,1],[0,2],[0,4],[0,1],[2,0],[2,-2],[-1,-1],[-1,-1],[0,-1],[1,-1],[3,0],[0,-1],[0,-2],[0,-1],[1,-3],[0,-1],[-1,-1],[0,-1],[0,-1],[3,-3],[0,-1],[0,-3],[0,-3],[-1,-3],[0,-3],[0,-2],[-1,-1],[0,-2],[1,-2],[1,-2],[0,-2],[0,-1],[-1,-1],[-1,-2],[-1,-1],[3,-3],[0,-1],[1,0],[2,0],[1,-1],[2,0],[1,1],[2,0],[3,1],[1,0],[3,-1],[1,0],[2,1],[1,-1],[1,0],[0,3],[0,1],[1,1],[4,2],[1,1],[0,2],[0,1],[0,3],[-1,2],[0,1],[0,1],[1,2],[1,5],[2,6],[1,1],[1,0],[0,4],[0,8],[0,4],[0,1],[-2,2],[0,1],[2,4],[1,1],[1,2],[3,2],[1,1],[0,3],[1,2],[0,1],[-1,0],[-2,1],[0,1],[4,4],[1,4],[2,1],[0,1],[0,2],[-1,3],[-1,3],[1,1],[1,1],[6,2],[0,2],[1,0],[1,0],[1,1],[4,0],[1,0],[0,-1],[-4,-4],[-1,-2],[-1,-3],[0,-3],[-1,-2],[-1,-1],[-3,-2],[-1,-2],[-2,0],[-1,0],[-1,-1],[1,-2],[1,-1],[4,-2],[1,-1],[0,-2],[1,-1],[1,-4],[-1,-1],[-3,-5],[-2,-4],[-2,-7],[0,-1],[1,-2],[2,-2],[1,-1],[0,-4],[-1,-2],[0,-1],[-1,-2],[0,-1],[3,-2],[0,-1],[0,-3],[0,-1],[-2,-3],[0,-1],[1,-1],[0,-4],[1,-1],[6,-4],[3,-1],[1,2],[1,0],[2,1],[0,1],[2,4],[0,1],[1,3],[5,8],[1,6],[0,4],[0,1],[-1,3],[0,1],[1,2],[1,1],[1,-3],[0,-2],[1,-1],[0,-1],[0,-1],[0,-2],[0,-1],[1,-1],[4,-2],[2,-2],[2,-1],[3,-2],[0,-1],[-5,-2],[-3,-2],[-2,-3],[-1,-1],[0,-2],[0,-2],[1,-1],[3,-1],[0,-1],[-1,-2],[-2,-1],[-2,-2],[-1,0],[0,-1],[1,-3],[0,-1],[-1,-2],[-1,0],[-3,0],[-1,0],[-2,-4],[-9,-5],[-1,-2],[-2,-1],[-2,0],[-1,-2],[-2,-1],[-1,0],[-2,-4],[-1,-4],[0,-2],[-2,-7],[-1,-3],[-2,-2],[-1,-5],[0,-1],[1,-2],[1,-2],[3,-3],[1,-1],[2,0],[1,-1],[4,-4],[0,-1],[-2,-6],[-1,-2],[0,-1],[1,-2],[0,-5],[2,-2],[1,-1],[1,0],[1,0],[1,0],[2,0],[3,0],[1,2],[1,0],[4,-4],[1,-2],[0,-1],[1,-1],[1,-1],[7,0],[3,0],[0,1],[1,1],[1,3],[0,6],[1,1],[0,1],[2,-9],[0,-1],[1,-1],[1,0],[1,-1],[1,0],[2,0],[1,0],[1,2],[1,1],[1,4],[0,3],[0,3],[-1,2],[0,3],[-1,1],[1,1],[1,2],[0,1],[0,3],[3,3],[0,2],[3,4],[0,1],[0,3],[0,5],[0,1],[0,2],[0,1],[0,2],[1,2],[0,4],[1,0],[1,0],[0,-2],[1,-2],[1,-2],[6,-6],[0,-2],[0,-1],[-2,-1],[0,-1],[0,-1],[-2,-3],[1,-1],[1,-1],[3,-1],[1,-1],[0,-1],[1,-2],[0,-2],[-4,-4],[0,-1],[0,-3],[0,-1],[-1,-1],[-1,-5],[-2,-3],[-2,-3],[0,-1],[1,-2],[0,-1],[1,-1],[2,-2],[3,0],[3,-1],[6,-2],[9,-1],[2,1],[2,1],[1,1],[2,2],[2,2],[5,1],[1,-3],[0,-2],[1,-3],[1,-1],[2,0],[0,-1],[1,-1],[2,-2],[1,-5],[-1,0],[-1,1],[0,2],[-1,1],[-1,1],[-4,-1],[-2,0],[-4,2],[-4,0],[-2,-1],[-1,0],[0,1],[-3,0],[-3,0],[-2,0],[-2,0],[-2,-2],[-2,0],[-2,0],[-5,0],[-2,2],[-1,1],[-3,1],[-2,0],[-1,-1],[-1,-2],[-1,0],[-2,-1],[-1,1],[-1,0],[-1,1],[-1,0],[-3,1],[-1,0],[-1,-1],[-1,0],[-2,-1],[-6,0],[-1,1],[0,-1],[0,-1],[-1,0],[-4,0],[-3,1],[-3,0],[-2,1],[-7,8],[-4,4],[-1,0],[-1,0],[0,-2],[2,-6],[2,-3],[2,-2],[2,-2],[1,0],[3,-1],[3,0],[3,1],[2,0],[6,-1],[2,-1],[6,1],[15,-1],[17,-1],[7,-1],[9,-1],[2,0],[13,-3],[9,-2],[5,-1],[2,-1],[10,-4],[4,-2],[12,-5],[3,-1],[6,-3],[7,-3],[4,-2],[4,-2],[5,-2],[4,-3],[4,-3],[6,-4],[3,-2],[2,-3],[6,-4],[4,-3],[2,-1],[1,0],[1,-2],[1,0],[2,-1],[3,-2],[0,-1],[2,-2],[1,-1],[2,0],[2,-1],[1,-2],[1,0],[3,-3],[2,-2],[2,-1],[4,-3],[3,-3],[3,-3],[3,-4],[1,-1],[1,-2],[0,-1],[0,-2],[3,1],[1,0],[1,1],[1,0],[3,-2],[2,-2],[4,-3],[2,-1],[3,-6],[2,-2],[1,-4],[0,-2],[1,0],[3,-5],[1,-1],[0,-2],[2,-1],[2,-5],[1,-1],[1,-1],[1,-1],[1,-2],[0,-2],[1,-1],[4,2],[1,1],[3,-2],[2,-2],[2,-2],[2,-2],[4,-3],[1,-2],[4,-2],[2,-2],[3,-4],[2,-2],[1,-2],[3,-3],[1,-3],[3,-4],[2,-4],[3,-5],[3,-6],[1,-1],[3,-9],[5,-13],[5,-9],[2,-7],[0,-2],[1,-3],[1,-2],[1,-1],[0,-5],[1,-5],[0,-2],[-1,-2],[0,-3],[1,-2],[0,-1],[1,0],[2,-1],[4,2],[2,0],[4,-1],[0,-1],[1,-1],[2,-2],[1,-4],[0,-1],[-1,-2],[-1,-2],[0,-1],[1,0],[1,-1],[1,1],[2,2],[1,0],[3,0],[3,0],[2,-1],[1,-1],[1,-2],[1,-1],[2,-3],[1,0],[0,-1],[1,-2],[1,-2],[1,-3],[1,-3],[1,-1],[2,-1],[4,-2],[2,0],[2,0],[2,-1],[3,-1],[3,-1],[6,0],[2,-1],[2,-2],[2,-1],[1,-2],[1,-1],[2,-3],[1,-1],[2,-1],[1,-2],[2,-1],[2,-1],[2,0],[1,0],[0,-1],[1,0],[2,-1],[3,-2],[3,-2],[3,-2],[1,-1],[4,-3],[3,-2],[2,-1],[-8,-9],[-3,-3],[8,-16],[7,-20],[1,-7],[2,-13],[6,-13],[9,-5],[12,-5],[11,-1],[3,14],[2,-1],[1,1],[2,-1],[1,-1],[1,-1],[1,0],[1,-1],[0,-1],[1,-1],[0,-2],[1,-1],[1,-1],[0,-1],[3,-3],[5,-4],[6,-3],[5,-1],[3,1],[2,1],[0,1],[1,0],[0,3],[0,1],[0,1],[0,1],[2,3],[1,1],[3,3],[2,1],[1,0],[1,1],[3,3],[2,2],[2,1],[3,1],[2,1],[4,3],[2,2],[1,1],[2,0],[1,1],[4,2],[2,1],[1,0],[1,2],[1,0],[0,1],[0,1],[0,2],[0,1],[0,1],[0,1],[1,1],[0,1],[0,2],[0,1],[0,1],[-1,0],[-1,0],[-1,1],[-2,0],[-1,0],[0,1],[0,1],[-1,2],[-1,1],[-1,1],[0,1],[-1,1],[-1,1],[-1,2],[-1,3],[-1,1],[0,1],[0,1],[0,1],[0,1],[0,4],[0,2],[1,1],[0,1],[-2,2],[0,1],[0,1],[1,1],[0,2],[1,1],[-1,0],[0,1],[-1,0],[-1,0],[0,-1],[-1,0],[-1,0],[0,1],[0,1],[0,1],[0,1],[-1,1],[-1,-1],[-1,-1],[-1,0],[-1,0],[-1,0],[-2,2],[-1,1],[-1,2],[-1,2],[0,1],[-1,2],[-2,6],[1,1],[-1,2],[-1,5],[-1,0],[-1,0],[0,1],[-2,2],[0,2],[-1,2],[0,1],[0,1],[1,1],[0,1],[1,0],[1,0],[1,0],[1,0],[0,-1],[1,0],[1,-1],[1,-1],[1,0],[1,0],[2,0],[1,0],[1,0],[2,-1],[0,-1],[1,0],[1,0],[1,0],[1,0],[0,-1],[2,0],[0,-1],[0,-1],[-1,0],[0,-1],[-1,-1],[1,-1],[1,0],[2,-1],[1,0],[1,0],[1,0],[1,0],[2,0],[1,0],[1,0],[1,0],[1,-1],[1,0],[1,0],[0,-1],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[-1,-1],[1,0],[0,-1],[1,-1],[1,-1],[0,-1],[1,-1],[1,0],[0,-1],[0,-1],[1,-1],[1,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,0],[1,-1],[1,0],[1,-1],[0,-1],[1,-2],[1,-2],[0,-1],[1,-1],[1,-1],[1,-1],[1,-1],[1,-1],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[1,-1],[1,-1],[0,-1],[1,0],[2,-1],[1,-1],[1,0],[1,-1],[1,0],[1,1],[3,-2],[3,-4],[2,-1],[0,-2],[0,-1],[1,-3],[1,-1],[1,-1],[1,0],[1,-2],[1,0],[1,-1],[2,-2],[1,0],[2,-1],[2,0],[0,-1],[1,-1],[0,-1],[1,-1],[2,0],[1,0],[1,0],[1,0],[1,-2],[1,-1],[1,0],[1,-1],[1,0],[1,-2],[2,-2],[1,-1],[1,-1],[1,1],[1,0],[1,-1],[1,0],[1,-1],[1,-1],[1,-3],[0,-1],[1,-1],[1,-1],[1,-1],[1,-1],[1,0],[0,-1],[0,-1],[-1,0],[-3,2],[-2,1],[-1,0],[-1,1],[-2,1],[0,1],[0,1],[2,0],[1,2],[-1,1],[-1,0],[0,-1],[-1,-1],[-1,-1],[-1,-1],[-1,0],[-3,2],[-3,2],[-4,1],[-2,2],[-4,1],[-4,1],[-2,1],[-4,1],[-6,1],[-3,1],[-1,0],[-1,0],[-1,0],[-4,0],[-4,1],[-4,-2],[-4,-2],[-4,-1],[0,1],[-3,1],[-3,2],[-3,1],[-2,0],[0,-1],[0,-1],[1,-2],[2,-2],[3,-2],[3,-1],[5,-1],[5,0],[2,-1],[5,1],[2,0],[3,-1],[6,1],[3,0],[2,0],[2,-1],[3,-1],[3,-1],[4,-1],[3,-1],[2,-1],[2,-1],[2,-1],[2,-1],[1,-1],[5,-1],[1,-1],[1,-1],[1,0],[1,0],[0,-1],[1,-1],[2,-1],[1,0],[1,-1],[1,0],[1,-1],[2,-1],[1,-1],[0,-1],[1,0],[1,-1],[2,-1],[1,-1],[2,-1],[3,-2],[1,-2],[1,-1],[1,-1],[3,-2],[2,-3],[1,-1],[1,-1],[3,-3],[1,-1],[1,-1],[0,-1],[0,-1],[1,0],[0,-1],[1,0],[0,-1],[1,-1],[1,0],[0,-1],[0,-1],[0,-1],[0,-1],[1,-1],[1,-2],[1,-1],[1,-1],[2,-2],[1,-1],[1,-1],[1,0],[1,-1],[1,-1],[0,-3],[-3,-2],[-1,-1],[0,-1],[0,-2],[0,-1],[-1,-1],[0,-1],[1,-1],[1,-1],[1,0],[1,-1],[1,-1],[1,-1],[1,0],[1,0],[0,1],[1,0],[1,-1],[0,1],[1,0],[1,0],[2,-1],[1,-1],[1,-2],[1,0],[1,-1],[1,0],[0,-1],[-1,-2],[1,0],[2,-2],[2,-1],[3,-1],[1,1],[1,0],[2,0],[2,1],[2,1],[1,1],[2,0],[1,-1],[0,-1],[1,0],[1,0],[1,0],[1,0],[3,-2],[2,0],[3,-1],[3,-1],[1,-1],[1,-1],[1,0],[2,-1],[3,2],[3,-2],[6,-7],[5,-6],[7,-10],[8,-9],[0,-1],[4,-7],[0,-2],[8,-4],[1,-3],[5,-3],[1,-2],[1,0],[3,5],[2,0],[2,1],[7,-2],[4,-9],[9,-5],[-1,-3],[6,-1],[3,2],[11,-6],[-1,-2],[2,-4],[0,-2],[2,-2],[0,-2],[4,0],[-2,-7],[2,-2],[6,-2],[2,-2],[-1,-5],[3,-1],[2,1],[1,-3],[2,1],[1,-2],[1,-3],[4,-12],[0,-6],[21,-8],[6,-4],[8,-15],[-4,-5],[10,-10],[3,-16],[2,-1],[2,0],[2,-1],[0,3],[-2,5],[-2,5],[5,6],[3,0],[0,2],[1,2],[2,0],[0,2],[1,3],[1,3],[10,1],[2,0],[2,0],[2,-2],[1,2],[10,-3],[2,1],[13,-5],[0,-3],[2,-1],[1,-2],[2,0],[1,-1],[3,3],[0,-2],[4,-4],[2,1],[-2,5],[2,2],[6,0],[2,0],[1,1],[1,2],[2,1],[1,3],[2,1],[1,1],[1,1],[1,3],[11,-1],[6,1],[2,-3],[3,1],[1,0],[4,-2],[1,0],[0,1],[2,0],[-2,8],[1,7],[2,3],[2,0],[-1,3],[-2,3],[9,2],[1,-5],[3,0],[1,5],[1,5],[0,5],[-8,15],[-2,3],[2,1],[-1,2],[-3,2],[-1,2],[0,1],[-1,6],[-3,0],[0,1],[0,3],[0,5],[0,4],[5,15],[-1,4],[1,2],[0,1],[2,0],[-1,2],[-2,1],[-4,-2],[-1,-1],[-2,0],[-6,4],[1,1],[-1,0],[-1,1],[-2,-2],[-1,1],[-2,2],[0,1],[0,1],[-1,2],[-2,1],[-1,-1],[-2,1],[1,1],[-1,0],[-2,0],[-1,0],[-2,-1],[1,1],[0,2],[2,1],[0,2],[-3,0],[-3,0],[-3,-1],[-6,5],[-5,6],[0,4],[1,4],[-2,-1],[-3,3],[-2,1],[-1,0],[-1,1],[-2,0],[-1,-1],[-1,1],[-1,0],[-1,2],[-3,2],[0,1],[0,1],[0,1],[0,1],[-1,0],[0,1],[-1,0],[0,1],[-1,0],[0,1],[0,-1],[-1,0],[1,0],[0,-1],[1,0],[0,-1],[0,-1],[0,-1],[-1,0],[-1,1],[0,1],[-1,1],[-1,0],[-1,2],[-3,2],[-1,1],[-2,2],[-3,2],[-2,5],[-1,1],[0,1],[-3,6],[-6,3],[-3,0],[-1,1],[-2,3],[-2,0],[-1,2],[-5,9],[2,11],[-6,1],[0,2],[0,1],[3,-1],[-3,8],[0,6],[3,-4],[1,-4],[0,-2],[2,-2],[1,-1],[-1,-1],[6,-7],[0,1],[1,1],[-2,2],[4,5],[1,-1],[0,-5],[-2,-4],[-1,1],[-1,-1],[3,-6],[3,-4],[1,-1],[1,0],[2,-1],[7,9],[5,-2],[2,-5],[-4,-4],[0,-1],[-1,-1],[5,-5],[3,3],[8,-2],[2,-3],[1,-1],[-1,-3],[4,-2],[10,-8],[1,0],[1,-1],[0,6],[-2,4],[-1,4],[0,3],[0,3],[0,4],[0,5],[-2,5],[-2,4],[-2,5],[-3,1],[-1,0],[-1,-2],[2,-3],[2,-1],[1,-3],[2,-3],[0,-6],[1,-2],[0,-2],[0,-1],[-2,0],[-1,1],[-2,1],[0,1],[0,1],[2,5],[-2,4],[-5,5],[0,2],[-1,2],[2,5],[-2,6],[2,3],[-1,-6],[5,10],[-1,2],[0,1],[1,0],[3,0],[3,-4],[0,-3],[-1,-1],[-3,6],[-2,2],[4,-10],[1,-1],[1,0],[13,-2],[14,3],[7,-9],[7,-5],[4,-3],[3,-2],[1,-1],[8,-10],[3,-4],[1,-1],[3,-7],[-3,-4],[-3,-7],[2,-7],[0,-3],[7,-14],[1,-3],[1,0],[12,-11],[1,-1],[10,-7],[2,-1],[0,8],[0,1],[-5,5],[-5,6],[-1,11],[8,5],[0,-2],[2,-3],[1,-1],[1,-1],[1,-1],[1,0],[2,0],[-1,1],[0,1],[-1,2],[2,1],[1,1],[2,-1],[3,-1],[1,-3],[1,3],[3,-2],[3,1],[2,4],[1,3],[5,3],[4,1],[3,2],[0,3],[-2,5],[2,3],[5,4],[6,-3],[1,7],[-1,2],[-2,0],[-3,5],[-1,1],[-2,-1],[-3,5],[-2,0],[-1,6],[-5,9],[-6,10],[-7,-2],[-1,2],[-7,-2],[-5,1],[-4,3],[-1,1],[-1,1],[0,1],[-1,0],[-2,4],[-9,1],[-1,1],[-5,6],[0,1],[0,3],[0,3],[-3,-1],[2,3],[-4,-4],[-1,1],[-1,1],[-1,2],[-1,2],[-3,2],[-2,2],[-2,1],[-3,3],[0,4],[0,1],[0,4],[4,-2],[6,0],[-7,3],[-1,2],[-3,8],[5,-9],[1,0],[0,1],[-1,7],[4,-9],[1,1],[-3,11],[-1,7],[-1,-1],[-1,0],[1,-4],[-2,4],[-1,0],[-1,-1],[1,-4],[-2,4],[-1,-1],[1,-5],[-2,5],[-1,4],[9,2],[-1,3],[-10,-4],[-4,5],[-2,1],[-2,3],[-1,1],[-1,0],[-1,1],[-1,1],[-1,1],[-2,1],[-1,3],[-1,-1],[-5,-1],[-14,2],[-5,7],[-1,-3],[-3,8],[-2,1],[-1,0],[-7,10],[0,9],[-1,0],[-3,26],[5,5],[0,1],[1,0],[2,1],[6,-3],[3,-6],[10,-4],[0,3],[3,-4],[6,-2],[1,-1],[2,3],[3,6],[4,3],[4,-1],[1,0],[1,4],[6,1],[3,1],[3,0],[2,0],[-2,1],[-2,0],[-2,3],[-1,2],[-1,1],[7,2],[8,2],[0,-1],[1,1],[-1,2],[-1,0],[1,-1],[-8,-3],[-7,-2],[-1,2],[-4,3],[-1,1],[-2,-1],[-1,1],[-2,-1],[-1,1],[-1,1],[-2,1],[0,2],[-1,2],[0,3],[-1,3],[-1,5],[-2,10],[-4,7],[-3,9],[3,1],[0,11],[0,1],[0,2],[-4,2],[-8,4],[1,8],[-4,2],[-4,-2],[-2,-1],[-1,-1],[-1,-3],[0,2],[-1,-1],[-2,-1],[-3,-1],[-3,-1],[-5,-3],[-3,-1],[-2,0],[-2,1],[2,0],[0,1],[-1,1],[0,2],[5,0],[0,-2],[-1,-2],[2,2],[1,1],[0,1],[1,-1],[0,1],[3,1],[4,2],[0,1],[1,0],[2,0],[0,1],[4,2],[6,3],[1,0],[1,0],[1,0],[0,-1],[1,-1],[0,-1],[4,-2],[5,2],[9,1],[1,0],[5,0],[1,2],[1,1],[7,0],[5,1],[3,0],[-1,4],[0,1],[-1,0],[-2,0],[-3,3],[-1,0],[-1,0],[-1,0],[0,1],[0,1],[1,0],[2,-1],[1,0],[4,-2],[3,2],[1,0],[0,1],[1,0],[1,0],[0,-1],[1,0],[-1,3],[-1,2],[2,5],[-1,3],[7,12],[11,6],[2,-2],[23,-16],[22,20],[-2,10],[-2,4],[-5,9],[-2,-1],[-9,13],[0,1],[-1,1],[-10,8],[0,1],[-1,2],[-2,6],[-1,3],[-1,-1],[-2,-2],[-5,6],[-6,-3],[-7,5],[-6,5],[-9,0],[-9,6],[-17,18],[-9,2],[-7,2],[-11,1],[-2,0],[-2,1],[0,1],[2,1],[2,1],[4,2],[3,12],[-4,19],[0,6],[-2,2],[1,1],[2,3],[-2,5],[3,0],[5,20],[6,24],[2,1],[3,1],[-3,7],[-3,-2],[-1,1],[1,3],[1,0],[2,-1],[1,13],[1,5],[2,7],[1,0],[2,0],[0,2],[5,15],[4,9],[2,4],[4,11],[-8,62],[-3,5],[-6,2],[0,1],[2,2],[0,5],[1,2],[-1,2],[0,6],[0,1],[2,10],[0,5],[0,1],[-13,12],[-1,0],[-8,3],[-2,1],[-3,1],[-3,1],[3,3],[1,-1],[1,-1],[3,-1],[2,0],[3,-1],[3,0],[2,0],[3,-1],[2,-1],[2,-1],[1,7],[4,2],[4,1],[4,2],[4,2],[4,1],[3,1],[3,1],[2,0],[5,1],[3,1],[6,1],[5,1],[6,0],[4,1],[2,0],[3,1],[2,0],[3,1],[2,0],[3,1],[4,1],[2,1],[2,1],[1,1],[2,1],[1,1],[1,0],[1,0],[0,1],[1,0],[1,-1],[1,0],[0,-1],[1,-1],[0,-1],[1,0],[1,0],[0,-1],[-1,0],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[0,-1],[0,-1],[0,1],[1,0],[0,1],[1,0],[1,0],[1,0],[1,1],[1,0],[1,0],[0,-1],[1,0],[1,0],[0,-1],[1,0],[1,0],[1,0],[0,-1],[1,0],[1,0],[1,0],[1,-1],[1,0],[1,0],[1,1],[1,1],[1,1],[1,0],[0,1],[1,0],[1,0],[1,1],[1,0],[1,0],[0,1],[0,1],[1,0],[1,1],[0,1],[0,1],[1,0],[0,1],[0,1],[1,1],[1,0],[1,0],[1,0],[1,1],[0,1],[1,0],[1,0],[1,1],[0,-1],[1,0],[1,1],[1,0],[0,1],[0,1],[1,0],[1,0],[0,1],[1,0],[0,1],[1,0],[0,1],[1,0],[0,1],[1,0],[1,0],[0,1],[1,0],[0,1],[1,0],[0,1],[0,1],[1,0],[0,1],[0,1],[0,2],[2,0],[1,0],[1,1],[1,0],[1,0],[1,1],[1,0],[1,0],[0,1],[1,0],[0,1],[1,1],[1,0],[1,0],[1,1],[1,0],[0,1],[0,1],[1,1],[0,1],[1,0],[0,2],[0,1],[1,-1],[1,1],[0,1],[1,-1],[1,0],[1,2],[1,1],[2,2],[1,0],[2,2],[1,1],[1,1],[1,1],[0,1],[1,0],[1,1],[1,1],[1,1],[2,1],[0,1],[1,1],[1,1],[1,1],[1,0],[0,1],[1,1],[1,0],[0,1],[1,1],[0,1],[0,1],[0,1],[1,0],[0,1],[1,1],[0,1],[1,1],[1,0],[0,1],[1,1],[0,2],[1,0],[1,3],[0,2],[1,3],[1,1],[0,2],[0,2],[1,1],[0,1],[1,2],[0,1],[0,1],[1,0],[0,1],[0,1],[0,1],[0,2],[-2,2],[1,1],[0,1],[-1,1],[0,1],[0,1],[-1,2],[-1,0],[0,1],[0,1],[-2,2],[-1,4],[-1,4],[0,2],[0,5],[0,2],[3,3],[0,-1],[0,-9],[2,0],[6,-10],[115,-52],[15,-10],[33,-24],[49,-36],[7,-9],[16,-16],[-2,-3],[15,-16],[18,-33],[9,-11],[4,-8],[3,-5],[9,-6],[9,-10],[7,-11],[1,-10],[-3,-3],[0,-2],[2,0],[26,5],[6,12],[6,0],[4,-7],[9,19],[2,-2],[1,-1],[-4,6],[-17,30],[-13,17],[-4,5],[-13,19],[-2,4],[-3,3],[-6,10],[-7,12],[-1,0],[-3,5],[1,0],[-1,0],[-3,6],[9,0],[-12,19],[-4,-2],[4,2],[12,7],[-1,-11],[6,1],[-3,-3],[7,-13],[0,-4],[0,-1],[-5,-2],[0,-1],[1,-1],[5,3],[1,0],[5,-2],[5,-18],[11,-19],[5,-4],[23,-31],[4,2],[2,-9],[0,-9],[2,2],[2,-6],[-2,-1],[1,-4],[5,0],[0,-1],[4,-3],[2,-1],[0,-1],[5,-8],[-2,-3],[0,-1],[1,-2],[-1,-1],[-3,-2],[3,2],[1,1],[3,-3],[7,-8],[6,-3],[4,-3],[1,-3],[1,-2],[5,-2],[4,-1],[1,-1],[11,1],[2,1],[12,2],[2,3],[0,1],[3,2],[1,-4],[0,-1],[-1,-1],[1,0],[6,-1],[2,3],[2,1],[2,2],[4,-1],[1,-2],[1,-2],[2,-2],[1,-4],[4,1],[0,-5],[2,-4],[9,-4],[3,0],[3,-1],[2,4],[6,28],[6,2],[6,-7],[6,-8],[0,-3],[3,-4],[1,0],[4,-5],[0,-1],[1,0],[5,-1],[0,-2],[1,1],[3,-2],[0,-2],[1,-3],[-2,-1],[1,-3],[3,-1],[1,0],[0,-1],[1,-2],[4,-1],[2,0],[3,-2],[-2,-2],[0,-1],[2,-1],[4,-2],[2,2],[6,-2],[1,-3],[-1,-3],[0,-1],[2,-2],[3,-2],[0,-2],[1,-1],[1,-3],[-1,-3],[-1,-2],[-1,-4],[0,-2],[-8,0],[0,-2],[6,-1],[4,-2],[2,1],[2,-1],[2,1],[2,0],[0,1],[0,1],[0,1],[-1,1],[0,1],[0,1],[0,1],[1,2],[1,-1],[2,0],[1,2],[9,-5],[0,-2],[-1,-1],[-1,-1],[-1,-1],[-2,0],[-2,0],[-3,0],[0,-1],[9,-1],[13,-1],[14,0],[10,2],[1,0],[2,0],[11,4],[1,0],[2,3],[4,7],[6,21],[1,6],[5,8],[7,13],[39,49],[24,26],[20,22],[8,8],[12,14],[3,4],[1,0],[4,3],[3,4],[2,3],[3,3],[1,4],[2,7],[0,4],[0,1],[-1,0],[0,1],[1,0],[1,3],[0,8],[0,4],[3,6],[-1,11],[0,1],[3,0],[1,2],[2,2],[0,3],[0,1],[0,1],[1,0],[1,1],[-1,1],[0,1],[1,1],[-1,0],[0,1],[1,1],[0,1],[0,2],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,1],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,1],[0,1],[9,6],[2,-2],[2,-2],[1,-2],[1,0],[2,-1],[1,0],[1,0],[1,0],[2,0],[1,1],[1,1],[3,0],[2,1],[1,0],[2,0],[1,0],[1,0],[0,-1],[3,0],[2,-1],[2,-1],[2,-1],[1,-1],[1,0],[1,0],[0,1],[1,0],[0,1],[-1,2],[0,1],[1,1],[0,1],[2,1],[5,1],[3,0],[1,0],[1,0],[2,0],[1,0],[3,-1],[2,-1],[2,0],[2,0],[1,0],[2,1],[2,1],[2,1],[2,0],[1,0],[1,0],[2,-1],[2,0],[3,-1],[1,-1],[2,-1],[1,-1],[2,1],[2,0],[1,0],[1,-1],[2,0],[2,-1],[1,1],[2,0],[2,0],[1,0],[1,0],[10,3],[4,0],[3,1],[3,0],[4,3],[2,1],[1,1],[4,0],[2,-2],[5,-5],[2,-2],[1,-3],[2,-2],[6,-8],[3,-3],[4,-5],[2,-5],[0,-1],[1,-2],[1,-2],[1,-3],[1,-3],[1,-3],[1,-2],[1,-1],[5,-16],[1,-1],[0,-1],[-1,-1],[0,-1],[-1,0],[-1,-1],[0,-1],[-1,0],[-1,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-1,-1],[1,0],[0,-1],[-1,0],[0,1],[-1,0],[-1,-1],[-1,0],[-1,0],[0,-1],[-1,-1],[-1,0],[-1,-1],[-1,0],[0,-1],[-1,-1],[0,-1],[-1,0],[-1,0],[-1,-1],[0,-1],[-1,0],[1,-1],[1,0],[1,-1],[1,0],[1,0],[1,-1],[-1,-1],[0,-1],[0,-1],[1,0],[0,-1],[-1,0],[0,-1],[-1,0],[-1,-1],[0,-1],[-1,0],[-1,-1],[-1,0],[-1,0],[0,-1],[1,-1],[-1,0],[0,2],[-2,0],[-2,0],[-3,-1],[-2,0],[-2,0],[-1,1],[-1,0],[0,-2],[-1,-2],[-2,0],[-5,-1],[-4,0],[-3,2],[-3,0],[3,-2],[-2,0],[-2,-1],[-2,0],[-1,-2],[-3,0],[-1,-2],[-2,-1],[-2,-1],[0,1],[-1,1],[-2,-1],[-1,0],[-1,-1],[-2,-1],[-2,-2],[1,-2],[1,-2],[1,-2],[2,-4],[-1,-2],[-1,-2],[4,-3],[3,-2],[2,-2],[1,-2],[1,-1],[2,-1],[2,-1],[0,-1],[0,-1],[1,0],[1,0],[1,0],[1,-2],[1,0],[1,0],[1,-2],[3,0],[1,-1],[2,-1],[3,-2],[2,0],[17,-9],[1,-1],[1,0],[0,-1],[1,0],[0,1],[1,0],[1,1],[1,0],[1,1],[1,0],[3,-1],[2,0],[2,-1],[2,0],[1,-1],[2,0],[1,-1],[2,-3],[1,-1],[0,-1],[1,0],[1,-1],[0,-1],[0,-1],[0,-1],[1,-1],[0,-1],[-1,0],[0,-1],[1,-1],[0,-2],[1,-1],[0,-1],[2,-1],[1,-1],[1,-1],[1,0],[1,1],[1,0],[0,1],[1,0],[0,1],[0,1],[0,1],[0,1],[0,1],[-1,0],[-1,-1],[-1,0],[0,-1],[-1,0],[-1,0],[-1,0],[-1,0],[-1,0],[0,1],[0,1],[0,-1],[1,0],[1,0],[1,0],[1,0],[1,0],[1,1],[1,0],[1,1],[1,0],[1,0]]]}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/js/main.js b/views/ngXosViews/ecordTopology/src/js/main.js
new file mode 100644
index 0000000..8d6a362
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/main.js
@@ -0,0 +1,55 @@
+'use strict';
+
+angular.module('xos.ecordTopology', [
+ 'ngResource',
+ 'ngCookies',
+ 'ui.router',
+ 'xos.helpers',
+ 'ui.checkbox'
+])
+.config(($stateProvider) => {
+ $stateProvider
+ .state('ecord-topo', {
+ url: '/',
+ template: '<ecord-topo></ecord-topo>'
+ })
+ .state('eline-create', {
+ url: '/eline',
+ template: '<eline-form></eline-form>'
+ })
+ .state('eline-details', {
+ url: '/eline/:id',
+ template: '<eline-details></eline-details>'
+ });
+})
+.config(function($httpProvider){
+ $httpProvider.interceptors.push('NoHyperlinks');
+})
+.constant('cordIcons', {
+ cordLogo: `M92.5,62.3l-33,33,2.5,2.5c4.1,4.1,7.4,3.6,11.2-.1L95.9,75l-4.5-4.5,4.7-4.7-3.6-3.6Zm2.6,7L98.4,66l3.3,3.3-3.3,3.3-3.3-3.3ZM94.5,60l4.9-4.9,4.9,4.9-4.9,4.9ZM36.2,36.1L18.6,53.8c-7.8,7.8-5.8,17.4-2.4,22l-2.2-2.2c-10.6-10.6-11.2-20,0-31.2L28.2,28.1L31.3,25l8,8-3.1,3.1ZM55.5,55.4l3.6-3.6L66.9,44l-8-8l-2.5,2.5-5.2,5.2l-3.6,3.6L33.2,61.6C22,72.7,22.5,82.2,33.2,92.8L35.4,95c-3.4-4.5-5.4-14.1,2.4-22L55.5,55.4ZM50.7,21.7l-8-8L35,21.2l8,8,7.6-7.6ZM62.8,9.6L55.4,17l-8-8,7.4-7.4,8,8Zm0.7,18.3-7.6,7.6-8-8,7.6-7.6,8,8Zm26.1-6.6-8.1,8.1-8-8,8.1-8.1,8,8ZM79.3,31.5l-7.4,7.4-8-8,7.4-7.4,8,8ZM45.7,45.6L54.3,37l-8-8-8.6,8.6L23.4,51.8C12.2,63,12.8,72.4,23.4,83l2.2,2.2c-3.4-4.5-5.4-14.1,2.4-22ZM34.9,80.7l20.6,20.5c2,2,4.6,4.1,7.9,3.2-2.9,2.9-8.9,1.7-11.9-1.3L35.1,86.8,35,86.6H34.9l-0.8-.8a15,15,0,0,1,.1-1.9,14.7,14.7,0,0,1,.7-3.2Zm-0.6,7.4a21.3,21.3,0,0,0,5.9,11.7l5.7,5.7c3,3,9,4.1,11.9,1.3-3.3.9-5.9-1.2-7.9-3.2L34.3,88.1Zm3.5-12.4a16.6,16.6,0,0,0-2.3,3.6L57,100.8c3,3,9,4.1,11.9,1.3-3.3.9-5.9-1.2-7.9-3.2Z`,
+ service: `M2.16,10.77l2.7-.44a0.36,0.36,0,0,0,.21-0.2c0.24-.55.47-1.1,0.69-1.65a0.42,0.42,0,0,0,0-.33c-0.5-.74-1-1.47-1.52-2.18L5.94,4.22,8.07,5.75a0.37,0.37,0,0,0,.44,0C9,5.55,9.52,5.36,10,5.16a0.36,0.36,0,0,0,.27-0.32c0.13-.87.28-1.74,0.42-2.64l0.23,0c0.66,0,1.32,0,2,0a0.25,0.25,0,0,1,.3.26c0.13,0.81.28,1.62,0.41,2.44a0.34,0.34,0,0,0,.26.3c0.52,0.2,1,.41,1.54.64a0.34,0.34,0,0,0,.4,0l1.93-1.4L18,4.22,19.76,6c-0.49.7-1,1.43-1.52,2.16a0.4,0.4,0,0,0,0,.47c0.23,0.49.43,1,.62,1.49a0.36,0.36,0,0,0,.32.27l2.66,0.43v2.45l-1.63.29c-0.36.06-.72,0.11-1.07,0.19a0.43,0.43,0,0,0-.26.22c-0.23.53-.43,1.07-0.67,1.6a0.31,0.31,0,0,0,0,.37l1.4,1.94,0.17,0.24-1.74,1.74c-0.69-.48-1.41-1-2.13-1.5a0.43,0.43,0,0,0-.52,0,13.34,13.34,0,0,1-1.43.6,0.4,0.4,0,0,0-.32.35c-0.14.86-.3,1.72-0.46,2.59H10.73c-0.14-.85-0.29-1.7-0.42-2.55A0.43,0.43,0,0,0,10,18.88c-0.5-.18-1-0.39-1.46-0.61a0.36,0.36,0,0,0-.42,0c-0.73.52-1.46,1-2.17,1.52L4.16,18.08l0.37-.52c0.39-.55.78-1.1,1.19-1.65a0.31,0.31,0,0,0,0-.37C5.52,15,5.3,14.5,5.09,14A0.34,0.34,0,0,0,4.8,13.7l-2.64-.46V10.77ZM15.43,12A3.45,3.45,0,1,0,12,15.48,3.46,3.46,0,0,0,15.43,12Z`
+})
+.directive('ecordTopo', function(){
+ return {
+ restrict: 'E',
+ scope: {},
+ bindToController: true,
+ controllerAs: 'vm',
+ templateUrl: 'templates/ecord-topo.tpl.html',
+ controller: function(Eline, $location){
+
+ // retrieving user list
+ Eline.query().$promise
+ .then((elines) => {
+ this.elines = elines;
+ })
+ .catch((e) => {
+ throw new Error(e);
+ });
+
+ this.selectEline = (eline) => {
+ $location.path(`/eline/${eline.id}`)
+ }
+ }
+ };
+});
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/js/service-map.directive.js b/views/ngXosViews/ecordTopology/src/js/service-map.directive.js
new file mode 100644
index 0000000..2318b48
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/service-map.directive.js
@@ -0,0 +1,222 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/28/16.
+ */
+
+(function () {
+ 'use strict';
+ angular.module('xos.ecordTopology')
+ .directive('serviceMap', function(){
+ return {
+ restrict: 'E',
+ scope: {
+ unis: '=',
+ services: '='
+ },
+ bindToController: true,
+ controllerAs: 'vm',
+ template: '',
+ controller: function($element, $scope, $rootScope, $timeout, $log, cordIcons){
+ const el = $element[0];
+ const layout = d3.layout.tree();
+ let duration = 500;
+ let margin = 40;
+
+ // count the mas depth of an object
+ const depthOf = (obj) => {
+ var depth = 0;
+ if (obj.children) {
+ obj.children.forEach(function (d) {
+ var tmpDepth = depthOf(d);
+ if (tmpDepth > depth) {
+ depth = tmpDepth
+ }
+ })
+ }
+ return 1 + depth
+ };
+
+ // create svg elements
+ const svg = d3.select(el)
+ .append('svg')
+ .style('width', `${el.clientWidth}px`)
+ .style('height', `${el.clientHeight}px`)
+
+ var diagonal = d3.svg.diagonal()
+ .projection(function(d) { return [d.y, d.x]; });
+
+ let i = 0;
+ const update = (tree) => {
+
+ let maxDepth = depthOf(tree);
+
+ layout
+ .size([el.clientHeight, el.clientWidth]);
+
+ var nodes = layout.nodes(tree);
+ var links = layout.links(nodes);
+
+ const step = ((el.clientWidth - margin) / (maxDepth - 1));
+ // Normalize for fixed-depth.
+ nodes.forEach(function(d, i) {
+ if(i === 0){
+ d.y = margin;
+ }
+ else{
+ d.y = d.depth * step;
+ }
+ });
+
+ // Update the nodes…
+ var node = svg.selectAll('g.node')
+ .data(nodes, (d) => {
+ return d.id || (d.id = ++i)
+ });
+
+
+ // Enter any new nodes at the parent's previous position.
+ var nodeEnter = node.enter().append('g')
+ .attr({
+ 'class': d => `node ${d.type}`,
+ id: d => d.id
+ })
+ .attr('transform', () => `translate(${el.clientWidth / 2}, 50)`);
+
+ nodeEnter.append('rect')
+ .attr({
+ class: d => d.type,
+ width: 24,
+ height: 24,
+ x: -12,
+ y: -12
+ });
+
+ // unis
+ nodeEnter.filter('.uni')
+ .append('path')
+ .attr({
+ d: cordIcons.cordLogo,
+ transform: 'translate(-10, -10),scale(0.18)'
+ });
+
+ // services
+ nodeEnter.filter('.service')
+ .append('path')
+ .attr({
+ d: cordIcons.service,
+ transform: 'translate(-12, -12)'
+ });
+
+ nodeEnter.append('text')
+ .attr({
+ 'text-anchor': 'middle',
+ x: 0,
+ y: 25
+ })
+ .text(d => {
+ return d.name
+ });
+
+ // Transition exiting nodes to the parent's new position.
+ var nodeExit = node.exit().transition()
+ .duration(duration)
+ .remove();
+
+ nodeExit.select('circle')
+ .attr('r', 1e-6);
+
+ nodeExit.select('text')
+ .style('fill-opacity', 1e-6);
+
+ var nodeUpdate = node.transition()
+ .duration(duration)
+ .attr('transform', (d) => `translate(${d.y},${d.x})`);
+
+ // Update the links…
+ var link = svg.selectAll('path.link')
+ .data(links, function(d) { return d.target.id; });
+
+ // Enter any new links at the parent's previous position.
+ link.enter().insert('path', 'g')
+ .attr('class', 'link')
+ .attr('d', function(d) {
+ var o = {x: d.source.x, y: d.source.y};
+ return diagonal({source: o, target: o});
+ });
+
+ // Transition links to their new position.
+ link.transition()
+ .duration(duration)
+ .attr('d', diagonal);
+
+ // Transition exiting nodes to the parent's new position.
+ link.exit().transition()
+ .duration(duration)
+ .attr('d', function(d) {
+ var o = {x: d.source.x, y: d.source.y};
+ return diagonal({source: o, target: o});
+ })
+ .remove();
+
+ // Stash the old positions for transition.
+ nodes.forEach(function(d) {
+ d.x0 = d.x;
+ d.y0 = d.y;
+ });
+ };
+
+ // format uni in the tree layout shape
+ this.formatUni = (unis) => {
+ return unis.reduce((list, item, i) => {
+ list.push({
+ name: item.scaEthFppUniN.name,
+ children: [],
+ id: `uni-${i}`
+ });
+ return list;
+ }, [])
+ return unis;
+ }
+
+ // add active services
+ this.addServices = (services, unis) => {
+
+ let list = [unis[0], ...services, unis[1]];
+
+
+ const addChildR = (base, list) => {
+
+ if(list.length === 0){
+ return [];
+ }
+
+ let el = list.shift();
+
+ let n = {
+ name: el.name || el.label,
+ type: el.name ? 'uni':'service',
+ children: addChildR(el, list),
+ id: el.id
+ };
+
+ return [n];
+ };
+
+ let tree = addChildR({}, list);
+
+ return tree[0];
+ };
+
+ $scope.$watch(() => this.services, (s) => {
+ if(s && this.unis){
+ update(this.addServices(s, this.formatUni(this.unis)))
+ }
+ }, true)
+ }
+ };
+ });
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/js/uni.service.js b/views/ngXosViews/ecordTopology/src/js/uni.service.js
new file mode 100644
index 0000000..3ac2beb
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/js/uni.service.js
@@ -0,0 +1,36 @@
+/**
+ * © OpenCORD
+ *
+ * Visit http://guide.xosproject.org/devguide/addview/ for more information
+ *
+ * Created by teone on 6/27/16.
+ */
+
+(function () {
+ 'use strict';
+
+ angular.module('xos.ecordTopology')
+ .service('Uni', ($resource, _) => {
+ return $resource(`/api/service/metronetworkservice/SCA_ETH_FPP_UNI_N/:id`, {id: '@id'}, {
+ query: {
+ isArray: true,
+ interceptor: {
+ response: (res) => {
+ const augmentedUnis = _.map(res.data, (uni, i) => {
+ var latlng_val = uni.latlng;
+ var lat_val = latlng_val.substring(1, latlng_val.indexOf(',') - 1);
+ lat_val = lat_val.trim();
+ var lng_val = latlng_val.substring(latlng_val.indexOf(',') + 1, latlng_val.length - 1);
+ lng_val = lng_val.trim()
+
+ uni.latlng = [lat_val, lng_val];
+ return uni;
+ });
+ return augmentedUnis;
+ }
+ }
+ }
+ });
+ });
+})();
+
diff --git a/views/ngXosViews/ecordTopology/src/sass/elan-map.scss b/views/ngXosViews/ecordTopology/src/sass/elan-map.scss
new file mode 100644
index 0000000..a693ab0
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/sass/elan-map.scss
@@ -0,0 +1,67 @@
+@import '../../../../style/sass/lib/_variables.scss';
+@import './vars.scss';
+
+elan-map {
+ display: block;
+ width: 100%;
+ height: 380px;
+ position: relative;
+
+ svg{
+ position: absolute;
+ top: 0;
+ left: 0;
+ }
+
+ circle.elan,
+ rect.elan {
+ stroke: $brand-info;
+ stroke-width: 2;
+ fill: #fff;
+ }
+
+ circle.elan,
+ circle.uni {
+ cursor: pointer;
+ }
+
+ .node.uni {
+
+ circle.uni,
+ rect.uni {
+ stroke: $cord-red;
+ stroke-width: 2;
+ fill: #fff;
+ }
+ path {
+ fill: darken($cord-red, 20%);
+ }
+ }
+
+ line {
+ stroke: $cord-red;
+ stroke-width: 1;
+ }
+
+ #map {
+ background: #EFEBE2;
+ }
+
+ .subunit {
+ fill: #B7DAFF;
+ stroke: white;
+ stroke-width: 1px;
+ }
+
+ .subunit._10{
+ fill: transparent;
+ stroke: transparent;
+ }
+
+ .exterior-boundary {
+ fill: none;
+ stroke: black;
+ stroke-linejoin: round;
+ stroke-width: 1px;
+ }
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/sass/eline-details.scss b/views/ngXosViews/ecordTopology/src/sass/eline-details.scss
new file mode 100644
index 0000000..2d7834b
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/sass/eline-details.scss
@@ -0,0 +1,15 @@
+@import '../../../../style/sass/lib/_variables.scss';
+@import '../../../../style/sass/bootstrap/bootstrap/_variables.scss';
+
+.service-container{
+ .btn {
+ font-size: $font-size-small;
+ }
+}
+
+.sla {
+ input.input-sm {
+ max-width: 60px;
+ text-align: right;
+ }
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/sass/main.scss b/views/ngXosViews/ecordTopology/src/sass/main.scss
new file mode 100644
index 0000000..006182c
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/sass/main.scss
@@ -0,0 +1,13 @@
+@import '../../../../style/sass/lib/_variables.scss';
+@import '../../../../style/sass/bootstrap/_bootstrap.scss';
+
+@import "./elan-map.scss";
+@import "./eline-details.scss";
+@import "./service-map.scss";
+
+
+#xosEcordTopology {
+ .btn-primary-border {
+ @include button-variant($btn-primary-bg, $btn-primary-color, $btn-primary-border);
+ }
+}
diff --git a/views/ngXosViews/ecordTopology/src/sass/service-map.scss b/views/ngXosViews/ecordTopology/src/sass/service-map.scss
new file mode 100644
index 0000000..966901b
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/sass/service-map.scss
@@ -0,0 +1,41 @@
+@import '../../../../style/sass/lib/_variables.scss';
+@import './vars.scss';
+
+service-map {
+ width: 100%;
+ height: 100px;
+ display: block;
+
+ .node rect {
+ fill: #fff;
+ stroke-width: 2px;
+ }
+
+ .node.uni {
+ rect {
+ stroke: $cord-red;
+ }
+ path {
+ fill: darken($cord-red, 20%);
+ }
+ }
+
+ .node.service{
+ rect {
+ stroke: $brand-primary;
+ }
+ path {
+ fill: darken($brand-primary, 20%);
+ }
+ }
+
+ .node text {
+ font: 12px sans-serif;
+ }
+
+ .link {
+ fill: none;
+ stroke: #ccc;
+ stroke-width: 1;
+ }
+}
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/sass/vars.scss b/views/ngXosViews/ecordTopology/src/sass/vars.scss
new file mode 100644
index 0000000..5cb2d36
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/sass/vars.scss
@@ -0,0 +1,5 @@
+$cord-red: #CE5650;
+
+/*$brand-primary: $cord-red;*/
+$panel-border-radius: 0;
+$border-radius-large: 2px;
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/templates/ecord-topo.tpl.html b/views/ngXosViews/ecordTopology/src/templates/ecord-topo.tpl.html
new file mode 100644
index 0000000..7c7e31e
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/templates/ecord-topo.tpl.html
@@ -0,0 +1,62 @@
+<div class="row" ng-show="vm.elines.length == 0">
+ <div class="col-xs-10 col-xs-offset-1 text-center">
+ <div class="jumbotron" style="margin-top: 100px">
+ <div class="row">
+ <div class="col-sm-4">
+ <img ng-src="{{'/imgs/'+user.image+'.jpg'}}" class="img-responsive img-rounded">
+ </div>
+ <div class="col-sm-8">
+ <h1>Hello, {{currentUser.name}}</h1>
+ <p style="padding-top: 20px">
+ Looks like you have not yet created any E-LINE!
+ </p>
+ <div style="margin-top: 60px">
+ <a class="btn btn-success btn-lg" href="#/eline" role="button">Start now</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
+<div class="row" ng-show="vm.elines.length > 0">
+ <div class="col-sm-6">
+ <div class="panel panel-primary animate-vertical" ng-hide="vm.elines.length == 0">
+ <div class="panel-heading">
+ <h3 class="panel-title">E-LINES</h3>
+ </div>
+ <div class="panel-body">
+ <elan-map elan="vm.elines"></elan-map>
+ </div>
+ </div>
+ </div>
+ <div class="col-sm-6 eline-list">
+ <div class="panel panel-primary table-container" ng-show="vm.elines.length >
+ 0">
+ <!-- <pre>{{elans | json}}</pre> -->
+ <table class="table">
+ <thead>
+ <tr>
+ <th>E-LINE</th>
+ <th>Unis</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="eline in vm.elines | orderBy:'id'" ng-click="vm.selectEline(eline)">
+ <td>{{eline.sid}}</td>
+ <td>
+ <span> - </span>
+ {{eline.uni1.location}}
+ {{eline.uni1.pid}}
+ </span>
+ <span> - </span>
+ {{eline.uni2.location}}
+ {{eline.uni2.pid}}
+ </span>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <a class="btn btn-success btn-lg btn-block" href="#/eline" role="button">Create a new E-LINE!</a>
+ </div>
+</div>
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/templates/eline-details.tpl.html b/views/ngXosViews/ecordTopology/src/templates/eline-details.tpl.html
new file mode 100644
index 0000000..533099d
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/templates/eline-details.tpl.html
@@ -0,0 +1,122 @@
+<div id="home" class="container-fluid">
+ <div class="row">
+ <div class="col-sm-6">
+ <div class="panel panel-primary">
+ <div class="panel-heading">
+ <h3 class="panel-title">E-LINE MAP</h3>
+ </div>
+ <div class="panel-body">
+ <elan-map ng-hide="!vm.eline" elan="[vm.eline]"></elan-map>
+ </div>
+ </div>
+ <div class="panel panel-primary">
+ <div class="panel-heading">
+ <h3 class="panel-title">E-LINE SERVICES</h3>
+ </div>
+ <div class="panel-body">
+ <service-map ng-if="vm.eline" unis="vm.eline.SCA_ETH_Flow_Points" services="vm.activeServices"></service-map>
+ </div>
+ </div>
+ </div>
+ <div class="col-sm-6">
+ <div class="panel panel-primary service-container">
+ <div class="panel-heading">
+ <h3 class="panel-title">Add a service:</h3>
+ </div>
+ <div class="panel-body">
+ <div class="row" ng-repeat="(k,v) in vm.availableServices">
+ <div class="col-xs-12">
+ <label>{{k | uppercase}}</label>
+ </div>
+ <div class="col-xs-{{12/v.length}}" ng-repeat="service in v">
+ <a ng-click="vm.toggleService(service)" class="btn btn-block"
+ ng-class="{'btn-primary-border': !vm.isServiceActive(service), 'btn-primary': vm.isServiceActive(service)}">{{service.label}}</a>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-sm-6">
+ <div class="panel panel-primary animate-vertical" ng-hide="!vm.eline.SCA_ETH_Flow_Points[0]">
+ <div class="panel-heading">
+ <h3 class="panel-title">{{vm.eline.SCA_ETH_Flow_Points[0].scaEthFppUniN.name}}</h3>
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-sm-12">
+ <div class="input-group">
+ <span class="input-group-addon">CIR</span>
+ <input b-to-mb ng-model="vm.eline.SCA_ETH_Flow_Points[0].scaEthFppUniN.interfaceCfgIngressBwp.bwpCfgCir" ng-value="'10'" class="form-control" type="number" required>
+ <span class="input-group-addon">Gb</span>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-sm-12">
+ <div class="input-group">
+ <span class="input-group-addon">EIR</span>
+ <input b-to-mb ng-model="vm.eline.SCA_ETH_Flow_Points[0].scaEthFppUniN.interfaceCfgIngressBwp.bwpCfgEir" ng-value="'30'" class="form-control" type="number" required>
+ <span class="input-group-addon">Gb</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="col-sm-6">
+ <div class="panel panel-primary animate-vertical" ng-hide="!vm.eline.SCA_ETH_Flow_Points[1]">
+ <div class="panel-heading">
+ <h3 class="panel-title">{{vm.eline.SCA_ETH_Flow_Points[1].scaEthFppUniN.name}}</h3>
+ </div>
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-sm-12">
+ <div class="input-group">
+ <span class="input-group-addon">CIR</span>
+ <input b-to-mb ng-model="vm.eline.SCA_ETH_Flow_Points[1].scaEthFppUniN.interfaceCfgIngressBwp.bwpCfgCir" ng-value="'10'" class="form-control" type="number" required>
+ <span class="input-group-addon">Gb</span>
+ </div>
+ </div>
+ </div>
+ <div class="row">
+ <div class="col-sm-12">
+ <div class="input-group">
+ <span class="input-group-addon">EIR</span>
+ <input b-to-mb ng-model="vm.eline.SCA_ETH_Flow_Points[1].scaEthFppUniN.interfaceCfgIngressBwp.bwpCfgEir" ng-value="'30'" class="form-control" type="number" required>
+ <span class="input-group-addon">Gb</span>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel panel-primary table-container sla">
+ <table class="table">
+ <thead>
+ <tr>
+ <th>SLA</th>
+ <th>Value</th>
+ <th>Unit</th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr ng-repeat="sla in vm.slas">
+ <td>{{sla.name}}</td>
+ <td class="text-right">
+ <input class="form-control input-sm" type="text" ng-model="sla.default"></input>
+ </td>
+ <td>{{sla.unit}}</td>
+ </tr>
+ </tbody>
+ </table>
+ </div>
+ <div class="row">
+ <div class="col-xs-12">
+ <div ng-show="!saved"ng-click="vm.saveEline()" class="btn btn-success btn-block btn-lg">Save</div>
+ <div ng-show="saved"class="form-success btn-blockanimate-fade">Done</div>
+ </div>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file
diff --git a/views/ngXosViews/ecordTopology/src/templates/eline-form.tpl.html b/views/ngXosViews/ecordTopology/src/templates/eline-form.tpl.html
new file mode 100644
index 0000000..ebe0445
--- /dev/null
+++ b/views/ngXosViews/ecordTopology/src/templates/eline-form.tpl.html
@@ -0,0 +1,114 @@
+<!-- ELINE CREATION POINT TO POINT -->
+<div class="container-fluid eline-form">
+ <div class="row">
+ <div class="col-xs-10 col-xs-offset-1">
+ <div class="panel panel-primary animate-vertical">
+ <div class="panel-heading">
+ <h3 class="panel-title">Create E-LINE</h3>
+ </div>
+ <form name="vm.eline" ng-submit="vm.createEline(vm.el, vm.eline)">
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-xs-12">
+ <label>Name:</label>
+ <input type="text" class="form-control input-lg" ng-model="vm.el.evcCfgidentifier" required></div>
+ </div>
+ <div class="row">
+ <div class="col-xs-6">
+ <label>Start:</label>
+ <div class="alert alert-danger animate-vertical" ng-hide="!vm.formErrors.startError">
+ {{vm.formErrors.startError}}
+ </div>
+ <!--<pre>{{vm.startUnis | json}}</pre>-->
+ <div class="row uni-repeat" ng-repeat="u in vm.startUnis">
+ <div class="col-xs-2">
+ <checkbox largest
+ ng-class="{'btn-primary': !u.alreadySelected, 'btn-danger': u.alreadySelected === true}"
+ ng-model="u.selected"
+ ng-change="vm.selectUni(u, 'start')"
+ required
+ ></checkbox>
+ </div>
+ <div class="col-xs-5">
+
+ <b>{{u.name || u.interfaceCfgIdentifier}}</b>
+
+ </div>
+ <div class="col-xs-5">
+ {{u.location}}
+ </div>
+ </div>
+ </div>
+ <div class="col-xs-6">
+ <label>End:</label>
+ <div class="alert alert-danger animate-vertical" ng-hide="!vm.formErrors.endError">
+ {{vm.formErrors.endError}}
+ </div>
+ <div class="row uni-repeat" ng-repeat="u in vm.endUnis">
+ <div class="col-xs-2">
+ <checkbox largest
+ ng-class="{'btn-primary': !u.alreadySelected, 'btn-danger': u.alreadySelected === true}"
+ ng-model="u.selected"
+ ng-change="vm.selectUni(u, 'end')"
+ required
+ ></checkbox>
+ </div>
+ <div class="col-xs-5">
+ <b>{{u.name || u.interfaceCfgIdentifier}}</b>
+ </div>
+ <div class="col-xs-5">
+ {{u.location}}
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-footer text-right">
+ <button ng-hide="vm.eline.$saved" type="submit" class="btn btn-success btn-lg animate-fade">Save</button>
+ <div ng-hide="!vm.eline.$saved" class="form-success animate-fade">Done</div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
+
+<!-- MULTIPLE POINT CREATION -->
+<div class="container-fluid eline-form" ng-if="vm.currentUser.userId === 2">
+ <div class="row">
+ <div class="col-xs-10 col-xs-offset-1">
+ <div class="panel panel-primary animate-vertical">
+ <div class="panel-heading">
+ <h3 class="panel-title">Create Infrastructure</h3>
+ </div>
+ <form name="vm.infrastructure" ng-submit="vm.createInfrastructure(vm.infrastructureUnis)">
+ <div class="panel-body">
+ <div class="row">
+ <div class="col-sm-6 infrastructureUnis" ng-repeat="u in vm.infrastructureUnis">
+ <div class="row uni-repeat">
+ <div class="col-xs-2">
+ <checkbox largest
+ class="btn-primary"
+ ng-model="u.selected"
+ required
+ ></checkbox>
+ </div>
+ <div class="col-xs-5">
+ <b>{{u.name}}</b>
+ </div>
+ <div class="col-xs-5">
+ {{u.location}}
+ </div>
+ </div>
+ </div>
+ </div>
+ </div>
+ <div class="panel-footer text-right">
+ <button ng-hide="vm.eline.$saved" type="submit" class="btn btn-success btn-lg animate-fade">Save</button>
+ <div ng-hide="!vm.eline.$saved" class="form-success animate-fade">Done</div>
+ </div>
+ </form>
+ </div>
+ </div>
+ </div>
+</div>
\ No newline at end of file