diff --git a/v1/bundle.css b/v1/bundle.css
new file mode 100644
index 0000000000000000000000000000000000000000..06e2e451578f441ca0f858cf98c29b95d19b46b5
--- /dev/null
+++ b/v1/bundle.css
@@ -0,0 +1 @@
+.spinner{display:inline-block;opacity:0;width:0;-webkit-transition:opacity .25s,width .25s;-moz-transition:opacity .25s,width .25s;-o-transition:opacity .25s,width .25s;transition:opacity .25s,width .25s}.has-spinner.active{cursor:progress}.has-spinner.active .spinner{opacity:1;width:auto}.has-spinner.btn-mini.active .spinner{width:10px}.has-spinner.btn-small.active .spinner{width:13px}.has-spinner.btn.active .spinner{width:16px}.has-spinner.btn-large.active .spinner{width:19px}body{padding-top:70px}.github-ribbon img{position:absolute;top:0;right:0;border:0;padding-top:50px}.row-centered{text-align:center}#input,#output{height:280px}.panel-body{padding:0}#message-box .alert{width:50%}.github-star{margin-top:12px}
\ No newline at end of file
diff --git a/v1/bundle.js b/v1/bundle.js
new file mode 100644
index 0000000000000000000000000000000000000000..13855992acc3cb461ce04fe26790ced9bd724cf8
--- /dev/null
+++ b/v1/bundle.js
@@ -0,0 +1,428 @@
+(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
+function template(header, text, css){
+  return '<div class="alert alert-' + css + ' center-block fade in">' +
+    '<a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>' +
+    '<strong>' + header + '</strong>: ' + text +
+    '</div>';
+}
+
+function error(text){
+  return $('#message-box').append(template("Error", text, 'danger'));
+}
+
+function success(text){
+  return $('#message-box').append(template("Success", text, 'success'));
+}
+
+function successSchema(){
+  return success("Schema saved. Use <a href='" + location.href + "'>this link</a> for future reference");
+}
+
+module.exports = {
+  success: success,
+  successSchema: successSchema,
+  error: error
+};
+
+},{}],2:[function(require,module,exports){
+var baseURL = "https://api.github.com";
+
+/**
+ * Accepts gist hash (ID of the gist) and return a promise that resolves to gist `schema.json` file content.
+ * @see https://developer.github.com/v3/gists/#get-a-single-gist
+ */
+function fetch(hash){
+  return $.ajax({
+    method: "GET",
+    url: baseURL + "/gists/" + hash
+  }).then(function(response) {
+    try {
+      return JSON.parse(response.files['schema.json'].content);
+    } catch (e) {
+      return $.Deferred().reject(e);
+    }
+  });
+}
+
+/**
+ * Accepts JSON content (already formatted text, NOT an object) and saves it as anonymous gist. Returns a promise that
+ * resolves with newly created gist ID.
+ * @see http://jsfiddle.net/vXpCV/
+ * @see https://developer.github.com/v3/gists/#create-a-gist
+ */
+function save(content){
+  return $.ajax({
+    method: "POST",
+    url: baseURL + "/gists",
+    dataType: 'json',
+    data: JSON.stringify({
+      "description": "JSON Schema created by http://json-schema-faker.js.org",
+      "files": {
+        "schema.json": {
+          "content": content
+        }
+      }
+    })
+  }).then(function(response) {
+    return 'gist/' + response.id;
+  });
+}
+
+var GithubStorage = {
+  fetch: fetch,
+  save: save
+};
+
+module.exports = GithubStorage;
+
+},{}],3:[function(require,module,exports){
+function fetch(hash){
+  var dfd = $.Deferred();
+  try {
+    var content = JSON.parse(decodeURIComponent(hash));
+    dfd.resolve(content);
+  } catch (e) {
+    dfd.reject(e);
+  }
+  return dfd.promise();
+}
+
+function save() {
+
+}
+
+//function syncOut() {
+//  location.hash = encodeURIComponent(JSON.stringify(JSON.parse(ui.input.getValue())));
+//}
+
+module.exports = {
+  fetch: fetch,
+  save: save
+};
+
+},{}],4:[function(require,module,exports){
+var storageGithub = require('./storage-github');
+var storageURI = require('./storage-uri');
+
+function fetch(uri){ // assuming uri is a non-empty string
+  var tmp = uri.replace("#", "").split('/');
+  if (tmp.length === 1) { // old style URI-based schema - supported for backward compatibility
+    // example: http://json-schema-faker.js.org/#%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
+    return storageURI.fetch(tmp[0]);
+  } else {
+    var type = tmp[0], hash = tmp[1];
+    switch (type) {
+      // example: http://json-schema-faker.js.org/#gist/c347f2f6083fe81a1fe43d17b83125d7
+      case 'gist':
+        return storageGithub.fetch(hash);
+      // example: http://json-schema-faker.js.org/#uri/%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
+      case 'uri':
+        return storageURI.fetch(hash);
+      default:
+        throw Error("Unknown storage type");
+    }
+  }
+}
+
+function save(content, type){
+  if (!content) {
+    throw Error("Empty schema can't be saved");
+  }
+  type = type || 'gist';
+  switch(type) {
+    case 'gist':
+      return storageGithub.save(content);
+    case 'uri':
+      return storageURI.save(content);
+    default:
+      throw Error("Unknown storage type");
+  }
+}
+
+module.exports = {
+  fetch: fetch,
+  save: save
+};
+
+},{"./storage-github":2,"./storage-uri":3}],5:[function(require,module,exports){
+require('../schema/array/enum.json');require('../schema/array/fixed.json');require('../schema/array/n-times.json');require('../schema/basic/boolean.json');require('../schema/basic/integer.json');require('../schema/basic/reference.json');require('../schema/chance/guid.json');require('../schema/chance/name.json');require('../schema/chance/properties.json');require('../schema/faker/fake.json');require('../schema/faker/properties.json');
+
+var storage = require('./storage');
+var message = require('./message');
+
+function requireSchema(name) {
+    return require('../schema/' + name + '.json');
+}
+
+var indent = 2;
+function format(value) {
+    return JSON.stringify(value, null, indent);
+}
+
+// UI to schema
+var definitionMap = {
+    '#example_faker_properties': 'faker/properties',
+    '#example_faker_fake': 'faker/fake',
+    '#example_chance_guid': 'chance/guid',
+    '#example_chance_name': 'chance/name',
+    '#example_chance_properties': 'chance/properties',
+    '#example_array_enum': 'array/enum',
+    '#example_array_fixed': 'array/fixed',
+    '#example_array_nTimes': 'array/n-times',
+    '#example_basic_reference': 'basic/reference',
+    '#example_basic_integer': 'basic/integer',
+    '#example_basic_boolean': 'basic/boolean'
+};
+
+$(document).ready(function () {
+    // http://jsfiddle.net/revathskumar/rY37e/
+    // https://ace.c9.io/build/kitchen-sink.html
+    var input = ace.edit("input");
+    input.setTheme("ace/theme/github");
+    input.getSession().setMode("ace/mode/json");
+    input.getSession().setTabSize(indent);
+    input.setShowPrintMargin(false);
+    input.$blockScrolling = Infinity;
+
+    var output = ace.edit("output");
+    output.setTheme("ace/theme/github");
+    output.getSession().setMode("ace/mode/json");
+    output.getSession().setTabSize(indent);
+    output.setShowPrintMargin(false);
+    output.$blockScrolling = Infinity;
+    output.setReadOnly(true);
+
+    var ui = {
+        input: input,
+        output: output,
+        run: $('#run-btn'),
+        save: $('#save-btn'),
+    };
+
+    function clearOutput() {
+        ui.output.setValue('');
+    }
+
+    function fillInput(value) {
+        ui.input.setValue(format(value), -1);
+    }
+
+    function fillOutput(value) {
+        ui.output.setValue(format(value), -1);
+    }
+
+    function generateOutput() {
+        var schema = JSON.parse(ui.input.getValue());
+        var sample = jsf(schema);
+        fillOutput(sample);
+    }
+
+    ui.run.on('click', function () {
+        generateOutput();
+    });
+
+    ui.save.on('click', function () {
+        try {
+            generateOutput();
+            var button = this;
+            $(button).addClass('active');
+            storage.save(ui.input.getValue()).then(function(response){
+                location.hash = response;
+                message.successSchema();
+            }, function(reason){
+                message.error("Failed to save schema");
+            }).always(function(){
+                $(button).removeClass('active');
+            });
+        } catch (e) {
+            message.error("Schema is invalid, not gonna save it.");
+        }
+    });
+
+    function register(uiElementSelector, schemaPath){
+        $(uiElementSelector).on('click', function () {
+            clearOutput();
+            fillInput(requireSchema(schemaPath));
+            generateOutput();
+        });
+    }
+
+    for (var key in definitionMap) {
+        if (definitionMap.hasOwnProperty(key)) {
+            register(key, definitionMap[key]);
+        }
+    }
+
+    function displayDefault(){
+        fillInput(requireSchema('basic/boolean'));
+        generateOutput();
+    }
+
+    if (location.hash) {
+        storage.fetch(location.hash).then(function(schema){
+            fillInput(schema);
+            fillOutput(jsf(schema));
+        }, function(reason){
+            message.error("Couldn't load external schema");
+            displayDefault();
+        });
+    } else {
+        displayDefault();
+    }
+});
+
+
+},{"../schema/array/enum.json":6,"../schema/array/fixed.json":7,"../schema/array/n-times.json":8,"../schema/basic/boolean.json":9,"../schema/basic/integer.json":10,"../schema/basic/reference.json":11,"../schema/chance/guid.json":12,"../schema/chance/name.json":13,"../schema/chance/properties.json":14,"../schema/faker/fake.json":15,"../schema/faker/properties.json":16,"./message":1,"./storage":4}],6:[function(require,module,exports){
+module.exports={
+  "type": "array",
+  "minItems": 15,
+  "items": {
+    "enum": ["red", "green", "blue", "yellow"]
+  }
+}
+},{}],7:[function(require,module,exports){
+module.exports={
+    "type": "array",
+    "items": [
+        {
+            "type": "integer"
+        },
+        {
+            "type": "boolean"
+        },
+        {
+            "type": "string"
+        }
+    ]
+}
+},{}],8:[function(require,module,exports){
+module.exports={
+  "type": "array",
+  "minItems": 100,
+  "maxItems": 200,
+  "items": {
+    "type": "integer"
+  }
+}
+},{}],9:[function(require,module,exports){
+module.exports={
+    "type": "boolean"
+}
+},{}],10:[function(require,module,exports){
+module.exports={
+    "type": "integer",
+    "minimum": 600,
+    "maximum": 700,
+    "multipleOf": 7,
+    "exclusiveMinimum": true
+}
+},{}],11:[function(require,module,exports){
+module.exports={
+    "type": "object",
+    "properties": {
+        "user": {
+            "type": "object",
+            "properties": {
+                "id": {
+                    "$ref": "#/definitions/positiveInt"
+                },
+                "name": {
+                    "type": "string",
+                    "faker": "name.findName"
+                },
+                "birthday": {
+                    "type": "string",
+                    "chance": {
+                        "birthday" : {
+                            "string": true
+                        }
+                    }
+                },
+                "email": {
+                    "type": "string",
+                    "format": "email",
+                    "faker": "internet.email"
+                }
+            },
+            "required": [
+                "id",
+                "name",
+                "birthday",
+                "email"
+            ]
+        }
+    },
+    "required": [
+        "user"
+    ],
+    "definitions": {
+        "positiveInt": {
+            "type": "integer",
+            "minimum": 0,
+            "minimumExclusive": true
+        }
+    }
+}
+},{}],12:[function(require,module,exports){
+module.exports={
+  "type": "string",
+  "chance": "guid"
+}
+},{}],13:[function(require,module,exports){
+module.exports={
+  "type": "string",
+  "chance": {
+    "first": {
+      "nationality": "it"
+    }
+  }
+}
+},{}],14:[function(require,module,exports){
+module.exports={
+    "type": "object",
+    "properties": {
+        "userId": {
+            "type": "string",
+            "chance": "guid"
+        },
+        "emailAddr": {
+            "type": "string",
+            "chance": {
+                "email": {
+                    "domain": "fake.com"
+                }
+            },
+            "pattern": ".+@fake.com"
+        }
+    },
+    "required": [
+        "userId",
+        "emailAddr"
+    ]
+}
+},{}],15:[function(require,module,exports){
+module.exports={
+  "type": "string",
+  "faker": {
+    "fake": "{{name.lastName}}, {{name.firstName}} {{name.suffix}}"
+  }
+}
+},{}],16:[function(require,module,exports){
+module.exports={
+  "type": "object",
+  "properties": {
+    "name": {
+      "type": "string",
+      "faker": "name.findName"
+    },
+    "email": {
+      "type": "string",
+      "faker": "internet.email"
+    }
+  },
+  "required": [
+    "name",
+    "email"
+  ]
+}
+},{}]},{},[5]);
diff --git a/v1/favicon.ico b/v1/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a
Binary files /dev/null and b/v1/favicon.ico differ
diff --git a/v1/index.html b/v1/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..43445b99ec5134183df7e9871f761dee079ce403
--- /dev/null
+++ b/v1/index.html
@@ -0,0 +1,143 @@
+<html>
+    <head>
+        <title>Fake your JSON-Schemas!</title>
+        <meta name="viewport" content="width=device-width, initial-scale=1">
+        <link rel="shortcut icon" type="image/icon" href="favicon.ico" />
+        <link href="vendor.css" rel="stylesheet">
+        <link href="bundle.css" rel="stylesheet">
+        <link href="http://netdna.bootstrapcdn.com/font-awesome/3.0.2/css/font-awesome.css" rel="stylesheet">
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/json-schema-faker/0.3.6/json-schema-faker.js" type="text/javascript" charset="utf-8"></script>
+        <script src="https://cdnjs.cloudflare.com/ajax/libs/ace/1.2.3/ace.js" type="text/javascript" charset="utf-8"></script>
+        <script src="vendor.js"></script>
+        <script src="bundle.js"></script>
+        <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
+        <!--[if lt IE 9]>
+          <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
+          <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
+        <![endif]-->
+        <script async defer src="https://buttons.github.io/buttons.js"></script>
+    </head>
+    <body>
+        <nav class="navbar navbar-default navbar-fixed-top">
+            <div class="container">
+                <div class="navbar-header">
+                    <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
+                        <span class="sr-only">Toggle navigation</span>
+                        <span class="icon-bar"></span>
+                        <span class="icon-bar"></span>
+                        <span class="icon-bar"></span>
+                    </button>
+                    <a class="navbar-brand" href="#">json-schema-faker</a>
+                </div>
+                <div id="navbar" class="navbar-collapse collapse">
+                    <ul class="nav navbar-nav">
+                        <li class="dropdown">
+                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Samples <span class="caret"></span></a>
+                            <ul class="dropdown-menu" role="menu">
+                                <li class="dropdown-header">basic</li>
+                                <li><a href="#" id="example_basic_boolean" data-toggle="collapse" data-target=".navbar-collapse">boolean</a></li>
+                                <li><a href="#" id="example_basic_integer" data-toggle="collapse" data-target=".navbar-collapse">integer</a></li>
+                                <li><a href="#" id="example_basic_reference" data-toggle="collapse" data-target=".navbar-collapse">reference</a></li>
+                                <li class="divider"></li>
+                                <li class="dropdown-header">array</li>
+                                <li><a href="#" id="example_array_enum" data-toggle="collapse" data-target=".navbar-collapse">enums</a></li>
+                                <li><a href="#" id="example_array_fixed" data-toggle="collapse" data-target=".navbar-collapse">fixed values</a></li>
+                                <li><a href="#" id="example_array_nTimes" data-toggle="collapse" data-target=".navbar-collapse">n-times repeated</a></li>
+                                <li class="divider"></li>
+                                <li class="dropdown-header">faker.js</li>
+                                <li><a href="#" id="example_faker_properties" data-toggle="collapse" data-target=".navbar-collapse">properties</a></li>
+                                <li><a href="#" id="example_faker_fake" data-toggle="collapse" data-target=".navbar-collapse">faker.fake()</a></li>
+                                <li class="divider"></li>
+                                <li class="dropdown-header">chance.js</li>
+                                <li><a href="#" id="example_chance_guid" data-toggle="collapse" data-target=".navbar-collapse">guid</a></li>
+                                <li><a href="#" id="example_chance_name" data-toggle="collapse" data-target=".navbar-collapse">name</a></li>
+                                <li><a href="#" id="example_chance_properties" data-toggle="collapse" data-target=".navbar-collapse">properties</a></li>
+                            </ul>
+                        </li>
+                        <li class="dropdown">
+                            <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-expanded="false">Community <span class="caret"></span></a>
+                            <ul class="dropdown-menu" role="menu">
+                                <li><a href="https://github.com/json-schema-faker/json-schema-faker/">GitHub</a></li>
+                                <li><a href="https://travis-ci.org/json-schema-faker/json-schema-faker">CI</a></li>
+                                <li><a href="https://github.com/json-schema-faker/json-schema-faker/issues/new">Contribution</a></li>
+                                <li class="divider"></li>
+                                <li class="dropdown-header">tools</li>
+                                <li><a href="https://github.com/json-schema-faker/angular-jsf">AngularJS module</a></li>
+                                <li><a href="https://github.com/json-schema-faker/grunt-jsonschema-faker">Grunt plugin</a></li>
+                                <li><a href="https://github.com/json-schema-faker/json-schema-server">JSF Server</a></li>
+                            </ul>
+                        </li>
+                        <li>
+                            <div class="github-star">
+                                <a class="github-button" href="https://github.com/json-schema-faker/json-schema-faker" data-style="mega" data-count-href="/json-schema-faker/json-schema-faker/stargazers" data-count-api="/repos/json-schema-faker/json-schema-faker#stargazers_count" data-count-aria-label="# stargazers on GitHub" aria-label="Star json-schema-faker/json-schema-faker on GitHub">Star</a>
+                            </div>
+                        </li>
+                    </ul>
+                    <ul class="nav navbar-nav navbar-right">
+                        <li><a href="https://github.com/marak/Faker.js/">faker.js</a></li>
+                        <li><a href="http://chancejs.com/">chance.js</a></li>
+                        <li><a href="http://fent.github.io/randexp.js/">randexp.js</a></li>
+                    </ul>
+                </div>
+            </div>
+        </nav>
+
+        <div class="container-fluid">
+            <div class="row">
+                <div class="col-xs-12">
+                    <p><strong>JSON Schema Faker</strong> combines <a href="http://json-schema.org/">JSON Schema</a> standard with fake data generators, allowing users to generate fake data that conform to the schema.</p>
+                    <p>This application is built using <a href="https://www.npmjs.com/package/json-schema-faker">json-schema-faker npm module</a> <strong>version 0.3.6</strong> built with <a href="http://browserify.org/">browserify</a>.</p>
+                </div>
+            </div>
+
+            <div class="row" id="message-box">
+            </div>
+
+            <div class="row">
+                <div class="col-xs-12 col-md-6">
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h3 class="panel-title">JSON Schema</h3>
+                        </div>
+                        <div class="panel-body">
+                            <div id="input"></div>
+                        </div>
+                    </div>
+                </div>
+                <div class="col-xs-12 col-md-6">
+                    <div class="panel panel-default">
+                        <div class="panel-heading">
+                            <h3 class="panel-title">Sample output</h3>
+                        </div>
+                        <div class="panel-body">
+                            <div id="output"></div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="row row-centered">
+                <a class="btn btn-lg btn-primary" id="run-btn" role="button">
+                    Generate sample
+                </a>
+                <a class="btn btn-lg btn-primary has-spinner" id="save-btn" role="button">
+                    <span class="spinner"><i class="icon-spin icon-refresh"></i></span>
+                    Save
+                </a>
+            </div>
+        </div>
+
+        <a class="github-ribbon" href="https://github.com/json-schema-faker/json-schema-faker">
+            <img src="https://camo.githubusercontent.com/a6677b08c955af8400f44c6298f40e7d19cc5b2d/68747470733a2f2f73332e616d617a6f6e6177732e636f6d2f6769746875622f726962626f6e732f666f726b6d655f72696768745f677261795f3664366436642e706e67" alt="Fork me on GitHub" data-canonical-src="https://s3.amazonaws.com/github/ribbons/forkme_right_gray_6d6d6d.png">
+        </a>
+
+        <script>
+          (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+          (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+          m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+          })(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+          ga('create', 'UA-62699942-1', 'auto');
+          ga('send', 'pageview');
+        </script>
+    </body>
+</html>
diff --git a/v1/vendor.css b/v1/vendor.css
new file mode 100644
index 0000000000000000000000000000000000000000..ab59c569660e20f6b53cb6ec52dad648fc4595b4
--- /dev/null
+++ b/v1/vendor.css
@@ -0,0 +1,9 @@
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 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 */.label,sub,sup{vertical-align:baseline}hr,img{border:0}body,figure{margin:0}.btn-group>.btn-group,.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.dropdown-menu{float:left}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.pre-scrollable{max-height:340px}html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}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}b,optgroup,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}sub,sup{position:relative;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}img{vertical-align:middle}svg:not(:root){overflow:hidden}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre,textarea{overflow:auto}code,kbd,pre,samp{font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}.glyphicon,address{font-style:normal}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{padding:0;border:0}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;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-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{blockquote,img,pre,tr{page-break-inside:avoid}*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999}thead{display:table-header-group}img{max-width:100%!important}h2,h3,p{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 td,.table-bordered th{border:1px solid #ddd!important}}.dropdown-menu,.modal-content{-webkit-background-clip:padding-box}.btn,.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-warning.active,.btn-warning:active,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover,.form-control,.navbar-toggle,.open>.dropdown-toggle.btn-danger,.open>.dropdown-toggle.btn-default,.open>.dropdown-toggle.btn-info,.open>.dropdown-toggle.btn-primary,.open>.dropdown-toggle.btn-warning{background-image:none}.img-thumbnail,body{background-color:#fff}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\002a"}.glyphicon-plus:before{content:"\002b"}.glyphicon-eur:before,.glyphicon-euro: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,.glyphicon-btc:before,.glyphicon-xbt:before{content:"\e227"}.glyphicon-jpy:before,.glyphicon-yen:before{content:"\00a5"}.glyphicon-rub:before,.glyphicon-ruble: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"}*,:after,:before{-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.42857143;color:#333}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 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}dt,kbd kbd,label{font-weight:700}address,blockquote .small,blockquote footer,blockquote small,dd,dt,pre{line-height:1.42857143}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-inline,.list-unstyled{padding-left:0;list-style:none}.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{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}pre code,table{background-color:transparent}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}dl,ol,ul{margin-top:0}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child,ol ol,ol ul,ul ol,ul ul{margin-bottom:0}address,dl{margin-bottom:20px}ol,ul{margin-bottom:10px}.list-inline{margin-left:-5px}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}.container{width:750px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;color:#777}legend,pre{display:block;color:#333}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}code,kbd{padding:2px 4px;font-size:90%}caption,th{text-align:left}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;-webkit-box-shadow:none;box-shadow:none}pre{padding:9.5px;margin:0 0 10px;font-size:13px;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}.container,.container-fluid{margin-right:auto;margin-left:auto}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;border-radius:0}.container,.container-fluid{padding-right:15px;padding-left:15px}.pre-scrollable{overflow-y:scroll}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}caption{padding-top:8px;padding-bottom:8px;color:#777}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;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>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered,.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover,.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@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>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset,legend{padding:0;border:0}fieldset{min-width:0;margin:0}legend{width:100%;margin-bottom:20px;font-size:21px;line-height:inherit;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-webkit-appearance:none}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}.form-control,output{font-size:14px;line-height:1.42857143;color:#555;display:block}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}output{padding-top:7px}.form-control{width:100%;height:34px;padding:6px 12px;background-color:#fff;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .form-control-feedback,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.form-control::-ms-expand{background-color:transparent;border:0}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}@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-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}.checkbox-inline.disabled,.checkbox.disabled label,.radio-inline.disabled,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio label,fieldset[disabled] .radio-inline,fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.form-group-sm .form-control,.input-sm{padding:5px 10px;border-radius:3px;font-size:12px}.input-sm{height:30px;line-height:1.5}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;line-height:1.5}.form-group-lg .form-control,.input-lg{border-radius:6px;padding:10px 16px;font-size:18px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.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{height:46px;line-height:1.3333333}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;line-height:1.3333333}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.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}.collapsing,.dropdown,.dropup{position:relative}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .form-control-feedback,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .form-control-feedback,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-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-control-static,.form-inline .form-group{display:inline-block}.form-inline .control-label,.form-inline .form-group{margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}.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}.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:-webkit-focus-ring-color auto 5px;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.btn-default:hover,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.disabled.focus,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled].focus,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary.active,.btn-primary:active,.btn-primary:hover,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled].focus,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success.active,.btn-success:active,.btn-success:hover,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled].focus,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info.active,.btn-info:active,.btn-info:hover,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled].focus,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.btn-warning:hover,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled].focus,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger.active,.btn-danger:active,.btn-danger:hover,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled].focus,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;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:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{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=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .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{height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.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}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu-right,.dropdown-menu.pull-right{right:0;left:auto}.dropdown-header,.dropdown-menu>li>a{display:block;padding:3px 20px;line-height:1.42857143;white-space:nowrap}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle,.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child,.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child),.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn,.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{clear:both;font-weight:400;color:#333}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-left{right:auto;left:0}.dropdown-header{font-size:12px;color:#777}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.nav-justified>.dropdown .dropdown-menu,.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.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{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{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>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn .caret,.btn-group>.btn:first-child{margin-left:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn-lg .caret{border-width:5px 5px 0}.dropup .btn-lg .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>.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:first-child:not(:last-child){border-radius:4px 4px 0 0}.btn-group-vertical>.btn:last-child:not(:first-child){border-radius:0 0 4px 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-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;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=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{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-right:0;padding-left: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-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.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.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-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.nav>li,.nav>li>a{display:block;position:relative}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn: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:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{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-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-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:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{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{padding-left:0;margin-bottom:0;list-style:none}.nav>li>a{padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;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.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center;margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0;border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-justified>li,.nav-stacked>li{float:none}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar{border-radius:4px}.navbar-header{float:left}.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;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-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.carousel-inner,.embed-responsive,.modal,.modal-open,.progress{overflow:hidden}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}.navbar-static-top{z-index:1000;border-width:0 0 1px}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.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;height:50px;padding:15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;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}.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;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}.progress-bar-striped,.progress-striped .progress-bar,.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}@media (min-width:768px){.navbar-toggle{display:none}.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);margin:8px -15px}@media (min-width:768px){.navbar-form .form-control-static,.navbar-form .form-group{display:inline-block}.navbar-form .control-label,.navbar-form .form-group{margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.breadcrumb>li,.pagination{display:inline-block}.btn .badge,.btn .label{top:-1px;position:relative}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-radius:4px 4px 0 0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}.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:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-nav>li>a,.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{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:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>li>a,.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{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:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{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:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{padding-left:0;margin:20px 0;border-radius:4px}.pager li,.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:2;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:3;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.badge,.label{font-weight:700;line-height:1;white-space:nowrap;text-align:center}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.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:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;color:#fff;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;color:#fff;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.media-object,.thumbnail{display:block}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.jumbotron,.jumbotron .h1,.jumbotron h1{color:inherit}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;background-color:#eee}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.alert,.thumbnail{margin-bottom:20px}.alert .alert-link,.close{font-weight:700}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{padding-right:15px;padding-left:15px;border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.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{color:#3c763d;background-color:#dff0d8}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede}.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}}@-o-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{height:20px;margin-bottom:20px;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(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,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-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:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-striped .progress-bar-info,.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.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,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{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{padding-left:0;margin-bottom:20px}.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-left-radius:4px;border-top-right-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:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-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: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,.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{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .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:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{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:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{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:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{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:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.panel-heading>.dropdown .dropdown-toggle,.panel-title,.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.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}.panel-title,.panel>.list-group,.panel>.panel-collapse>.list-group,.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-title{margin-top:0;font-size:16px}.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 .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel-group .panel-heading,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.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-bordered>thead>tr:first-child>td,.panel>.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,.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,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom: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-left-radius:3px;border-top-right-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-left-radius:0;border-top-right-radius:0}.list-group+.panel-footer,.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table-responsive:first-child>.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:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.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,.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: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:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table: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,.panel>.table:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.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,.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{border-bottom-left-radius:3px}.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,.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{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 td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-responsive{margin-bottom:0;border: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+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{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:#333;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:#333}.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}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height: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}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.popover,.tooltip{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-style:normal;font-weight:400;line-height:1.42857143;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;line-break:auto;text-decoration:none}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.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;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.carousel-control,.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.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,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}.tooltip.top-left .tooltip-arrow,.tooltip.top-right .tooltip-arrow{bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-size:12px;text-align:left;text-align:start;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.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{right:5px}.tooltip.top-right .tooltip-arrow{left:5px}.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,.tooltip.bottom-left .tooltip-arrow,.tooltip.bottom-right .tooltip-arrow{border-width:0 5px 5px;border-bottom-color:#000;top:0}.tooltip.bottom .tooltip-arrow{left:50%;margin-left:-5px}.tooltip.bottom-left .tooltip-arrow{right:5px;margin-top:-5px}.tooltip.bottom-right .tooltip-arrow{left:5px;margin-top:-5px}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-size:14px;text-align:left;text-align:start;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.carousel-caption,.carousel-control{color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;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}.carousel,.carousel-inner{position:relative}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.left>.arrow:after,.popover.right>.arrow:after{bottom:-10px;content:" "}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{left:1px;border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";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:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;border-right-width:0;border-left-color:#fff}.carousel-inner{width:100%}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,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;bottom:0;left:0;width:15%;font-size:20px;background-color:rgba(0,0,0,0)}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px}.carousel-caption .btn,.text-hide{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{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{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.modal-header:after,.modal-header:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.modal-header:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.hidden,.visible-lg,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;background-color:transparent;border:0}.navbar-default,.navbar-inverse{border-radius:4px;background-repeat:repeat-x}.affix{position:fixed}@-ms-viewport{width:device-width}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}.visible-xs-block{display:block!important}.visible-xs-inline{display:inline!important}.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}td.visible-sm,th.visible-sm{display:table-cell!important}.visible-sm-block{display:block!important}.visible-sm-inline{display:inline!important}.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}td.visible-md,th.visible-md{display:table-cell!important}.visible-md-block{display:block!important}.visible-md-inline{display:inline!important}.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}td.visible-lg,th.visible-lg{display:table-cell!important}.visible-lg-block{display:block!important}.visible-lg-inline{display:inline!important}.visible-lg-inline-block{display:inline-block!important}.hidden-lg{display:none!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}}.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}td.visible-print,th.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}.hidden-print{display:none!important}}/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */.btn-danger,.btn-default,.btn-info,.btn-primary,.btn-success,.btn-warning{text-shadow:0 -1px 0 rgba(0,0,0,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 1px rgba(0,0,0,.075)}.btn-danger.active,.btn-danger:active,.btn-default.active,.btn-default:active,.btn-info.active,.btn-info:active,.btn-primary.active,.btn-primary:active,.btn-success.active,.btn-success:active,.btn-warning.active,.btn-warning:active{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-danger.disabled,.btn-danger[disabled],.btn-default.disabled,.btn-default[disabled],.btn-info.disabled,.btn-info[disabled],.btn-primary.disabled,.btn-primary[disabled],.btn-success.disabled,.btn-success[disabled],.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-danger,fieldset[disabled] .btn-default,fieldset[disabled] .btn-info,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-success,fieldset[disabled] .btn-warning{-webkit-box-shadow:none;box-shadow:none}.btn-danger .badge,.btn-default .badge,.btn-info .badge,.btn-primary .badge,.btn-success .badge,.btn-warning .badge{text-shadow:none}.btn.active,.btn:active{background-image:none}.btn-default{text-shadow:0 1px 0 #fff;background-image:-webkit-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-o-linear-gradient(top,#fff 0,#e0e0e0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#e0e0e0));background-image:linear-gradient(to bottom,#fff 0,#e0e0e0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#ffe0e0e0', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#ccc}.btn-default:focus,.btn-default:hover{background-color:#e0e0e0;background-position:0 -15px}.btn-default.active,.btn-default:active{background-color:#e0e0e0;border-color:#dbdbdb}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#e0e0e0;background-image:none}.btn-primary{background-image:-webkit-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-o-linear-gradient(top,#337ab7 0,#265a88 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#265a88));background-image:linear-gradient(to bottom,#337ab7 0,#265a88 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff265a88', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#245580}.btn-primary:focus,.btn-primary:hover{background-color:#265a88;background-position:0 -15px}.btn-primary.active,.btn-primary:active{background-color:#265a88;border-color:#245580}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#265a88;background-image:none}.btn-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#419641 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#419641));background-image:linear-gradient(to bottom,#5cb85c 0,#419641 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff419641', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#3e8f3e}.btn-success:focus,.btn-success:hover{background-color:#419641;background-position:0 -15px}.btn-success.active,.btn-success:active{background-color:#419641;border-color:#3e8f3e}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#419641;background-image:none}.btn-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#2aabd2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#2aabd2));background-image:linear-gradient(to bottom,#5bc0de 0,#2aabd2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff2aabd2', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#28a4c9}.btn-info:focus,.btn-info:hover{background-color:#2aabd2;background-position:0 -15px}.btn-info.active,.btn-info:active{background-color:#2aabd2;border-color:#28a4c9}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#2aabd2;background-image:none}.btn-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#eb9316 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#eb9316));background-image:linear-gradient(to bottom,#f0ad4e 0,#eb9316 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffeb9316', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#e38d13}.btn-warning:focus,.btn-warning:hover{background-color:#eb9316;background-position:0 -15px}.btn-warning.active,.btn-warning:active{background-color:#eb9316;border-color:#e38d13}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#eb9316;background-image:none}.btn-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c12e2a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c12e2a));background-image:linear-gradient(to bottom,#d9534f 0,#c12e2a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc12e2a', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);background-repeat:repeat-x;border-color:#b92c28}.btn-danger:focus,.btn-danger:hover{background-color:#c12e2a;background-position:0 -15px}.btn-danger.active,.btn-danger:active{background-color:#c12e2a;border-color:#b92c28}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#c12e2a;background-image:none}.img-thumbnail,.thumbnail{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{background-color:#e8e8e8;background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{background-color:#2e6da4;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.navbar-default{background-image:-webkit-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-o-linear-gradient(top,#fff 0,#f8f8f8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f8f8f8));background-image:linear-gradient(to bottom,#fff 0,#f8f8f8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff', endColorstr='#fff8f8f8', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075);box-shadow:inset 0 1px 0 rgba(255,255,255,.15),0 1px 5px rgba(0,0,0,.075)}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-o-linear-gradient(top,#dbdbdb 0,#e2e2e2 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dbdbdb),to(#e2e2e2));background-image:linear-gradient(to bottom,#dbdbdb 0,#e2e2e2 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdbdbdb', endColorstr='#ffe2e2e2', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.075);box-shadow:inset 0 3px 9px rgba(0,0,0,.075)}.navbar-brand,.navbar-nav>li>a{text-shadow:0 1px 0 rgba(255,255,255,.25)}.navbar-inverse{background-image:-webkit-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-o-linear-gradient(top,#3c3c3c 0,#222 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#3c3c3c),to(#222));background-image:linear-gradient(to bottom,#3c3c3c 0,#222 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff3c3c3c', endColorstr='#ff222222', GradientType=0);filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.open>a{background-image:-webkit-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-o-linear-gradient(top,#080808 0,#0f0f0f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#080808),to(#0f0f0f));background-image:linear-gradient(to bottom,#080808 0,#0f0f0f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff080808', endColorstr='#ff0f0f0f', GradientType=0);background-repeat:repeat-x;-webkit-box-shadow:inset 0 3px 9px rgba(0,0,0,.25);box-shadow:inset 0 3px 9px rgba(0,0,0,.25)}.navbar-inverse .navbar-brand,.navbar-inverse .navbar-nav>li>a{text-shadow:0 -1px 0 rgba(0,0,0,.25)}.navbar-fixed-bottom,.navbar-fixed-top,.navbar-static-top{border-radius:0}@media (max-width:767px){.navbar .navbar-nav .open .dropdown-menu>.active>a,.navbar .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}}.alert{text-shadow:0 1px 0 rgba(255,255,255,.2);-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05);box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 1px 2px rgba(0,0,0,.05)}.alert-success{background-image:-webkit-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#c8e5bc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#c8e5bc));background-image:linear-gradient(to bottom,#dff0d8 0,#c8e5bc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffc8e5bc', GradientType=0);background-repeat:repeat-x;border-color:#b2dba1}.alert-info{background-image:-webkit-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#b9def0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#b9def0));background-image:linear-gradient(to bottom,#d9edf7 0,#b9def0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffb9def0', GradientType=0);background-repeat:repeat-x;border-color:#9acfea}.alert-warning{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#f8efc0 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#f8efc0));background-image:linear-gradient(to bottom,#fcf8e3 0,#f8efc0 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fff8efc0', GradientType=0);background-repeat:repeat-x;border-color:#f5e79e}.alert-danger{background-image:-webkit-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-o-linear-gradient(top,#f2dede 0,#e7c3c3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#e7c3c3));background-image:linear-gradient(to bottom,#f2dede 0,#e7c3c3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffe7c3c3', GradientType=0);background-repeat:repeat-x;border-color:#dca7a7}.progress{background-image:-webkit-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#ebebeb 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#ebebeb),to(#f5f5f5));background-image:linear-gradient(to bottom,#ebebeb 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffebebeb', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x}.progress-bar{background-image:-webkit-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-o-linear-gradient(top,#337ab7 0,#286090 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#286090));background-image:linear-gradient(to bottom,#337ab7 0,#286090 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff286090', GradientType=0);background-repeat:repeat-x}.progress-bar-success{background-image:-webkit-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-o-linear-gradient(top,#5cb85c 0,#449d44 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5cb85c),to(#449d44));background-image:linear-gradient(to bottom,#5cb85c 0,#449d44 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5cb85c', endColorstr='#ff449d44', GradientType=0);background-repeat:repeat-x}.progress-bar-info{background-image:-webkit-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-o-linear-gradient(top,#5bc0de 0,#31b0d5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#5bc0de),to(#31b0d5));background-image:linear-gradient(to bottom,#5bc0de 0,#31b0d5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff5bc0de', endColorstr='#ff31b0d5', GradientType=0);background-repeat:repeat-x}.progress-bar-warning{background-image:-webkit-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-o-linear-gradient(top,#f0ad4e 0,#ec971f 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f0ad4e),to(#ec971f));background-image:linear-gradient(to bottom,#f0ad4e 0,#ec971f 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff0ad4e', endColorstr='#ffec971f', GradientType=0);background-repeat:repeat-x}.progress-bar-danger{background-image:-webkit-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-o-linear-gradient(top,#d9534f 0,#c9302c 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9534f),to(#c9302c));background-image:linear-gradient(to bottom,#d9534f 0,#c9302c 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9534f', endColorstr='#ffc9302c', GradientType=0);background-repeat:repeat-x}.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.list-group{border-radius:4px;-webkit-box-shadow:0 1px 2px rgba(0,0,0,.075);box-shadow:0 1px 2px rgba(0,0,0,.075)}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{text-shadow:0 -1px 0 #286090;background-image:-webkit-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2b669a 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2b669a));background-image:linear-gradient(to bottom,#337ab7 0,#2b669a 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2b669a', GradientType=0);background-repeat:repeat-x;border-color:#2b669a}.list-group-item.active .badge,.list-group-item.active:focus .badge,.list-group-item.active:hover .badge{text-shadow:none}.panel{-webkit-box-shadow:0 1px 2px rgba(0,0,0,.05);box-shadow:0 1px 2px rgba(0,0,0,.05)}.panel-default>.panel-heading{background-image:-webkit-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-o-linear-gradient(top,#f5f5f5 0,#e8e8e8 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f5f5f5),to(#e8e8e8));background-image:linear-gradient(to bottom,#f5f5f5 0,#e8e8e8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff5f5f5', endColorstr='#ffe8e8e8', GradientType=0);background-repeat:repeat-x}.panel-primary>.panel-heading{background-image:-webkit-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-o-linear-gradient(top,#337ab7 0,#2e6da4 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#337ab7),to(#2e6da4));background-image:linear-gradient(to bottom,#337ab7 0,#2e6da4 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff337ab7', endColorstr='#ff2e6da4', GradientType=0);background-repeat:repeat-x}.panel-success>.panel-heading{background-image:-webkit-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-o-linear-gradient(top,#dff0d8 0,#d0e9c6 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#dff0d8),to(#d0e9c6));background-image:linear-gradient(to bottom,#dff0d8 0,#d0e9c6 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffdff0d8', endColorstr='#ffd0e9c6', GradientType=0);background-repeat:repeat-x}.panel-info>.panel-heading{background-image:-webkit-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-o-linear-gradient(top,#d9edf7 0,#c4e3f3 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#d9edf7),to(#c4e3f3));background-image:linear-gradient(to bottom,#d9edf7 0,#c4e3f3 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffd9edf7', endColorstr='#ffc4e3f3', GradientType=0);background-repeat:repeat-x}.panel-warning>.panel-heading{background-image:-webkit-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-o-linear-gradient(top,#fcf8e3 0,#faf2cc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#fcf8e3),to(#faf2cc));background-image:linear-gradient(to bottom,#fcf8e3 0,#faf2cc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffcf8e3', endColorstr='#fffaf2cc', GradientType=0);background-repeat:repeat-x}.panel-danger>.panel-heading{background-image:-webkit-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-o-linear-gradient(top,#f2dede 0,#ebcccc 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#f2dede),to(#ebcccc));background-image:linear-gradient(to bottom,#f2dede 0,#ebcccc 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff2dede', endColorstr='#ffebcccc', GradientType=0);background-repeat:repeat-x}.well{background-image:-webkit-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-o-linear-gradient(top,#e8e8e8 0,#f5f5f5 100%);background-image:-webkit-gradient(linear,left top,left bottom,from(#e8e8e8),to(#f5f5f5));background-image:linear-gradient(to bottom,#e8e8e8 0,#f5f5f5 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffe8e8e8', endColorstr='#fff5f5f5', GradientType=0);background-repeat:repeat-x;border-color:#dcdcdc;-webkit-box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 3px rgba(0,0,0,.05),0 1px 0 rgba(255,255,255,.1)}
\ No newline at end of file
diff --git a/v1/vendor.js b/v1/vendor.js
new file mode 100644
index 0000000000000000000000000000000000000000..12d0294e00f0eb0ca8503aedb8ab7596a093771d
--- /dev/null
+++ b/v1/vendor.js
@@ -0,0 +1,4 @@
+if(function(a,b){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){"use strict";function c(a,b){b=b||_;var c=b.createElement("script");c.text=a,b.head.appendChild(c).parentNode.removeChild(c)}function d(a){var b=!!a&&"length"in a&&a.length,c=ma.type(a);return"function"===c||ma.isWindow(a)?!1:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}function e(a,b,c){if(ma.isFunction(b))return ma.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return ma.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(wa.test(b))return ma.filter(b,a,c);b=ma.filter(b,a)}return ma.grep(a,function(a){return ea.call(b,a)>-1!==c&&1===a.nodeType})}function f(a,b){for(;(a=a[b])&&1!==a.nodeType;);return a}function g(a){var b={};return ma.each(a.match(Ca)||[],function(a,c){b[c]=!0}),b}function h(a){return a}function i(a){throw a}function j(a,b,c){var d;try{a&&ma.isFunction(d=a.promise)?d.call(a).done(b).fail(c):a&&ma.isFunction(d=a.then)?d.call(a,b,c):b.call(void 0,a)}catch(a){c.call(void 0,a)}}function k(){_.removeEventListener("DOMContentLoaded",k),a.removeEventListener("load",k),ma.ready()}function l(){this.expando=ma.expando+l.uid++}function m(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(Ka,"-$&").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:Ja.test(c)?JSON.parse(c):c}catch(e){}Ia.set(a,b,c)}else c=void 0;return c}function n(a,b,c,d){var e,f=1,g=20,h=d?function(){return d.cur()}:function(){return ma.css(a,b,"")},i=h(),j=c&&c[3]||(ma.cssNumber[b]?"":"px"),k=(ma.cssNumber[b]||"px"!==j&&+i)&&Ma.exec(ma.css(a,b));if(k&&k[3]!==j){j=j||k[3],c=c||[],k=+i||1;do f=f||".5",k/=f,ma.style(a,b,k+j);while(f!==(f=h()/i)&&1!==f&&--g)}return c&&(k=+k||+i||0,e=c[1]?k+(c[1]+1)*c[2]:+c[2],d&&(d.unit=j,d.start=k,d.end=e)),e}function o(a){var b,c=a.ownerDocument,d=a.nodeName,e=Qa[d];return e?e:(b=c.body.appendChild(c.createElement(d)),e=ma.css(b,"display"),b.parentNode.removeChild(b),"none"===e&&(e="block"),Qa[d]=e,e)}function p(a,b){for(var c,d,e=[],f=0,g=a.length;g>f;f++)d=a[f],d.style&&(c=d.style.display,b?("none"===c&&(e[f]=Ha.get(d,"display")||null,e[f]||(d.style.display="")),""===d.style.display&&Oa(d)&&(e[f]=o(d))):"none"!==c&&(e[f]="none",Ha.set(d,"display",c)));for(f=0;g>f;f++)null!=e[f]&&(a[f].style.display=e[f]);return a}function q(a,b){var c="undefined"!=typeof a.getElementsByTagName?a.getElementsByTagName(b||"*"):"undefined"!=typeof a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&ma.nodeName(a,b)?ma.merge([a],c):c}function r(a,b){for(var c=0,d=a.length;d>c;c++)Ha.set(a[c],"globalEval",!b||Ha.get(b[c],"globalEval"))}function s(a,b,c,d,e){for(var f,g,h,i,j,k,l=b.createDocumentFragment(),m=[],n=0,o=a.length;o>n;n++)if(f=a[n],f||0===f)if("object"===ma.type(f))ma.merge(m,f.nodeType?[f]:f);else if(Va.test(f)){for(g=g||l.appendChild(b.createElement("div")),h=(Sa.exec(f)||["",""])[1].toLowerCase(),i=Ua[h]||Ua._default,g.innerHTML=i[1]+ma.htmlPrefilter(f)+i[2],k=i[0];k--;)g=g.lastChild;ma.merge(m,g.childNodes),g=l.firstChild,g.textContent=""}else m.push(b.createTextNode(f));for(l.textContent="",n=0;f=m[n++];)if(d&&ma.inArray(f,d)>-1)e&&e.push(f);else if(j=ma.contains(f.ownerDocument,f),g=q(l.appendChild(f),"script"),j&&r(g),c)for(k=0;f=g[k++];)Ta.test(f.type||"")&&c.push(f);return l}function t(){return!0}function u(){return!1}function v(){try{return _.activeElement}catch(a){}}function w(a,b,c,d,e,f){var g,h;if("object"==typeof b){"string"!=typeof c&&(d=d||c,c=void 0);for(h in b)w(a,h,c,d,b[h],f);return a}if(null==d&&null==e?(e=c,d=c=void 0):null==e&&("string"==typeof c?(e=d,d=void 0):(e=d,d=c,c=void 0)),e===!1)e=u;else if(!e)return a;return 1===f&&(g=e,e=function(a){return ma().off(a),g.apply(this,arguments)},e.guid=g.guid||(g.guid=ma.guid++)),a.each(function(){ma.event.add(this,b,e,d,c)})}function x(a,b){return ma.nodeName(a,"table")&&ma.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a:a}function y(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function z(a){var b=bb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function A(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(Ha.hasData(a)&&(f=Ha.access(a),g=Ha.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)ma.event.add(b,e,j[e][c])}Ia.hasData(a)&&(h=Ia.access(a),i=ma.extend({},h),Ia.set(b,i))}}function B(a,b){var c=b.nodeName.toLowerCase();"input"===c&&Ra.test(a.type)?b.checked=a.checked:"input"!==c&&"textarea"!==c||(b.defaultValue=a.defaultValue)}function C(a,b,d,e){b=ca.apply([],b);var f,g,h,i,j,k,l=0,m=a.length,n=m-1,o=b[0],p=ma.isFunction(o);if(p||m>1&&"string"==typeof o&&!ka.checkClone&&ab.test(o))return a.each(function(c){var f=a.eq(c);p&&(b[0]=o.call(this,c,f.html())),C(f,b,d,e)});if(m&&(f=s(b,a[0].ownerDocument,!1,a,e),g=f.firstChild,1===f.childNodes.length&&(f=g),g||e)){for(h=ma.map(q(f,"script"),y),i=h.length;m>l;l++)j=f,l!==n&&(j=ma.clone(j,!0,!0),i&&ma.merge(h,q(j,"script"))),d.call(a[l],j,l);if(i)for(k=h[h.length-1].ownerDocument,ma.map(h,z),l=0;i>l;l++)j=h[l],Ta.test(j.type||"")&&!Ha.access(j,"globalEval")&&ma.contains(k,j)&&(j.src?ma._evalUrl&&ma._evalUrl(j.src):c(j.textContent.replace(cb,""),k))}return a}function D(a,b,c){for(var d,e=b?ma.filter(b,a):a,f=0;null!=(d=e[f]);f++)c||1!==d.nodeType||ma.cleanData(q(d)),d.parentNode&&(c&&ma.contains(d.ownerDocument,d)&&r(q(d,"script")),d.parentNode.removeChild(d));return a}function E(a,b,c){var d,e,f,g,h=a.style;return c=c||fb(a),c&&(g=c.getPropertyValue(b)||c[b],""!==g||ma.contains(a.ownerDocument,a)||(g=ma.style(a,b)),!ka.pixelMarginRight()&&eb.test(g)&&db.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0!==g?g+"":g}function F(a,b){return{get:function(){return a()?void delete this.get:(this.get=b).apply(this,arguments)}}}function G(a){if(a in kb)return a;for(var b=a[0].toUpperCase()+a.slice(1),c=jb.length;c--;)if(a=jb[c]+b,a in kb)return a}function H(a,b,c){var d=Ma.exec(b);return d?Math.max(0,d[2]-(c||0))+(d[3]||"px"):b}function I(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=ma.css(a,c+Na[f],!0,e)),d?("content"===c&&(g-=ma.css(a,"padding"+Na[f],!0,e)),"margin"!==c&&(g-=ma.css(a,"border"+Na[f]+"Width",!0,e))):(g+=ma.css(a,"padding"+Na[f],!0,e),"padding"!==c&&(g+=ma.css(a,"border"+Na[f]+"Width",!0,e)));return g}function J(a,b,c){var d,e=!0,f=fb(a),g="border-box"===ma.css(a,"boxSizing",!1,f);if(a.getClientRects().length&&(d=a.getBoundingClientRect()[b]),0>=d||null==d){if(d=E(a,b,f),(0>d||null==d)&&(d=a.style[b]),eb.test(d))return d;e=g&&(ka.boxSizingReliable()||d===a.style[b]),d=parseFloat(d)||0}return d+I(a,b,c||(g?"border":"content"),e,f)+"px"}function K(a,b,c,d,e){return new K.prototype.init(a,b,c,d,e)}function L(){mb&&(a.requestAnimationFrame(L),ma.fx.tick())}function M(){return a.setTimeout(function(){lb=void 0}),lb=ma.now()}function N(a,b){var c,d=0,e={height:a};for(b=b?1:0;4>d;d+=2-b)c=Na[d],e["margin"+c]=e["padding"+c]=a;return b&&(e.opacity=e.width=a),e}function O(a,b,c){for(var d,e=(R.tweeners[b]||[]).concat(R.tweeners["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function P(a,b,c){var d,e,f,g,h,i,j,k,l="width"in b||"height"in b,m=this,n={},o=a.style,q=a.nodeType&&Oa(a),r=Ha.get(a,"fxshow");c.queue||(g=ma._queueHooks(a,"fx"),null==g.unqueued&&(g.unqueued=0,h=g.empty.fire,g.empty.fire=function(){g.unqueued||h()}),g.unqueued++,m.always(function(){m.always(function(){g.unqueued--,ma.queue(a,"fx").length||g.empty.fire()})}));for(d in b)if(e=b[d],nb.test(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}n[d]=r&&r[d]||ma.style(a,d)}if(i=!ma.isEmptyObject(b),i||!ma.isEmptyObject(n)){l&&1===a.nodeType&&(c.overflow=[o.overflow,o.overflowX,o.overflowY],j=r&&r.display,null==j&&(j=Ha.get(a,"display")),k=ma.css(a,"display"),"none"===k&&(j?k=j:(p([a],!0),j=a.style.display||j,k=ma.css(a,"display"),p([a]))),("inline"===k||"inline-block"===k&&null!=j)&&"none"===ma.css(a,"float")&&(i||(m.done(function(){o.display=j}),null==j&&(k=o.display,j="none"===k?"":k)),o.display="inline-block")),c.overflow&&(o.overflow="hidden",m.always(function(){o.overflow=c.overflow[0],o.overflowX=c.overflow[1],o.overflowY=c.overflow[2]})),i=!1;for(d in n)i||(r?"hidden"in r&&(q=r.hidden):r=Ha.access(a,"fxshow",{display:j}),f&&(r.hidden=!q),q&&p([a],!0),m.done(function(){q||p([a]),Ha.remove(a,"fxshow");for(d in n)ma.style(a,d,n[d])})),i=O(q?r[d]:0,d,m),d in r||(r[d]=i.start,q&&(i.end=i.start,i.start=0))}}function Q(a,b){var c,d,e,f,g;for(c in a)if(d=ma.camelCase(c),e=b[d],f=a[c],ma.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=ma.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function R(a,b,c){var d,e,f=0,g=R.prefilters.length,h=ma.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=lb||M(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:ma.extend({},b),opts:ma.extend(!0,{specialEasing:{},easing:ma.easing._default},c),originalProperties:b,originalOptions:c,startTime:lb||M(),duration:c.duration,tweens:[],createTween:function(b,c){var d=ma.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?(h.notifyWith(a,[j,1,0]),h.resolveWith(a,[j,b])):h.rejectWith(a,[j,b]),this}}),k=j.props;for(Q(k,j.opts.specialEasing);g>f;f++)if(d=R.prefilters[f].call(j,a,k,j.opts))return ma.isFunction(d.stop)&&(ma._queueHooks(j.elem,j.opts.queue).stop=ma.proxy(d.stop,d)),d;return ma.map(k,O,j),ma.isFunction(j.opts.start)&&j.opts.start.call(a,j),ma.fx.timer(ma.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}function S(a){return a.getAttribute&&a.getAttribute("class")||""}function T(a,b,c,d){var e;if(ma.isArray(b))ma.each(b,function(b,e){c||Ab.test(a)?d(a,e):T(a+"["+("object"==typeof e&&null!=e?b:"")+"]",e,c,d)});else if(c||"object"!==ma.type(b))d(a,b);else for(e in b)T(a+"["+e+"]",b[e],c,d)}function U(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(Ca)||[];if(ma.isFunction(c))for(;d=f[e++];)"+"===d[0]?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function V(a,b,c,d){function e(h){var i;return f[h]=!0,ma.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||g||f[j]?g?!(i=j):void 0:(b.dataTypes.unshift(j),e(j),!1)}),i}var f={},g=a===Mb;return e(b.dataTypes[0])||!f["*"]&&e("*")}function W(a,b){var c,d,e=ma.ajaxSettings.flatOptions||{};for(c in b)void 0!==b[c]&&((e[c]?a:d||(d={}))[c]=b[c]);return d&&ma.extend(!0,a,d),a}function X(a,b,c){for(var d,e,f,g,h=a.contents,i=a.dataTypes;"*"===i[0];)i.shift(),void 0===d&&(d=a.mimeType||b.getResponseHeader("Content-Type"));if(d)for(e in h)if(h[e]&&h[e].test(d)){i.unshift(e);break}if(i[0]in c)f=i[0];else{for(e in c){if(!i[0]||a.converters[e+" "+i[0]]){f=e;break}g||(g=e)}f=f||g}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Y(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];for(f=k.shift();f;)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}function Z(a){return ma.isWindow(a)?a:9===a.nodeType&&a.defaultView}var $=[],_=a.document,aa=Object.getPrototypeOf,ba=$.slice,ca=$.concat,da=$.push,ea=$.indexOf,fa={},ga=fa.toString,ha=fa.hasOwnProperty,ia=ha.toString,ja=ia.call(Object),ka={},la="3.1.0",ma=function(a,b){return new ma.fn.init(a,b)},na=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,oa=/^-ms-/,pa=/-([a-z])/g,qa=function(a,b){return b.toUpperCase()};ma.fn=ma.prototype={jquery:la,constructor:ma,length:0,toArray:function(){return ba.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:ba.call(this)},pushStack:function(a){var b=ma.merge(this.constructor(),a);return b.prevObject=this,b},each:function(a){return ma.each(this,a)},map:function(a){return this.pushStack(ma.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(ba.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor()},push:da,sort:$.sort,splice:$.splice},ma.extend=ma.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||ma.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(ma.isPlainObject(d)||(e=ma.isArray(d)))?(e?(e=!1,f=c&&ma.isArray(c)?c:[]):f=c&&ma.isPlainObject(c)?c:{},g[b]=ma.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},ma.extend({expando:"jQuery"+(la+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===ma.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){var b=ma.type(a);return("number"===b||"string"===b)&&!isNaN(a-parseFloat(a))},isPlainObject:function(a){var b,c;return a&&"[object Object]"===ga.call(a)?(b=aa(a))?(c=ha.call(b,"constructor")&&b.constructor,"function"==typeof c&&ia.call(c)===ja):!0:!1},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?fa[ga.call(a)]||"object":typeof a},globalEval:function(a){c(a)},camelCase:function(a){return a.replace(oa,"ms-").replace(pa,qa)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b){var c,e=0;if(d(a))for(c=a.length;c>e&&b.call(a[e],e,a[e])!==!1;e++);else for(e in a)if(b.call(a[e],e,a[e])===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(na,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(d(Object(a))?ma.merge(c,"string"==typeof a?[a]:a):da.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:ea.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var e,f,g=0,h=[];if(d(a))for(e=a.length;e>g;g++)f=b(a[g],g,c),null!=f&&h.push(f);else for(g in a)f=b(a[g],g,c),null!=f&&h.push(f);return ca.apply([],h)},guid:1,proxy:function(a,b){var c,d,e;return"string"==typeof b&&(c=a[b],b=a,a=c),ma.isFunction(a)?(d=ba.call(arguments,2),e=function(){return a.apply(b||this,d.concat(ba.call(arguments)))},e.guid=a.guid=a.guid||ma.guid++,e):void 0},now:Date.now,support:ka}),"function"==typeof Symbol&&(ma.fn[Symbol.iterator]=$[Symbol.iterator]),ma.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(a,b){fa["[object "+b+"]"]=b.toLowerCase()});var ra=function(a){function b(a,b,c,d){var e,f,g,h,i,j,k,m=b&&b.ownerDocument,o=b?b.nodeType:9;if(c=c||[],"string"!=typeof a||!a||1!==o&&9!==o&&11!==o)return c;if(!d&&((b?b.ownerDocument||b:P)!==H&&G(b),b=b||H,J)){if(11!==o&&(i=ra.exec(a)))if(e=i[1]){if(9===o){if(!(g=b.getElementById(e)))return c;if(g.id===e)return c.push(g),c}else if(m&&(g=m.getElementById(e))&&N(b,g)&&g.id===e)return c.push(g),c}else{if(i[2])return $.apply(c,b.getElementsByTagName(a)),c;if((e=i[3])&&w.getElementsByClassName&&b.getElementsByClassName)return $.apply(c,b.getElementsByClassName(e)),c}if(w.qsa&&!U[a+" "]&&(!K||!K.test(a))){if(1!==o)m=b,k=a;else if("object"!==b.nodeName.toLowerCase()){for((h=b.getAttribute("id"))?h=h.replace(va,wa):b.setAttribute("id",h=O),j=A(a),f=j.length;f--;)j[f]="#"+h+" "+n(j[f]);k=j.join(","),m=sa.test(a)&&l(b.parentNode)||b}if(k)try{return $.apply(c,m.querySelectorAll(k)),c}catch(p){}finally{h===O&&b.removeAttribute("id")}}}return C(a.replace(ha,"$1"),b,c,d)}function c(){function a(c,d){return b.push(c+" ")>x.cacheLength&&delete a[b.shift()],a[c+" "]=d}var b=[];return a}function d(a){return a[O]=!0,a}function e(a){var b=H.createElement("fieldset");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function f(a,b){for(var c=a.split("|"),d=c.length;d--;)x.attrHandle[c[d]]=b}function g(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(d)return d;if(c)for(;c=c.nextSibling;)if(c===b)return-1;return a?1:-1}function h(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function i(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function j(a){return function(b){return"label"in b&&b.disabled===a||"form"in b&&b.disabled===a||"form"in b&&b.disabled===!1&&(b.isDisabled===a||b.isDisabled!==!a&&("label"in b||!ya(b))!==a)}}function k(a){return d(function(b){return b=+b,d(function(c,d){for(var e,f=a([],c.length,b),g=f.length;g--;)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function l(a){return a&&"undefined"!=typeof a.getElementsByTagName&&a}function m(){}function n(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function o(a,b,c){var d=b.dir,e=b.next,f=e||d,g=c&&"parentNode"===f,h=R++;return b.first?function(b,c,e){for(;b=b[d];)if(1===b.nodeType||g)return a(b,c,e)}:function(b,c,i){var j,k,l,m=[Q,h];if(i){for(;b=b[d];)if((1===b.nodeType||g)&&a(b,c,i))return!0}else for(;b=b[d];)if(1===b.nodeType||g)if(l=b[O]||(b[O]={}),k=l[b.uniqueID]||(l[b.uniqueID]={}),e&&e===b.nodeName.toLowerCase())b=b[d]||b;else{if((j=k[f])&&j[0]===Q&&j[1]===h)return m[2]=j[2];if(k[f]=m,m[2]=a(b,c,i))return!0}}}function p(a){return a.length>1?function(b,c,d){for(var e=a.length;e--;)if(!a[e](b,c,d))return!1;return!0}:a[0]}function q(a,c,d){for(var e=0,f=c.length;f>e;e++)b(a,c[e],d);return d}function r(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(c&&!c(f,d,e)||(g.push(f),j&&b.push(h)));return g}function s(a,b,c,e,f,g){return e&&!e[O]&&(e=s(e)),f&&!f[O]&&(f=s(f,g)),d(function(d,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=d||q(b||"*",h.nodeType?[h]:h,[]),s=!a||!d&&b?p:r(p,m,a,h,i),t=c?f||(d?a:o||e)?[]:g:s;if(c&&c(s,t,h,i),e)for(j=r(t,n),e(j,[],h,i),k=j.length;k--;)(l=j[k])&&(t[n[k]]=!(s[n[k]]=l));if(d){if(f||a){if(f){for(j=[],k=t.length;k--;)(l=t[k])&&j.push(s[k]=l);f(null,t=[],j,i)}for(k=t.length;k--;)(l=t[k])&&(j=f?aa(d,l):m[k])>-1&&(d[j]=!(g[j]=l))}}else t=r(t===g?t.splice(o,t.length):t),f?f(null,g,t,i):$.apply(g,t)})}function t(a){for(var b,c,d,e=a.length,f=x.relative[a[0].type],g=f||x.relative[" "],h=f?1:0,i=o(function(a){return a===b},g,!0),j=o(function(a){return aa(b,a)>-1},g,!0),k=[function(a,c,d){var e=!f&&(d||c!==D)||((b=c).nodeType?i(a,c,d):j(a,c,d));return b=null,e}];e>h;h++)if(c=x.relative[a[h].type])k=[o(p(k),c)];else{if(c=x.filter[a[h].type].apply(null,a[h].matches),c[O]){for(d=++h;e>d&&!x.relative[a[d].type];d++);return s(h>1&&p(k),h>1&&n(a.slice(0,h-1).concat({value:" "===a[h-2].type?"*":""})).replace(ha,"$1"),c,d>h&&t(a.slice(h,d)),e>d&&t(a=a.slice(d)),e>d&&n(a))}k.push(c)}return p(k)}function u(a,c){var e=c.length>0,f=a.length>0,g=function(d,g,h,i,j){var k,l,m,n=0,o="0",p=d&&[],q=[],s=D,t=d||f&&x.find.TAG("*",j),u=Q+=null==s?1:Math.random()||.1,v=t.length;for(j&&(D=g===H||g||j);o!==v&&null!=(k=t[o]);o++){if(f&&k){for(l=0,g||k.ownerDocument===H||(G(k),h=!J);m=a[l++];)if(m(k,g||H,h)){i.push(k);break}j&&(Q=u)}e&&((k=!m&&k)&&n--,d&&p.push(k))}if(n+=o,e&&o!==n){for(l=0;m=c[l++];)m(p,q,g,h);if(d){if(n>0)for(;o--;)p[o]||q[o]||(q[o]=Y.call(i));q=r(q)}$.apply(i,q),j&&!d&&q.length>0&&n+c.length>1&&b.uniqueSort(i)}return j&&(Q=u,D=s),p};return e?d(g):g}var v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O="sizzle"+1*new Date,P=a.document,Q=0,R=0,S=c(),T=c(),U=c(),V=function(a,b){return a===b&&(F=!0),0},W={}.hasOwnProperty,X=[],Y=X.pop,Z=X.push,$=X.push,_=X.slice,aa=function(a,b){for(var c=0,d=a.length;d>c;c++)if(a[c]===b)return c;return-1},ba="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",ca="[\\x20\\t\\r\\n\\f]",da="(?:\\\\.|[\\w-]|[^\x00-\\xa0])+",ea="\\["+ca+"*("+da+")(?:"+ca+"*([*^$|!~]?=)"+ca+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+da+"))|)"+ca+"*\\]",fa=":("+da+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+ea+")*)|.*)\\)|)",ga=new RegExp(ca+"+","g"),ha=new RegExp("^"+ca+"+|((?:^|[^\\\\])(?:\\\\.)*)"+ca+"+$","g"),ia=new RegExp("^"+ca+"*,"+ca+"*"),ja=new RegExp("^"+ca+"*([>+~]|"+ca+")"+ca+"*"),ka=new RegExp("="+ca+"*([^\\]'\"]*?)"+ca+"*\\]","g"),la=new RegExp(fa),ma=new RegExp("^"+da+"$"),na={ID:new RegExp("^#("+da+")"),CLASS:new RegExp("^\\.("+da+")"),TAG:new RegExp("^("+da+"|[*])"),ATTR:new RegExp("^"+ea),PSEUDO:new RegExp("^"+fa),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+ca+"*(even|odd|(([+-]|)(\\d*)n|)"+ca+"*(?:([+-]|)"+ca+"*(\\d+)|))"+ca+"*\\)|)","i"),bool:new RegExp("^(?:"+ba+")$","i"),needsContext:new RegExp("^"+ca+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+ca+"*((?:-\\d)?\\d*)"+ca+"*\\)|)(?=[^-]|$)","i")},oa=/^(?:input|select|textarea|button)$/i,pa=/^h\d$/i,qa=/^[^{]+\{\s*\[native \w/,ra=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,sa=/[+~]/,ta=new RegExp("\\\\([\\da-f]{1,6}"+ca+"?|("+ca+")|.)","ig"),ua=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)},va=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g,wa=function(a,b){return b?"\x00"===a?"�":a.slice(0,-1)+"\\"+a.charCodeAt(a.length-1).toString(16)+" ":"\\"+a},xa=function(){G()},ya=o(function(a){return a.disabled===!0},{dir:"parentNode",next:"legend"});try{$.apply(X=_.call(P.childNodes),P.childNodes),X[P.childNodes.length].nodeType}catch(za){$={apply:X.length?function(a,b){Z.apply(a,_.call(b))}:function(a,b){for(var c=a.length,d=0;a[c++]=b[d++];);a.length=c-1}}}w=b.support={},z=b.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},G=b.setDocument=function(a){var b,c,d=a?a.ownerDocument||a:P;return d!==H&&9===d.nodeType&&d.documentElement?(H=d,I=H.documentElement,J=!z(H),P!==H&&(c=H.defaultView)&&c.top!==c&&(c.addEventListener?c.addEventListener("unload",xa,!1):c.attachEvent&&c.attachEvent("onunload",xa)),w.attributes=e(function(a){return a.className="i",!a.getAttribute("className")}),w.getElementsByTagName=e(function(a){return a.appendChild(H.createComment("")),!a.getElementsByTagName("*").length}),w.getElementsByClassName=qa.test(H.getElementsByClassName),w.getById=e(function(a){return I.appendChild(a).id=O,!H.getElementsByName||!H.getElementsByName(O).length}),w.getById?(x.find.ID=function(a,b){if("undefined"!=typeof b.getElementById&&J){var c=b.getElementById(a);return c?[c]:[]}},x.filter.ID=function(a){var b=a.replace(ta,ua);return function(a){return a.getAttribute("id")===b}}):(delete x.find.ID,x.filter.ID=function(a){var b=a.replace(ta,ua);return function(a){var c="undefined"!=typeof a.getAttributeNode&&a.getAttributeNode("id");return c&&c.value===b}}),x.find.TAG=w.getElementsByTagName?function(a,b){return"undefined"!=typeof b.getElementsByTagName?b.getElementsByTagName(a):w.qsa?b.querySelectorAll(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){for(;c=f[e++];)1===c.nodeType&&d.push(c);return d}return f},x.find.CLASS=w.getElementsByClassName&&function(a,b){return"undefined"!=typeof b.getElementsByClassName&&J?b.getElementsByClassName(a):void 0},L=[],K=[],(w.qsa=qa.test(H.querySelectorAll))&&(e(function(a){I.appendChild(a).innerHTML="<a id='"+O+"'></a><select id='"+O+"-\r\\' msallowcapture=''><option selected=''></option></select>",a.querySelectorAll("[msallowcapture^='']").length&&K.push("[*^$]="+ca+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||K.push("\\["+ca+"*(?:value|"+ba+")"),a.querySelectorAll("[id~="+O+"-]").length||K.push("~="),a.querySelectorAll(":checked").length||K.push(":checked"),a.querySelectorAll("a#"+O+"+*").length||K.push(".#.+[+~]")}),e(function(a){a.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var b=H.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&K.push("name"+ca+"*[*^$|!~]?="),2!==a.querySelectorAll(":enabled").length&&K.push(":enabled",":disabled"),I.appendChild(a).disabled=!0,2!==a.querySelectorAll(":disabled").length&&K.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),K.push(",.*:")})),(w.matchesSelector=qa.test(M=I.matches||I.webkitMatchesSelector||I.mozMatchesSelector||I.oMatchesSelector||I.msMatchesSelector))&&e(function(a){w.disconnectedMatch=M.call(a,"*"),M.call(a,"[s!='']:x"),L.push("!=",fa)}),K=K.length&&new RegExp(K.join("|")),L=L.length&&new RegExp(L.join("|")),b=qa.test(I.compareDocumentPosition),N=b||qa.test(I.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},V=b?function(a,b){if(a===b)return F=!0,0;var c=!a.compareDocumentPosition-!b.compareDocumentPosition;return c?c:(c=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&c||!w.sortDetached&&b.compareDocumentPosition(a)===c?a===H||a.ownerDocument===P&&N(P,a)?-1:b===H||b.ownerDocument===P&&N(P,b)?1:E?aa(E,a)-aa(E,b):0:4&c?-1:1)}:function(a,b){if(a===b)return F=!0,0;var c,d=0,e=a.parentNode,f=b.parentNode,h=[a],i=[b];if(!e||!f)return a===H?-1:b===H?1:e?-1:f?1:E?aa(E,a)-aa(E,b):0;if(e===f)return g(a,b);for(c=a;c=c.parentNode;)h.unshift(c);for(c=b;c=c.parentNode;)i.unshift(c);for(;h[d]===i[d];)d++;return d?g(h[d],i[d]):h[d]===P?-1:i[d]===P?1:0},H):H},b.matches=function(a,c){return b(a,null,null,c)},b.matchesSelector=function(a,c){if((a.ownerDocument||a)!==H&&G(a),c=c.replace(ka,"='$1']"),w.matchesSelector&&J&&!U[c+" "]&&(!L||!L.test(c))&&(!K||!K.test(c)))try{var d=M.call(a,c);if(d||w.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return b(c,H,null,[a]).length>0},b.contains=function(a,b){return(a.ownerDocument||a)!==H&&G(a),N(a,b)},b.attr=function(a,b){(a.ownerDocument||a)!==H&&G(a);var c=x.attrHandle[b.toLowerCase()],d=c&&W.call(x.attrHandle,b.toLowerCase())?c(a,b,!J):void 0;return void 0!==d?d:w.attributes||!J?a.getAttribute(b):(d=a.getAttributeNode(b))&&d.specified?d.value:null},b.escape=function(a){return(a+"").replace(va,wa)},b.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},b.uniqueSort=function(a){var b,c=[],d=0,e=0;if(F=!w.detectDuplicates,E=!w.sortStable&&a.slice(0),a.sort(V),F){for(;b=a[e++];)b===a[e]&&(d=c.push(e));for(;d--;)a.splice(c[d],1)}return E=null,a},y=b.getText=function(a){var b,c="",d=0,e=a.nodeType;if(e){if(1===e||9===e||11===e){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=y(a)}else if(3===e||4===e)return a.nodeValue}else for(;b=a[d++];)c+=y(b);return c},x=b.selectors={cacheLength:50,createPseudo:d,match:na,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ta,ua),a[3]=(a[3]||a[4]||a[5]||"").replace(ta,ua),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||b.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&b.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return na.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&la.test(c)&&(b=A(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ta,ua).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=S[a+" "];return b||(b=new RegExp("(^|"+ca+")"+a+"("+ca+"|$)"))&&S(a,function(a){return b.test("string"==typeof a.className&&a.className||"undefined"!=typeof a.getAttribute&&a.getAttribute("class")||"")})},ATTR:function(a,c,d){return function(e){var f=b.attr(e,a);return null==f?"!="===c:c?(f+="","="===c?f===d:"!="===c?f!==d:"^="===c?d&&0===f.indexOf(d):"*="===c?d&&f.indexOf(d)>-1:"$="===c?d&&f.slice(-d.length)===d:"~="===c?(" "+f.replace(ga," ")+" ").indexOf(d)>-1:"|="===c?f===d||f.slice(0,d.length+1)===d+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h,t=!1;if(q){if(f){for(;p;){for(m=b;m=m[p];)if(h?m.nodeName.toLowerCase()===r:1===m.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){for(m=q,l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===Q&&j[1],t=n&&j[2],m=n&&q.childNodes[n];m=++n&&m&&m[p]||(t=n=0)||o.pop();)if(1===m.nodeType&&++t&&m===b){k[a]=[Q,n,t];break}}else if(s&&(m=b,l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),j=k[a]||[],n=j[0]===Q&&j[1],t=n),t===!1)for(;(m=++n&&m&&m[p]||(t=n=0)||o.pop())&&((h?m.nodeName.toLowerCase()!==r:1!==m.nodeType)||!++t||(s&&(l=m[O]||(m[O]={}),k=l[m.uniqueID]||(l[m.uniqueID]={}),k[a]=[Q,t]),m!==b)););return t-=e,t===d||t%d===0&&t/d>=0}}},PSEUDO:function(a,c){var e,f=x.pseudos[a]||x.setFilters[a.toLowerCase()]||b.error("unsupported pseudo: "+a);return f[O]?f(c):f.length>1?(e=[a,a,"",c],x.setFilters.hasOwnProperty(a.toLowerCase())?d(function(a,b){for(var d,e=f(a,c),g=e.length;g--;)d=aa(a,e[g]),a[d]=!(b[d]=e[g])}):function(a){return f(a,0,e)}):f}},pseudos:{not:d(function(a){var b=[],c=[],e=B(a.replace(ha,"$1"));return e[O]?d(function(a,b,c,d){for(var f,g=e(a,null,d,[]),h=a.length;h--;)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,d,f){return b[0]=a,e(b,null,f,c),b[0]=null,!c.pop()}}),has:d(function(a){return function(c){return b(a,c).length>0}}),contains:d(function(a){return a=a.replace(ta,ua),function(b){return(b.textContent||b.innerText||y(b)).indexOf(a)>-1}}),lang:d(function(a){return ma.test(a||"")||b.error("unsupported lang: "+a),a=a.replace(ta,ua).toLowerCase(),function(b){var c;do if(c=J?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===I},focus:function(a){return a===H.activeElement&&(!H.hasFocus||H.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:j(!1),disabled:j(!0),checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0;
+},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!x.pseudos.empty(a)},header:function(a){return pa.test(a.nodeName)},input:function(a){return oa.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:k(function(){return[0]}),last:k(function(a,b){return[b-1]}),eq:k(function(a,b,c){return[0>c?c+b:c]}),even:k(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:k(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:k(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:k(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},x.pseudos.nth=x.pseudos.eq;for(v in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})x.pseudos[v]=h(v);for(v in{submit:!0,reset:!0})x.pseudos[v]=i(v);return m.prototype=x.filters=x.pseudos,x.setFilters=new m,A=b.tokenize=function(a,c){var d,e,f,g,h,i,j,k=T[a+" "];if(k)return c?0:k.slice(0);for(h=a,i=[],j=x.preFilter;h;){d&&!(e=ia.exec(h))||(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),d=!1,(e=ja.exec(h))&&(d=e.shift(),f.push({value:d,type:e[0].replace(ha," ")}),h=h.slice(d.length));for(g in x.filter)!(e=na[g].exec(h))||j[g]&&!(e=j[g](e))||(d=e.shift(),f.push({value:d,type:g,matches:e}),h=h.slice(d.length));if(!d)break}return c?h.length:h?b.error(a):T(a,i).slice(0)},B=b.compile=function(a,b){var c,d=[],e=[],f=U[a+" "];if(!f){for(b||(b=A(a)),c=b.length;c--;)f=t(b[c]),f[O]?d.push(f):e.push(f);f=U(a,u(e,d)),f.selector=a}return f},C=b.select=function(a,b,c,d){var e,f,g,h,i,j="function"==typeof a&&a,k=!d&&A(a=j.selector||a);if(c=c||[],1===k.length){if(f=k[0]=k[0].slice(0),f.length>2&&"ID"===(g=f[0]).type&&w.getById&&9===b.nodeType&&J&&x.relative[f[1].type]){if(b=(x.find.ID(g.matches[0].replace(ta,ua),b)||[])[0],!b)return c;j&&(b=b.parentNode),a=a.slice(f.shift().value.length)}for(e=na.needsContext.test(a)?0:f.length;e--&&(g=f[e],!x.relative[h=g.type]);)if((i=x.find[h])&&(d=i(g.matches[0].replace(ta,ua),sa.test(f[0].type)&&l(b.parentNode)||b))){if(f.splice(e,1),a=d.length&&n(f),!a)return $.apply(c,d),c;break}}return(j||B(a,k))(d,b,!J,c,!b||sa.test(a)&&l(b.parentNode)||b),c},w.sortStable=O.split("").sort(V).join("")===O,w.detectDuplicates=!!F,G(),w.sortDetached=e(function(a){return 1&a.compareDocumentPosition(H.createElement("fieldset"))}),e(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||f("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),w.attributes&&e(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||f("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),e(function(a){return null==a.getAttribute("disabled")})||f(ba,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),b}(a);ma.find=ra,ma.expr=ra.selectors,ma.expr[":"]=ma.expr.pseudos,ma.uniqueSort=ma.unique=ra.uniqueSort,ma.text=ra.getText,ma.isXMLDoc=ra.isXML,ma.contains=ra.contains,ma.escapeSelector=ra.escape;var sa=function(a,b,c){for(var d=[],e=void 0!==c;(a=a[b])&&9!==a.nodeType;)if(1===a.nodeType){if(e&&ma(a).is(c))break;d.push(a)}return d},ta=function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c},ua=ma.expr.match.needsContext,va=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i,wa=/^.[^:#\[\.,]*$/;ma.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?ma.find.matchesSelector(d,a)?[d]:[]:ma.find.matches(a,ma.grep(b,function(a){return 1===a.nodeType}))},ma.fn.extend({find:function(a){var b,c,d=this.length,e=this;if("string"!=typeof a)return this.pushStack(ma(a).filter(function(){for(b=0;d>b;b++)if(ma.contains(e[b],this))return!0}));for(c=this.pushStack([]),b=0;d>b;b++)ma.find(a,e[b],c);return d>1?ma.uniqueSort(c):c},filter:function(a){return this.pushStack(e(this,a||[],!1))},not:function(a){return this.pushStack(e(this,a||[],!0))},is:function(a){return!!e(this,"string"==typeof a&&ua.test(a)?ma(a):a||[],!1).length}});var xa,ya=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,za=ma.fn.init=function(a,b,c){var d,e;if(!a)return this;if(c=c||xa,"string"==typeof a){if(d="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:ya.exec(a),!d||!d[1]&&b)return!b||b.jquery?(b||c).find(a):this.constructor(b).find(a);if(d[1]){if(b=b instanceof ma?b[0]:b,ma.merge(this,ma.parseHTML(d[1],b&&b.nodeType?b.ownerDocument||b:_,!0)),va.test(d[1])&&ma.isPlainObject(b))for(d in b)ma.isFunction(this[d])?this[d](b[d]):this.attr(d,b[d]);return this}return e=_.getElementById(d[2]),e&&(this[0]=e,this.length=1),this}return a.nodeType?(this[0]=a,this.length=1,this):ma.isFunction(a)?void 0!==c.ready?c.ready(a):a(ma):ma.makeArray(a,this)};za.prototype=ma.fn,xa=ma(_);var Aa=/^(?:parents|prev(?:Until|All))/,Ba={children:!0,contents:!0,next:!0,prev:!0};ma.fn.extend({has:function(a){var b=ma(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(ma.contains(this,b[a]))return!0})},closest:function(a,b){var c,d=0,e=this.length,f=[],g="string"!=typeof a&&ma(a);if(!ua.test(a))for(;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&ma.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?ma.uniqueSort(f):f)},index:function(a){return a?"string"==typeof a?ea.call(ma(a),this[0]):ea.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(ma.uniqueSort(ma.merge(this.get(),ma(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}}),ma.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return sa(a,"parentNode")},parentsUntil:function(a,b,c){return sa(a,"parentNode",c)},next:function(a){return f(a,"nextSibling")},prev:function(a){return f(a,"previousSibling")},nextAll:function(a){return sa(a,"nextSibling")},prevAll:function(a){return sa(a,"previousSibling")},nextUntil:function(a,b,c){return sa(a,"nextSibling",c)},prevUntil:function(a,b,c){return sa(a,"previousSibling",c)},siblings:function(a){return ta((a.parentNode||{}).firstChild,a)},children:function(a){return ta(a.firstChild)},contents:function(a){return a.contentDocument||ma.merge([],a.childNodes)}},function(a,b){ma.fn[a]=function(c,d){var e=ma.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=ma.filter(d,e)),this.length>1&&(Ba[a]||ma.uniqueSort(e),Aa.test(a)&&e.reverse()),this.pushStack(e)}});var Ca=/\S+/g;ma.Callbacks=function(a){a="string"==typeof a?g(a):ma.extend({},a);var b,c,d,e,f=[],h=[],i=-1,j=function(){for(e=a.once,d=b=!0;h.length;i=-1)for(c=h.shift();++i<f.length;)f[i].apply(c[0],c[1])===!1&&a.stopOnFalse&&(i=f.length,c=!1);a.memory||(c=!1),b=!1,e&&(f=c?[]:"")},k={add:function(){return f&&(c&&!b&&(i=f.length-1,h.push(c)),function d(b){ma.each(b,function(b,c){ma.isFunction(c)?a.unique&&k.has(c)||f.push(c):c&&c.length&&"string"!==ma.type(c)&&d(c)})}(arguments),c&&!b&&j()),this},remove:function(){return ma.each(arguments,function(a,b){for(var c;(c=ma.inArray(b,f,c))>-1;)f.splice(c,1),i>=c&&i--}),this},has:function(a){return a?ma.inArray(a,f)>-1:f.length>0},empty:function(){return f&&(f=[]),this},disable:function(){return e=h=[],f=c="",this},disabled:function(){return!f},lock:function(){return e=h=[],c||b||(f=c=""),this},locked:function(){return!!e},fireWith:function(a,c){return e||(c=c||[],c=[a,c.slice?c.slice():c],h.push(c),b||j()),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},ma.extend({Deferred:function(b){var c=[["notify","progress",ma.Callbacks("memory"),ma.Callbacks("memory"),2],["resolve","done",ma.Callbacks("once memory"),ma.Callbacks("once memory"),0,"resolved"],["reject","fail",ma.Callbacks("once memory"),ma.Callbacks("once memory"),1,"rejected"]],d="pending",e={state:function(){return d},always:function(){return f.done(arguments).fail(arguments),this},"catch":function(a){return e.then(null,a)},pipe:function(){var a=arguments;return ma.Deferred(function(b){ma.each(c,function(c,d){var e=ma.isFunction(a[d[4]])&&a[d[4]];f[d[1]](function(){var a=e&&e.apply(this,arguments);a&&ma.isFunction(a.promise)?a.promise().progress(b.notify).done(b.resolve).fail(b.reject):b[d[0]+"With"](this,e?[a]:arguments)})}),a=null}).promise()},then:function(b,d,e){function f(b,c,d,e){return function(){var j=this,k=arguments,l=function(){var a,l;if(!(g>b)){if(a=d.apply(j,k),a===c.promise())throw new TypeError("Thenable self-resolution");l=a&&("object"==typeof a||"function"==typeof a)&&a.then,ma.isFunction(l)?e?l.call(a,f(g,c,h,e),f(g,c,i,e)):(g++,l.call(a,f(g,c,h,e),f(g,c,i,e),f(g,c,h,c.notifyWith))):(d!==h&&(j=void 0,k=[a]),(e||c.resolveWith)(j,k))}},m=e?l:function(){try{l()}catch(a){ma.Deferred.exceptionHook&&ma.Deferred.exceptionHook(a,m.stackTrace),b+1>=g&&(d!==i&&(j=void 0,k=[a]),c.rejectWith(j,k))}};b?m():(ma.Deferred.getStackHook&&(m.stackTrace=ma.Deferred.getStackHook()),a.setTimeout(m))}}var g=0;return ma.Deferred(function(a){c[0][3].add(f(0,a,ma.isFunction(e)?e:h,a.notifyWith)),c[1][3].add(f(0,a,ma.isFunction(b)?b:h)),c[2][3].add(f(0,a,ma.isFunction(d)?d:i))}).promise()},promise:function(a){return null!=a?ma.extend(a,e):e}},f={};return ma.each(c,function(a,b){var g=b[2],h=b[5];e[b[1]]=g.add,h&&g.add(function(){d=h},c[3-a][2].disable,c[0][2].lock),g.add(b[3].fire),f[b[0]]=function(){return f[b[0]+"With"](this===f?void 0:this,arguments),this},f[b[0]+"With"]=g.fireWith}),e.promise(f),b&&b.call(f,f),f},when:function(a){var b=arguments.length,c=b,d=Array(c),e=ba.call(arguments),f=ma.Deferred(),g=function(a){return function(c){d[a]=this,e[a]=arguments.length>1?ba.call(arguments):c,--b||f.resolveWith(d,e)}};if(1>=b&&(j(a,f.done(g(c)).resolve,f.reject),"pending"===f.state()||ma.isFunction(e[c]&&e[c].then)))return f.then();for(;c--;)j(e[c],g(c),f.reject);return f.promise()}});var Da=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;ma.Deferred.exceptionHook=function(b,c){a.console&&a.console.warn&&b&&Da.test(b.name)&&a.console.warn("jQuery.Deferred exception: "+b.message,b.stack,c)},ma.readyException=function(b){a.setTimeout(function(){throw b})};var Ea=ma.Deferred();ma.fn.ready=function(a){return Ea.then(a)["catch"](function(a){ma.readyException(a)}),this},ma.extend({isReady:!1,readyWait:1,holdReady:function(a){a?ma.readyWait++:ma.ready(!0)},ready:function(a){(a===!0?--ma.readyWait:ma.isReady)||(ma.isReady=!0,a!==!0&&--ma.readyWait>0||Ea.resolveWith(_,[ma]))}}),ma.ready.then=Ea.then,"complete"===_.readyState||"loading"!==_.readyState&&!_.documentElement.doScroll?a.setTimeout(ma.ready):(_.addEventListener("DOMContentLoaded",k),a.addEventListener("load",k));var Fa=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===ma.type(c)){e=!0;for(h in c)Fa(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,ma.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(ma(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},Ga=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};l.uid=1,l.prototype={cache:function(a){var b=a[this.expando];return b||(b={},Ga(a)&&(a.nodeType?a[this.expando]=b:Object.defineProperty(a,this.expando,{value:b,configurable:!0}))),b},set:function(a,b,c){var d,e=this.cache(a);if("string"==typeof b)e[ma.camelCase(b)]=c;else for(d in b)e[ma.camelCase(d)]=b[d];return e},get:function(a,b){return void 0===b?this.cache(a):a[this.expando]&&a[this.expando][ma.camelCase(b)]},access:function(a,b,c){return void 0===b||b&&"string"==typeof b&&void 0===c?this.get(a,b):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d=a[this.expando];if(void 0!==d){if(void 0!==b){ma.isArray(b)?b=b.map(ma.camelCase):(b=ma.camelCase(b),b=b in d?[b]:b.match(Ca)||[]),c=b.length;for(;c--;)delete d[b[c]]}(void 0===b||ma.isEmptyObject(d))&&(a.nodeType?a[this.expando]=void 0:delete a[this.expando])}},hasData:function(a){var b=a[this.expando];return void 0!==b&&!ma.isEmptyObject(b)}};var Ha=new l,Ia=new l,Ja=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,Ka=/[A-Z]/g;ma.extend({hasData:function(a){return Ia.hasData(a)||Ha.hasData(a)},data:function(a,b,c){return Ia.access(a,b,c)},removeData:function(a,b){Ia.remove(a,b)},_data:function(a,b,c){return Ha.access(a,b,c)},_removeData:function(a,b){Ha.remove(a,b)}}),ma.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=Ia.get(f),1===f.nodeType&&!Ha.get(f,"hasDataAttrs"))){for(c=g.length;c--;)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=ma.camelCase(d.slice(5)),m(f,d,e[d])));Ha.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){Ia.set(this,a)}):Fa(this,function(b){var c;if(f&&void 0===b){if(c=Ia.get(f,a),void 0!==c)return c;if(c=m(f,a),void 0!==c)return c}else this.each(function(){Ia.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){Ia.remove(this,a)})}}),ma.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=Ha.get(a,b),c&&(!d||ma.isArray(c)?d=Ha.access(a,b,ma.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=ma.queue(a,b),d=c.length,e=c.shift(),f=ma._queueHooks(a,b),g=function(){ma.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return Ha.get(a,c)||Ha.access(a,c,{empty:ma.Callbacks("once memory").add(function(){Ha.remove(a,[b+"queue",c])})})}}),ma.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?ma.queue(this[0],a):void 0===b?this:this.each(function(){var c=ma.queue(this,a,b);ma._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&ma.dequeue(this,a)})},dequeue:function(a){return this.each(function(){ma.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=ma.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};for("string"!=typeof a&&(b=a,a=void 0),a=a||"fx";g--;)c=Ha.get(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var La=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,Ma=new RegExp("^(?:([+-])=|)("+La+")([a-z%]*)$","i"),Na=["Top","Right","Bottom","Left"],Oa=function(a,b){return a=b||a,"none"===a.style.display||""===a.style.display&&ma.contains(a.ownerDocument,a)&&"none"===ma.css(a,"display")},Pa=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e},Qa={};ma.fn.extend({show:function(){return p(this,!0)},hide:function(){return p(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){Oa(this)?ma(this).show():ma(this).hide()})}});var Ra=/^(?:checkbox|radio)$/i,Sa=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,Ta=/^$|\/(?:java|ecma)script/i,Ua={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};Ua.optgroup=Ua.option,Ua.tbody=Ua.tfoot=Ua.colgroup=Ua.caption=Ua.thead,Ua.th=Ua.td;var Va=/<|&#?\w+;/;!function(){var a=_.createDocumentFragment(),b=a.appendChild(_.createElement("div")),c=_.createElement("input");c.setAttribute("type","radio"),c.setAttribute("checked","checked"),c.setAttribute("name","t"),b.appendChild(c),ka.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,b.innerHTML="<textarea>x</textarea>",ka.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var Wa=_.documentElement,Xa=/^key/,Ya=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Za=/^([^.]*)(?:\.(.+)|)/;ma.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Ha.get(a);if(q)for(c.handler&&(f=c,c=f.handler,e=f.selector),e&&ma.find.matchesSelector(Wa,e),c.guid||(c.guid=ma.guid++),(i=q.events)||(i=q.events={}),(g=q.handle)||(g=q.handle=function(b){return"undefined"!=typeof ma&&ma.event.triggered!==b.type?ma.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(Ca)||[""],j=b.length;j--;)h=Za.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n&&(l=ma.event.special[n]||{},n=(e?l.delegateType:l.bindType)||n,l=ma.event.special[n]||{},k=ma.extend({type:n,origType:p,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&ma.expr.match.needsContext.test(e),namespace:o.join(".")},f),(m=i[n])||(m=i[n]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,o,g)!==!1||a.addEventListener&&a.addEventListener(n,g)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),ma.event.global[n]=!0)},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,n,o,p,q=Ha.hasData(a)&&Ha.get(a);if(q&&(i=q.events)){for(b=(b||"").match(Ca)||[""],j=b.length;j--;)if(h=Za.exec(b[j])||[],n=p=h[1],o=(h[2]||"").split(".").sort(),n){for(l=ma.event.special[n]||{},n=(d?l.delegateType:l.bindType)||n,m=i[n]||[],h=h[2]&&new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;f--;)k=m[f],!e&&p!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,o,q.handle)!==!1||ma.removeEvent(a,n,q.handle),delete i[n])}else for(n in i)ma.event.remove(a,n+b[j],c,d,!0);ma.isEmptyObject(i)&&Ha.remove(a,"handle events")}},dispatch:function(a){var b,c,d,e,f,g,h=ma.event.fix(a),i=new Array(arguments.length),j=(Ha.get(this,"events")||{})[h.type]||[],k=ma.event.special[h.type]||{};for(i[0]=h,b=1;b<arguments.length;b++)i[b]=arguments[b];if(h.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,h)!==!1){for(g=ma.event.handlers.call(this,h,j),b=0;(e=g[b++])&&!h.isPropagationStopped();)for(h.currentTarget=e.elem,c=0;(f=e.handlers[c++])&&!h.isImmediatePropagationStopped();)h.rnamespace&&!h.rnamespace.test(f.namespace)||(h.handleObj=f,h.data=f.data,d=((ma.event.special[f.origType]||{}).handle||f.handler).apply(e.elem,i),void 0!==d&&(h.result=d)===!1&&(h.preventDefault(),h.stopPropagation()));return k.postDispatch&&k.postDispatch.call(this,h),h.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&("click"!==a.type||isNaN(a.button)||a.button<1))for(;i!==this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?ma(e,this).index(i)>-1:ma.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},addProp:function(a,b){Object.defineProperty(ma.Event.prototype,a,{enumerable:!0,configurable:!0,get:ma.isFunction(b)?function(){return this.originalEvent?b(this.originalEvent):void 0}:function(){return this.originalEvent?this.originalEvent[a]:void 0},set:function(b){Object.defineProperty(this,a,{enumerable:!0,configurable:!0,writable:!0,value:b})}})},fix:function(a){return a[ma.expando]?a:new ma.Event(a)},special:{load:{noBubble:!0},focus:{trigger:function(){return this!==v()&&this.focus?(this.focus(),!1):void 0},delegateType:"focusin"},blur:{trigger:function(){return this===v()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return"checkbox"===this.type&&this.click&&ma.nodeName(this,"input")?(this.click(),!1):void 0},_default:function(a){return ma.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&a.originalEvent&&(a.originalEvent.returnValue=a.result)}}}},ma.removeEvent=function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c)},ma.Event=function(a,b){return this instanceof ma.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&a.returnValue===!1?t:u,this.target=a.target&&3===a.target.nodeType?a.target.parentNode:a.target,this.currentTarget=a.currentTarget,this.relatedTarget=a.relatedTarget):this.type=a,b&&ma.extend(this,b),this.timeStamp=a&&a.timeStamp||ma.now(),void(this[ma.expando]=!0)):new ma.Event(a,b)},ma.Event.prototype={constructor:ma.Event,isDefaultPrevented:u,isPropagationStopped:u,isImmediatePropagationStopped:u,isSimulated:!1,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=t,a&&!this.isSimulated&&a.preventDefault()},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=t,a&&!this.isSimulated&&a.stopPropagation()},stopImmediatePropagation:function(){var a=this.originalEvent;this.isImmediatePropagationStopped=t,a&&!this.isSimulated&&a.stopImmediatePropagation(),this.stopPropagation()}},ma.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,"char":!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(a){var b=a.button;return null==a.which&&Xa.test(a.type)?null!=a.charCode?a.charCode:a.keyCode:!a.which&&void 0!==b&&Ya.test(a.type)?1&b?1:2&b?3:4&b?2:0:a.which}},ma.event.addProp),ma.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(a,b){ma.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return e&&(e===d||ma.contains(d,e))||(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),ma.fn.extend({on:function(a,b,c,d){return w(this,a,b,c,d)},one:function(a,b,c,d){return w(this,a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,ma(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return b!==!1&&"function"!=typeof b||(c=b,b=void 0),c===!1&&(c=u),this.each(function(){ma.event.remove(this,a,c,b)})}});var $a=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,_a=/<script|<style|<link/i,ab=/checked\s*(?:[^=]|=\s*.checked.)/i,bb=/^true\/(.*)/,cb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;ma.extend({htmlPrefilter:function(a){return a.replace($a,"<$1></$2>")},clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=ma.contains(a.ownerDocument,a);if(!(ka.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||ma.isXMLDoc(a)))for(g=q(h),f=q(a),d=0,e=f.length;e>d;d++)B(f[d],g[d]);if(b)if(c)for(f=f||q(a),g=g||q(h),d=0,e=f.length;e>d;d++)A(f[d],g[d]);else A(a,h);return g=q(h,"script"),g.length>0&&r(g,!i&&q(a,"script")),h},cleanData:function(a){for(var b,c,d,e=ma.event.special,f=0;void 0!==(c=a[f]);f++)if(Ga(c)){if(b=c[Ha.expando]){if(b.events)for(d in b.events)e[d]?ma.event.remove(c,d):ma.removeEvent(c,d,b.handle);c[Ha.expando]=void 0}c[Ia.expando]&&(c[Ia.expando]=void 0)}}}),ma.fn.extend({detach:function(a){return D(this,a,!0)},remove:function(a){return D(this,a)},text:function(a){return Fa(this,function(a){return void 0===a?ma.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=a)})},null,a,arguments.length)},append:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=x(this,a);b.appendChild(a)}})},prepend:function(){return C(this,arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=x(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return C(this,arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(ma.cleanData(q(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return ma.clone(this,a,b)})},html:function(a){return Fa(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!_a.test(a)&&!Ua[(Sa.exec(a)||["",""])[1].toLowerCase()]){a=ma.htmlPrefilter(a);try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(ma.cleanData(q(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=[];return C(this,arguments,function(b){var c=this.parentNode;ma.inArray(this,a)<0&&(ma.cleanData(q(this)),c&&c.replaceChild(b,this))},a)}}),ma.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){ma.fn[a]=function(a){for(var c,d=[],e=ma(a),f=e.length-1,g=0;f>=g;g++)c=g===f?this:this.clone(!0),ma(e[g])[b](c),da.apply(d,c.get());return this.pushStack(d)}});var db=/^margin/,eb=new RegExp("^("+La+")(?!px)[a-z%]+$","i"),fb=function(b){var c=b.ownerDocument.defaultView;return c&&c.opener||(c=a),c.getComputedStyle(b)};!function(){function b(){if(h){h.style.cssText="box-sizing:border-box;position:relative;display:block;margin:auto;border:1px;padding:1px;top:1%;width:50%",h.innerHTML="",Wa.appendChild(g);var b=a.getComputedStyle(h);c="1%"!==b.top,f="2px"===b.marginLeft,d="4px"===b.width,h.style.marginRight="50%",e="4px"===b.marginRight,Wa.removeChild(g),h=null}}var c,d,e,f,g=_.createElement("div"),h=_.createElement("div");h.style&&(h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",ka.clearCloneStyle="content-box"===h.style.backgroundClip,g.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;padding:0;margin-top:1px;position:absolute",g.appendChild(h),ma.extend(ka,{pixelPosition:function(){return b(),c},boxSizingReliable:function(){return b(),d},pixelMarginRight:function(){return b(),e},reliableMarginLeft:function(){return b(),f}}))}();var gb=/^(none|table(?!-c[ea]).+)/,hb={position:"absolute",visibility:"hidden",display:"block"},ib={letterSpacing:"0",fontWeight:"400"},jb=["Webkit","Moz","ms"],kb=_.createElement("div").style;ma.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=E(a,"opacity");return""===c?"1":c}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":"cssFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=ma.camelCase(b),i=a.style;return b=ma.cssProps[h]||(ma.cssProps[h]=G(h)||h),g=ma.cssHooks[b]||ma.cssHooks[h],void 0===c?g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b]:(f=typeof c,"string"===f&&(e=Ma.exec(c))&&e[1]&&(c=n(a,b,e),f="number"),null!=c&&c===c&&("number"===f&&(c+=e&&e[3]||(ma.cssNumber[h]?"":"px")),ka.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),g&&"set"in g&&void 0===(c=g.set(a,c,d))||(i[b]=c)),void 0)}},css:function(a,b,c,d){var e,f,g,h=ma.camelCase(b);return b=ma.cssProps[h]||(ma.cssProps[h]=G(h)||h),g=ma.cssHooks[b]||ma.cssHooks[h],g&&"get"in g&&(e=g.get(a,!0,c)),void 0===e&&(e=E(a,b,d)),"normal"===e&&b in ib&&(e=ib[b]),""===c||c?(f=parseFloat(e),c===!0||isFinite(f)?f||0:e):e}}),ma.each(["height","width"],function(a,b){ma.cssHooks[b]={get:function(a,c,d){return c?!gb.test(ma.css(a,"display"))||a.getClientRects().length&&a.getBoundingClientRect().width?J(a,b,d):Pa(a,hb,function(){return J(a,b,d)}):void 0},set:function(a,c,d){var e,f=d&&fb(a),g=d&&I(a,b,d,"border-box"===ma.css(a,"boxSizing",!1,f),f);return g&&(e=Ma.exec(c))&&"px"!==(e[3]||"px")&&(a.style[b]=c,c=ma.css(a,b)),H(a,c,g)}}}),ma.cssHooks.marginLeft=F(ka.reliableMarginLeft,function(a,b){return b?(parseFloat(E(a,"marginLeft"))||a.getBoundingClientRect().left-Pa(a,{marginLeft:0},function(){return a.getBoundingClientRect().left}))+"px":void 0}),ma.each({margin:"",padding:"",border:"Width"},function(a,b){ma.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+Na[d]+b]=f[d]||f[d-2]||f[0];return e}},db.test(a)||(ma.cssHooks[a+b].set=H)}),ma.fn.extend({css:function(a,b){return Fa(this,function(a,b,c){var d,e,f={},g=0;if(ma.isArray(b)){for(d=fb(a),e=b.length;e>g;g++)f[b[g]]=ma.css(a,b[g],!1,d);return f}return void 0!==c?ma.style(a,b,c):ma.css(a,b)},a,b,arguments.length>1)}}),ma.Tween=K,K.prototype={constructor:K,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||ma.easing._default,this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(ma.cssNumber[c]?"":"px")},cur:function(){var a=K.propHooks[this.prop];return a&&a.get?a.get(this):K.propHooks._default.get(this)},run:function(a){var b,c=K.propHooks[this.prop];return this.options.duration?this.pos=b=ma.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):this.pos=b=a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):K.propHooks._default.set(this),this}},K.prototype.init.prototype=K.prototype,K.propHooks={_default:{get:function(a){var b;return 1!==a.elem.nodeType||null!=a.elem[a.prop]&&null==a.elem.style[a.prop]?a.elem[a.prop]:(b=ma.css(a.elem,a.prop,""),b&&"auto"!==b?b:0)},set:function(a){ma.fx.step[a.prop]?ma.fx.step[a.prop](a):1!==a.elem.nodeType||null==a.elem.style[ma.cssProps[a.prop]]&&!ma.cssHooks[a.prop]?a.elem[a.prop]=a.now:ma.style(a.elem,a.prop,a.now+a.unit)}}},K.propHooks.scrollTop=K.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},ma.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2},_default:"swing"},ma.fx=K.prototype.init,ma.fx.step={};var lb,mb,nb=/^(?:toggle|show|hide)$/,ob=/queueHooks$/;ma.Animation=ma.extend(R,{tweeners:{"*":[function(a,b){var c=this.createTween(a,b);return n(c.elem,a,Ma.exec(b),c),c}]},tweener:function(a,b){ma.isFunction(a)?(b=a,a=["*"]):a=a.match(Ca);for(var c,d=0,e=a.length;e>d;d++)c=a[d],R.tweeners[c]=R.tweeners[c]||[],R.tweeners[c].unshift(b)},prefilters:[P],prefilter:function(a,b){b?R.prefilters.unshift(a):R.prefilters.push(a)}}),ma.speed=function(a,b,c){var d=a&&"object"==typeof a?ma.extend({},a):{complete:c||!c&&b||ma.isFunction(a)&&a,duration:a,easing:c&&b||b&&!ma.isFunction(b)&&b};return ma.fx.off||_.hidden?d.duration=0:d.duration="number"==typeof d.duration?d.duration:d.duration in ma.fx.speeds?ma.fx.speeds[d.duration]:ma.fx.speeds._default,null!=d.queue&&d.queue!==!0||(d.queue="fx"),d.old=d.complete,d.complete=function(){ma.isFunction(d.old)&&d.old.call(this),d.queue&&ma.dequeue(this,d.queue)},d},ma.fn.extend({fadeTo:function(a,b,c,d){return this.filter(Oa).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=ma.isEmptyObject(a),f=ma.speed(b,c,d),g=function(){var b=R(this,ma.extend({},a),f);(e||Ha.get(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=ma.timers,g=Ha.get(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&ob.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));!b&&c||ma.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=Ha.get(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=ma.timers,g=d?d.length:0;for(c.finish=!0,ma.queue(this,a,[]),
+e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),ma.each(["toggle","show","hide"],function(a,b){var c=ma.fn[b];ma.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(N(b,!0),a,d,e)}}),ma.each({slideDown:N("show"),slideUp:N("hide"),slideToggle:N("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){ma.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),ma.timers=[],ma.fx.tick=function(){var a,b=0,c=ma.timers;for(lb=ma.now();b<c.length;b++)a=c[b],a()||c[b]!==a||c.splice(b--,1);c.length||ma.fx.stop(),lb=void 0},ma.fx.timer=function(a){ma.timers.push(a),a()?ma.fx.start():ma.timers.pop()},ma.fx.interval=13,ma.fx.start=function(){mb||(mb=a.requestAnimationFrame?a.requestAnimationFrame(L):a.setInterval(ma.fx.tick,ma.fx.interval))},ma.fx.stop=function(){a.cancelAnimationFrame?a.cancelAnimationFrame(mb):a.clearInterval(mb),mb=null},ma.fx.speeds={slow:600,fast:200,_default:400},ma.fn.delay=function(b,c){return b=ma.fx?ma.fx.speeds[b]||b:b,c=c||"fx",this.queue(c,function(c,d){var e=a.setTimeout(c,b);d.stop=function(){a.clearTimeout(e)}})},function(){var a=_.createElement("input"),b=_.createElement("select"),c=b.appendChild(_.createElement("option"));a.type="checkbox",ka.checkOn=""!==a.value,ka.optSelected=c.selected,a=_.createElement("input"),a.value="t",a.type="radio",ka.radioValue="t"===a.value}();var pb,qb=ma.expr.attrHandle;ma.fn.extend({attr:function(a,b){return Fa(this,ma.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){ma.removeAttr(this,a)})}}),ma.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return"undefined"==typeof a.getAttribute?ma.prop(a,b,c):(1===f&&ma.isXMLDoc(a)||(e=ma.attrHooks[b.toLowerCase()]||(ma.expr.match.bool.test(b)?pb:void 0)),void 0!==c?null===c?void ma.removeAttr(a,b):e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:(a.setAttribute(b,c+""),c):e&&"get"in e&&null!==(d=e.get(a,b))?d:(d=ma.find.attr(a,b),null==d?void 0:d))},attrHooks:{type:{set:function(a,b){if(!ka.radioValue&&"radio"===b&&ma.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}},removeAttr:function(a,b){var c,d=0,e=b&&b.match(Ca);if(e&&1===a.nodeType)for(;c=e[d++];)a.removeAttribute(c)}}),pb={set:function(a,b,c){return b===!1?ma.removeAttr(a,c):a.setAttribute(c,c),c}},ma.each(ma.expr.match.bool.source.match(/\w+/g),function(a,b){var c=qb[b]||ma.find.attr;qb[b]=function(a,b,d){var e,f,g=b.toLowerCase();return d||(f=qb[g],qb[g]=e,e=null!=c(a,b,d)?g:null,qb[g]=f),e}});var rb=/^(?:input|select|textarea|button)$/i,sb=/^(?:a|area)$/i;ma.fn.extend({prop:function(a,b){return Fa(this,ma.prop,a,b,arguments.length>1)},removeProp:function(a){return this.each(function(){delete this[ma.propFix[a]||a]})}}),ma.extend({prop:function(a,b,c){var d,e,f=a.nodeType;if(3!==f&&8!==f&&2!==f)return 1===f&&ma.isXMLDoc(a)||(b=ma.propFix[b]||b,e=ma.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=ma.find.attr(a,"tabindex");return b?parseInt(b,10):rb.test(a.nodeName)||sb.test(a.nodeName)&&a.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),ka.optSelected||(ma.propHooks.selected={get:function(a){var b=a.parentNode;return b&&b.parentNode&&b.parentNode.selectedIndex,null},set:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex)}}),ma.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){ma.propFix[this.toLowerCase()]=this});var tb=/[\t\r\n\f]/g;ma.fn.extend({addClass:function(a){var b,c,d,e,f,g,h,i=0;if(ma.isFunction(a))return this.each(function(b){ma(this).addClass(a.call(this,b,S(this)))});if("string"==typeof a&&a)for(b=a.match(Ca)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(tb," ")){for(g=0;f=b[g++];)d.indexOf(" "+f+" ")<0&&(d+=f+" ");h=ma.trim(d),e!==h&&c.setAttribute("class",h)}return this},removeClass:function(a){var b,c,d,e,f,g,h,i=0;if(ma.isFunction(a))return this.each(function(b){ma(this).removeClass(a.call(this,b,S(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof a&&a)for(b=a.match(Ca)||[];c=this[i++];)if(e=S(c),d=1===c.nodeType&&(" "+e+" ").replace(tb," ")){for(g=0;f=b[g++];)for(;d.indexOf(" "+f+" ")>-1;)d=d.replace(" "+f+" "," ");h=ma.trim(d),e!==h&&c.setAttribute("class",h)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):ma.isFunction(a)?this.each(function(c){ma(this).toggleClass(a.call(this,c,S(this),b),b)}):this.each(function(){var b,d,e,f;if("string"===c)for(d=0,e=ma(this),f=a.match(Ca)||[];b=f[d++];)e.hasClass(b)?e.removeClass(b):e.addClass(b);else void 0!==a&&"boolean"!==c||(b=S(this),b&&Ha.set(this,"__className__",b),this.setAttribute&&this.setAttribute("class",b||a===!1?"":Ha.get(this,"__className__")||""))})},hasClass:function(a){var b,c,d=0;for(b=" "+a+" ";c=this[d++];)if(1===c.nodeType&&(" "+S(c)+" ").replace(tb," ").indexOf(b)>-1)return!0;return!1}});var ub=/\r/g,vb=/[\x20\t\r\n\f]+/g;ma.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=ma.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,ma(this).val()):a,null==e?e="":"number"==typeof e?e+="":ma.isArray(e)&&(e=ma.map(e,function(a){return null==a?"":a+""})),b=ma.valHooks[this.type]||ma.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=ma.valHooks[e.type]||ma.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(ub,""):null==c?"":c)}}}),ma.extend({valHooks:{option:{get:function(a){var b=ma.find.attr(a,"value");return null!=b?b:ma.trim(ma.text(a)).replace(vb," ")}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],(c.selected||i===e)&&!c.disabled&&(!c.parentNode.disabled||!ma.nodeName(c.parentNode,"optgroup"))){if(b=ma(c).val(),f)return b;g.push(b)}return g},set:function(a,b){for(var c,d,e=a.options,f=ma.makeArray(b),g=e.length;g--;)d=e[g],(d.selected=ma.inArray(ma.valHooks.option.get(d),f)>-1)&&(c=!0);return c||(a.selectedIndex=-1),f}}}}),ma.each(["radio","checkbox"],function(){ma.valHooks[this]={set:function(a,b){return ma.isArray(b)?a.checked=ma.inArray(ma(a).val(),b)>-1:void 0}},ka.checkOn||(ma.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var wb=/^(?:focusinfocus|focusoutblur)$/;ma.extend(ma.event,{trigger:function(b,c,d,e){var f,g,h,i,j,k,l,m=[d||_],n=ha.call(b,"type")?b.type:b,o=ha.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||_,3!==d.nodeType&&8!==d.nodeType&&!wb.test(n+ma.event.triggered)&&(n.indexOf(".")>-1&&(o=n.split("."),n=o.shift(),o.sort()),j=n.indexOf(":")<0&&"on"+n,b=b[ma.expando]?b:new ma.Event(n,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=o.join("."),b.rnamespace=b.namespace?new RegExp("(^|\\.)"+o.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:ma.makeArray(c,[b]),l=ma.event.special[n]||{},e||!l.trigger||l.trigger.apply(d,c)!==!1)){if(!e&&!l.noBubble&&!ma.isWindow(d)){for(i=l.delegateType||n,wb.test(i+n)||(g=g.parentNode);g;g=g.parentNode)m.push(g),h=g;h===(d.ownerDocument||_)&&m.push(h.defaultView||h.parentWindow||a)}for(f=0;(g=m[f++])&&!b.isPropagationStopped();)b.type=f>1?i:l.bindType||n,k=(Ha.get(g,"events")||{})[b.type]&&Ha.get(g,"handle"),k&&k.apply(g,c),k=j&&g[j],k&&k.apply&&Ga(g)&&(b.result=k.apply(g,c),b.result===!1&&b.preventDefault());return b.type=n,e||b.isDefaultPrevented()||l._default&&l._default.apply(m.pop(),c)!==!1||!Ga(d)||j&&ma.isFunction(d[n])&&!ma.isWindow(d)&&(h=d[j],h&&(d[j]=null),ma.event.triggered=n,d[n](),ma.event.triggered=void 0,h&&(d[j]=h)),b.result}},simulate:function(a,b,c){var d=ma.extend(new ma.Event,c,{type:a,isSimulated:!0});ma.event.trigger(d,null,b)}}),ma.fn.extend({trigger:function(a,b){return this.each(function(){ma.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?ma.event.trigger(a,b,c,!0):void 0}}),ma.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(a,b){ma.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),ma.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),ka.focusin="onfocusin"in a,ka.focusin||ma.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){ma.event.simulate(b,a.target,ma.event.fix(a))};ma.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=Ha.access(d,b);e||d.addEventListener(a,c,!0),Ha.access(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=Ha.access(d,b)-1;e?Ha.access(d,b,e):(d.removeEventListener(a,c,!0),Ha.remove(d,b))}}});var xb=a.location,yb=ma.now(),zb=/\?/;ma.parseXML=function(b){var c;if(!b||"string"!=typeof b)return null;try{c=(new a.DOMParser).parseFromString(b,"text/xml")}catch(d){c=void 0}return c&&!c.getElementsByTagName("parsererror").length||ma.error("Invalid XML: "+b),c};var Ab=/\[\]$/,Bb=/\r?\n/g,Cb=/^(?:submit|button|image|reset|file)$/i,Db=/^(?:input|select|textarea|keygen)/i;ma.param=function(a,b){var c,d=[],e=function(a,b){var c=ma.isFunction(b)?b():b;d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(null==c?"":c)};if(ma.isArray(a)||a.jquery&&!ma.isPlainObject(a))ma.each(a,function(){e(this.name,this.value)});else for(c in a)T(c,a[c],b,e);return d.join("&")},ma.fn.extend({serialize:function(){return ma.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=ma.prop(this,"elements");return a?ma.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!ma(this).is(":disabled")&&Db.test(this.nodeName)&&!Cb.test(a)&&(this.checked||!Ra.test(a))}).map(function(a,b){var c=ma(this).val();return null==c?null:ma.isArray(c)?ma.map(c,function(a){return{name:b.name,value:a.replace(Bb,"\r\n")}}):{name:b.name,value:c.replace(Bb,"\r\n")}}).get()}});var Eb=/%20/g,Fb=/#.*$/,Gb=/([?&])_=[^&]*/,Hb=/^(.*?):[ \t]*([^\r\n]*)$/gm,Ib=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Jb=/^(?:GET|HEAD)$/,Kb=/^\/\//,Lb={},Mb={},Nb="*/".concat("*"),Ob=_.createElement("a");Ob.href=xb.href,ma.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:xb.href,type:"GET",isLocal:Ib.test(xb.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Nb,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":ma.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?W(W(a,ma.ajaxSettings),b):W(ma.ajaxSettings,a)},ajaxPrefilter:U(Lb),ajaxTransport:U(Mb),ajax:function(b,c){function d(b,c,d,h){var j,m,n,u,v,w=c;k||(k=!0,i&&a.clearTimeout(i),e=void 0,g=h||"",x.readyState=b>0?4:0,j=b>=200&&300>b||304===b,d&&(u=X(o,x,d)),u=Y(o,u,x,j),j?(o.ifModified&&(v=x.getResponseHeader("Last-Modified"),v&&(ma.lastModified[f]=v),v=x.getResponseHeader("etag"),v&&(ma.etag[f]=v)),204===b||"HEAD"===o.type?w="nocontent":304===b?w="notmodified":(w=u.state,m=u.data,n=u.error,j=!n)):(n=w,!b&&w||(w="error",0>b&&(b=0))),x.status=b,x.statusText=(c||w)+"",j?r.resolveWith(p,[m,w,x]):r.rejectWith(p,[x,w,n]),x.statusCode(t),t=void 0,l&&q.trigger(j?"ajaxSuccess":"ajaxError",[x,o,j?m:n]),s.fireWith(p,[x,w]),l&&(q.trigger("ajaxComplete",[x,o]),--ma.active||ma.event.trigger("ajaxStop")))}"object"==typeof b&&(c=b,b=void 0),c=c||{};var e,f,g,h,i,j,k,l,m,n,o=ma.ajaxSetup({},c),p=o.context||o,q=o.context&&(p.nodeType||p.jquery)?ma(p):ma.event,r=ma.Deferred(),s=ma.Callbacks("once memory"),t=o.statusCode||{},u={},v={},w="canceled",x={readyState:0,getResponseHeader:function(a){var b;if(k){if(!h)for(h={};b=Hb.exec(g);)h[b[1].toLowerCase()]=b[2];b=h[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return k?g:null},setRequestHeader:function(a,b){return null==k&&(a=v[a.toLowerCase()]=v[a.toLowerCase()]||a,u[a]=b),this},overrideMimeType:function(a){return null==k&&(o.mimeType=a),this},statusCode:function(a){var b;if(a)if(k)x.always(a[x.status]);else for(b in a)t[b]=[t[b],a[b]];return this},abort:function(a){var b=a||w;return e&&e.abort(b),d(0,b),this}};if(r.promise(x),o.url=((b||o.url||xb.href)+"").replace(Kb,xb.protocol+"//"),o.type=c.method||c.type||o.method||o.type,o.dataTypes=(o.dataType||"*").toLowerCase().match(Ca)||[""],null==o.crossDomain){j=_.createElement("a");try{j.href=o.url,j.href=j.href,o.crossDomain=Ob.protocol+"//"+Ob.host!=j.protocol+"//"+j.host}catch(y){o.crossDomain=!0}}if(o.data&&o.processData&&"string"!=typeof o.data&&(o.data=ma.param(o.data,o.traditional)),V(Lb,o,c,x),k)return x;l=ma.event&&o.global,l&&0===ma.active++&&ma.event.trigger("ajaxStart"),o.type=o.type.toUpperCase(),o.hasContent=!Jb.test(o.type),f=o.url.replace(Fb,""),o.hasContent?o.data&&o.processData&&0===(o.contentType||"").indexOf("application/x-www-form-urlencoded")&&(o.data=o.data.replace(Eb,"+")):(n=o.url.slice(f.length),o.data&&(f+=(zb.test(f)?"&":"?")+o.data,delete o.data),o.cache===!1&&(f=f.replace(Gb,""),n=(zb.test(f)?"&":"?")+"_="+yb++ +n),o.url=f+n),o.ifModified&&(ma.lastModified[f]&&x.setRequestHeader("If-Modified-Since",ma.lastModified[f]),ma.etag[f]&&x.setRequestHeader("If-None-Match",ma.etag[f])),(o.data&&o.hasContent&&o.contentType!==!1||c.contentType)&&x.setRequestHeader("Content-Type",o.contentType),x.setRequestHeader("Accept",o.dataTypes[0]&&o.accepts[o.dataTypes[0]]?o.accepts[o.dataTypes[0]]+("*"!==o.dataTypes[0]?", "+Nb+"; q=0.01":""):o.accepts["*"]);for(m in o.headers)x.setRequestHeader(m,o.headers[m]);if(o.beforeSend&&(o.beforeSend.call(p,x,o)===!1||k))return x.abort();if(w="abort",s.add(o.complete),x.done(o.success),x.fail(o.error),e=V(Mb,o,c,x)){if(x.readyState=1,l&&q.trigger("ajaxSend",[x,o]),k)return x;o.async&&o.timeout>0&&(i=a.setTimeout(function(){x.abort("timeout")},o.timeout));try{k=!1,e.send(u,d)}catch(y){if(k)throw y;d(-1,y)}}else d(-1,"No Transport");return x},getJSON:function(a,b,c){return ma.get(a,b,c,"json")},getScript:function(a,b){return ma.get(a,void 0,b,"script")}}),ma.each(["get","post"],function(a,b){ma[b]=function(a,c,d,e){return ma.isFunction(c)&&(e=e||d,d=c,c=void 0),ma.ajax(ma.extend({url:a,type:b,dataType:e,data:c,success:d},ma.isPlainObject(a)&&a))}}),ma._evalUrl=function(a){return ma.ajax({url:a,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},ma.fn.extend({wrapAll:function(a){var b;return this[0]&&(ma.isFunction(a)&&(a=a.call(this[0])),b=ma(a,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){for(var a=this;a.firstElementChild;)a=a.firstElementChild;return a}).append(this)),this},wrapInner:function(a){return ma.isFunction(a)?this.each(function(b){ma(this).wrapInner(a.call(this,b))}):this.each(function(){var b=ma(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=ma.isFunction(a);return this.each(function(c){ma(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(a){return this.parent(a).not("body").each(function(){ma(this).replaceWith(this.childNodes)}),this}}),ma.expr.pseudos.hidden=function(a){return!ma.expr.pseudos.visible(a)},ma.expr.pseudos.visible=function(a){return!!(a.offsetWidth||a.offsetHeight||a.getClientRects().length)},ma.ajaxSettings.xhr=function(){try{return new a.XMLHttpRequest}catch(b){}};var Pb={0:200,1223:204},Qb=ma.ajaxSettings.xhr();ka.cors=!!Qb&&"withCredentials"in Qb,ka.ajax=Qb=!!Qb,ma.ajaxTransport(function(b){var c,d;return ka.cors||Qb&&!b.crossDomain?{send:function(e,f){var g,h=b.xhr();if(h.open(b.type,b.url,b.async,b.username,b.password),b.xhrFields)for(g in b.xhrFields)h[g]=b.xhrFields[g];b.mimeType&&h.overrideMimeType&&h.overrideMimeType(b.mimeType),b.crossDomain||e["X-Requested-With"]||(e["X-Requested-With"]="XMLHttpRequest");for(g in e)h.setRequestHeader(g,e[g]);c=function(a){return function(){c&&(c=d=h.onload=h.onerror=h.onabort=h.onreadystatechange=null,"abort"===a?h.abort():"error"===a?"number"!=typeof h.status?f(0,"error"):f(h.status,h.statusText):f(Pb[h.status]||h.status,h.statusText,"text"!==(h.responseType||"text")||"string"!=typeof h.responseText?{binary:h.response}:{text:h.responseText},h.getAllResponseHeaders()))}},h.onload=c(),d=h.onerror=c("error"),void 0!==h.onabort?h.onabort=d:h.onreadystatechange=function(){4===h.readyState&&a.setTimeout(function(){c&&d()})},c=c("abort");try{h.send(b.hasContent&&b.data||null)}catch(i){if(c)throw i}},abort:function(){c&&c()}}:void 0}),ma.ajaxPrefilter(function(a){a.crossDomain&&(a.contents.script=!1)}),ma.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(a){return ma.globalEval(a),a}}}),ma.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET")}),ma.ajaxTransport("script",function(a){if(a.crossDomain){var b,c;return{send:function(d,e){b=ma("<script>").prop({charset:a.scriptCharset,src:a.url}).on("load error",c=function(a){b.remove(),c=null,a&&e("error"===a.type?404:200,a.type)}),_.head.appendChild(b[0])},abort:function(){c&&c()}}}});var Rb=[],Sb=/(=)\?(?=&|$)|\?\?/;ma.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=Rb.pop()||ma.expando+"_"+yb++;return this[a]=!0,a}}),ma.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(Sb.test(b.url)?"url":"string"==typeof b.data&&0===(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&Sb.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=ma.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(Sb,"$1"+e):b.jsonp!==!1&&(b.url+=(zb.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||ma.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){void 0===f?ma(a).removeProp(e):a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,Rb.push(e)),g&&ma.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),ka.createHTMLDocument=function(){var a=_.implementation.createHTMLDocument("").body;return a.innerHTML="<form></form><form></form>",2===a.childNodes.length}(),ma.parseHTML=function(a,b,c){if("string"!=typeof a)return[];"boolean"==typeof b&&(c=b,b=!1);var d,e,f;return b||(ka.createHTMLDocument?(b=_.implementation.createHTMLDocument(""),d=b.createElement("base"),d.href=_.location.href,b.head.appendChild(d)):b=_),e=va.exec(a),f=!c&&[],e?[b.createElement(e[1])]:(e=s([a],b,f),f&&f.length&&ma(f).remove(),ma.merge([],e.childNodes))},ma.fn.load=function(a,b,c){var d,e,f,g=this,h=a.indexOf(" ");return h>-1&&(d=ma.trim(a.slice(h)),a=a.slice(0,h)),ma.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(e="POST"),g.length>0&&ma.ajax({url:a,type:e||"GET",dataType:"html",data:b}).done(function(a){f=arguments,g.html(d?ma("<div>").append(ma.parseHTML(a)).find(d):a)}).always(c&&function(a,b){g.each(function(){c.apply(this,f||[a.responseText,b,a])})}),this},ma.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){ma.fn[b]=function(a){return this.on(b,a)}}),ma.expr.pseudos.animated=function(a){return ma.grep(ma.timers,function(b){return a===b.elem}).length},ma.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=ma.css(a,"position"),l=ma(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=ma.css(a,"top"),i=ma.css(a,"left"),j=("absolute"===k||"fixed"===k)&&(f+i).indexOf("auto")>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),ma.isFunction(b)&&(b=b.call(a,c,ma.extend({},h))),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},ma.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){ma.offset.setOffset(this,a,b)});var b,c,d,e,f=this[0];if(f)return f.getClientRects().length?(d=f.getBoundingClientRect(),d.width||d.height?(e=f.ownerDocument,c=Z(e),b=e.documentElement,{top:d.top+c.pageYOffset-b.clientTop,left:d.left+c.pageXOffset-b.clientLeft}):d):{top:0,left:0}},position:function(){if(this[0]){var a,b,c=this[0],d={top:0,left:0};return"fixed"===ma.css(c,"position")?b=c.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),ma.nodeName(a[0],"html")||(d=a.offset()),d={top:d.top+ma.css(a[0],"borderTopWidth",!0),left:d.left+ma.css(a[0],"borderLeftWidth",!0)}),{top:b.top-d.top-ma.css(c,"marginTop",!0),left:b.left-d.left-ma.css(c,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent;a&&"static"===ma.css(a,"position");)a=a.offsetParent;return a||Wa})}}),ma.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c="pageYOffset"===b;ma.fn[a]=function(d){return Fa(this,function(a,d,e){var f=Z(a);return void 0===e?f?f[b]:a[d]:void(f?f.scrollTo(c?f.pageXOffset:e,c?e:f.pageYOffset):a[d]=e)},a,d,arguments.length)}}),ma.each(["top","left"],function(a,b){ma.cssHooks[b]=F(ka.pixelPosition,function(a,c){return c?(c=E(a,b),eb.test(c)?ma(a).position()[b]+"px":c):void 0})}),ma.each({Height:"height",Width:"width"},function(a,b){ma.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){ma.fn[d]=function(e,f){var g=arguments.length&&(c||"boolean"!=typeof e),h=c||(e===!0||f===!0?"margin":"border");return Fa(this,function(b,c,e){var f;return ma.isWindow(b)?0===d.indexOf("outer")?b["inner"+a]:b.document.documentElement["client"+a]:9===b.nodeType?(f=b.documentElement,Math.max(b.body["scroll"+a],f["scroll"+a],b.body["offset"+a],f["offset"+a],f["client"+a])):void 0===e?ma.css(b,c,h):ma.style(b,c,e,h)},b,g?e:void 0,g)}})}),ma.fn.extend({bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}}),ma.parseJSON=JSON.parse,"function"==typeof define&&define.amd&&define("jquery",[],function(){return ma});var Tb=a.jQuery,Ub=a.$;return ma.noConflict=function(b){return a.$===ma&&(a.$=Ub),b&&a.jQuery===ma&&(a.jQuery=Tb),ma},b||(a.jQuery=a.$=ma),ma}),"undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1||b[0]>3)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 4")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.7",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a("#"===f?[]:f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.7",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c).prop(c,!0)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c).prop(c,!1))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target).closest(".btn");b.call(d,"toggle"),a(c.target).is('input[type="radio"], input[type="checkbox"]')||(c.preventDefault(),d.is("input,button")?d.trigger("focus"):d.find("input:visible,button:visible").first().trigger("focus"))}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.7",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),
+b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger(a.Event("hidden.bs.dropdown",f)))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.7",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger(a.Event("shown.bs.dropdown",h))}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&j<i.length-1&&j++,~j||(j=0),i.eq(j).trigger("focus")}}}};var h=a.fn.dropdown;a.fn.dropdown=d,a.fn.dropdown.Constructor=g,a.fn.dropdown.noConflict=function(){return a.fn.dropdown=h,this},a(document).on("click.bs.dropdown.data-api",c).on("click.bs.dropdown.data-api",".dropdown form",function(a){a.stopPropagation()}).on("click.bs.dropdown.data-api",f,g.prototype.toggle).on("keydown.bs.dropdown.data-api",f,g.prototype.keydown).on("keydown.bs.dropdown.data-api",".dropdown-menu",g.prototype.keydown)}(jQuery),+function(a){"use strict";function b(b,d){return this.each(function(){var e=a(this),f=e.data("bs.modal"),g=a.extend({},c.DEFAULTS,e.data(),"object"==typeof b&&b);f||e.data("bs.modal",f=new c(this,g)),"string"==typeof b?f[b](d):g.show&&f.show(d)})}var c=function(b,c){this.options=c,this.$body=a(document.body),this.$element=a(b),this.$dialog=this.$element.find(".modal-dialog"),this.$backdrop=null,this.isShown=null,this.originalBodyPad=null,this.scrollbarWidth=0,this.ignoreBackdropClick=!1,this.options.remote&&this.$element.find(".modal-content").load(this.options.remote,a.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))};c.VERSION="3.3.7",c.TRANSITION_DURATION=300,c.BACKDROP_TRANSITION_DURATION=150,c.DEFAULTS={backdrop:!0,keyboard:!0,show:!0},c.prototype.toggle=function(a){return this.isShown?this.hide():this.show(a)},c.prototype.show=function(b){var d=this,e=a.Event("show.bs.modal",{relatedTarget:b});this.$element.trigger(e),this.isShown||e.isDefaultPrevented()||(this.isShown=!0,this.checkScrollbar(),this.setScrollbar(),this.$body.addClass("modal-open"),this.escape(),this.resize(),this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',a.proxy(this.hide,this)),this.$dialog.on("mousedown.dismiss.bs.modal",function(){d.$element.one("mouseup.dismiss.bs.modal",function(b){a(b.target).is(d.$element)&&(d.ignoreBackdropClick=!0)})}),this.backdrop(function(){var e=a.support.transition&&d.$element.hasClass("fade");d.$element.parent().length||d.$element.appendTo(d.$body),d.$element.show().scrollTop(0),d.adjustDialog(),e&&d.$element[0].offsetWidth,d.$element.addClass("in"),d.enforceFocus();var f=a.Event("shown.bs.modal",{relatedTarget:b});e?d.$dialog.one("bsTransitionEnd",function(){d.$element.trigger("focus").trigger(f)}).emulateTransitionEnd(c.TRANSITION_DURATION):d.$element.trigger("focus").trigger(f)}))},c.prototype.hide=function(b){b&&b.preventDefault(),b=a.Event("hide.bs.modal"),this.$element.trigger(b),this.isShown&&!b.isDefaultPrevented()&&(this.isShown=!1,this.escape(),this.resize(),a(document).off("focusin.bs.modal"),this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal"),this.$dialog.off("mousedown.dismiss.bs.modal"),a.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",a.proxy(this.hideModal,this)).emulateTransitionEnd(c.TRANSITION_DURATION):this.hideModal())},c.prototype.enforceFocus=function(){a(document).off("focusin.bs.modal").on("focusin.bs.modal",a.proxy(function(a){document===a.target||this.$element[0]===a.target||this.$element.has(a.target).length||this.$element.trigger("focus")},this))},c.prototype.escape=function(){this.isShown&&this.options.keyboard?this.$element.on("keydown.dismiss.bs.modal",a.proxy(function(a){27==a.which&&this.hide()},this)):this.isShown||this.$element.off("keydown.dismiss.bs.modal")},c.prototype.resize=function(){this.isShown?a(window).on("resize.bs.modal",a.proxy(this.handleUpdate,this)):a(window).off("resize.bs.modal")},c.prototype.hideModal=function(){var a=this;this.$element.hide(),this.backdrop(function(){a.$body.removeClass("modal-open"),a.resetAdjustments(),a.resetScrollbar(),a.$element.trigger("hidden.bs.modal")})},c.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove(),this.$backdrop=null},c.prototype.backdrop=function(b){var d=this,e=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var f=a.support.transition&&e;if(this.$backdrop=a(document.createElement("div")).addClass("modal-backdrop "+e).appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){return this.ignoreBackdropClick?void(this.ignoreBackdropClick=!1):void(a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus():this.hide()))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.adjustDialog()},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth<a,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"",this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=null,this.options=null,this.enabled=null,this.timeout=null,this.hoverState=null,this.$element=null,this.inState=null,this.init("tooltip",a,b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-m<o.top?"bottom":"right"==h&&k.right+l>o.width?"left":"left"==h&&k.left-l<o.left?"right":h,f.removeClass(n).addClass(h)}var p=this.getCalculatedOffset(h,k,l,m);this.applyPlacement(p,h);var q=function(){var a=e.hoverState;e.$element.trigger("shown.bs."+e.type),e.hoverState=null,"out"==a&&e.leave(e)};a.support.transition&&this.$tip.hasClass("fade")?f.one("bsTransitionEnd",q).emulateTransitionEnd(c.TRANSITION_DURATION):q()}},c.prototype.applyPlacement=function(b,c){var d=this.tip(),e=d[0].offsetWidth,f=d[0].offsetHeight,g=parseInt(d.css("margin-top"),10),h=parseInt(d.css("margin-left"),10);isNaN(g)&&(g=0),isNaN(h)&&(h=0),b.top+=g,b.left+=h,a.offset.setOffset(d[0],a.extend({using:function(a){d.css({top:Math.round(a.top),left:Math.round(a.left)})}},b),0),d.addClass("in");var i=d[0].offsetWidth,j=d[0].offsetHeight;"top"==c&&j!=f&&(b.top=b.top+f-j);var k=this.getViewportAdjustedDelta(c,b,i,j);k.left?b.left+=k.left:b.top+=k.top;var l=/top|bottom/.test(c),m=l?2*k.left-e+i:2*k.top-f+j,n=l?"offsetWidth":"offsetHeight";d.offset(b),this.replaceArrow(m,d[0][n],l)},c.prototype.replaceArrow=function(a,b,c){this.arrow().css(c?"left":"top",50*(1-a/b)+"%").css(c?"top":"left","")},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle();a.find(".tooltip-inner")[this.options.html?"html":"text"](b),a.removeClass("fade in top bottom left right")},c.prototype.hide=function(b){function d(){"in"!=e.hoverState&&f.detach(),e.$element&&e.$element.removeAttr("aria-describedby").trigger("hidden.bs."+e.type),b&&b()}var e=this,f=a(this.$tip),g=a.Event("hide.bs."+this.type);return this.$element.trigger(g),g.isDefaultPrevented()?void 0:(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",d).emulateTransitionEnd(c.TRANSITION_DURATION):d(),this.hoverState=null,this)},c.prototype.fixTitle=function(){var a=this.$element;(a.attr("title")||"string"!=typeof a.attr("data-original-title"))&&a.attr("data-original-title",a.attr("title")||"").attr("title","")},c.prototype.hasContent=function(){return this.getTitle()},c.prototype.getPosition=function(b){b=b||this.$element;var c=b[0],d="BODY"==c.tagName,e=c.getBoundingClientRect();null==e.width&&(e=a.extend({},e,{width:e.right-e.left,height:e.bottom-e.top}));var f=window.SVGElement&&c instanceof window.SVGElement,g=d?{top:0,left:0}:f?null:b.offset(),h={scroll:d?document.documentElement.scrollTop||document.body.scrollTop:b.scrollTop()},i=d?{width:a(window).width(),height:a(window).height()}:null;return a.extend({},e,h,i,g)},c.prototype.getCalculatedOffset=function(a,b,c,d){return"bottom"==a?{top:b.top+b.height,left:b.left+b.width/2-c/2}:"top"==a?{top:b.top-d,left:b.left+b.width/2-c/2}:"left"==a?{top:b.top+b.height/2-d/2,left:b.left-c}:{top:b.top+b.height/2-d/2,left:b.left+b.width}},c.prototype.getViewportAdjustedDelta=function(a,b,c,d){var e={top:0,left:0};if(!this.$viewport)return e;var f=this.options.viewport&&this.options.viewport.padding||0,g=this.getPosition(this.$viewport);if(/right|left/.test(a)){var h=b.top-f-g.scroll,i=b.top+f-g.scroll+d;h<g.top?e.top=g.top-h:i>g.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;j<g.left?e.left=g.left-j:k>g.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null,a.$element=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;!e&&/destroy|hide/.test(b)||(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.7",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.7",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<e[0])return this.activeTarget=null,this.clear();for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(void 0===e[a+1]||b<e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.7",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.7",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/v2/css/app.css b/v2/css/app.css
new file mode 100644
index 0000000000000000000000000000000000000000..0158455a59931eba04418d225b4e58b4f702bdec
--- /dev/null
+++ b/v2/css/app.css
@@ -0,0 +1,880 @@
+html,
+body,
+div,
+span,
+object,
+iframe,
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+p,
+blockquote,
+pre,
+abbr,
+address,
+cite,
+code,
+del,
+dfn,
+em,
+img,
+ins,
+kbd,
+q,
+samp,
+small,
+strong,
+sub,
+sup,
+var,
+b,
+i,
+dl,
+dt,
+dd,
+ol,
+ul,
+li,
+fieldset,
+form,
+label,
+legend,
+table,
+caption,
+tbody,
+tfoot,
+thead,
+tr,
+th,
+td,
+article,
+aside,
+figure,
+footer,
+header,
+menu,
+nav,
+section,
+time,
+mark,
+audio,
+video,
+details,
+summary,
+button,
+input,
+textarea {
+  margin: 0;
+  padding: 0;
+  line-height: 1;
+  font-size: inherit;
+  vertical-align: baseline;
+}
+iframe {
+  border: 0;
+}
+html {
+  box-sizing: border-box;
+  font-size: 12pt;
+}
+*,
+*:before,
+*:after {
+  box-sizing: inherit;
+}
+/* normalize */
+html,
+body {
+  width: 100%;
+  height: 100%;
+}
+input,
+button,
+body {
+  font-family: Dosis, Roboto, 'SF UI Text', 'Helvetica Neue', Helvetica, sans-serif;
+  color: #34495E;
+}
+ul,
+ol {
+  list-style-position: inside;
+}
+/* typography */
+h1 {
+  font-size: 42pt;
+}
+h2 {
+  font-size: 32.4pt;
+}
+h3 {
+  font-size: 25.2pt;
+}
+h4 {
+  font-size: 20.4pt;
+}
+h5 {
+  font-size: 16.8pt;
+}
+h6 {
+  font-size: 13.2pt;
+}
+/* tables */
+table {
+  border-collapse: separate;
+  border-spacing: 0;
+  max-width: 100%;
+  width: 100%;
+}
+th {
+  text-align: left;
+  font-weight: bold;
+}
+th,
+td {
+  line-height: inherit;
+  padding: 12px 12px;
+}
+th {
+  vertical-align: bottom;
+}
+td {
+  vertical-align: top;
+}
+/* forms */
+label {
+  vertical-align: middle;
+}
+svg,
+img,
+input {
+  max-width: 100%;
+  background: transparent;
+}
+select,
+textarea {
+  line-height: 1.75;
+}
+a:focus,
+input:focus,
+button:focus {
+  outline: 0;
+}
+@keyframes flick {
+  0% {
+    opacity: .5;
+  }
+  50% {
+    opacity: 1;
+  }
+  100% {
+    opacity: .5;
+  }
+}
+.-dis {
+  position: relative;
+}
+.-dis:before,
+.-dis:after {
+  position: absolute;
+  z-index: 5;
+  bottom: 0;
+  right: 0;
+  left: 0;
+  top: 0;
+}
+.-dis:before {
+  background-color: rgba(255, 255, 255, 0.7);
+  animation: flick 1.6s infinite;
+  content: ' ';
+}
+.-dis:after {
+  background-color: rgba(255, 255, 255, 0.9);
+  content: 'Loading...';
+  margin: auto;
+  width: 200px;
+  height: 30px;
+  line-height: 30px;
+  text-align: center;
+  border-radius: 3px;
+  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+.jsf-logo {
+  transition: all .3s;
+  height: 70px;
+  width: 100%;
+  background-image: url(/img/logo.svg);
+  background-repeat: no-repeat;
+}
+.jsf-logo:hover {
+  opacity: .8;
+}
+.jsf-logo a {
+  height: 100px;
+  width: 320px;
+  overflow: hidden;
+  text-indent: -640px;
+}
+.jsf-about p,
+.jsf-about h2,
+.jsf-about h3,
+.jsf-about h4,
+.jsf-about ul {
+  margin-bottom: 12px;
+}
+.jsf-about li ~ li {
+  margin-top: 12px;
+}
+.jsf-about li:hover:before {
+  color: #0074D9;
+}
+.jsf-about li:before {
+  top: 4px;
+  left: -5px;
+  position: absolute;
+  transition: all .3s;
+  content: '⟀';
+  font-size: 15px;
+  color: #BDC3C7;
+  transform: rotate(225deg);
+}
+.jsf-about li {
+  white-space: nowrap;
+  position: relative;
+  padding-left: 10px;
+}
+.jsf-about a {
+  color: #0074D9;
+  text-decoration: none;
+  border-bottom: 1px dotted #BDC3C7;
+}
+.jsf-about a:hover {
+  border-bottom: 1px dotted #0074D9;
+}
+.github-ribbon {
+  transform: rotate(40deg);
+  background: #BDC3C7;
+  color: white;
+  width: 200px;
+  height: 30px;
+  line-height: 30px;
+  position: absolute;
+  z-index: 999;
+  right: -50px;
+  top: 35px;
+}
+/* animations */
+@keyframes spin {
+  from {
+    transform: rotate(0deg);
+  }
+  to {
+    transform: rotate(360deg);
+  }
+}
+.spin {
+  animation: spin 4s linear infinite;
+}
+/* flexbox */
+.flx {
+  display: flex;
+}
+.flx-cl {
+  flex-direction: column;
+}
+.flx-wp {
+  flex-wrap: wrap;
+}
+.flx-c {
+  align-items: center;
+}
+.flx-b {
+  align-items: baseline;
+}
+.flx-h {
+  align-items: stretch;
+}
+.flx-t {
+  align-items: flex-start;
+}
+.flx-e {
+  align-items: flex-end;
+}
+.flx-j {
+  justify-content: space-between;
+}
+.flx-jc {
+  justify-content: center;
+}
+.flx-a {
+  flex: 1 1 auto;
+  min-width: 0;
+  min-height: 0;
+}
+.flx-gw {
+  flex: 1 0 auto;
+}
+.flx-no {
+  flex: none;
+}
+.flx-ft {
+  order: -1;
+}
+.flx-lt {
+  order: 99999;
+}
+.flx-m > .flx-a ~ .flx-a {
+  margin-top: 12px;
+}
+.flx-m > .flx-a ~ .flx-n {
+  margin-top: 12px;
+}
+@media screen and (min-width: 480px) {
+  .sm-no-flx {
+    display: block;
+  }
+  .sm-flx {
+    display: flex;
+  }
+  .sm-flx.flx-m > .flx-a ~ .flx-a {
+    margin-top: 0;
+    margin-left: 12px;
+  }
+  .sm-flx.flx-m > .flx-a ~ .flx-n {
+    margin-top: 0;
+    margin-right: 12px;
+  }
+}
+@media screen and (min-width: 720px) {
+  .md-flx {
+    display: flex;
+  }
+  .md-flx.flx-m > .flx-a ~ .flx-a {
+    margin-top: 0;
+    margin-left: 12px;
+  }
+  .md-flx.flx-m > .flx-a ~ .flx-n {
+    margin-top: 0;
+    margin-left: 12px;
+  }
+  .md-flx.flx-m > .flx-lt ~ .flx-n {
+    margin-top: 0;
+    margin-left: 0;
+    margin-right: 12px;
+  }
+}
+/* grid */
+.cnt {
+  margin-left: auto;
+  margin-right: auto;
+}
+.cl-1 {
+  width: 8.33333%;
+}
+.cl-2 {
+  width: 16.66667%;
+}
+.cl-3 {
+  width: 25%;
+}
+.cl-4 {
+  width: 33.33333%;
+}
+.cl-5 {
+  width: 41.66667%;
+}
+.cl-6 {
+  width: 50%;
+}
+.cl-7 {
+  width: 58.33333%;
+}
+.cl-8 {
+  width: 66.66667%;
+}
+.cl-9 {
+  width: 75%;
+}
+.cl-10 {
+  width: 83.33333%;
+}
+.cl-11 {
+  width: 91.66667%;
+}
+.cl-12 {
+  width: 100%;
+}
+@media screen and (min-width: 480px) {
+  .sm-cl-1 {
+    width: 8.33333%;
+  }
+  .sm-cl-2 {
+    width: 16.66667%;
+  }
+  .sm-cl-3 {
+    width: 25%;
+  }
+  .sm-cl-4 {
+    width: 33.33333%;
+  }
+  .sm-cl-5 {
+    width: 41.66667%;
+  }
+  .sm-cl-6 {
+    width: 50%;
+  }
+  .sm-cl-7 {
+    width: 58.33333%;
+  }
+  .sm-cl-8 {
+    width: 66.66667%;
+  }
+  .sm-cl-9 {
+    width: 75%;
+  }
+  .sm-cl-10 {
+    width: 83.33333%;
+  }
+  .sm-cl-11 {
+    width: 91.66667%;
+  }
+  .sm-cl-12 {
+    width: 100%;
+  }
+}
+@media screen and (min-width: 720px) {
+  .md-cl-1 {
+    width: 8.33333%;
+  }
+  .md-cl-2 {
+    width: 16.66667%;
+  }
+  .md-cl-3 {
+    width: 25%;
+  }
+  .md-cl-4 {
+    width: 33.33333%;
+  }
+  .md-cl-5 {
+    width: 41.66667%;
+  }
+  .md-cl-6 {
+    width: 50%;
+  }
+  .md-cl-7 {
+    width: 58.33333%;
+  }
+  .md-cl-8 {
+    width: 66.66667%;
+  }
+  .md-cl-9 {
+    width: 75%;
+  }
+  .md-cl-10 {
+    width: 83.33333%;
+  }
+  .md-cl-11 {
+    width: 91.66667%;
+  }
+  .md-cl-12 {
+    width: 100%;
+  }
+}
+/* typography */
+.bgr {
+  font-size: 42pt;
+}
+.bg {
+  font-size: 32.4pt;
+}
+.hg {
+  font-size: 25.2pt;
+}
+.md {
+  font-size: 20.4pt;
+}
+.sml {
+  font-size: 16.8pt;
+}
+.smlr {
+  font-size: 13.2pt;
+}
+.nosl {
+  cursor: default;
+  user-select: none;
+}
+.ttu {
+  letter-spacing: .1em;
+  text-transform: uppercase;
+}
+.lt {
+  text-decoration: line-through;
+}
+.a {
+  cursor: pointer;
+}
+.tal {
+  text-align: left;
+}
+.tac {
+  text-align: center;
+}
+.tar {
+  text-align: right;
+}
+.taj {
+  text-align: justify;
+}
+.wsn {
+  white-space: nowrap;
+}
+.wwb {
+  word-wrap: break-word;
+}
+.tr {
+  max-width: 100%;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
+.lr {
+  list-style: none;
+  padding-left: 0;
+}
+.ln {
+  list-style: none;
+}
+.tdu {
+  text-decoration: underline;
+}
+.tdn {
+  text-decoration: none;
+}
+/* alignment */
+.di {
+  display: inline;
+}
+.db {
+  display: block;
+}
+.dib {
+  display: inline-block;
+}
+.dt {
+  display: table;
+}
+.dtc {
+  display: table-cell;
+}
+.dn {
+  display: none;
+}
+.oh {
+  overflow: hidden;
+}
+.os {
+  overflow: scroll;
+}
+.oa {
+  overflow: auto;
+}
+.clr:before,
+.clr:after {
+  content: ' ';
+  display: table;
+}
+.clr:after {
+  clear: both;
+}
+.fl {
+  float: left;
+}
+.fr {
+  float: right;
+}
+.fit {
+  max-width: 100%;
+}
+.ab {
+  vertical-align: baseline;
+}
+.at {
+  vertical-align: top;
+}
+.am {
+  vertical-align: middle;
+}
+.ab {
+  vertical-align: bottom;
+}
+/* white-space */
+.m {
+  margin: 12px;
+}
+.m ~ .m {
+  margin-top: 0;
+}
+.mt {
+  margin-top: 12px;
+}
+.mr {
+  margin-right: 12px;
+}
+.mb {
+  margin-bottom: 12px;
+}
+.ml {
+  margin-left: 12px;
+}
+.mxa {
+  margin-left: auto;
+  margin-right: auto;
+}
+.p {
+  padding: 12px;
+}
+.py {
+  padding-top: 12px;
+  padding-bottom: 12px;
+}
+.px {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+/* borders */
+.b {
+  border: 1px solid #BDC3C7;
+}
+.b ~ .b {
+  border-top: 0;
+}
+.nb {
+  border: 0;
+}
+/* icons */
+.ic {
+  min-width: 16.8pt;
+  min-height: 16.8pt;
+  width: 16.8pt;
+  height: 16.8pt;
+}
+.ic svg {
+  width: inherit;
+  height: inherit;
+  vertical-align: middle;
+}
+.ic.x2 {
+  width: 25.2pt;
+  height: 25.2pt;
+}
+.ic.x3 {
+  width: 42pt;
+  height: 42pt;
+}
+/* states */
+.ch {
+  display: none;
+}
+.ch ~ span {
+  opacity: .5;
+}
+.ch:checked ~ span {
+  opacity: 1;
+  text-decoration: none;
+}
+.ch:checked ~ .on {
+  display: inline-block;
+}
+.ch:checked ~ .off {
+  display: none;
+}
+.ch ~ .on {
+  display: none;
+}
+.ch ~ .off {
+  display: inline-block;
+}
+/* fields */
+.bu {
+  border: 0;
+  color: #34495E;
+  height: 40px;
+  min-width: 40px;
+  line-height: 40px;
+  border-radius: 3px;
+  opacity: .7;
+  padding: 0 10px;
+  min-height: 40px;
+  line-height: 38px;
+  transition: opacity .3s;
+  transition: all .3s;
+  border: 1px solid #BDC3C7;
+  background-color: rgba(0, 0, 0, 0.1);
+}
+.bu:focus,
+.bu:hover {
+  opacity: 1;
+  border: 1px solid #0074D9;
+}
+.bu:active {
+  box-shadow: inset 0 1px 5px rgba(0, 0, 0, 0.2);
+}
+.bu:disabled {
+  opacity: .5;
+}
+.f {
+  box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
+}
+/* misc */
+.cln {
+  border: 0;
+  border-top: 1px dotted #BDC3C7;
+}
+.Toast {
+  box-shadow: 0 -1px 3px rgba(0, 0, 0, 0.1);
+  background-color: #FFFFFF;
+  color: #34495E;
+  transition: all .3s;
+  text-align: center;
+  position: fixed;
+  bottom: -50px;
+  z-index: 6;
+  opacity: 0;
+  left: 0;
+  width: 100%;
+  padding: 12px;
+}
+.Toast.-show {
+  bottom: 0;
+  opacity: 1;
+}
+.Toast.-error {
+  color: #FFFFFF;
+  background-color: #FF4136;
+}
+.Toast.-success {
+  color: #FFFFFF;
+  background-color: #2ECC40;
+}
+.Toolbar {
+  position: relative;
+  overflow: hidden;
+}
+.Dropdown {
+  width: 100%;
+  height: 40px;
+  position: relative;
+}
+.Dropdown select {
+  width: 100%;
+  opacity: 0;
+  z-index: 1;
+  height: 40px;
+  position: absolute;
+}
+.Dropdown select:focus ~ .Dropdown--value span {
+  border: 1px solid #0074D9;
+}
+.Dropdown--arrow {
+  display: inline-block;
+  width: 20px;
+  height: 40px;
+  position: absolute;
+  right: 0;
+  top: 0;
+  transition: all .3s;
+  color: #BDC3C7;
+  line-height: 32px;
+  background-color: rgba(0, 0, 0, 0.1);
+  border: 1px solid #BDC3C7;
+  border-left: 0;
+  border-radius: 0 3px 3px 0;
+}
+.Dropdown--arrow:before {
+  padding-left: 2px;
+  content: '∟';
+  font-size: 20px;
+  font-weight: 100;
+  position: absolute;
+  transform: rotate(-45deg);
+}
+.Dropdown--arrow ~ select {
+  z-index: 1;
+}
+.Dropdown--value {
+  background-color: #FFFFFF;
+  position: absolute;
+  height: 40px;
+  top: 0;
+  left: 0;
+  right: 20px;
+}
+.Dropdown--value span,
+.Dropdown--value input {
+  height: 40px;
+  padding: 0 5px;
+  color: #34495E;
+  transition: all .3s;
+  line-height: 40px;
+}
+.Dropdown--value input {
+  z-index: 2;
+  width: 100%;
+  position: relative;
+  background-color: transparent;
+}
+.Dropdown--value input:focus {
+  border: 1px solid #0074D9;
+}
+.Dropdown--value span,
+.Dropdown--value input {
+  border: 1px solid #BDC3C7;
+  border-radius: 3px 0 0 3px;
+}
+.Dropdown--actions {
+  visibility: hidden;
+  position: absolute;
+  transition: all .3s;
+  z-index: 2;
+  opacity: 0;
+  right: 30px;
+  line-height: 42px;
+  top: 0;
+}
+.Dropdown--actions.-show {
+  opacity: 1;
+  visibility: visible;
+}
+.Dropdown--actions a {
+  transition: all .3s;
+  color: #34495E;
+  opacity: .5;
+}
+.Dropdown--actions a:hover,
+.Dropdown--actions a:focus {
+  opacity: 1;
+  color: #0074D9;
+}
+.AceEditor {
+  min-height: 200px;
+  border-radius: 3px;
+}
+.AceEditor.ace_focus {
+  border: 1px solid #0074D9;
+}
+@media screen and (min-width: 280px) {
+  .AceEditor {
+    min-height: 300px;
+  }
+}
+@media screen and (min-width: 720px) {
+  .AceEditor {
+    min-height: 600px;
+  }
+}
+@media screen and (min-width: 830px) {
+  .AceEditor {
+    min-height: 700px;
+  }
+}
diff --git a/v2/favicon.ico b/v2/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a
Binary files /dev/null and b/v2/favicon.ico differ
diff --git a/v2/img/favicon.ico b/v2/img/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..a2bfe8227f3dcdf1bcec58e103fa22e2bbc81d5a
Binary files /dev/null and b/v2/img/favicon.ico differ
diff --git a/v2/img/logo.svg b/v2/img/logo.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d664afefe7fe8905129d78f20378768d5f2fb678
--- /dev/null
+++ b/v2/img/logo.svg
@@ -0,0 +1,1083 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
+	<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
+	<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
+	<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
+	<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
+	<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
+	<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
+	<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
+	<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
+]>
+<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
+	 xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="69 282 750 230"
+	 style="enable-background:new 69 282 750 230;" xml:space="preserve">
+<switch>
+	<foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1">
+		<i:pgfRef  xlink:href="#adobe_illustrator_pgf">
+		</i:pgfRef>
+	</foreignObject>
+	<g i:extraneous="self">
+		<g transform="matrix( 1, 0, 0, 1, 0,0) ">
+			<g id="Layer0_0_FILL">
+				<path style="fill:#595959;" d="M121.85,318.5c-2.567,0-5.767,0.35-9.6,1.05c-3.533,0.867-7.117,2.383-10.75,4.55
+					c-3.533,2.467-6.617,6.05-9.25,10.75c-2.367,4.833-3.65,11.367-3.85,19.6v17.25c0,5.3-0.833,9.467-2.5,12.5
+					c-1.767,3.067-3.833,5.283-6.2,6.65c-2.267,1.567-4.233,2.5-5.9,2.8c-1.667,0.6-2.6,0.8-2.8,0.6v17.65c0.2,0,1.133,0.2,2.8,0.6
+					c1.667,0.5,3.633,1.433,5.9,2.8c2.367,1.567,4.433,3.783,6.2,6.65c1.667,3.133,2.5,7.25,2.5,12.35v19.75
+					c0.2,8.267,1.483,14.75,3.85,19.45c2.633,4.8,5.717,8.433,9.25,10.9c3.633,2.367,7.217,3.983,10.75,4.85
+					c3.833,0.7,7.033,1.05,9.6,1.05c1.367,0,2.5-0.1,3.4-0.3l1.15-0.3v-15.15h-0.75c-0.467,0-1.15,0-2.05,0
+					c-1.667,0-3.867-0.4-6.6-1.2c-2.767-0.867-5.283-2.933-7.55-6.2c-2.133-3.033-3.3-7.75-3.5-14.15v-23.85
+					c0-5.1-0.883-9.367-2.65-12.8c-1.667-3.433-3.533-6.083-5.6-7.95c-2.267-2.067-4.133-3.45-5.6-4.15l-2.65-1.05v-0.55l2.65-0.9
+					c1.467-0.9,3.333-2.367,5.6-4.4c2.067-1.867,3.933-4.533,5.6-8c1.767-3.433,2.65-7.65,2.65-12.65v-21.2
+					c0.2-6.5,1.367-11.317,3.5-14.45c2.267-3.033,4.783-5,7.55-5.9c2.733-0.867,4.933-1.3,6.6-1.3c0.9,0,1.583,0,2.05,0h0.75V318.8
+					h-1.15C124.35,318.6,123.217,318.5,121.85,318.5 M313.25,320c1.967-3.633,4.033-7.217,6.2-10.75c0.2-0.3,0.25-0.6,0.15-0.9
+					c-0.1-0.4-0.25-0.7-0.45-0.9L319,307.3c-5.1-4.2-10.317-7.833-15.65-10.9c-3.9-2.333-7.817-4.3-11.75-5.9
+					c-15.333-5.867-31.75-7.033-49.25-3.5c-0.267,0.1-0.45,0.25-0.55,0.45c-0.3,0.067-0.45,0.25-0.45,0.55
+					c-2.533,6.367-4.767,13.033-6.7,20c-1,3.567-1.917,7.217-2.75,10.95h0.15L230,327.2c-0.1,0.1-0.15,0.25-0.15,0.45
+					c-2.067,9.133-3.833,18.517-5.3,28.15c-0.4,2.733-0.8,5.483-1.2,8.25c-0.267,1.967-0.5,3.983-0.7,6.05c-0.4,0-0.75,0-1.05,0
+					h-0.3c-0.1,0-0.2,0.05-0.3,0.15c-1.567,0.267-3.183,0.4-4.85,0.4H216c-11.8,1.5-17.783,4.25-17.95,8.25
+					c-0.7,4.233,4.7,8.067,16.2,11.5c0.667,0.2,1.45,0.4,2.35,0.6l0.9,0.3c0.967,0.2,2.083,0.45,3.35,0.75
+					c-0.3,3.533-0.533,7.117-0.7,10.75c0,0.967-0.05,2-0.15,3.1c-1.5,0.567-2.833,1.65-4,3.25c-0.8,0.767-1.433,1.6-1.9,2.5
+					l-4.45-1.5l-1.9,5.6l4.4,1.5c-0.1,0.567-0.15,1.2-0.15,1.9c-0.167,3.733,0.817,7.017,2.95,9.85c1.4,1.967,3.033,3.3,4.9,4
+					c0,1.767,0.05,3.583,0.15,5.45c-0.3-0.1-0.55-0.15-0.75-0.15c-0.9-0.2-1.683-0.3-2.35-0.3c-0.2,0-0.35,0-0.45,0
+					c-4.733-0.1-8.367,1.417-10.9,4.55h-0.15c-0.9,1.2-1.733,2.633-2.5,4.3V447c-0.3,0.967-0.9,2.383-1.8,4.25
+					c-1.367,3.067-2.983,5.183-4.85,6.35c-0.1,0-0.15,0.05-0.15,0.15c-1.467,0.5-2.833,0.8-4.1,0.9h-0.15
+					c-2.367,0.167-4.283-0.633-5.75-2.4c-1.967-2.333-3.45-5.567-4.45-9.7c-0.967-4.233-0.867-7.483,0.3-9.75
+					c1.4-2.633,2.833-4.15,4.3-4.55c1.267-0.3,2.733,0.483,4.4,2.35l0.15,0.15c0.9,0.9,1.35,2.617,1.35,5.15
+					c0,1.5-0.2,2.933-0.6,4.3c-0.2,0.4-0.2,0.783,0,1.15c0.2,0.3,0.5,0.55,0.9,0.75c0.367,0.1,0.75,0.05,1.15-0.15
+					c0.3-0.2,0.55-0.483,0.75-0.85c0.5-1.7,0.75-3.433,0.75-5.2c0-3.633-0.75-6.033-2.25-7.2l-0.15-0.15
+					c-2.533-2.733-4.933-3.817-7.2-3.25c-2.267,0.4-4.333,2.467-6.2,6.2c-1.567,2.733-1.717,6.667-0.45,11.8
+					c1.1,4.6,2.783,8.233,5.05,10.9c2.133,2.533,4.883,3.667,8.25,3.4c1.667-0.1,3.433-0.55,5.3-1.35h0.15
+					c2.333-1.467,4.383-4.067,6.15-7.8c0.9-1.867,1.5-3.3,1.8-4.3c0.667-1.467,1.4-2.683,2.2-3.65v-0.15
+					c2.067-2.367,4.967-3.5,8.7-3.4c0.1,0,0.25,0,0.45,0c0.567,0,1.2,0.1,1.9,0.3c0.1,0,0.2,0,0.3,0c0.1,0,0.2,0.05,0.3,0.15
+					c0.1,0,0.2,0,0.3,0h0.45c0.267,6.767,0.7,13.583,1.3,20.45l-10.6-1.15c-0.4,0-0.7,0.1-0.9,0.3c-0.4,0.2-0.6,0.483-0.6,0.85
+					c-0.167,0.3-0.167,0.65,0,1.05l4.6,8.85L188,500.2l-20.9-60.85c-0.1-0.1-0.15-0.2-0.15-0.3l-4.3-13.15
+					c-0.1-0.167-0.25-0.35-0.45-0.55c-0.167-0.2-0.35-0.3-0.55-0.3c-5.5-1.767-9.283-0.3-11.35,4.4c-0.2,0.3-0.2,0.65,0,1.05
+					l4.55,13.55c0,0.1,0.05,0.2,0.15,0.3l19.1,54.7l0.05,0.1c1.1,0.367,2.233,0.667,3.4,0.9c0.367,0.067,0.75,0.133,1.15,0.2
+					c1,0.167,2.05,0.283,3.15,0.35c0.167,0,0.35,0,0.55,0l-21.65-60.1c0.967-0.4,2.2-0.25,3.7,0.45l20.6,59.65h6.65l21.8-23.7
+					l-9.45,23.7h40.1v-7.95l15.15,3.4c0.3,0.1,0.6,0.1,0.9,0c0.3-0.2,0.55-0.4,0.75-0.6c0.1-0.3,0.15-0.583,0.15-0.85
+					c-0.1-6.9,0-13.933,0.3-21.1c0-0.4-0.1-0.683-0.3-0.85c-0.2-0.3-0.45-0.5-0.75-0.6c-0.3-0.2-0.6-0.2-0.9,0l-15.75,5.15v-29.75
+					c13.467-7.167,22.75-8.4,27.85-3.7c0.8,1.067,1.633,2.3,2.5,3.7c0,0.1,0.05,0.15,0.15,0.15c0.3,0.867,0.883,2.233,1.75,4.1h0.15
+					c0.2,0.5,0.45,0.95,0.75,1.35c-0.2,4.8-0.3,9.6-0.3,14.4c0,0.4,0.15,0.75,0.45,1.05s0.65,0.45,1.05,0.45h10.3l-8.85,11.35
+					c-0.2,0.3-0.3,0.583-0.3,0.85c0,0.4,0.1,0.75,0.3,1.05l6.35,7.65c0.2-0.3,0.4-0.583,0.6-0.85c0.167-0.3,0.35-0.6,0.55-0.9
+					l0.6-0.9l-0.05-0.05l-4.95-6l9.85-12.8c0.2-0.3,0.3-0.65,0.3-1.05c0-0.367-0.15-0.65-0.45-0.85c-0.267-0.3-0.6-0.45-1-0.45
+					h-11.8c0-3.133,0.05-6.283,0.15-9.45c1.067,1.1,2.2,1.883,3.4,2.35c1.767,0.9,3.733,1.3,5.9,1.2h0.15
+					c3.233,0.2,6.117-0.983,8.65-3.55h0.15c2.367-2.733,4.233-6.517,5.6-11.35v-0.1c1.1-5.033,0.767-8.917-1-11.65
+					c-2.067-3.633-4.283-5.6-6.65-5.9c-2.467-0.6-5.067,0.533-7.8,3.4c-1.567,1.467-2.35,4.017-2.35,7.65c0,1.667,0.15,3.333,0.45,5
+					c0.1,0.4,0.333,0.7,0.7,0.9c0.3,0.3,0.65,0.4,1.05,0.3c0.4-0.1,0.7-0.3,0.9-0.6c0.3-0.4,0.4-0.8,0.3-1.2
+					c-0.3-1.467-0.45-2.933-0.45-4.4c0-2.667,0.483-4.533,1.45-5.6c1.867-1.867,3.583-2.7,5.15-2.5c1.667,0.4,3.25,1.867,4.75,4.4
+					c1.267,2.367,1.45,5.567,0.55,9.6h0.15c-1.267,4.2-2.933,7.533-5,10v0.15c-1.967,1.867-4.167,2.7-6.6,2.5h-0.15
+					c-1.667,0.1-3.2-0.2-4.6-0.9h-0.15c-1.567-0.767-3.033-2.083-4.4-3.95c0.7-16.1,2.417-31.967,5.15-47.6
+					c0.1-0.6,0.2-1.133,0.3-1.6c0.3-1.667,0.65-3.25,1.05-4.75v-0.15c2.133,0,4.05-0.183,5.75-0.55
+					c11.567-1.1,17.45-3.717,17.65-7.85v-0.1c0.8-3.933-4.55-7.817-16.05-11.65l-0.15-0.15c-0.6-0.1-1.283-0.25-2.05-0.45
+					c-0.2-0.1-0.4-0.15-0.6-0.15c0.8-2.933,1.583-5.733,2.35-8.4l0.15-0.15c0.5-1.467,0.95-2.833,1.35-4.1
+					c1.967-6.7,4.167-13.083,6.6-19.15c0.033-0.067,0.067-0.133,0.1-0.2c2.933-7.7,6.2-14.967,9.8-21.8L313.25,320 M301.9,298.9
+					h0.15c-4.1,9.167-7.9,18.417-11.4,27.75c-4.067,10.767-7.733,21.667-11,32.7c-3.533-1.7-7.167-3.033-10.9-4
+					c3.667-13.9,8.033-27.567,13.1-41c2.667-7.1,5.517-14.117,8.55-21.05h0.15C294.383,294.8,298.167,296.667,301.9,298.9
+					 M255.2,370.8c-0.4,0-0.75,0-1.05,0c-7.9-0.283-15.8-0.567-23.7-0.85c-1.667,0-3.283,0.05-4.85,0.15
+					c0.167-1.867,0.4-3.733,0.7-5.6c0.3-2.367,0.65-4.733,1.05-7.1c14.333-3.233,27.833-2.983,40.5,0.75
+					c3.633,0.967,7.217,2.3,10.75,4c2.167,1.067,4.333,2.183,6.5,3.35c1.567,1,3.283,2.083,5.15,3.25
+					c-0.767,2.467-1.5,5.017-2.2,7.65c-0.5-0.1-0.983-0.2-1.45-0.3c-0.05,0-0.1,0-0.15,0c-0.1,0-0.2,0-0.3,0
+					C277.117,373.767,266.8,372,255.2,370.8 M283.05,390.4c0.567,0.2,1.15,0.4,1.75,0.6c-0.5,1.767-0.933,3.583-1.3,5.45
+					c0,0.1,0,0.25,0,0.45c-0.1,0.3-0.15,0.65-0.15,1.05c-0.4,1.467-0.75,3.033-1.05,4.7c-0.1,0.5-0.2,1.033-0.3,1.6
+					c-2.467,14.167-4.083,28.467-4.85,42.9c-0.2-0.3-0.35-0.6-0.45-0.9v-0.15c-0.967-1.567-1.9-2.933-2.8-4.1
+					c0-0.1-0.05-0.15-0.15-0.15c-6-6.4-16.85-5.233-32.55,3.5c-1.067,0.5-2.4,0.7-4,0.6l3.4-15.9v-0.3l8.7-45.25
+					c0.6,0,1.183,0,1.75,0c0.4,0.1,0.8,0.15,1.2,0.15h0.15c0.1,0,0.2,0,0.3,0c0.2,0,0.45,0,0.75,0
+					C263.317,386.567,273.183,388.483,283.05,390.4 M235,400.85c-0.5-0.167-0.833-0.55-1-1.15c-1.5-2.067-2.983-3.25-4.45-3.55h-0.3
+					c-1.267,0-2.583,0.4-3.95,1.2c-0.6,0.2-1.1,0.25-1.5,0.15c-0.567-0.2-0.95-0.5-1.15-0.9c-0.2-0.5-0.2-1.033,0-1.6
+					c0.1-0.4,0.333-0.7,0.7-0.9c2.167-1,4.133-1.5,5.9-1.5h0.15c0.1,0,0.25,0,0.45,0c2.833,0.2,5.183,1.983,7.05,5.35
+					c0.4,0.367,0.45,0.85,0.15,1.45c-0.1,0.3-0.333,0.7-0.7,1.2C235.85,400.867,235.4,400.95,235,400.85 M235.75,447.6
+					c-0.4,0.1-0.8,0.05-1.2-0.15c-2.167-1.3-4.267-2.383-6.3-3.25c-1.4-0.7-2.633-1.2-3.7-1.5c-0.5-0.2-0.9-0.333-1.2-0.4h-0.15
+					c-0.467-0.2-0.9-0.35-1.3-0.45c-0.4-0.1-0.8-0.2-1.2-0.3h-0.15c-0.1-0.1-0.2-0.15-0.3-0.15l-0.1-2.95h0.1c0.3,0,0.7,0.1,1.2,0.3
+					c0.4,0.1,0.8,0.2,1.2,0.3l-0.15-0.15c0.567,0.1,1.15,0.3,1.75,0.6c0.367,0.033,0.817,0.167,1.35,0.4h-0.15
+					c1.267,0.4,2.633,0.95,4.1,1.65h-0.15c2.067,0.867,4.283,2,6.65,3.4c0.3,0.167,0.55,0.45,0.75,0.85
+					c0.067,0.3,0.017,0.65-0.15,1.05C236.35,447.15,236.05,447.4,235.75,447.6 M224.25,407.8c2.367,0,4.383,1.033,6.05,3.1
+					c1.667,2.267,2.45,5.017,2.35,8.25c-0.2,3.033-1.233,5.733-3.1,8.1h0.15c-1.967,2.167-4.183,3.25-6.65,3.25
+					c-1.167,0-2.233-0.3-3.2-0.9c-1-0.6-1.833-1.383-2.5-2.35c-1.767-2.267-2.567-4.917-2.4-7.95v-0.15c0-1.267,0.25-2.5,0.75-3.7
+					c0-0.1,0.05-0.15,0.15-0.15c0.4-1.567,1.183-2.983,2.35-4.25c0.5-0.7,1.05-1.25,1.65-1.65
+					C221.217,408.333,222.683,407.8,224.25,407.8 M153.25,430.2c1.367-2.567,3.617-3.45,6.75-2.65l3.25,9.85
+					c-1.367-0.3-2.55-0.2-3.55,0.3h-0.15c-1.167,0.5-2.133,1.283-2.9,2.35L153.25,430.2 M227.35,474.25h0.6l13.7,6.05
+					c0.3,0.1,0.633,0.15,1,0.15c0.3,0.1,0.6,0.1,0.9,0l14.9-5c-0.3,5.867-0.4,11.65-0.3,17.35l-15.2-3.5
+					c-0.4-0.1-0.733-0.017-1,0.25c-0.1,0-0.2,0.05-0.3,0.15l-14.3,4.45V474.25 M253.3,428.85c4-7,6.267-12.967,6.8-17.9
+					c0.033-0.433-0.067-0.8-0.3-1.1c-0.267-0.333-0.6-0.533-1-0.6c-0.433-0.033-0.8,0.083-1.1,0.35c-0.333,0.233-0.533,0.567-0.6,1
+					c-0.6,5.1-3.167,11.433-7.7,19c-0.2,0.3-0.267,0.633-0.2,1c0.033,0.367,0.2,0.667,0.5,0.9c0.267,0.233,0.583,0.35,0.95,0.35
+					h11.45c0.4,0,0.75-0.15,1.05-0.45s0.45-0.65,0.45-1.05c0-0.4-0.15-0.75-0.45-1.05s-0.65-0.45-1.05-0.45H253.3 M255.15,396.3
+					c-0.367,0.167-0.617,0.45-0.75,0.85c-0.167,0.4-0.15,0.783,0.05,1.15c0.167,0.367,0.45,0.633,0.85,0.8
+					c0.4,0.133,0.783,0.1,1.15-0.1c3.933-1.9,7.15-1.3,9.65,1.8c0.233,0.3,0.567,0.483,1,0.55c0.4,0.033,0.767-0.067,1.1-0.3
+					c0.3-0.267,0.483-0.6,0.55-1c0.033-0.433-0.067-0.8-0.3-1.1C265.05,394.55,260.617,393.667,255.15,396.3 M335.9,319.55
+					c-3.633-0.7-6.817-1.05-9.55-1.05c-1.367,0-2.5,0.1-3.4,0.3h-1.15v15.05h0.7c0.5,0,1.2,0,2.1,0c1.867,0,4.167,0.433,6.9,1.3
+					c2.767,0.9,5.267,2.867,7.5,5.9c1.967,3.133,3.05,7.95,3.25,14.45v21.2c0.2,5,1.083,9.217,2.65,12.65
+					c1.667,3.467,3.633,6.133,5.9,8c2.067,2.033,3.933,3.5,5.6,4.4c1.567,0.6,2.4,0.9,2.5,0.9v0.55c-0.1,0-0.933,0.35-2.5,1.05
+					c-1.667,0.7-3.533,2.083-5.6,4.15c-2.267,1.867-4.233,4.517-5.9,7.95c-1.567,3.433-2.45,7.7-2.65,12.8V453
+					c-0.2,6.4-1.283,11.117-3.25,14.15c-2.233,3.267-4.733,5.333-7.5,6.2c-2.733,0.8-5.033,1.2-6.9,1.2c-0.9,0-1.6,0-2.1,0h-0.7
+					v15.15l1.15,0.3c0.9,0.2,2.033,0.3,3.4,0.3c2.733,0,5.917-0.35,9.55-1.05c3.733-0.867,7.417-2.483,11.05-4.85
+					c3.567-2.467,6.567-6.1,9-10.9c2.567-4.7,3.85-11.183,3.85-19.45V434.3c0-5.1,0.933-9.217,2.8-12.35
+					c1.667-2.867,3.633-5.083,5.9-6.65c2.233-1.367,4.283-2.3,6.15-2.8l2.55-0.6v-17.65c0,0.2-0.85,0-2.55-0.6
+					c-1.867-0.3-3.917-1.233-6.15-2.8c-2.267-1.367-4.233-3.583-5.9-6.65c-1.867-3.033-2.8-7.2-2.8-12.5v-17.25
+					c0-8.233-1.283-14.767-3.85-19.6c-2.433-4.7-5.433-8.283-9-10.75C343.317,321.933,339.633,320.417,335.9,319.55 M462.9,399.55
+					c0.6,0.533,0.9,1.35,0.9,2.45v6.55h17.95v-16.4c0-3.567-0.817-6.167-2.45-7.8c-1.633-1.7-4.267-2.55-7.9-2.55h-61.55v16.85h9.85
+					v91.05h19.9v-43.6h34.5v-16.85h-34.5v-30.6h20.85C461.517,398.65,462.333,398.95,462.9,399.55 M432.5,327.9
+					c0-1.4-0.333-2.417-1-3.05c-0.633-0.633-1.633-0.95-3-0.95h-15.3v6.55h10.2c0.433,0,0.767,0.117,1,0.35s0.35,0.55,0.35,0.95
+					v21.5c-0.033,1.533-0.3,2.75-0.8,3.65c-0.5,0.933-1.167,1.617-2,2.05c-0.833,0.4-1.733,0.6-2.7,0.6
+					c-0.933,0.033-1.833-0.167-2.7-0.6c-0.833-0.4-1.5-1.1-2-2.1c-0.533-0.967-0.817-2.283-0.85-3.95v-1.75h-7.75v2.45
+					c0.033,3.033,0.683,5.533,1.95,7.5c1.3,1.933,2.933,3.383,4.9,4.35c2.033,0.933,4.167,1.4,6.4,1.4s4.35-0.467,6.35-1.4
+					c2.033-0.933,3.7-2.367,5-4.3c1.267-1.933,1.917-4.45,1.95-7.55V327.9 M457.7,323.6c-1.433-0.3-2.8-0.45-4.1-0.45
+					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
+					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
+					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
+					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
+					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
+					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
+					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
+					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
+					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
+					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
+					c-0.8-1.067-1.85-1.933-3.15-2.6C460.483,324.417,459.133,323.933,457.7,323.6 M504.25,326.05c-3.267-1.9-7-2.867-11.2-2.9
+					c-4.167,0.033-7.883,1-11.15,2.9c-3.3,1.9-5.883,4.467-7.75,7.7c-1.9,3.233-2.883,6.883-2.95,10.95
+					c0.067,4.167,1.05,7.917,2.95,11.25c1.867,3.333,4.45,5.967,7.75,7.9c3.267,1.933,6.983,2.933,11.15,3
+					c4.2-0.067,7.933-1.067,11.2-3c3.267-1.933,5.85-4.567,7.75-7.9c1.9-3.333,2.867-7.083,2.9-11.25
+					c-0.033-4.067-1-7.717-2.9-10.95C510.1,330.517,507.517,327.95,504.25,326.05 M504.95,337.4c1.2,2.133,1.817,4.567,1.85,7.3
+					c-0.033,2.833-0.65,5.367-1.85,7.6c-1.233,2.233-2.883,4-4.95,5.3c-2.067,1.3-4.383,1.95-6.95,1.95s-4.883-0.65-6.95-1.95
+					c-2.067-1.3-3.7-3.067-4.9-5.3c-1.233-2.233-1.867-4.767-1.9-7.6c0.033-2.733,0.667-5.167,1.9-7.3
+					c1.2-2.133,2.833-3.817,4.9-5.05c2.067-1.267,4.383-1.917,6.95-1.95c2.567,0.033,4.883,0.683,6.95,1.95
+					C502.067,333.583,503.717,335.267,504.95,337.4 M558.4,473.45c-1.067,0-1.883-0.3-2.45-0.9c-0.567-0.533-0.85-1.35-0.85-2.45
+					v-28.85c0.033-5.833-0.933-11.083-2.9-15.75c-2.033-4.6-5.5-8.25-10.4-10.95c-4.9-2.733-11.633-4.117-20.2-4.15
+					c-2.067,0-4.65,0.15-7.75,0.45c-3.167,0.333-6.317,1.05-9.45,2.15c-3.1,1.033-5.717,2.633-7.85,4.8
+					c-2.133,2.133-3.25,4.983-3.35,8.55v8.25h17.95v-4.1c0.067-1.433,0.717-2.517,1.95-3.25c1.167-0.767,2.55-1.3,4.15-1.6
+					c1.567-0.233,2.967-0.35,4.2-0.35c4.967-0.033,8.617,1.1,10.95,3.4c2.267,2.4,3.4,6.333,3.4,11.8v0.6h-2.45
+					c-2.567,0-5.783,0.133-9.65,0.4c-3.8,0.267-7.783,0.883-11.95,1.85c-4.2,0.933-8.15,2.367-11.85,4.3
+					c-3.667,1.933-6.667,4.5-9,7.7c-2.267,3.167-3.45,7.167-3.55,12c0.033,5.2,1.3,9.583,3.8,13.15c2.4,3.6,5.6,6.35,9.6,8.25
+					c4.033,1.867,8.367,2.8,13,2.8c4.367-0.1,8.05-0.817,11.05-2.15c2.967-1.333,5.367-2.883,7.2-4.65
+					c1.833-1.8,3.15-3.383,3.95-4.75c0.833-1.333,1.233-2.033,1.2-2.1h0.25l-0.05,0.9c0,0.6-0.017,1.383-0.05,2.35
+					c0,2.4,0.767,4.417,2.3,6.05c1.533,1.633,4.05,2.467,7.55,2.5h17.35v-16.25H558.4 M506.8,466.5c0.033-2.7,0.917-4.867,2.65-6.5
+					c1.7-1.633,3.883-2.867,6.55-3.7c2.667-0.767,5.483-1.3,8.45-1.6c2.967-0.267,5.733-0.4,8.3-0.4h3.35v1.85
+					c0,3.233-0.767,6.383-2.3,9.45c-1.5,3.1-3.55,5.667-6.15,7.7c-2.633,2.067-5.683,3.133-9.15,3.2c-3.967-0.1-6.9-1.117-8.8-3.05
+					C507.767,471.483,506.8,469.167,506.8,466.5 M598.7,390.65c0-3.5-0.833-5.867-2.5-7.1c-1.633-1.233-4.233-1.817-7.8-1.75H570
+					v16.4h6.1c1.067,0,1.883,0.283,2.45,0.85c0.567,0.533,0.85,1.367,0.85,2.5v88.15h19.3v-33.9h4.25
+					c1.267-0.067,2.567,0.083,3.9,0.45c1.333,0.3,2.433,1.117,3.3,2.45l12.9,24.3c1.367,2.733,2.95,4.55,4.75,5.45
+					c1.733,0.867,4.183,1.283,7.35,1.25h14.3v-16.25h-5.2c-1.767,0.067-3.117-0.133-4.05-0.6c-0.967-0.4-1.733-1.167-2.3-2.3
+					l-8.75-16.75c-1.433-2.433-2.7-4.067-3.8-4.9c-1.1-0.833-1.667-1.2-1.7-1.1v-0.4c0,0.067,0.533-0.333,1.6-1.2
+					c1.067-0.833,2.45-2.433,4.15-4.8l19.6-29.15h-21.45l-15.8,24.4c-0.867,1.2-1.967,2-3.3,2.4c-1.4,0.367-2.717,0.533-3.95,0.5
+					h-5.8V390.65 M556.95,330.8c0.2-0.233,0.517-0.35,0.95-0.35h2.55v-6.55h-7.6c-1.4,0-2.417,0.317-3.05,0.95
+					c-0.667,0.633-1,1.65-1,3.05v19.35c0,0.833,0.05,1.7,0.15,2.6c0.033,0.933,0.1,1.717,0.2,2.35c0.033,0.633,0.05,0.967,0.05,1
+					h-0.1c0-0.033-0.167-0.367-0.5-1c-0.367-0.633-0.817-1.417-1.35-2.35c-0.533-0.9-1.083-1.767-1.65-2.6l-16-23.35h-7v34.3
+					c0,0.433-0.117,0.75-0.35,0.95c-0.2,0.233-0.517,0.35-0.95,0.35h-2.55v6.6h7.6c1.4,0,2.417-0.317,3.05-0.95
+					c0.667-0.633,1-1.667,1-3.1V342.8c0-0.833-0.05-1.717-0.15-2.65c-0.067-0.9-0.133-1.667-0.2-2.3s-0.1-0.967-0.1-1h0.15
+					c0,0.033,0.167,0.367,0.5,1c0.367,0.667,0.817,1.45,1.35,2.35c0.533,0.9,1.083,1.767,1.65,2.6l16.05,23.3h6.95v-34.35
+					C556.6,331.35,556.717,331.033,556.95,330.8 M603.15,325.05c-1.267-0.633-2.617-1.117-4.05-1.45c-1.433-0.3-2.8-0.45-4.1-0.45
+					c-2.733,0.033-5.15,0.55-7.25,1.55c-2.1,1.033-3.767,2.45-5,4.25c-1.2,1.767-1.8,3.8-1.8,6.1c0.033,2.167,0.517,4,1.45,5.5
+					c0.967,1.533,2.183,2.817,3.65,3.85c1.533,1.067,3.133,1.983,4.8,2.75c1.7,0.8,3.3,1.55,4.8,2.25
+					c1.5,0.733,2.717,1.517,3.65,2.35c0.967,0.867,1.467,1.883,1.5,3.05c-0.033,1.1-0.333,2.017-0.9,2.75
+					c-0.533,0.733-1.267,1.3-2.2,1.7c-0.9,0.367-1.9,0.55-3,0.55c-1.467-0.033-2.817-0.3-4.05-0.8c-1.267-0.467-2.35-1.033-3.25-1.7
+					c-0.933-0.667-1.65-1.233-2.15-1.7c-0.5-0.5-0.75-0.767-0.75-0.8l-4.4,5.5l0.95,1c0.633,0.633,1.567,1.383,2.8,2.25
+					c1.233,0.833,2.75,1.583,4.55,2.25c1.8,0.633,3.867,0.983,6.2,1.05c2.967-0.067,5.5-0.65,7.6-1.75
+					c2.067-1.133,3.667-2.633,4.8-4.5c1.067-1.867,1.617-3.933,1.65-6.2c-0.033-2.3-0.533-4.233-1.5-5.8
+					c-0.933-1.533-2.15-2.817-3.65-3.85s-3.1-1.917-4.8-2.65c-1.667-0.767-3.267-1.483-4.8-2.15c-1.5-0.633-2.717-1.367-3.65-2.2
+					c-0.933-0.8-1.433-1.8-1.5-3c0.067-1.367,0.65-2.45,1.75-3.25c1.167-0.833,2.65-1.25,4.45-1.25c0.967,0,1.867,0.133,2.7,0.4
+					c0.867,0.267,1.567,0.633,2.1,1.1c0.533,0.533,0.8,1.117,0.8,1.75v1.9h7.05v-3.9c-0.033-1.533-0.467-2.817-1.3-3.85
+					C605.5,326.583,604.45,325.717,603.15,325.05 M705.55,337c-2-1.267-4.45-1.917-7.35-1.95c-3.067,0.033-5.733,0.717-8,2.05
+					c-2.3,1.333-4.1,3.183-5.4,5.55c-1.3,2.4-1.967,5.167-2,8.3c0.033,2.933,0.7,5.583,2,7.95c1.3,2.367,3.183,4.267,5.65,5.7
+					c2.4,1.433,5.283,2.183,8.65,2.25c1.9-0.033,3.6-0.283,5.1-0.75c1.5-0.433,2.767-0.95,3.8-1.55c1.067-0.6,1.883-1.133,2.45-1.6
+					c0.567-0.433,0.85-0.667,0.85-0.7l-3.15-5.25c0,0.033-0.367,0.333-1.1,0.9c-0.733,0.533-1.75,1.083-3.05,1.65
+					c-1.267,0.533-2.717,0.817-4.35,0.85c-1.533,0-2.95-0.3-4.25-0.9c-1.3-0.633-2.383-1.55-3.25-2.75
+					c-0.867-1.233-1.4-2.733-1.6-4.5h20.95c0-0.033,0-0.2,0-0.5c0.033-0.333,0.067-0.733,0.1-1.2c0.033-0.433,0.05-0.8,0.05-1.1
+					c0-2.7-0.517-5.133-1.55-7.3C709.067,339.983,707.55,338.267,705.55,337 M698.2,340.9c1.6,0,2.933,0.567,4,1.7
+					c1.067,1.1,1.65,2.567,1.75,4.4h-13.2c0.433-1.9,1.3-3.4,2.6-4.5C694.65,341.433,696.267,340.9,698.2,340.9 M640.6,345.45v-3.55
+					c0-1.3-0.383-2.383-1.15-3.25c-0.767-0.9-1.733-1.617-2.9-2.15c-1.133-0.533-2.317-0.9-3.55-1.1
+					c-1.233-0.233-2.367-0.35-3.4-0.35c-3.467,0.033-6.433,0.767-8.9,2.2c-2.5,1.467-4.4,3.383-5.7,5.75c-1.3,2.4-1.967,5.05-2,7.95
+					c0.033,2.967,0.717,5.65,2.05,8.05c1.333,2.367,3.233,4.267,5.7,5.7c2.433,1.367,5.317,2.083,8.65,2.15
+					c2.1-0.067,3.933-0.35,5.5-0.85c1.6-0.567,2.933-1.2,4-1.9c1.1-0.733,1.933-1.367,2.5-1.9c0.533-0.533,0.8-0.817,0.8-0.85
+					l-3.15-5.2l-0.65,0.65c-0.433,0.4-1.067,0.85-1.9,1.35c-0.8,0.567-1.75,1.05-2.85,1.45c-1.067,0.4-2.25,0.617-3.55,0.65
+					c-1.667,0-3.217-0.35-4.65-1.05c-1.4-0.7-2.55-1.75-3.45-3.15c-0.9-1.367-1.35-3.083-1.35-5.15c0-1.867,0.383-3.5,1.15-4.9
+					c0.767-1.433,1.817-2.55,3.15-3.35c1.367-0.8,2.917-1.217,4.65-1.25c0.633,0,1.283,0.083,1.95,0.25
+					c0.667,0.167,1.233,0.433,1.7,0.8c0.467,0.333,0.7,0.783,0.7,1.35v1.65H640.6 M655.1,327.85c0-1.367-0.333-2.367-1-3
+					c-0.633-0.633-1.65-0.95-3.05-0.95h-7.2v6.4h2.4c0.433,0,0.75,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v34.5h7.55v-13.9
+					c0-0.733,0.033-1.417,0.1-2.05c0.067-0.667,0.183-1.3,0.35-1.9c0.6-1.867,1.617-3.367,3.05-4.5c1.433-1.133,3.167-1.733,5.2-1.8
+					c1.867,0.033,3.133,0.617,3.8,1.75c0.7,1.1,1.033,2.583,1,4.45v13.9c0,1.433,0.317,2.467,0.95,3.1
+					c0.633,0.633,1.65,0.95,3.05,0.95h7.2v-6.35h-2.4c-0.433,0-0.75-0.117-0.95-0.35c-0.233-0.233-0.35-0.55-0.35-0.95V346.6
+					c-0.033-4-0.95-6.933-2.75-8.8c-1.833-1.833-4.433-2.75-7.8-2.75c-1.767,0.033-3.35,0.333-4.75,0.9
+					c-1.367,0.6-2.533,1.35-3.5,2.25c-0.967,0.933-1.7,1.883-2.2,2.85H655l0.05-0.7c0.033-0.467,0.05-1.083,0.05-1.85V327.85
+					 M719.85,466.5c0,0.1-0.95,0.833-2.85,2.2c-1.867,1.433-4.433,2.85-7.7,4.25c-3.267,1.367-6.967,2.1-11.1,2.2
+					c-3.967,0-7.617-0.783-10.95-2.35c-3.3-1.6-6.067-3.933-8.3-7c-2.167-3.1-3.517-6.933-4.05-11.5h53.45
+					c0-0.033,0.033-0.483,0.1-1.35c0.1-0.833,0.167-1.817,0.2-2.95c0.1-1.067,0.15-2,0.15-2.8c0-6.933-1.333-13.167-4-18.7
+					c-2.6-5.5-6.45-9.883-11.55-13.15c-5.1-3.2-11.367-4.85-18.8-4.95c-7.8,0.033-14.617,1.767-20.45,5.2
+					c-5.9,3.467-10.5,8.217-13.8,14.25c-3.333,6.067-5.017,13.1-5.05,21.1c0.033,7.467,1.733,14.25,5.1,20.35
+					c3.333,6.1,8.117,10.967,14.35,14.6c6.167,3.667,13.55,5.55,22.15,5.65c4.867-0.033,9.2-0.65,13-1.85
+					c3.867-1.133,7.133-2.467,9.8-4c2.733-1.533,4.817-2.867,6.25-4c1.367-1.133,2.083-1.75,2.15-1.85L719.85,466.5 M682.1,429.45
+					c3.3-2.7,7.417-4.083,12.35-4.15c4.067,0.067,7.467,1.533,10.2,4.4c2.7,2.8,4.183,6.55,4.45,11.25h-33.6
+					C676.567,436.05,678.767,432.217,682.1,429.45 M766.05,421.65c0-3.267-0.867-5.667-2.6-7.2c-1.733-1.467-4.3-2.2-7.7-2.2H738.1
+					v16.4h6.05c1.1,0,1.917,0.267,2.45,0.8c0.6,0.533,0.9,1.383,0.9,2.55v57.7h19.15V459c0-2.3,0.15-4.483,0.45-6.55
+					c0.3-2.133,0.7-4.167,1.2-6.1c1.233-3.8,2.983-6.917,5.25-9.35c2.233-2.367,4.75-4.117,7.55-5.25c2.8-1.1,5.583-1.65,8.35-1.65
+					c1.367,0,2.5,0.05,3.4,0.15c0.833,0.1,1.283,0.15,1.35,0.15v-18.95c-0.067,0-0.45-0.05-1.15-0.15
+					c-0.733-0.1-1.517-0.15-2.35-0.15c-4,0.033-7.633,0.917-10.9,2.65c-3.267,1.767-6.083,4.133-8.45,7.1
+					c-2.333,3.033-4.1,6.4-5.3,10.1h-0.3l0.15-1.3c0.067-0.867,0.117-2.033,0.15-3.5V421.65 M751,335.95
+					c-1.367,0.6-2.567,1.35-3.6,2.25c-1,0.967-1.767,2-2.3,3.1H745c-0.667-2.067-1.733-3.617-3.2-4.65c-1.5-1.067-3.4-1.6-5.7-1.6
+					c-1.567,0.033-3.017,0.367-4.35,1c-1.3,0.6-2.417,1.4-3.35,2.4c-0.9,0.933-1.6,1.9-2.1,2.9h-0.1v-0.4
+					c0.033-0.267,0.05-0.567,0.05-0.9v-0.85c0-1.1-0.333-1.933-1-2.5c-0.667-0.6-1.667-0.9-3-0.9h-6.95v6.4h2.4
+					c0.4,0,0.717,0.1,0.95,0.3c0.233,0.233,0.35,0.567,0.35,1v22.6h7.5v-13.35c0-0.667,0.033-1.3,0.1-1.9
+					c0.1-0.667,0.217-1.3,0.35-1.9c0.333-1.3,0.817-2.467,1.45-3.5c0.667-1.067,1.5-1.9,2.5-2.5c0.967-0.633,2.1-0.967,3.4-1
+					c1.167,0.033,2.05,0.317,2.65,0.85c0.6,0.533,0.983,1.267,1.15,2.2c0.2,0.933,0.3,1.95,0.3,3.05v18.05h7.55v-13.35
+					c0-0.667,0.033-1.333,0.1-2c0.067-0.633,0.183-1.25,0.35-1.85c0.3-1.267,0.767-2.433,1.4-3.5c0.667-1.033,1.5-1.85,2.5-2.45
+					c0.967-0.633,2.083-0.967,3.35-1c1.7,0.067,2.833,0.65,3.4,1.75c0.533,1.133,0.783,2.583,0.75,4.35v14
+					c0,1.433,0.317,2.467,0.95,3.1c0.667,0.633,1.7,0.95,3.1,0.95H769v-6.35h-2.35c-0.4,0-0.717-0.117-0.95-0.35
+					c-0.233-0.233-0.35-0.55-0.35-0.95V346.6c0-3.967-0.867-6.883-2.6-8.75c-1.7-1.867-4.133-2.8-7.3-2.8
+					C753.817,335.083,752.333,335.383,751,335.95 M802.3,359.75h-2.4c-0.433,0-0.75-0.117-0.95-0.35
+					c-0.233-0.233-0.35-0.55-0.35-0.95v-11.3c0-2.3-0.383-4.35-1.15-6.15c-0.8-1.8-2.15-3.233-4.05-4.3
+					c-1.933-1.067-4.567-1.617-7.9-1.65c-0.833,0-1.85,0.067-3.05,0.2c-1.233,0.133-2.467,0.4-3.7,0.8
+					c-1.233,0.433-2.25,1.067-3.05,1.9c-0.833,0.833-1.283,1.95-1.35,3.35v3.2h7.05v-1.55c0.033-0.567,0.283-1,0.75-1.3
+					c0.467-0.3,1.017-0.5,1.65-0.6c0.6-0.1,1.15-0.15,1.65-0.15c1.933-0.033,3.35,0.417,4.25,1.35c0.9,0.9,1.35,2.433,1.35,4.6v0.25
+					h-0.95c-1.033,0-2.3,0.033-3.8,0.1c-1.5,0.133-3.05,0.383-4.65,0.75c-1.667,0.367-3.217,0.933-4.65,1.7
+					c-1.433,0.733-2.617,1.733-3.55,3c-0.867,1.233-1.333,2.8-1.4,4.7c0.033,2.033,0.533,3.75,1.5,5.15s2.233,2.467,3.8,3.2
+					c1.567,0.767,3.25,1.15,5.05,1.15c1.7-0.067,3.15-0.35,4.35-0.85c1.167-0.533,2.1-1.15,2.8-1.85c0.733-0.7,1.25-1.317,1.55-1.85
+					c0.333-0.533,0.483-0.8,0.45-0.8h0.15l-0.05,0.35c0,0.233-0.017,0.533-0.05,0.9c0,0.933,0.3,1.717,0.9,2.35s1.6,0.967,3,1h6.8
+					V359.75 M780.75,354.5c0.633-0.633,1.483-1.117,2.55-1.45c1.033-0.333,2.133-0.55,3.3-0.65c1.167-0.1,2.25-0.15,3.25-0.15h1.3
+					v0.7c0,1.267-0.3,2.5-0.9,3.7c-0.567,1.233-1.367,2.25-2.4,3.05c-1.033,0.8-2.233,1.217-3.6,1.25
+					c-1.533-0.067-2.683-0.467-3.45-1.2c-0.733-0.767-1.1-1.683-1.1-2.75C779.7,355.967,780.05,355.133,780.75,354.5z"/>
+				<path style="fill:#DEDEDE;" d="M191.7,500.6h12.35l9.45-23.7L191.7,500.6 M301.4,345.3c-0.033,0.067-0.067,0.133-0.1,0.2
+					c-2.433,6.067-4.633,12.45-6.6,19.15c-0.4,1.267-0.85,2.633-1.35,4.1l-0.15,0.15c-0.767,2.667-1.55,5.467-2.35,8.4
+					c0.2,0,0.4,0.05,0.6,0.15c0.767,0.2,1.45,0.35,2.05,0.45l0.15,0.15c11.5,3.833,16.85,7.717,16.05,11.65v0.1
+					c-0.2,4.133-6.083,6.75-17.65,7.85c-1.7,0.367-3.617,0.55-5.75,0.55v0.15c-0.4,1.5-0.75,3.083-1.05,4.75
+					c-0.1,0.467-0.2,1-0.3,1.6c-2.733,15.633-4.45,31.5-5.15,47.6c1.367,1.867,2.833,3.183,4.4,3.95h0.15c1.4,0.7,2.933,1,4.6,0.9
+					h0.15c2.433,0.2,4.633-0.633,6.6-2.5v-0.15c2.067-2.467,3.733-5.8,5-10h-0.15c0.9-4.033,0.717-7.233-0.55-9.6
+					c-1.5-2.533-3.083-4-4.75-4.4c-1.567-0.2-3.283,0.633-5.15,2.5c-0.967,1.067-1.45,2.933-1.45,5.6c0,1.467,0.15,2.933,0.45,4.4
+					c0.1,0.4,0,0.8-0.3,1.2c-0.2,0.3-0.5,0.5-0.9,0.6c-0.4,0.1-0.75,0-1.05-0.3c-0.367-0.2-0.6-0.5-0.7-0.9
+					c-0.3-1.667-0.45-3.333-0.45-5c0-3.633,0.783-6.183,2.35-7.65c2.733-2.867,5.333-4,7.8-3.4c2.367,0.3,4.583,2.267,6.65,5.9
+					c1.767,2.733,2.1,6.617,1,11.65v0.1c-1.367,4.833-3.233,8.617-5.6,11.35h-0.15c-2.533,2.567-5.417,3.75-8.65,3.55h-0.15
+					c-2.167,0.1-4.133-0.3-5.9-1.2c-1.2-0.467-2.333-1.25-3.4-2.35c-0.1,3.167-0.15,6.317-0.15,9.45h11.8c0.4,0,0.733,0.15,1,0.45
+					c0.3,0.2,0.45,0.483,0.45,0.85c0,0.4-0.1,0.75-0.3,1.05l-9.85,12.8l4.95,6l40.55-70.2c2.267-3.933,3.35-8.117,3.25-12.55
+					c0.1-4.6-0.933-8.767-3.1-12.5L301.4,345.3 M231.9,318.95c0.833-3.733,1.75-7.383,2.75-10.95l-51.5-0.1
+					c-4.533,0.1-8.717,1.183-12.55,3.25c-3.933,2.167-6.967,5.2-9.1,9.1l-41.15,71.35c-2.433,3.833-3.6,8-3.5,12.5
+					c-0.1,4.433,1.067,8.617,3.5,12.55l41,71.3c2.233,3.833,5.217,6.917,8.95,9.25c1.233,0.733,2.5,1.35,3.8,1.85l-19.1-54.7
+					c-0.1-0.1-0.15-0.2-0.15-0.3l-4.55-13.55c-0.2-0.4-0.2-0.75,0-1.05c2.067-4.7,5.85-6.167,11.35-4.4c0.2,0,0.383,0.1,0.55,0.3
+					c0.2,0.2,0.35,0.383,0.45,0.55l4.3,13.15c0,0.1,0.05,0.2,0.15,0.3L188,500.2l25.95-28.45l-4.6-8.85
+					c-0.167-0.4-0.167-0.75,0-1.05c0-0.367,0.2-0.65,0.6-0.85c0.2-0.2,0.5-0.3,0.9-0.3l10.6,1.15c-0.6-6.867-1.033-13.683-1.3-20.45
+					h-0.45c-0.1,0-0.2,0-0.3,0c-0.1-0.1-0.2-0.15-0.3-0.15c-0.1,0-0.2,0-0.3,0c-0.7-0.2-1.333-0.3-1.9-0.3c-0.2,0-0.35,0-0.45,0
+					c-3.733-0.1-6.633,1.033-8.7,3.4v0.15c-0.8,0.967-1.533,2.183-2.2,3.65c-0.3,1-0.9,2.433-1.8,4.3
+					c-1.767,3.733-3.817,6.333-6.15,7.8h-0.15c-1.867,0.8-3.633,1.25-5.3,1.35c-3.367,0.267-6.117-0.867-8.25-3.4
+					c-2.267-2.667-3.95-6.3-5.05-10.9c-1.267-5.133-1.117-9.067,0.45-11.8c1.867-3.733,3.933-5.8,6.2-6.2
+					c2.267-0.567,4.667,0.517,7.2,3.25l0.15,0.15c1.5,1.167,2.25,3.567,2.25,7.2c0,1.767-0.25,3.5-0.75,5.2
+					c-0.2,0.367-0.45,0.65-0.75,0.85c-0.4,0.2-0.783,0.25-1.15,0.15c-0.4-0.2-0.7-0.45-0.9-0.75c-0.2-0.367-0.2-0.75,0-1.15
+					c0.4-1.367,0.6-2.8,0.6-4.3c0-2.533-0.45-4.25-1.35-5.15l-0.15-0.15c-1.667-1.867-3.133-2.65-4.4-2.35
+					c-1.467,0.4-2.9,1.917-4.3,4.55c-1.167,2.267-1.267,5.517-0.3,9.75c1,4.133,2.483,7.367,4.45,9.7
+					c1.467,1.767,3.383,2.567,5.75,2.4H192c1.267-0.1,2.633-0.4,4.1-0.9c0-0.1,0.05-0.15,0.15-0.15
+					c1.867-1.167,3.483-3.283,4.85-6.35c0.9-1.867,1.5-3.283,1.8-4.25v-0.15c0.767-1.667,1.6-3.1,2.5-4.3h0.15
+					c2.533-3.133,6.167-4.65,10.9-4.55c0.1,0,0.25,0,0.45,0c0.667,0,1.45,0.1,2.35,0.3c0.2,0,0.45,0.05,0.75,0.15
+					c-0.1-1.867-0.15-3.683-0.15-5.45c-1.867-0.7-3.5-2.033-4.9-4c-2.133-2.833-3.117-6.117-2.95-9.85c0-0.7,0.05-1.333,0.15-1.9
+					l-4.4-1.5l1.9-5.6l4.45,1.5c0.467-0.9,1.1-1.733,1.9-2.5c1.167-1.6,2.5-2.683,4-3.25c0.1-1.1,0.15-2.133,0.15-3.1
+					c0.167-3.633,0.4-7.217,0.7-10.75c-1.267-0.3-2.383-0.55-3.35-0.75l-0.9-0.3c-0.9-0.2-1.683-0.4-2.35-0.6
+					c-11.5-3.433-16.9-7.267-16.2-11.5c0.167-4,6.15-6.75,17.95-8.25h0.15c1.667,0,3.283-0.133,4.85-0.4c0.1-0.1,0.2-0.15,0.3-0.15
+					h0.3c0.3,0,0.65,0,1.05,0c0.2-2.067,0.433-4.083,0.7-6.05c0.4-2.767,0.8-5.517,1.2-8.25c1.467-9.633,3.233-19.017,5.3-28.15
+					c0-0.2,0.05-0.35,0.15-0.45l2.05-8.25H231.9 M170.75,360.5l-8.55,0.15l7.4-6.2l-2.95-14l10.75,8.25l10.3-8.65l-5,11.9l10.6,7.8
+					L179,360.2l-5.45,12.4L170.75,360.5 M138.5,391.3l-2.05-6.05l4.85,3.7l6.5-5.3l-2.1,8.25l7.4,5.15h-8.7l-1.6,5.45l-1.95-5.45
+					h-10L138.5,391.3 M184.9,397.2l-3.95,7.35l6.15,5.15h-8.95l-6.05,11.05V409.7h-9.9l9.9-5.45v-7.2l5.15,4.55L184.9,397.2z"/>
+				<path style="fill:#FFFFFF;" d="M164.45,440.95c-1.5-0.7-2.733-0.85-3.7-0.45l21.65,60.1c0.2,0,0.4,0,0.6,0h2.05L164.45,440.95
+					 M260.35,472.05c0.3,0.1,0.55,0.3,0.75,0.6c0.2,0.167,0.3,0.45,0.3,0.85c-0.3,7.167-0.4,14.2-0.3,21.1
+					c0,0.267-0.05,0.55-0.15,0.85c-0.2,0.2-0.45,0.4-0.75,0.6c-0.3,0.1-0.6,0.1-0.9,0l-15.15-3.4v7.95h20.9
+					c4.633,0,8.85-1.133,12.65-3.4c3.233-1.9,5.95-4.35,8.15-7.35l-6.35-7.65c-0.2-0.3-0.3-0.65-0.3-1.05c0-0.267,0.1-0.55,0.3-0.85
+					l8.85-11.35h-10.3c-0.4,0-0.75-0.15-1.05-0.45s-0.45-0.65-0.45-1.05c0-4.8,0.1-9.6,0.3-14.4c-0.3-0.4-0.55-0.85-0.75-1.35h-0.15
+					c-0.867-1.867-1.45-3.233-1.75-4.1c-0.1,0-0.15-0.05-0.15-0.15c-0.867-1.4-1.7-2.633-2.5-3.7c-5.1-4.7-14.383-3.467-27.85,3.7
+					v29.75l15.75-5.15C259.75,471.85,260.05,471.85,260.35,472.05 M180.95,404.55l3.95-7.35l-7.65,4.4l-5.15-4.55v7.2l-9.9,5.45h9.9
+					v11.05l6.05-11.05h8.95L180.95,404.55 M136.45,385.25l2.05,6.05l-7.65,5.75h10l1.95,5.45l1.6-5.45h8.7l-7.4-5.15l2.1-8.25
+					l-6.5,5.3L136.45,385.25 M162.2,360.65l8.55-0.15l2.8,12.1l5.45-12.4l14.3-0.45l-10.6-7.8l5-11.9l-10.3,8.65l-10.75-8.25
+					l2.95,14L162.2,360.65 M227.95,474.25h-0.6v19.9l14.3-4.45c0.1-0.1,0.2-0.15,0.3-0.15c0.267-0.267,0.6-0.35,1-0.25l15.2,3.5
+					c-0.1-5.7,0-11.483,0.3-17.35l-14.9,5c-0.3,0.1-0.6,0.1-0.9,0c-0.367,0-0.7-0.05-1-0.15L227.95,474.25 M160,427.55
+					c-3.133-0.8-5.383,0.083-6.75,2.65l3.4,9.85c0.767-1.067,1.733-1.85,2.9-2.35h0.15c1-0.5,2.183-0.6,3.55-0.3L160,427.55
+					 M230.3,410.9c-1.667-2.067-3.683-3.1-6.05-3.1c-1.567,0-3.033,0.533-4.4,1.6c-0.6,0.4-1.15,0.95-1.65,1.65
+					c-1.167,1.267-1.95,2.683-2.35,4.25c-0.1,0-0.15,0.05-0.15,0.15c-0.5,1.2-0.75,2.433-0.75,3.7v0.15
+					c-0.167,3.033,0.633,5.683,2.4,7.95c0.667,0.967,1.5,1.75,2.5,2.35c0.967,0.6,2.033,0.9,3.2,0.9c2.467,0,4.683-1.083,6.65-3.25
+					h-0.15c1.867-2.367,2.9-5.067,3.1-8.1C232.75,415.917,231.967,413.167,230.3,410.9 M234.55,447.45c0.4,0.2,0.8,0.25,1.2,0.15
+					c0.3-0.2,0.6-0.45,0.9-0.75c0.167-0.4,0.217-0.75,0.15-1.05c-0.2-0.4-0.45-0.683-0.75-0.85c-2.367-1.4-4.583-2.533-6.65-3.4
+					h0.15c-1.467-0.7-2.833-1.25-4.1-1.65h0.15c-0.533-0.233-0.983-0.367-1.35-0.4c-0.6-0.3-1.183-0.5-1.75-0.6l0.15,0.15
+					c-0.4-0.1-0.8-0.2-1.2-0.3c-0.5-0.2-0.9-0.3-1.2-0.3h-0.1l0.1,2.95c0.1,0,0.2,0.05,0.3,0.15h0.15c0.4,0.1,0.8,0.2,1.2,0.3
+					c0.4,0.1,0.833,0.25,1.3,0.45h0.15c0.3,0.067,0.7,0.2,1.2,0.4c1.067,0.3,2.3,0.8,3.7,1.5
+					C230.283,445.067,232.383,446.15,234.55,447.45 M234,399.7c0.167,0.6,0.5,0.983,1,1.15c0.4,0.1,0.85,0.017,1.35-0.25
+					c0.367-0.5,0.6-0.9,0.7-1.2c0.3-0.6,0.25-1.083-0.15-1.45c-1.867-3.367-4.217-5.15-7.05-5.35c-0.2,0-0.35,0-0.45,0h-0.15
+					c-1.767,0-3.733,0.5-5.9,1.5c-0.367,0.2-0.6,0.5-0.7,0.9c-0.2,0.567-0.2,1.1,0,1.6c0.2,0.4,0.583,0.7,1.15,0.9
+					c0.4,0.1,0.9,0.05,1.5-0.15c1.367-0.8,2.683-1.2,3.95-1.2h0.3C231.017,396.45,232.5,397.633,234,399.7 M284.8,391
+					c-0.6-0.2-1.183-0.4-1.75-0.6c-9.867-1.917-19.733-3.833-29.6-5.75c-0.3,0-0.55,0-0.75,0c-0.1,0-0.2,0-0.3,0h-0.15
+					c-0.4,0-0.8-0.05-1.2-0.15c-0.567,0-1.15,0-1.75,0l-8.7,45.25v0.3l-3.4,15.9c1.6,0.1,2.933-0.1,4-0.6
+					c15.7-8.733,26.55-9.9,32.55-3.5c0.1,0,0.15,0.05,0.15,0.15c0.9,1.167,1.833,2.533,2.8,4.1v0.15c0.1,0.3,0.25,0.6,0.45,0.9
+					c0.767-14.433,2.383-28.733,4.85-42.9c0.1-0.567,0.2-1.1,0.3-1.6c0.3-1.667,0.65-3.233,1.05-4.7c0-0.4,0.05-0.75,0.15-1.05
+					c0-0.2,0-0.35,0-0.45C283.867,394.583,284.3,392.767,284.8,391 M254.4,397.15c0.133-0.4,0.383-0.683,0.75-0.85
+					c5.467-2.633,9.9-1.75,13.3,2.65c0.233,0.3,0.333,0.667,0.3,1.1c-0.067,0.4-0.25,0.733-0.55,1c-0.333,0.233-0.7,0.333-1.1,0.3
+					c-0.433-0.067-0.767-0.25-1-0.55c-2.5-3.1-5.717-3.7-9.65-1.8c-0.367,0.2-0.75,0.233-1.15,0.1c-0.4-0.167-0.683-0.433-0.85-0.8
+					C254.25,397.933,254.233,397.55,254.4,397.15 M260.1,410.95c-0.533,4.933-2.8,10.9-6.8,17.9h8.8c0.4,0,0.75,0.15,1.05,0.45
+					s0.45,0.65,0.45,1.05c0,0.4-0.15,0.75-0.45,1.05s-0.65,0.45-1.05,0.45h-11.45c-0.367,0-0.683-0.117-0.95-0.35
+					c-0.3-0.233-0.467-0.533-0.5-0.9c-0.067-0.367,0-0.7,0.2-1c4.533-7.567,7.1-13.9,7.7-19c0.067-0.433,0.267-0.767,0.6-1
+					c0.3-0.267,0.667-0.383,1.1-0.35c0.4,0.067,0.733,0.267,1,0.6C260.033,410.15,260.133,410.517,260.1,410.95 M254.15,370.8
+					c0.3,0,0.65,0,1.05,0c11.6,1.2,21.917,2.967,30.95,5.3c0.1,0,0.2,0,0.3,0c0.05,0,0.1,0,0.15,0c0.467,0.1,0.95,0.2,1.45,0.3
+					c0.7-2.633,1.433-5.183,2.2-7.65c-1.867-1.167-3.583-2.25-5.15-3.25c-2.167-1.167-4.333-2.283-6.5-3.35
+					c-3.533-1.7-7.117-3.033-10.75-4c-12.667-3.733-26.167-3.983-40.5-0.75c-0.4,2.367-0.75,4.733-1.05,7.1
+					c-0.3,1.867-0.533,3.733-0.7,5.6c1.567-0.1,3.183-0.15,4.85-0.15C238.35,370.233,246.25,370.517,254.15,370.8 M302.05,298.9
+					h-0.15c-3.733-2.233-7.517-4.1-11.35-5.6h-0.15c-3.033,6.933-5.883,13.95-8.55,21.05c-5.067,13.433-9.433,27.1-13.1,41
+					c3.733,0.967,7.367,2.3,10.9,4c3.267-11.033,6.933-21.933,11-32.7C294.15,317.317,297.95,308.067,302.05,298.9z"/>
+			</g>
+			<g>
+				<path id="Layer0_0_1_STROKES" style="fill:none;stroke:#595959;stroke-linecap:round;stroke-linejoin:round;" d="M178.7,500.25
+					c1,0.167,2.05,0.283,3.15,0.35"/>
+			</g>
+		</g>
+	</g>
+</switch>
+<i:pgf  id="adobe_illustrator_pgf">
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	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
+	]]>
+	<![CDATA[
+	qhwwteIYbOtktOqLgV/Wnb29iWR2j+l8HSJwHjt5SCJBD3pLfy49exlYpmAYPnUZWHgwLKEnWKKx
+HWcluNyeH7QOfLqNm14FHFyxsRXJVc/RdpZbBPjmJ+2jAiN8kqDeOiTxad7+lbsTLvEggSXNx5dv
+mAwTIbL3m30QROsMS76/iOLBOZiWpBlipqcRggbYPmE1cXu2VvKdjKaU2D8g+07bUWpTGRiQdPWc
+8pGazSckOp5M6GUP5aZGrymsy3j3bqwQBenDcGcymoPZ3hmxUmrhYlQ8RxtglF2B7e0qOoyKgWMJ
+U6aNLmVOBxgS5yUE3oQMEpRo14GBeGXmjkPpCh7lWeQOBEISv6W5iGTZcvL5XG5Ph4a+PHtEaZo/
+dwslSXORygqH5AfxzSijAbzhpNqy9Advqs0Vx43k5mkowukgKln3atMGMSGWecyeEtDRbLWZjNFJ
+F7ygvdRgs6lO7LoKXA/aJo2yuOFCLV8SH1b3KnwXEnpMZQRH6bXr7qbn8nqQUVlhNW1lAEsVAc/9
+ilHh5ArqcqcdkNqSHTMkra+RUGD5w7kc7h5542Y8yrXWB86bzF3SuJuC0lLwg3xEBhLOo+nRsLuG
+dZGLD+3ja5kt4/AxzTbIlInHhmqdcCzSUAMBzI7aQL65Sj/8v1c2v/q3v/j6bx//8Ou/fvnLly8e
+H//07ffuG/fNr379ePz85a9evvjy1959M/5oCHChtF+10V//adZJf/1PP/1Jefni5y9f/7erjvqP
+8h9/L70iSxhLo4SxhodDMAZO10uK0kY16ZrRK7KXnDRqT2nsoGG5t9DLcHBzd9q5XcEKzg9NXNv4
+41jfdeXrL6/XDet1/cvfjH//60t6+dufahcA9P8v/L132PtPAjfENzeLILyhMyXSolN19Vf/ngnx
+33z1m7//u//8y69emZX3LYB+Tc/ri+HNC198/vjD97/73//4xYv/sxen/6f/4f7x5y8/f/nFV+PH
+73778sUP33/87g///PvvP18vMd/tyx/G7//9jz98+we5L/62Xzkvsr8Z//Wvw5we02ZW3OM/jr/5
+8tf5m19+9086bH/+5+PCz/7Lx99++5vvP/7uf3z7/U9/8ts/fPyf3758/O673//w8Ydv/2389PLb
+77/9ww+///7blz/8y+//l1yRP7r/4Gc/++XfjVPk/wDCi5n8
+	]]>
+</i:pgf>
+</svg>
diff --git a/v2/index.html b/v2/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..3b17e6531467d789597247379ec972f03e0e9671
--- /dev/null
+++ b/v2/index.html
@@ -0,0 +1,8 @@
+<!DOCTYPE html><html><head><meta charset="utf-8"><title>Fake your JSON-Schemas!</title><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="stylesheet" href="//fonts.googleapis.com/css?family=Dosis"><link rel="shortcut icon" type="image/icon" href="img/favicon.ico"><link rel="stylesheet" href="css/app.css"><script>TIME = new Date()</script></head><body><div class="Toolbar p f"><a class="tdn tac github-ribbon" href="//github.com/json-schema-faker/json-schema-faker">Fork me on GitHub</a><h1 class="jsf-logo"><a class="dib" href="/">JSON Schema Faker</a></h1><p><b>JSON Schema Faker</b> combines JSON Schema standard with fake data generators, allowing users to generate fake data that conform to the schema.</p><iframe class="mt" src="//ghbtns.com/github-btn.html?user=json-schema-faker&amp;repo=json-schema-faker&amp;type=star&amp;count=true" frameborder="0" scrolling="0" width="120" height="20"></iframe></div><div class="sm-flx flx-m p"><div class="flx-a flx-lt"><div id="app"></div></div><div class="flx-n flx sm-no-flx jsf-about"><div class="flx-a"><h4>Reference</h4><ul class="lr"><li><a href="http://json-schema.org">JSON-Schema.org</a></li></ul><h4>Examples</h4><ul class="lr"><li><a href="#gist/da0af4611cb5622b54aff57283560da3">boolean</a></li><li><a href="#gist/4199ca90fb5cd05337824b0695d17b5e">integer</a></li><li><a href="#gist/d9e27543d84157c1672f87e93ac250cc">inner-references</a></li><li><a href="#gist/5f81f118fbd4eac01ccacf23a061a8b9">external-references</a></li><li><a href="#gist/cbb4871d1d2f44760ddafdaa056e1926">enums</a></li><li><a href="#gist/1f1196844bead96e021ffbd597edcffa">fixed values</a></li><li><a href="#gist/f4ad1818735f0d0babdc1f12b92013f1">n-times repeated</a></li><li><a href="#gist/1902737e7bef9573af02a3fc49761c13">faker-properties</a></li><li><a href="#gist/1a7db173362b127a826a5c2fa7de7561">faker.fake()</a></li><li><a href="#gist/5dd364aad2d48729efff686c5f7c44b2">chance-guid</a></li><li><a href="#gist/682f97a2e28e230b51810c55b92f4cdc">chance-name</a></li><li><a href="#gist/426c2d177243cd2c52594f92c1a7862e">chance-properties</a></li><li><a href="#gist/d3e75b22ad33e4440df19e0cc060c9f3/0.5.0-rc3">remote-schemas (^0.5.x)</a></li></ul></div><div class="flx-a"><h4>Community</h4><ul class="lr"><li><a href="//github.com/json-schema-faker/json-schema-faker/">GitHub</a></li><li><a href="//travis-ci.org/json-schema-faker/json-schema-faker">CI</a></li><li><a href="//github.com/json-schema-faker/json-schema-faker/issues/new">Contribution</a></li><li><a href="//github.com/json-schema-faker/angular-jsf">AngularJS module</a></li><li><a href="//github.com/json-schema-faker/grunt-jsonschema-faker">Grunt plugin</a></li><li><a href="//github.com/json-schema-faker/json-schema-server">JSF Server</a></li></ul></div></div></div><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
+(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
+m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
+})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
+
+ga('create', 'UA-62699942-1', 'auto');
+ga('send', 'pageview');
+</script><script src="vendor/ractive/ractive.runtime.min.js"></script><script src="vendor/ace-builds/src-min/ace.js"></script><script src="vendor/ace-builds/src-min/mode-json.js"></script><script src="vendor/ace-builds/src-min/worker-json.js"></script><script src="vendor/ace-builds/src-min/theme-github.js"></script><script src="js/app.js"></script></body></html>
\ No newline at end of file
diff --git a/v2/js/app.js b/v2/js/app.js
new file mode 100644
index 0000000000000000000000000000000000000000..35269507f26b0f4ff30effb0063fa7bdec5d6f55
--- /dev/null
+++ b/v2/js/app.js
@@ -0,0 +1,1066 @@
+(function () {
+var tpl = function () {
+      return { v:4,
+  t:[ { t:7,
+      e:"div",
+      m:[ { n:"class",
+          f:"Dropdown f",
+          t:13 } ],
+      f:[ { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"Dropdown--arrow",
+              t:13 } ] },
+        { t:7,
+          e:"select",
+          m:[ { n:"class",
+              f:"a",
+              t:13 },
+            { n:"value",
+              f:[ { t:2,
+                  r:"~/selectedValue" } ],
+              t:13 },
+            { n:"tabindex",
+              f:"-1",
+              t:13 } ],
+          f:[ { t:4,
+              f:[ { t:7,
+                  e:"option",
+                  f:[ { t:2,
+                      r:"." } ] } ],
+              n:52,
+              r:"~/value" } ] },
+        { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"Dropdown--value nosl",
+              t:13 } ],
+          f:[ { t:7,
+              e:"input",
+              m:[ { n:"type",
+                  f:"text",
+                  t:13 },
+                { n:"input",
+                  f:"inputValue",
+                  t:70 },
+                { n:"keydown",
+                  f:"submitValue",
+                  t:70 },
+                { n:"placeholder",
+                  f:[ { t:2,
+                      r:"~/label" } ],
+                  t:13 } ] } ] },
+        { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:[ "Dropdown--actions nosl ",
+                { t:2,
+                  x:{ r:[ "~/shouldUpdate" ],
+                    s:"_0?\"-show\":\"\"" } } ],
+              t:13 } ],
+          f:[ { t:4,
+              f:[ { t:7,
+                  e:"a",
+                  m:[ { n:"class",
+                      f:"tdn",
+                      t:13 },
+                    { n:"href",
+                      f:"#",
+                      t:13 },
+                    { n:"click",
+                      f:"addValue",
+                      t:70 } ],
+                  f:[ "Add" ] },
+                { t:2,
+                  x:{ r:[ "~/hasChanged" ],
+                    s:"_0?\" or \":\"\"" } } ],
+              n:50,
+              r:"~/isNew" },
+            " ",
+            { t:4,
+              f:[ { t:7,
+                  e:"a",
+                  m:[ { n:"class",
+                      f:"tdn",
+                      t:13 },
+                    { n:"href",
+                      f:"#",
+                      t:13 },
+                    { n:"click",
+                      f:"updateValue",
+                      t:70 } ],
+                  f:[ "Update" ] } ],
+              n:50,
+              r:"~/hasChanged" },
+            " ",
+            { t:4,
+              f:[ { t:7,
+                  e:"a",
+                  m:[ { n:"class",
+                      f:"tdn",
+                      t:13 },
+                    { n:"href",
+                      f:"#",
+                      t:13 },
+                    { n:"click",
+                      f:"removeValue",
+                      t:70 } ],
+                  f:[ "Delete" ] } ],
+              n:50,
+              r:"~/canBeDeleted" } ] } ] } ],
+  e:{ "_0?\"-show\":\"\"":function (_0){return(_0?"-show":"");},
+    "_0?\" or \":\"\"":function (_0){return(_0?" or ":"");} } };
+    };
+
+
+
+var EditableDropdown = Ractive.extend({
+  isolated: true,
+  template: tpl,
+  data: function data() {
+    return {
+      value: [],
+      label: '',
+      isNew: false,
+      hasChanged: false,
+      shouldUpdate: false,
+      selectedValue: null,
+    };
+  },
+  onrender: function onrender() {
+    var this$1 = this;
+
+    var INPUT = this.find('input');
+
+    var _sync = function () {
+      this$1.set('value', this$1.get('value'));
+      this$1.fire('sync', { setValues: this$1.get('value') });
+    };
+
+    var _reset = function () {
+      this$1.set('shouldUpdate', true);
+      this$1.set('canBeDeleted', true);
+      this$1.set('hasChanged', false);
+      this$1.set('isNew', false);
+
+      INPUT.focus();
+    };
+
+    var _update = function (value) {
+      if (value) {
+        this$1.set('selectedValue', value);
+      }
+    };
+
+    this.observe('value', function (newValue) {
+      this$1.set('canBeDeleted', newValue.length > 0);
+      this$1.set('shouldUpdate', newValue.length > 0);
+
+      if (newValue.length && !INPUT.value) {
+        INPUT.value = newValue[newValue.length - 1];
+        INPUT.focus();
+      }
+
+      if (!newValue.length) {
+        INPUT.value = '';
+      }
+    });
+
+    this.on('addValue', function () {
+      if (INPUT.value && this$1.get('value').indexOf(INPUT.value) === -1) {
+        this$1.fire('sync', { addValue: INPUT.value });
+        this$1.set('selectedValue', INPUT.value);
+        this$1.push('value', INPUT.value);
+
+        _reset();
+        _sync();
+      }
+
+      return false;
+    });
+
+    this.on('updateValue', function () {
+      var _actual = this$1.get('selectedValue');
+
+      this$1.get('value').forEach(function (value, i) {
+        if (value === _actual) {
+          this$1.fire('sync', { updateValue: INPUT.value, oldValue: _actual });
+          this$1.set(("value." + i), INPUT.value);
+        }
+      });
+
+      _reset();
+      _sync();
+
+      return false;
+    });
+
+    this.on('inputValue', function (e) {
+      var _value = e.node.value;
+
+      if (!_value) {
+        this$1.set('shouldUpdate', false);
+        return;
+      }
+
+      var _new = this$1.get('value').indexOf(_value) === -1;
+      var _actual = this$1.get('selectedValue');
+      var _changed = _value !== _actual;
+
+      this$1.set('isNew', _new);
+      this$1.set('hasChanged', _actual !== null && _changed);
+      this$1.set('shouldUpdate', _new || _changed === false);
+      this$1.set('canBeDeleted', !_new && _actual !== null);
+    });
+
+    this.observe('selectedValue', function (newValue) {
+      if (newValue) {
+        this$1.fire('sync', { selectedValue: newValue });
+        INPUT.value = newValue;
+        INPUT.focus();
+      } else {
+        INPUT.value = '';
+      }
+    });
+
+    this.on('removeValue', function () {
+      var val = this$1.get('value');
+      var key = val.indexOf(this$1.get('selectedValue'));
+
+      this$1.splice('value', key, 1)
+        .then(function (ref) {
+          var old = ref[0];
+
+          return this$1.fire('sync', { removeValue: old });
+      });
+
+      _reset();
+      _sync();
+
+      if (!val.length) {
+        this$1.set('shouldUpdate', false);
+        this$1.set('selectedValue', null);
+
+        INPUT.value = '';
+
+        return false;
+      }
+
+      if (key > 0) {
+        _update(val[key - 1]);
+      } else {
+        _update(val[0]);
+      }
+
+      return false;
+    });
+
+    this.on('submitValue', function (e) {
+      switch (e.original.keyCode) {
+        case 13:
+          e.original.preventDefault();
+          this$1.fire('addValue');
+        break;
+
+        case 38:
+          if (!this$1.get('hasChanged')) {
+            var val = this$1.get('value');
+            var dec = val.indexOf(this$1.get('selectedValue'));
+
+            if (dec > 0) {
+              _update(val[dec - 1]);
+            } else {
+              _update(val[val.length - 1]);
+            }
+
+            return false;
+          }
+        break;
+
+        case 40:
+          if (!this$1.get('hasChanged')) {
+            var val$1 = this$1.get('value');
+            var inc = val$1.indexOf(this$1.get('selectedValue'));
+
+            if (inc < (val$1.length - 1)) {
+              _update(val$1[inc + 1]);
+            } else {
+              _update(val$1[0]);
+            }
+
+            return false;
+          }
+        break;
+      }
+    });
+  },
+});
+
+var tpl$1 = function () {
+      return { v:4,
+  t:[ { t:7,
+      e:"div",
+      m:[ { n:"class",
+          f:"Dropdown f",
+          t:13 } ],
+      f:[ { t:7,
+          e:"select",
+          m:[ { n:"class",
+              f:"a",
+              t:13 },
+            { n:"value",
+              f:[ { t:2,
+                  r:"~/selectedValue" } ],
+              t:13 } ],
+          f:[ { t:4,
+              f:[ { t:7,
+                  e:"option",
+                  f:[ { t:2,
+                      r:"." } ] } ],
+              n:52,
+              r:"~/value" } ] },
+        { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"Dropdown--arrow",
+              t:13 } ] },
+        { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"Dropdown--value nosl",
+              t:13 } ],
+          f:[ { t:7,
+              e:"span",
+              m:[ { n:"class",
+                  f:"db tr",
+                  t:13 } ],
+              f:[ { t:2,
+                  x:{ r:[ "~/selectedValue",
+                      "~/label" ],
+                    s:"_0||_1" } } ] } ] } ] } ],
+  e:{ "_0||_1":function (_0,_1){return(_0||_1);} } };
+    };
+
+
+
+var SimpleDropdown = Ractive.extend({
+  isolated: true,
+  template: tpl$1,
+  onrender: function onrender() {
+    var this$1 = this;
+
+    this.observe('selectedValue', function (newValue) {
+      this$1.fire('sync', newValue);
+    });
+  },
+  setValue: function setValue(selectedValue) {
+    this.set('selectedValue', selectedValue);
+  }
+});
+
+var tpl$2 = function () {
+      return { v:4,
+  t:[ { t:7,
+      e:"div",
+      m:[ { n:"class",
+          f:"AceEditor f b",
+          t:13 } ] } ] };
+    };
+
+
+
+var AceEditor = Ractive.extend({
+  isolated: true,
+  template: tpl$2,
+  onrender: function onrender() {
+    var this$1 = this;
+
+    var editor = ace.edit(this.find('.AceEditor'));
+
+    editor.setTheme('ace/theme/github');
+    editor.getSession().setMode('ace/mode/json');
+    editor.getSession().setTabSize(2);
+    editor.setShowPrintMargin(false);
+    editor.$blockScrolling = Infinity;
+
+    this.observe('value', function (newValue) {
+      editor.setValue(newValue || '');
+      editor.getSession().getSelection().clearSelection();
+    });
+
+    editor.getSession().on('change', function () {
+      this$1.fire('sync', editor.getValue());
+    });
+  },
+});
+
+var tpl$3 = function () {
+      return { v:4,
+  t:[ { t:7,
+      e:"div",
+      m:[ { n:"class",
+          f:"md-flx flx-m",
+          t:13 } ],
+      f:[ { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"flx-a md-cl-6",
+              t:13 } ],
+          f:[ { t:7,
+              e:"div",
+              m:[ { n:"class",
+                  f:"flx",
+                  t:13 } ],
+              f:[ { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"flx-a",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"EditableDropdown",
+                      m:[ { n:"sync",
+                          f:"setPayload",
+                          t:70 },
+                        { n:"value",
+                          f:[ { t:2,
+                              r:"~/savedSchemas" } ],
+                          t:13 },
+                        { n:"label",
+                          f:"Schema identifier, e.g. User",
+                          t:13 },
+                        { n:"tabindex",
+                          f:"1",
+                          t:13 } ] } ] },
+                { t:4,
+                  f:[ { t:7,
+                      e:"div",
+                      m:[ { n:"class",
+                          f:"flx-n ml",
+                          t:13 } ],
+                      f:[ { t:7,
+                          e:"button",
+                          m:[ { n:"class",
+                              f:"a bu db nosl",
+                              t:13 },
+                            { n:"click",
+                              f:"synchronizeGist",
+                              t:70 } ],
+                          f:[ "Save as gist" ] } ] } ],
+                  n:50,
+                  r:"~/hasValues" } ] },
+            { t:4,
+              f:[ { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"mt",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"AceEditor",
+                      m:[ { n:"value",
+                          f:[ { t:2,
+                              r:"inputJSON" } ],
+                          t:13 },
+                        { n:"sync",
+                          f:"setContent",
+                          t:70 },
+                        { n:"tabindex",
+                          f:"2",
+                          t:13 } ] } ] } ],
+              n:50,
+              r:"~/hasValues" } ] },
+        { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"flx-a md-cl-6",
+              t:13 } ],
+          f:[ { t:7,
+              e:"div",
+              m:[ { n:"class",
+                  f:"sm-flx flx-m",
+                  t:13 } ],
+              f:[ { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"flx-a flx-lt",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"SimpleDropdown",
+                      m:[ { n:"value",
+                          f:[ { t:2,
+                              r:"~/availableAssets" } ],
+                          t:13 },
+                        { n:"sync",
+                          f:"loadVersion",
+                          t:70 },
+                        { n:"label",
+                          f:"Loading files...",
+                          t:13 },
+                        { n:"tabindex",
+                          f:"6",
+                          t:13 } ] } ] },
+                { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"flx-a flx-lt",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"SimpleDropdown",
+                      m:[ { n:"value",
+                          f:[ { t:2,
+                              r:"~/availableVersions" } ],
+                          t:13 },
+                        { n:"sync",
+                          f:"setVersion",
+                          t:70 },
+                        { n:"label",
+                          f:"Loading versions...",
+                          t:13 },
+                        { n:"tabindex",
+                          f:"7",
+                          t:13 } ] } ] },
+                { t:4,
+                  f:[ { t:7,
+                      e:"div",
+                      m:[ { n:"class",
+                          f:"flx-n",
+                          t:13 } ],
+                      f:[ { t:7,
+                          e:"button",
+                          m:[ { n:"class",
+                              f:"a f bu db cl-12 nosl",
+                              t:13 },
+                            { n:"click",
+                              f:"generateOutput",
+                              t:70 },
+                            { n:"tabindex",
+                              f:"4",
+                              t:13 } ],
+                          f:[ "Generate example" ] } ] } ],
+                  n:50,
+                  r:"~/hasValues" } ] },
+            { t:4,
+              f:[ { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"mt",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"AceEditor",
+                      m:[ { n:"value",
+                          f:[ { t:2,
+                              r:"outputJSON" } ],
+                          t:13 },
+                        { n:"tabindex",
+                          f:"5",
+                          t:13 } ] } ] } ],
+              n:50,
+              r:"~/hasValues" } ] } ] },
+    { t:7,
+      e:"div",
+      m:[ { n:"class",
+          f:[ "Toast ",
+            { t:4,
+              f:[ "-show" ],
+              r:"showMessage" },
+            { t:2,
+              r:"classes" } ],
+          t:13 } ],
+      f:[ { t:7,
+          e:"div",
+          m:[ { n:"class",
+              f:"sm-flx flx-m flx-c",
+              t:13 } ],
+          f:[ { t:7,
+              e:"div",
+              m:[ { n:"class",
+                  f:"flx-a",
+                  t:13 } ],
+              f:[ { t:2,
+                  r:"logMessage" } ] },
+            { t:4,
+              f:[ { t:7,
+                  e:"div",
+                  m:[ { n:"class",
+                      f:"flx-n",
+                      t:13 } ],
+                  f:[ { t:7,
+                      e:"button",
+                      m:[ { n:"class",
+                          f:"a f bu db cl-12 nosl",
+                          t:13 },
+                        { n:"click",
+                          f:"generateOutput",
+                          t:70 },
+                        { n:"tabindex",
+                          f:"6",
+                          t:13 } ],
+                      f:[ "Retry" ] } ] } ],
+              n:50,
+              r:"~/hasValues" } ] } ] } ] };
+    };
+
+var baseURL = '//api.github.com';
+
+
+
+function debounce(ms, fn, ctx) {
+  var t;
+  return function () {
+    var args = [], len = arguments.length;
+    while ( len-- ) args[ len ] = arguments[ len ];
+
+    clearTimeout(t);
+    t = setTimeout(function () {
+      fn.apply(ctx, args);
+    }, ms);
+  };
+}
+
+function throttle(ms, fn, ctx) {
+  ms = ms || 250;
+
+  var last;
+  var t;
+
+  return function () {
+    var args = [], len = arguments.length;
+    while ( len-- ) args[ len ] = arguments[ len ];
+
+    var now = +new Date();
+
+    if (last && now < last + ms) {
+      clearTimeout(t);
+      t = setTimeout(function () {
+        last = now;
+        fn.apply(ctx, args);
+      }, ms);
+    } else {
+      last = now;
+      fn.apply(ctx, args);
+    }
+  };
+}
+
+function getUrl(path) {
+  var AUTH_ID="9685733337524132a430", AUTH_SECRET="bb8e95e2d20291d29eda90f8a35e0572092b37f9";
+
+  return (baseURL + "/" + path + "?client_id=" + AUTH_ID + "&client_secret=" + AUTH_SECRET);
+}
+
+var GISTS = {
+  loadFrom: function loadFrom(uri) {
+    var tmp = uri.replace('#', '').split('/');
+
+    if (tmp.length === 1) {
+      // old style URI-based schema - supported for backward compatibility
+      // example: http://json-schema-faker.js.org/#%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
+      return Promise.resolve({
+        files: {
+          // legacy and ugly
+          'schema.json': {
+            content: decodeURIComponent(tmp[0]),
+          },
+        }
+      });
+    }
+
+    var type = tmp[0];
+    var hash = tmp[1];
+
+    switch (type) {
+      case 'gist':
+        // example: http://json-schema-faker.js.org/#gist/c347f2f6083fe81a1fe43d17b83125d7
+        return fetch(getUrl(("gists/" + hash)))
+          .then(function (res) { return res.json(); });
+
+      case 'uri':
+        // example: http://json-schema-faker.js.org/#uri/%7B%22type%22%3A%22string%22%2C%22chance%22%3A%7B%22first%22%3A%7B%22nationality%22%3A%22en%22%7D%7D%7D
+        return Promise.resolve({
+          files: {
+            Example: {
+              content: decodeURIComponent(hash),
+            },
+          },
+        });
+
+      default:
+        throw new Error('Unknown storage type');
+    }
+  },
+  save: function save(schemas) {
+    var _files = {};
+
+    Object.keys(schemas).forEach(function (key) {
+      _files[key] = { content: schemas[key].value };
+    });
+
+    return fetch(getUrl('gists'), {
+      method: 'POST',
+      body: JSON.stringify({
+        description: 'JSON Schema created by http://json-schema-faker.js.org',
+        files: _files,
+      }),
+    })
+    .then(function (res) { return res.json(); });
+  }
+};
+
+
+
+var SCHEMAS = {};
+var CURRENT = {};
+
+var _script;
+
+var app = new Ractive({
+  el: '#app',
+  template: tpl$3,
+  isolated: true,
+  components: {
+    EditableDropdown: EditableDropdown,
+    SimpleDropdown: SimpleDropdown,
+    AceEditor: AceEditor,
+  },
+  data: function data() {
+    return {
+      libInfo: null,
+      hasValues: false,
+      savedSchemas: [],
+      availableAssets: [],
+      availableVersions: [],
+      availableActions: [
+        { type: 'gist', label: 'Save as Gist' },
+        { type: 'uri', label: 'Save as URI' } ],
+    };
+  },
+  onrender: function onrender() {
+    var this$1 = this;
+
+    var _selected;
+    var _sync;
+    var _t;
+
+    var blank = {};
+
+    var _gen = function () {
+      this$1.set('outputJSON', '');
+
+      var s = new Date();
+
+      var refs = [];
+
+      Object.keys(SCHEMAS).forEach(function (schema) {
+        if (schema !== _selected) {
+          refs.push(JSON.parse(SCHEMAS[schema].value));
+        }
+      });
+
+      if (!SCHEMAS[_selected]) {
+        return;
+      }
+
+      var schema;
+
+      try {
+        schema = JSON.parse(SCHEMAS[_selected].value);
+      } catch (e) {
+        this$1.fire('logStatus', e.message || e.toString(), ['-error']);
+        return;
+      }
+
+      this$1.el.classList.add('-dis');
+
+      var syncFake = function () { return new Promise(function (resolve, reject) {
+          try { resolve((jsf.sync || jsf)(schema, refs)); }
+          catch (e) { reject(e); }
+        }); };
+
+      var asyncFake = function () { return (jsf.resolve || jsf)(schema, refs); };
+
+      // try the appropriate version
+      (parseFloat(jsf.version) >= 0.5 ? asyncFake : syncFake)()
+        .then(function (sample) {
+          this$1.el.classList.remove('-dis');
+          this$1.set('outputJSON', JSON.stringify(sample, null, 2));
+          this$1.fire('logStatus', ("Example generated in " + ((new Date() - s) / 1000) + "s"), ['-success']);
+        })
+        .catch(function (e) {
+          this$1.el.classList.remove('-dis');
+          this$1.fire('logStatus', (e.message || e.toString()).substr(0, 200), ['-error']);
+        });
+    };
+
+    var _save = debounce(500, function () {
+      if (_sync) {
+        var s = new Date();
+
+        window.localStorage._SCHEMAS = JSON.stringify(SCHEMAS);
+
+        this$1.fire('logStatus', ("Session saved in " + ((new Date() - s) / 1000) + "ms"), ['-success']);
+      }
+    });
+
+    var _select = function () {
+      var _keys = Object.keys(SCHEMAS);
+
+      this$1.set('savedSchemas', _keys);
+      this$1.set('hasValues', _keys.length > 0);
+
+      if (_keys.length) {
+        _selected = _keys[0];
+
+        this$1.set('inputJSON', SCHEMAS[_keys[0]].value);
+      }
+    };
+
+    var _loadStorage = function () {
+      if (_sync && window.localStorage._SCHEMAS) {
+        var _saved = JSON.parse(window.localStorage._SCHEMAS);
+
+        Object.keys(_saved).forEach(function (key) {
+          SCHEMAS[key] = _saved[key];
+        });
+
+        _select();
+      }
+    };
+
+    var _onHashChange = function () {
+      this$1.el.classList.add('-dis');
+
+      this$1.set('inputJSON', '');
+      this$1.set('savedSchemas', []);
+      this$1.set('hasValues', false);
+
+      Object.keys(SCHEMAS).forEach(function (key) {
+        delete SCHEMAS[key];
+      });
+
+      if (location.hash) {
+        _sync = false;
+
+        var ref = location.hash.split('/');
+        var base = ref[0];
+        var hash = ref[1];
+        var v = ref[2];
+
+        if (v && CURRENT.version !== v) {
+          CURRENT.initialVersion = v;
+          this$1.findAllComponents('SimpleDropdown')[1].setValue(v);
+          this$1.fire('setVersion', v);
+        }
+
+        GISTS.loadFrom(location.hash).then(function (result) {
+          Object.keys(result.files).forEach(function (key) {
+            SCHEMAS[key] = { value: result.files[key].content };
+          });
+
+          _select();
+
+          this$1.el.classList.remove('-dis');
+        });
+      } else {
+        _sync = true;
+
+        _loadStorage();
+
+        this$1.el.classList.remove('-dis');
+
+        if (!Object.keys(SCHEMAS).length) {
+          window.location.hash = 'gist/eb11f16c9edccf040c028dc8bd2b1756';
+        }
+      }
+    };
+
+    _onHashChange();
+
+    window.addEventListener('hashchange', _onHashChange);
+
+    fetch('//api.cdnjs.com/libraries/json-schema-faker')
+      .then(function (res) { return res.json(); })
+      .then(function (data) {
+        CURRENT.name = data.name;
+        CURRENT.files = data.assets;
+
+        this$1.set('libInfo', CURRENT.info);
+        this$1.set('availableVersions', CURRENT.files.map(function (a) { return a.version; }));
+
+        CURRENT.version = CURRENT.files.filter(function (a) { return !/beta|dev|rc/.test(a.version); })[0].version;
+        CURRENT.version = CURRENT.initialVersion || CURRENT.version;
+
+        delete CURRENT.initialVersion;
+
+        this$1.findAllComponents('SimpleDropdown')[1].setValue(CURRENT.version);
+        this$1.fire('setVersion', CURRENT.version);
+      });
+
+    function _load() {
+      clearTimeout(_load.t);
+      _load.t = setTimeout(function () {
+        if (CURRENT.version && CURRENT.file) {
+          app.el.classList.add('-dis');
+
+          var s = new Date();
+
+          var _err = function () {
+            alert(("Wrong or missing version " + (CURRENT.version) + "!"));
+          };
+
+          var _cb = function () {
+            window.jsf = window.JSONSchemaFaker || window.jsf;
+            window.jsf._loaded = true;
+            _gen();
+
+            app.fire('logStatus', ("Loaded '" + (CURRENT.file) + "@" + (CURRENT.version) + "' in " + ((new Date() - s) / 1000) + "ms"), ['-success']);
+          };
+
+          delete window.JSONSchemaFaker;
+          window.jsf = function () {
+            _err();
+          };
+
+          if (_script) {
+            _script.parentNode.removeChild(_script);
+          }
+
+          _script = document.createElement('script');
+          _script.addEventListener('load', _cb);
+          _script.addEventListener('error', _err);
+          _script.src = "//cdnjs.cloudflare.com/ajax/libs/" + (CURRENT.name) + "/" + (CURRENT.version) + "/" + (CURRENT.file);
+
+          document.getElementsByTagName('head')[0].appendChild(_script);
+        }
+      }, 100);
+    }
+
+    this.on('setVersion', function (v) {
+      this$1.set('availableAssets', CURRENT.files
+        .filter(function (a) { return a.version === v; })[0].files
+        .filter(function (f) { return f.indexOf('min') === -1; }));
+
+      CURRENT.version = v;
+
+      _load();
+    });
+
+    this.on('loadVersion', function (f) {
+      CURRENT.file = f;
+
+      _load();
+    });
+
+    this.on('setPayload', function (e) {
+      if (e.addValue) {
+        SCHEMAS[e.addValue] = {
+          value: [
+            '{',
+            ("  \"id\": \"" + (e.addValue) + "\""),
+            '}' ].join('\n')
+        };
+
+        _save();
+
+        this$1.set('outputJSON', '');
+      }
+
+      if (e.setValues) {
+        this$1.set('hasValues', e.setValues.length > 0);
+
+        if (!e.setValues.length) {
+          window.history.pushState(null, document.title, '');
+        }
+      }
+
+      if (e.selectedValue) {
+        _selected = e.selectedValue;
+
+        this$1.set('outputJSON', '');
+        this$1.set('inputJSON', SCHEMAS[_selected].value);
+
+        if (window.jsf && window.jsf._loaded) {
+          _gen();
+        }
+      }
+
+      if (e.updateValue) {
+        SCHEMAS[e.updateValue] = SCHEMAS[e.oldValue];
+        SCHEMAS[e.updateValue].value = SCHEMAS[e.updateValue].value
+          .replace(/"id"\s*:\s*"(\w+)"/g, function (_, id) {
+            if (id === e.oldValue) {
+              return ("\"id\": \"" + (e.updateValue) + "\"");
+            }
+
+            return _;
+          });
+
+        this$1.set('inputJSON', SCHEMAS[e.updateValue].value);
+
+        delete SCHEMAS[e.oldValue];
+
+        _save();
+      }
+
+      if (e.removeValue) {
+        delete SCHEMAS[e.removeValue];
+
+        _save();
+      }
+    });
+
+    this.on('setContent', function (value) {
+      if (_selected && value) {
+        if (value !== SCHEMAS[_selected].value) {
+          SCHEMAS[_selected].value = value;
+          _save();
+        }
+      }
+    });
+
+    this.on('generateOutput', throttle(500, function (e) {
+      e.node.disabled = true;
+
+      _gen();
+
+      e.node.disabled = false;
+
+      return false;
+    }));
+
+    this.on('synchronizeGist', function (e) {
+      var s = new Date();
+
+      e.node.disabled = true;
+
+      app.el.classList.add('-dis');
+
+      GISTS.save(SCHEMAS).then(function (result) {
+        e.node.disabled = false;
+
+        app.el.classList.remove('-dis');
+
+        window.history.pushState(null, document.title, ("#gist/" + (result.id) + "/" + (CURRENT.version)));
+
+        this$1.fire('logStatus', ("Gist saved in " + ((new Date() - s) / 1000) + "s"), ['-success']);
+      });
+
+      return false;
+    });
+
+    var _x;
+
+    this.on('logStatus', function (message, classList) {
+      this$1.set('classes', (" " + (classList.join(' '))));
+      this$1.set('logMessage', message);
+      this$1.set('showMessage', true);
+
+      clearTimeout(_x);
+      _x = setTimeout(function () {
+        this$1.set('showMessage', false);
+      }, 5000);
+    });
+
+    this.fire('logStatus', ("Application loaded in " + ((new Date() - TIME) / 1000) + "ms"), ['-success']);
+  },
+});
+
+}());
diff --git a/v2/vendor/ace-builds/src-min/ace.js b/v2/vendor/ace-builds/src-min/ace.js
new file mode 100644
index 0000000000000000000000000000000000000000..b4b7a55cb56dd034d02852877aa749234191b733
--- /dev/null
+++ b/v2/vendor/ace-builds/src-min/ace.js
@@ -0,0 +1,14 @@
+(function(){function o(n){var i=e;n&&(e[n]||(e[n]={}),i=e[n]);if(!i.define||!i.define.packaged)t.original=i.define,i.define=t,i.define.packaged=!0;if(!i.require||!i.require.packaged)r.original=i.require,i.require=r,i.require.packaged=!0}var ACE_NAMESPACE="",e=function(){return this}();!e&&typeof window!="undefined"&&(e=window);if(!ACE_NAMESPACE&&typeof requirejs!="undefined")return;var t=function(e,n,r){if(typeof e!="string"){t.original?t.original.apply(this,arguments):(console.error("dropping module because define wasn't a string."),console.trace());return}arguments.length==2&&(r=n),t.modules[e]||(t.payloads[e]=r,t.modules[e]=null)};t.modules={},t.payloads={};var n=function(e,t,n){if(typeof t=="string"){var i=s(e,t);if(i!=undefined)return n&&n(),i}else if(Object.prototype.toString.call(t)==="[object Array]"){var o=[];for(var u=0,a=t.length;u<a;++u){var f=s(e,t[u]);if(f==undefined&&r.original)return;o.push(f)}return n&&n.apply(null,o)||!0}},r=function(e,t){var i=n("",e,t);return i==undefined&&r.original?r.original.apply(this,arguments):i},i=function(e,t){if(t.indexOf("!")!==-1){var n=t.split("!");return i(e,n[0])+"!"+i(e,n[1])}if(t.charAt(0)=="."){var r=e.split("/").slice(0,-1).join("/");t=r+"/"+t;while(t.indexOf(".")!==-1&&s!=t){var s=t;t=t.replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return t},s=function(e,r){r=i(e,r);var s=t.modules[r];if(!s){s=t.payloads[r];if(typeof s=="function"){var o={},u={id:r,uri:"",exports:o,packaged:!0},a=function(e,t){return n(r,e,t)},f=s(a,o,u);o=f||u.exports,t.modules[r]=o,delete t.payloads[r]}s=t.modules[r]=o||s}return s};o(ACE_NAMESPACE)})(),define("ace/lib/regexp",["require","exports","module"],function(e,t,n){"use strict";function o(e){return(e.global?"g":"")+(e.ignoreCase?"i":"")+(e.multiline?"m":"")+(e.extended?"x":"")+(e.sticky?"y":"")}function u(e,t,n){if(Array.prototype.indexOf)return e.indexOf(t,n);for(var r=n||0;r<e.length;r++)if(e[r]===t)return r;return-1}var r={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},i=r.exec.call(/()??/,"")[1]===undefined,s=function(){var e=/^/g;return r.test.call(e,""),!e.lastIndex}();if(s&&i)return;RegExp.prototype.exec=function(e){var t=r.exec.apply(this,arguments),n,a;if(typeof e=="string"&&t){!i&&t.length>1&&u(t,"")>-1&&(a=RegExp(this.source,r.replace.call(o(this),"g","")),r.replace.call(e.slice(t.index),a,function(){for(var e=1;e<arguments.length-2;e++)arguments[e]===undefined&&(t[e]=undefined)}));if(this._xregexp&&this._xregexp.captureNames)for(var f=1;f<t.length;f++)n=this._xregexp.captureNames[f-1],n&&(t[n]=t[f]);!s&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--}return t},s||(RegExp.prototype.test=function(e){var t=r.exec.call(this,e);return t&&this.global&&!t[0].length&&this.lastIndex>t.index&&this.lastIndex--,!!t})}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}}),define("ace/lib/fixoldbrowsers",["require","exports","module","ace/lib/regexp","ace/lib/es5-shim"],function(e,t,n){"use strict";e("./regexp"),e("./es5-shim")}),define("ace/lib/dom",["require","exports","module"],function(e,t,n){"use strict";var r="http://www.w3.org/1999/xhtml";t.getDocumentHead=function(e){return e||(e=document),e.head||e.getElementsByTagName("head")[0]||e.documentElement},t.createElement=function(e,t){return document.createElementNS?document.createElementNS(t||r,e):document.createElement(e)},t.hasCssClass=function(e,t){var n=(e.className+"").split(/\s+/g);return n.indexOf(t)!==-1},t.addCssClass=function(e,n){t.hasCssClass(e,n)||(e.className+=" "+n)},t.removeCssClass=function(e,t){var n=e.className.split(/\s+/g);for(;;){var r=n.indexOf(t);if(r==-1)break;n.splice(r,1)}e.className=n.join(" ")},t.toggleCssClass=function(e,t){var n=e.className.split(/\s+/g),r=!0;for(;;){var i=n.indexOf(t);if(i==-1)break;r=!1,n.splice(i,1)}return r&&n.push(t),e.className=n.join(" "),r},t.setCssClass=function(e,n,r){r?t.addCssClass(e,n):t.removeCssClass(e,n)},t.hasCssString=function(e,t){var n=0,r;t=t||document;if(t.createStyleSheet&&(r=t.styleSheets)){while(n<r.length)if(r[n++].owningElement.id===e)return!0}else if(r=t.getElementsByTagName("style"))while(n<r.length)if(r[n++].id===e)return!0;return!1},t.importCssString=function(n,r,i){i=i||document;if(r&&t.hasCssString(r,i))return null;var s;r&&(n+="\n/*# sourceURL=ace/css/"+r+" */"),i.createStyleSheet?(s=i.createStyleSheet(),s.cssText=n,r&&(s.owningElement.id=r)):(s=t.createElement("style"),s.appendChild(i.createTextNode(n)),r&&(s.id=r),t.getDocumentHead(i).appendChild(s))},t.importCssStylsheet=function(e,n){if(n.createStyleSheet)n.createStyleSheet(e);else{var r=t.createElement("link");r.rel="stylesheet",r.href=e,t.getDocumentHead(n).appendChild(r)}},t.getInnerWidth=function(e){return parseInt(t.computedStyle(e,"paddingLeft"),10)+parseInt(t.computedStyle(e,"paddingRight"),10)+e.clientWidth},t.getInnerHeight=function(e){return parseInt(t.computedStyle(e,"paddingTop"),10)+parseInt(t.computedStyle(e,"paddingBottom"),10)+e.clientHeight},t.scrollbarWidth=function(e){var n=t.createElement("ace_inner");n.style.width="100%",n.style.minWidth="0px",n.style.height="200px",n.style.display="block";var r=t.createElement("ace_outer"),i=r.style;i.position="absolute",i.left="-10000px",i.overflow="hidden",i.width="200px",i.minWidth="0px",i.height="150px",i.display="block",r.appendChild(n);var s=e.documentElement;s.appendChild(r);var o=n.offsetWidth;i.overflow="scroll";var u=n.offsetWidth;return o==u&&(u=r.clientWidth),s.removeChild(r),o-u};if(typeof document=="undefined"){t.importCssString=function(){};return}window.pageYOffset!==undefined?(t.getPageScrollTop=function(){return window.pageYOffset},t.getPageScrollLeft=function(){return window.pageXOffset}):(t.getPageScrollTop=function(){return document.body.scrollTop},t.getPageScrollLeft=function(){return document.body.scrollLeft}),window.getComputedStyle?t.computedStyle=function(e,t){return t?(window.getComputedStyle(e,"")||{})[t]||"":window.getComputedStyle(e,"")||{}}:t.computedStyle=function(e,t){return t?e.currentStyle[t]:e.currentStyle},t.setInnerHtml=function(e,t){var n=e.cloneNode(!1);return n.innerHTML=t,e.parentNode.replaceChild(n,e),n},"textContent"in document.documentElement?(t.setInnerText=function(e,t){e.textContent=t},t.getInnerText=function(e){return e.textContent}):(t.setInnerText=function(e,t){e.innerText=t},t.getInnerText=function(e){return e.innerText}),t.getParentWindow=function(e){return e.defaultView||e.parentWindow}}),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/lib/keys",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop"],function(e,t,n){"use strict";e("./fixoldbrowsers");var r=e("./oop"),i=function(){var e={MODIFIER_KEYS:{16:"Shift",17:"Ctrl",18:"Alt",224:"Meta"},KEY_MODS:{ctrl:1,alt:2,option:2,shift:4,"super":8,meta:8,command:8,cmd:8},FUNCTION_KEYS:{8:"Backspace",9:"Tab",13:"Return",19:"Pause",27:"Esc",32:"Space",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"Left",38:"Up",39:"Right",40:"Down",44:"Print",45:"Insert",46:"Delete",96:"Numpad0",97:"Numpad1",98:"Numpad2",99:"Numpad3",100:"Numpad4",101:"Numpad5",102:"Numpad6",103:"Numpad7",104:"Numpad8",105:"Numpad9","-13":"NumpadEnter",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"Numlock",145:"Scrolllock"},PRINTABLE_KEYS:{32:" ",48:"0",49:"1",50:"2",51:"3",52:"4",53:"5",54:"6",55:"7",56:"8",57:"9",59:";",61:"=",65:"a",66:"b",67:"c",68:"d",69:"e",70:"f",71:"g",72:"h",73:"i",74:"j",75:"k",76:"l",77:"m",78:"n",79:"o",80:"p",81:"q",82:"r",83:"s",84:"t",85:"u",86:"v",87:"w",88:"x",89:"y",90:"z",107:"+",109:"-",110:".",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'",111:"/",106:"*"}},t,n;for(n in e.FUNCTION_KEYS)t=e.FUNCTION_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);for(n in e.PRINTABLE_KEYS)t=e.PRINTABLE_KEYS[n].toLowerCase(),e[t]=parseInt(n,10);return r.mixin(e,e.MODIFIER_KEYS),r.mixin(e,e.PRINTABLE_KEYS),r.mixin(e,e.FUNCTION_KEYS),e.enter=e["return"],e.escape=e.esc,e.del=e["delete"],e[173]="-",function(){var t=["cmd","ctrl","alt","shift"];for(var n=Math.pow(2,t.length);n--;)e.KEY_MODS[n]=t.filter(function(t){return n&e.KEY_MODS[t]}).join("-")+"-"}(),e.KEY_MODS[0]="",e.KEY_MODS[-1]="input-",e}();r.mixin(t,i),t.keyCodeToString=function(e){var t=i[e];return typeof t!="string"&&(t=String.fromCharCode(e)),t.toLowerCase()}}),define("ace/lib/useragent",["require","exports","module"],function(e,t,n){"use strict";t.OS={LINUX:"LINUX",MAC:"MAC",WINDOWS:"WINDOWS"},t.getOS=function(){return t.isMac?t.OS.MAC:t.isLinux?t.OS.LINUX:t.OS.WINDOWS};if(typeof navigator!="object")return;var r=(navigator.platform.match(/mac|win|linux/i)||["other"])[0].toLowerCase(),i=navigator.userAgent;t.isWin=r=="win",t.isMac=r=="mac",t.isLinux=r=="linux",t.isIE=navigator.appName=="Microsoft Internet Explorer"||navigator.appName.indexOf("MSAppHost")>=0?parseFloat((i.match(/(?:MSIE |Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]):parseFloat((i.match(/(?:Trident\/[0-9]+[\.0-9]+;.*rv:)([0-9]+[\.0-9]+)/)||[])[1]),t.isOldIE=t.isIE&&t.isIE<9,t.isGecko=t.isMozilla=(window.Controllers||window.controllers)&&window.navigator.product==="Gecko",t.isOldGecko=t.isGecko&&parseInt((i.match(/rv:(\d+)/)||[])[1],10)<4,t.isOpera=window.opera&&Object.prototype.toString.call(window.opera)=="[object Opera]",t.isWebKit=parseFloat(i.split("WebKit/")[1])||undefined,t.isChrome=parseFloat(i.split(" Chrome/")[1])||undefined,t.isAIR=i.indexOf("AdobeAIR")>=0,t.isIPad=i.indexOf("iPad")>=0,t.isTouchPad=i.indexOf("TouchPad")>=0,t.isChromeOS=i.indexOf(" CrOS ")>=0}),define("ace/lib/event",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function a(e,t,n){var a=u(t);if(!i.isMac&&s){t.getModifierState&&(t.getModifierState("OS")||t.getModifierState("Win"))&&(a|=8);if(s.altGr){if((3&a)==3)return;s.altGr=0}if(n===18||n===17){var f="location"in t?t.location:t.keyLocation;if(n===17&&f===1)s[n]==1&&(o=t.timeStamp);else if(n===18&&a===3&&f===2){var l=t.timeStamp-o;l<50&&(s.altGr=!0)}}}n in r.MODIFIER_KEYS&&(n=-1),a&8&&n>=91&&n<=93&&(n=-1);if(!a&&n===13){var f="location"in t?t.location:t.keyLocation;if(f===3){e(t,a,-n);if(t.defaultPrevented)return}}if(i.isChromeOS&&a&8){e(t,a,n);if(t.defaultPrevented)return;a&=-9}return!!a||n in r.FUNCTION_KEYS||n in r.PRINTABLE_KEYS?e(t,a,n):!1}function f(){s=Object.create(null)}var r=e("./keys"),i=e("./useragent"),s=null,o=0;t.addListener=function(e,t,n){if(e.addEventListener)return e.addEventListener(t,n,!1);if(e.attachEvent){var r=function(){n.call(e,window.event)};n._wrapper=r,e.attachEvent("on"+t,r)}},t.removeListener=function(e,t,n){if(e.removeEventListener)return e.removeEventListener(t,n,!1);e.detachEvent&&e.detachEvent("on"+t,n._wrapper||n)},t.stopEvent=function(e){return t.stopPropagation(e),t.preventDefault(e),!1},t.stopPropagation=function(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0},t.preventDefault=function(e){e.preventDefault?e.preventDefault():e.returnValue=!1},t.getButton=function(e){return e.type=="dblclick"?0:e.type=="contextmenu"||i.isMac&&e.ctrlKey&&!e.altKey&&!e.shiftKey?2:e.preventDefault?e.button:{1:0,2:2,4:1}[e.button]},t.capture=function(e,n,r){function i(e){n&&n(e),r&&r(e),t.removeListener(document,"mousemove",n,!0),t.removeListener(document,"mouseup",i,!0),t.removeListener(document,"dragstart",i,!0)}return t.addListener(document,"mousemove",n,!0),t.addListener(document,"mouseup",i,!0),t.addListener(document,"dragstart",i,!0),i},t.addTouchMoveListener=function(e,n){if("ontouchmove"in e){var r,i;t.addListener(e,"touchstart",function(e){var t=e.changedTouches[0];r=t.clientX,i=t.clientY}),t.addListener(e,"touchmove",function(e){var t=1,s=e.changedTouches[0];e.wheelX=-(s.clientX-r)/t,e.wheelY=-(s.clientY-i)/t,r=s.clientX,i=s.clientY,n(e)})}},t.addMouseWheelListener=function(e,n){"onmousewheel"in e?t.addListener(e,"mousewheel",function(e){var t=8;e.wheelDeltaX!==undefined?(e.wheelX=-e.wheelDeltaX/t,e.wheelY=-e.wheelDeltaY/t):(e.wheelX=0,e.wheelY=-e.wheelDelta/t),n(e)}):"onwheel"in e?t.addListener(e,"wheel",function(e){var t=.35;switch(e.deltaMode){case e.DOM_DELTA_PIXEL:e.wheelX=e.deltaX*t||0,e.wheelY=e.deltaY*t||0;break;case e.DOM_DELTA_LINE:case e.DOM_DELTA_PAGE:e.wheelX=(e.deltaX||0)*5,e.wheelY=(e.deltaY||0)*5}n(e)}):t.addListener(e,"DOMMouseScroll",function(e){e.axis&&e.axis==e.HORIZONTAL_AXIS?(e.wheelX=(e.detail||0)*5,e.wheelY=0):(e.wheelX=0,e.wheelY=(e.detail||0)*5),n(e)})},t.addMultiMouseDownListener=function(e,n,r,s){function c(e){t.getButton(e)!==0?o=0:e.detail>1?(o++,o>4&&(o=1)):o=1;if(i.isIE){var c=Math.abs(e.clientX-u)>5||Math.abs(e.clientY-a)>5;if(!f||c)o=1;f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),o==1&&(u=e.clientX,a=e.clientY)}e._clicks=o,r[s]("mousedown",e);if(o>4)o=0;else if(o>1)return r[s](l[o],e)}function h(e){o=2,f&&clearTimeout(f),f=setTimeout(function(){f=null},n[o-1]||600),r[s]("mousedown",e),r[s](l[o],e)}var o=0,u,a,f,l={2:"dblclick",3:"tripleclick",4:"quadclick"};Array.isArray(e)||(e=[e]),e.forEach(function(e){t.addListener(e,"mousedown",c),i.isOldIE&&t.addListener(e,"dblclick",h)})};var u=!i.isMac||!i.isOpera||"KeyboardEvent"in window?function(e){return 0|(e.ctrlKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.metaKey?8:0)}:function(e){return 0|(e.metaKey?1:0)|(e.altKey?2:0)|(e.shiftKey?4:0)|(e.ctrlKey?8:0)};t.getModifierString=function(e){return r.KEY_MODS[u(e)]},t.addCommandKeyListener=function(e,n){var r=t.addListener;if(i.isOldGecko||i.isOpera&&!("KeyboardEvent"in window)){var o=null;r(e,"keydown",function(e){o=e.keyCode}),r(e,"keypress",function(e){return a(n,e,o)})}else{var u=null;r(e,"keydown",function(e){s[e.keyCode]=(s[e.keyCode]||0)+1;var t=a(n,e,e.keyCode);return u=e.defaultPrevented,t}),r(e,"keypress",function(e){u&&(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey)&&(t.stopEvent(e),u=null)}),r(e,"keyup",function(e){s[e.keyCode]=null}),s||(f(),r(window,"focus",f))}};if(typeof window=="object"&&window.postMessage&&!i.isOldIE){var l=1;t.nextTick=function(e,n){n=n||window;var r="zero-timeout-message-"+l;t.addListener(n,"message",function i(s){s.data==r&&(t.stopPropagation(s),t.removeListener(n,"message",i),e())}),n.postMessage(r,"*")}}t.nextFrame=typeof window=="object"&&(window.requestAnimationFrame||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||window.oRequestAnimationFrame),t.nextFrame?t.nextFrame=t.nextFrame.bind(window):t.nextFrame=function(e){setTimeout(e,17)}}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/keyboard/textinput",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/lib/dom","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("../lib/dom"),o=e("../lib/lang"),u=i.isChrome<18,a=i.isIE,f=function(e,t){function b(e){if(h)return;h=!0;if(k)t=0,r=e?0:n.value.length-1;else var t=e?2:1,r=2;try{n.setSelectionRange(t,r)}catch(i){}h=!1}function w(){if(h)return;n.value=f,i.isWebKit&&y.schedule()}function R(){clearTimeout(q),q=setTimeout(function(){p&&(n.style.cssText=p,p=""),t.renderer.$keepTextAreaAtCursor==null&&(t.renderer.$keepTextAreaAtCursor=!0,t.renderer.$moveTextAreaToCursor())},i.isOldIE?200:0)}var n=s.createElement("textarea");n.className="ace_text-input",i.isTouchPad&&n.setAttribute("x-palm-disable-auto-cap",!0),n.setAttribute("wrap","off"),n.setAttribute("autocorrect","off"),n.setAttribute("autocapitalize","off"),n.setAttribute("spellcheck",!1),n.style.opacity="0",i.isOldIE&&(n.style.top="-1000px"),e.insertBefore(n,e.firstChild);var f="",l=!1,c=!1,h=!1,p="",d=!0;try{var v=document.activeElement===n}catch(m){}r.addListener(n,"blur",function(e){t.onBlur(e),v=!1}),r.addListener(n,"focus",function(e){v=!0,t.onFocus(e),b()}),this.focus=function(){if(p)return n.focus();var e=n.style.top;n.style.position="fixed",n.style.top="0px",n.focus(),setTimeout(function(){n.style.position="",n.style.top=="0px"&&(n.style.top=e)},0)},this.blur=function(){n.blur()},this.isFocused=function(){return v};var g=o.delayedCall(function(){v&&b(d)}),y=o.delayedCall(function(){h||(n.value=f,v&&b())});i.isWebKit||t.addEventListener("changeSelection",function(){t.selection.isEmpty()!=d&&(d=!d,g.schedule())}),w(),v&&t.onFocus();var E=function(e){return e.selectionStart===0&&e.selectionEnd===e.value.length};!n.setSelectionRange&&n.createTextRange&&(n.setSelectionRange=function(e,t){var n=this.createTextRange();n.collapse(!0),n.moveStart("character",e),n.moveEnd("character",t),n.select()},E=function(e){try{var t=e.ownerDocument.selection.createRange()}catch(n){}return!t||t.parentElement()!=e?!1:t.text==e.value});if(i.isOldIE){var S=!1,x=function(e){if(S)return;var t=n.value;if(h||!t||t==f)return;if(e&&t==f[0])return T.schedule();A(t),S=!0,w(),S=!1},T=o.delayedCall(x);r.addListener(n,"propertychange",x);var N={13:1,27:1};r.addListener(n,"keyup",function(e){h&&(!n.value||N[e.keyCode])&&setTimeout(F,0);if((n.value.charCodeAt(0)||0)<129)return T.call();h?j():B()}),r.addListener(n,"keydown",function(e){T.schedule(50)})}var C=function(e){l?l=!1:E(n)?(t.selectAll(),b()):k&&b(t.selection.isEmpty())},k=null;this.setInputHandler=function(e){k=e},this.getInputHandler=function(){return k};var L=!1,A=function(e){k&&(e=k(e),k=null),c?(b(),e&&t.onPaste(e),c=!1):e==f.charAt(0)?L?t.execCommand("del",{source:"ace"}):t.execCommand("backspace",{source:"ace"}):(e.substring(0,2)==f?e=e.substr(2):e.charAt(0)==f.charAt(0)?e=e.substr(1):e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e.charAt(e.length-1)==f.charAt(0)&&(e=e.slice(0,-1)),e&&t.onTextInput(e)),L&&(L=!1)},O=function(e){if(h)return;var t=n.value;A(t),w()},M=function(e,t,n){var r=e.clipboardData||window.clipboardData;if(!r||u)return;var i=a||n?"Text":"text/plain";try{return t?r.setData(i,t)!==!1:r.getData(i)}catch(e){if(!n)return M(e,t,!0)}},_=function(e,i){var s=t.getCopyText();if(!s)return r.preventDefault(e);M(e,s)?(i?t.onCut():t.onCopy(),r.preventDefault(e)):(l=!0,n.value=s,n.select(),setTimeout(function(){l=!1,w(),b(),i?t.onCut():t.onCopy()}))},D=function(e){_(e,!0)},P=function(e){_(e,!1)},H=function(e){var s=M(e);typeof s=="string"?(s&&t.onPaste(s,e),i.isIE&&setTimeout(b),r.preventDefault(e)):(n.value="",c=!0)};r.addCommandKeyListener(n,t.onCommandKey.bind(t)),r.addListener(n,"select",C),r.addListener(n,"input",O),r.addListener(n,"cut",D),r.addListener(n,"copy",P),r.addListener(n,"paste",H),(!("oncut"in n)||!("oncopy"in n)||!("onpaste"in n))&&r.addListener(e,"keydown",function(e){if(i.isMac&&!e.metaKey||!e.ctrlKey)return;switch(e.keyCode){case 67:P(e);break;case 86:H(e);break;case 88:D(e)}});var B=function(e){if(h||!t.onCompositionStart||t.$readOnly)return;h={},h.canUndo=t.session.$undoManager,t.onCompositionStart(),setTimeout(j,0),t.on("mousedown",F),h.canUndo&&!t.selection.isEmpty()&&(t.insert(""),t.session.markUndoGroup(),t.selection.clearSelection()),t.session.markUndoGroup()},j=function(){if(!h||!t.onCompositionUpdate||t.$readOnly)return;var e=n.value.replace(/\x01/g,"");if(h.lastValue===e)return;t.onCompositionUpdate(e),h.lastValue&&t.undo(),h.canUndo&&(h.lastValue=e);if(h.lastValue){var r=t.selection.getRange();t.insert(h.lastValue),t.session.markUndoGroup(),h.range=t.selection.getRange(),t.selection.setRange(r),t.selection.clearSelection()}},F=function(e){if(!t.onCompositionEnd||t.$readOnly)return;var r=h;h=!1;var s=setTimeout(function(){s=null;var e=n.value.replace(/\x01/g,"");if(h)return;e==r.lastValue?w():!r.lastValue&&e&&(w(),A(e))});k=function(n){return s&&clearTimeout(s),n=n.replace(/\x01/g,""),n==r.lastValue?"":(r.lastValue&&s&&t.undo(),n)},t.onCompositionEnd(),t.removeListener("mousedown",F),e.type=="compositionend"&&r.range&&t.selection.setRange(r.range),i.isChrome&&i.isChrome>=53&&O()},I=o.delayedCall(j,50);r.addListener(n,"compositionstart",B),i.isGecko?r.addListener(n,"text",function(){I.schedule()}):(r.addListener(n,"keyup",function(){I.schedule()}),r.addListener(n,"keydown",function(){I.schedule()})),r.addListener(n,"compositionend",F),this.getElement=function(){return n},this.setReadOnly=function(e){n.readOnly=e},this.onContextMenu=function(e){L=!0,b(t.selection.isEmpty()),t._emit("nativecontextmenu",{target:t,domEvent:e}),this.moveToMouse(e,!0)},this.moveToMouse=function(e,o){if(!o&&i.isOldIE)return;p||(p=n.style.cssText),n.style.cssText=(o?"z-index:100000;":"")+"height:"+n.style.height+";"+(i.isIE?"opacity:0.1;":"");var u=t.container.getBoundingClientRect(),a=s.computedStyle(t.container),f=u.top+(parseInt(a.borderTopWidth)||0),l=u.left+(parseInt(u.borderLeftWidth)||0),c=u.bottom-f-n.clientHeight-2,h=function(e){n.style.left=e.clientX-l-2+"px",n.style.top=Math.min(e.clientY-f-2,c)+"px"};h(e);if(e.type!="mousedown")return;t.renderer.$keepTextAreaAtCursor&&(t.renderer.$keepTextAreaAtCursor=null),clearTimeout(q),i.isWin&&!i.isOldIE&&r.capture(t.container,h,R)},this.onContextMenuClose=R;var q,U=function(e){t.textInput.onContextMenu(e),R()};r.addListener(n,"mouseup",U),r.addListener(n,"mousedown",function(e){e.preventDefault(),R()}),r.addListener(t.renderer.scroller,"contextmenu",U),r.addListener(n,"contextmenu",U)};t.TextInput=f}),define("ace/mouse/default_handlers",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function u(e){e.$clickSelection=null;var t=e.editor;t.setDefaultHandler("mousedown",this.onMouseDown.bind(e)),t.setDefaultHandler("dblclick",this.onDoubleClick.bind(e)),t.setDefaultHandler("tripleclick",this.onTripleClick.bind(e)),t.setDefaultHandler("quadclick",this.onQuadClick.bind(e)),t.setDefaultHandler("mousewheel",this.onMouseWheel.bind(e)),t.setDefaultHandler("touchmove",this.onTouchMove.bind(e));var n=["select","startSelect","selectEnd","selectAllEnd","selectByWordsEnd","selectByLinesEnd","dragWait","dragWaitEnd","focusWait"];n.forEach(function(t){e[t]=this[t]},this),e.selectByLines=this.extendSelectionBy.bind(e,"getLineRange"),e.selectByWords=this.extendSelectionBy.bind(e,"getWordRange")}function a(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}function f(e,t){if(e.start.row==e.end.row)var n=2*t.column-e.start.column-e.end.column;else if(e.start.row==e.end.row-1&&!e.start.column&&!e.end.column)var n=t.column-4;else var n=2*t.row-e.start.row-e.end.row;return n<0?{cursor:e.start,anchor:e.end}:{cursor:e.end,anchor:e.start}}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=0;(function(){this.onMouseDown=function(e){var t=e.inSelection(),n=e.getDocumentPosition();this.mousedownEvent=e;var r=this.editor,i=e.getButton();if(i!==0){var s=r.getSelectionRange(),o=s.isEmpty();r.$blockScrolling++,(o||i==1)&&r.selection.moveToPosition(n),r.$blockScrolling--,i==2&&r.textInput.onContextMenu(e.domEvent);return}this.mousedownEvent.time=Date.now();if(t&&!r.isFocused()){r.focus();if(this.$focusTimout&&!this.$clickSelection&&!r.inMultiSelectMode){this.setState("focusWait"),this.captureMouse(e);return}}return this.captureMouse(e),this.startSelect(n,e.domEvent._clicks>1),e.preventDefault()},this.startSelect=function(e,t){e=e||this.editor.renderer.screenToTextCoordinates(this.x,this.y);var n=this.editor;n.$blockScrolling++,this.mousedownEvent.getShiftKey()?n.selection.selectToPosition(e):t||n.selection.moveToPosition(e),t||this.select(),n.renderer.scroller.setCapture&&n.renderer.scroller.setCapture(),n.setStyle("ace_selecting"),this.setState("select"),n.$blockScrolling--},this.select=function(){var e,t=this.editor,n=t.renderer.screenToTextCoordinates(this.x,this.y);t.$blockScrolling++;if(this.$clickSelection){var r=this.$clickSelection.comparePoint(n);if(r==-1)e=this.$clickSelection.end;else if(r==1)e=this.$clickSelection.start;else{var i=f(this.$clickSelection,n);n=i.cursor,e=i.anchor}t.selection.setSelectionAnchor(e.row,e.column)}t.selection.selectToPosition(n),t.$blockScrolling--,t.renderer.scrollCursorIntoView()},this.extendSelectionBy=function(e){var t,n=this.editor,r=n.renderer.screenToTextCoordinates(this.x,this.y),i=n.selection[e](r.row,r.column);n.$blockScrolling++;if(this.$clickSelection){var s=this.$clickSelection.comparePoint(i.start),o=this.$clickSelection.comparePoint(i.end);if(s==-1&&o<=0){t=this.$clickSelection.end;if(i.end.row!=r.row||i.end.column!=r.column)r=i.start}else if(o==1&&s>=0){t=this.$clickSelection.start;if(i.start.row!=r.row||i.start.column!=r.column)r=i.end}else if(s==-1&&o==1)r=i.end,t=i.start;else{var u=f(this.$clickSelection,r);r=u.cursor,t=u.anchor}n.selection.setSelectionAnchor(t.row,t.column)}n.selection.selectToPosition(r),n.$blockScrolling--,n.renderer.scrollCursorIntoView()},this.selectEnd=this.selectAllEnd=this.selectByWordsEnd=this.selectByLinesEnd=function(){this.$clickSelection=null,this.editor.unsetStyle("ace_selecting"),this.editor.renderer.scroller.releaseCapture&&this.editor.renderer.scroller.releaseCapture()},this.focusWait=function(){var e=a(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y),t=Date.now();(e>o||t-this.mousedownEvent.time>this.$focusTimout)&&this.startSelect(this.mousedownEvent.getDocumentPosition())},this.onDoubleClick=function(e){var t=e.getDocumentPosition(),n=this.editor,r=n.session,i=r.getBracketRange(t);i?(i.isEmpty()&&(i.start.column--,i.end.column++),this.setState("select")):(i=n.selection.getWordRange(t.row,t.column),this.setState("selectByWords")),this.$clickSelection=i,this.select()},this.onTripleClick=function(e){var t=e.getDocumentPosition(),n=this.editor;this.setState("selectByLines");var r=n.getSelectionRange();r.isMultiLine()&&r.contains(t.row,t.column)?(this.$clickSelection=n.selection.getLineRange(r.start.row),this.$clickSelection.end=n.selection.getLineRange(r.end.row).end):this.$clickSelection=n.selection.getLineRange(t.row),this.select()},this.onQuadClick=function(e){var t=this.editor;t.selectAll(),this.$clickSelection=t.getSelectionRange(),this.setState("selectAll")},this.onMouseWheel=function(e){if(e.getAccelKey())return;e.getShiftKey()&&e.wheelY&&!e.wheelX&&(e.wheelX=e.wheelY,e.wheelY=0);var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()},this.onTouchMove=function(e){var t=e.domEvent.timeStamp,n=t-(this.$lastScrollTime||0),r=this.editor,i=r.renderer.isScrollableBy(e.wheelX*e.speed,e.wheelY*e.speed);if(i||n<200)return this.$lastScrollTime=t,r.renderer.scrollBy(e.wheelX*e.speed,e.wheelY*e.speed),e.stop()}}).call(u.prototype),t.DefaultHandlers=u}),define("ace/tooltip",["require","exports","module","ace/lib/oop","ace/lib/dom"],function(e,t,n){"use strict";function s(e){this.isOpen=!1,this.$element=null,this.$parentNode=e}var r=e("./lib/oop"),i=e("./lib/dom");(function(){this.$init=function(){return this.$element=i.createElement("div"),this.$element.className="ace_tooltip",this.$element.style.display="none",this.$parentNode.appendChild(this.$element),this.$element},this.getElement=function(){return this.$element||this.$init()},this.setText=function(e){i.setInnerText(this.getElement(),e)},this.setHtml=function(e){this.getElement().innerHTML=e},this.setPosition=function(e,t){this.getElement().style.left=e+"px",this.getElement().style.top=t+"px"},this.setClassName=function(e){i.addCssClass(this.getElement(),e)},this.show=function(e,t,n){e!=null&&this.setText(e),t!=null&&n!=null&&this.setPosition(t,n),this.isOpen||(this.getElement().style.display="block",this.isOpen=!0)},this.hide=function(){this.isOpen&&(this.getElement().style.display="none",this.isOpen=!1)},this.getHeight=function(){return this.getElement().offsetHeight},this.getWidth=function(){return this.getElement().offsetWidth}}).call(s.prototype),t.Tooltip=s}),define("ace/mouse/default_gutter_handler",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/event","ace/tooltip"],function(e,t,n){"use strict";function u(e){function l(){var r=u.getDocumentPosition().row,s=n.$annotations[r];if(!s)return c();var o=t.session.getLength();if(r==o){var a=t.renderer.pixelToScreenCoordinates(0,u.y).row,l=u.$pos;if(a>t.session.documentToScreenRow(l.row,l.column))return c()}if(f==s)return;f=s.text.join("<br/>"),i.setHtml(f),i.show(),t._signal("showGutterTooltip",i),t.on("mousewheel",c);if(e.$tooltipFollowsMouse)h(u);else{var p=u.domEvent.target,d=p.getBoundingClientRect(),v=i.getElement().style;v.left=d.right+"px",v.top=d.bottom+"px"}}function c(){o&&(o=clearTimeout(o)),f&&(i.hide(),f=null,t._signal("hideGutterTooltip",i),t.removeEventListener("mousewheel",c))}function h(e){i.setPosition(e.x,e.y)}var t=e.editor,n=t.renderer.$gutterLayer,i=new a(t.container);e.editor.setDefaultHandler("guttermousedown",function(r){if(!t.isFocused()||r.getButton()!=0)return;var i=n.getRegion(r);if(i=="foldWidgets")return;var s=r.getDocumentPosition().row,o=t.session.selection;if(r.getShiftKey())o.selectTo(s,0);else{if(r.domEvent.detail==2)return t.selectAll(),r.preventDefault();e.$clickSelection=t.selection.getLineRange(s)}return e.setState("selectByLines"),e.captureMouse(r),r.preventDefault()});var o,u,f;e.editor.setDefaultHandler("guttermousemove",function(t){var n=t.domEvent.target||t.domEvent.srcElement;if(r.hasCssClass(n,"ace_fold-widget"))return c();f&&e.$tooltipFollowsMouse&&h(t),u=t;if(o)return;o=setTimeout(function(){o=null,u&&!e.isMousePressed?l():c()},50)}),s.addListener(t.renderer.$gutter,"mouseout",function(e){u=null;if(!f||o)return;o=setTimeout(function(){o=null,c()},50)}),t.on("changeSession",c)}function a(e){o.call(this,e)}var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/event"),o=e("../tooltip").Tooltip;i.inherits(a,o),function(){this.setPosition=function(e,t){var n=window.innerWidth||document.documentElement.clientWidth,r=window.innerHeight||document.documentElement.clientHeight,i=this.getWidth(),s=this.getHeight();e+=15,t+=15,e+i>n&&(e-=e+i-n),t+s>r&&(t-=20+s),o.prototype.setPosition.call(this,e,t)}}.call(a.prototype),t.GutterHandler=u}),define("ace/mouse/mouse_event",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=t.MouseEvent=function(e,t){this.domEvent=e,this.editor=t,this.x=this.clientX=e.clientX,this.y=this.clientY=e.clientY,this.$pos=null,this.$inSelection=null,this.propagationStopped=!1,this.defaultPrevented=!1};(function(){this.stopPropagation=function(){r.stopPropagation(this.domEvent),this.propagationStopped=!0},this.preventDefault=function(){r.preventDefault(this.domEvent),this.defaultPrevented=!0},this.stop=function(){this.stopPropagation(),this.preventDefault()},this.getDocumentPosition=function(){return this.$pos?this.$pos:(this.$pos=this.editor.renderer.screenToTextCoordinates(this.clientX,this.clientY),this.$pos)},this.inSelection=function(){if(this.$inSelection!==null)return this.$inSelection;var e=this.editor,t=e.getSelectionRange();if(t.isEmpty())this.$inSelection=!1;else{var n=this.getDocumentPosition();this.$inSelection=t.contains(n.row,n.column)}return this.$inSelection},this.getButton=function(){return r.getButton(this.domEvent)},this.getShiftKey=function(){return this.domEvent.shiftKey},this.getAccelKey=i.isMac?function(){return this.domEvent.metaKey}:function(){return this.domEvent.ctrlKey}}).call(s.prototype)}),define("ace/mouse/dragdrop_handler",["require","exports","module","ace/lib/dom","ace/lib/event","ace/lib/useragent"],function(e,t,n){"use strict";function f(e){function T(e,n){var r=Date.now(),i=!n||e.row!=n.row,s=!n||e.column!=n.column;if(!S||i||s)t.$blockScrolling+=1,t.moveCursorToPosition(e),t.$blockScrolling-=1,S=r,x={x:p,y:d};else{var o=l(x.x,x.y,p,d);o>a?S=null:r-S>=u&&(t.renderer.scrollCursorIntoView(),S=null)}}function N(e,n){var r=Date.now(),i=t.renderer.layerConfig.lineHeight,s=t.renderer.layerConfig.characterWidth,u=t.renderer.scroller.getBoundingClientRect(),a={x:{left:p-u.left,right:u.right-p},y:{top:d-u.top,bottom:u.bottom-d}},f=Math.min(a.x.left,a.x.right),l=Math.min(a.y.top,a.y.bottom),c={row:e.row,column:e.column};f/s<=2&&(c.column+=a.x.left<a.x.right?-3:2),l/i<=1&&(c.row+=a.y.top<a.y.bottom?-1:1);var h=e.row!=c.row,v=e.column!=c.column,m=!n||e.row!=n.row;h||v&&!m?E?r-E>=o&&t.renderer.scrollCursorIntoView(c):E=r:E=null}function C(){var e=g;g=t.renderer.screenToTextCoordinates(p,d),T(g,e),N(g,e)}function k(){m=t.selection.toOrientedRange(),h=t.session.addMarker(m,"ace_selection",t.getSelectionStyle()),t.clearSelection(),t.isFocused()&&t.renderer.$cursorLayer.setBlinking(!1),clearInterval(v),C(),v=setInterval(C,20),y=0,i.addListener(document,"mousemove",O)}function L(){clearInterval(v),t.session.removeMarker(h),h=null,t.$blockScrolling+=1,t.selection.fromOrientedRange(m),t.$blockScrolling-=1,t.isFocused()&&!w&&t.renderer.$cursorLayer.setBlinking(!t.getReadOnly()),m=null,g=null,y=0,E=null,S=null,i.removeListener(document,"mousemove",O)}function O(){A==null&&(A=setTimeout(function(){A!=null&&h&&L()},20))}function M(e){var t=e.types;return!t||Array.prototype.some.call(t,function(e){return e=="text/plain"||e=="Text"})}function _(e){var t=["copy","copymove","all","uninitialized"],n=["move","copymove","linkmove","all","uninitialized"],r=s.isMac?e.altKey:e.ctrlKey,i="uninitialized";try{i=e.dataTransfer.effectAllowed.toLowerCase()}catch(e){}var o="none";return r&&t.indexOf(i)>=0?o="copy":n.indexOf(i)>=0?o="move":t.indexOf(i)>=0&&(o="copy"),o}var t=e.editor,n=r.createElement("img");n.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==",s.isOpera&&(n.style.cssText="width:1px;height:1px;position:fixed;top:0;left:0;z-index:2147483647;opacity:0;");var f=["dragWait","dragWaitEnd","startDrag","dragReadyEnd","onMouseDrag"];f.forEach(function(t){e[t]=this[t]},this),t.addEventListener("mousedown",this.onMouseDown.bind(e));var c=t.container,h,p,d,v,m,g,y=0,b,w,E,S,x;this.onDragStart=function(e){if(this.cancelDrag||!c.draggable){var r=this;return setTimeout(function(){r.startSelect(),r.captureMouse(e)},0),e.preventDefault()}m=t.getSelectionRange();var i=e.dataTransfer;i.effectAllowed=t.getReadOnly()?"copy":"copyMove",s.isOpera&&(t.container.appendChild(n),n.scrollTop=0),i.setDragImage&&i.setDragImage(n,0,0),s.isOpera&&t.container.removeChild(n),i.clearData(),i.setData("Text",t.session.getTextRange()),w=!0,this.setState("drag")},this.onDragEnd=function(e){c.draggable=!1,w=!1,this.setState(null);if(!t.getReadOnly()){var n=e.dataTransfer.dropEffect;!b&&n=="move"&&t.session.remove(t.getSelectionRange()),t.renderer.$cursorLayer.setBlinking(!0)}this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle("")},this.onDragEnter=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||k(),y++,e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragOver=function(e){if(t.getReadOnly()||!M(e.dataTransfer))return;return p=e.clientX,d=e.clientY,h||(k(),y++),A!==null&&(A=null),e.dataTransfer.dropEffect=b=_(e),i.preventDefault(e)},this.onDragLeave=function(e){y--;if(y<=0&&h)return L(),b=null,i.preventDefault(e)},this.onDrop=function(e){if(!g)return;var n=e.dataTransfer;if(w)switch(b){case"move":m.contains(g.row,g.column)?m={start:g,end:g}:m=t.moveText(m,g);break;case"copy":m=t.moveText(m,g,!0)}else{var r=n.getData("Text");m={start:g,end:t.session.insert(g,r)},t.focus(),b=null}return L(),i.preventDefault(e)},i.addListener(c,"dragstart",this.onDragStart.bind(e)),i.addListener(c,"dragend",this.onDragEnd.bind(e)),i.addListener(c,"dragenter",this.onDragEnter.bind(e)),i.addListener(c,"dragover",this.onDragOver.bind(e)),i.addListener(c,"dragleave",this.onDragLeave.bind(e)),i.addListener(c,"drop",this.onDrop.bind(e));var A=null}function l(e,t,n,r){return Math.sqrt(Math.pow(n-e,2)+Math.pow(r-t,2))}var r=e("../lib/dom"),i=e("../lib/event"),s=e("../lib/useragent"),o=200,u=200,a=5;(function(){this.dragWait=function(){var e=Date.now()-this.mousedownEvent.time;e>this.editor.getDragDelay()&&this.startDrag()},this.dragWaitEnd=function(){var e=this.editor.container;e.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()),this.selectEnd()},this.dragReadyEnd=function(e){this.editor.renderer.$cursorLayer.setBlinking(!this.editor.getReadOnly()),this.editor.unsetStyle("ace_dragging"),this.editor.renderer.setCursorStyle(""),this.dragWaitEnd()},this.startDrag=function(){this.cancelDrag=!1;var e=this.editor,t=e.container;t.draggable=!0,e.renderer.$cursorLayer.setBlinking(!1),e.setStyle("ace_dragging");var n=s.isWin?"default":"move";e.renderer.setCursorStyle(n),this.setState("dragReady")},this.onMouseDrag=function(e){var t=this.editor.container;if(s.isIE&&this.state=="dragReady"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>3&&t.dragDrop()}if(this.state==="dragWait"){var n=l(this.mousedownEvent.x,this.mousedownEvent.y,this.x,this.y);n>0&&(t.draggable=!1,this.startSelect(this.mousedownEvent.getDocumentPosition()))}},this.onMouseDown=function(e){if(!this.$dragEnabled)return;this.mousedownEvent=e;var t=this.editor,n=e.inSelection(),r=e.getButton(),i=e.domEvent.detail||1;if(i===1&&r===0&&n){if(e.editor.inMultiSelectMode&&(e.getAccelKey()||e.getShiftKey()))return;this.mousedownEvent.time=Date.now();var o=e.domEvent.target||e.domEvent.srcElement;"unselectable"in o&&(o.unselectable="on");if(t.getDragDelay()){if(s.isWebKit){this.cancelDrag=!0;var u=t.container;u.draggable=!0}this.setState("dragWait")}else this.startDrag();this.captureMouse(e,this.onMouseDrag.bind(this)),e.defaultPrevented=!0}}}).call(f.prototype),t.DragdropHandler=f}),define("ace/lib/net",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("./dom");t.get=function(e,t){var n=new XMLHttpRequest;n.open("GET",e,!0),n.onreadystatechange=function(){n.readyState===4&&t(n.responseText)},n.send(null)},t.loadScript=function(e,t){var n=r.getDocumentHead(),i=document.createElement("script");i.src=e,n.appendChild(i),i.onload=i.onreadystatechange=function(e,n){if(n||!i.readyState||i.readyState=="loaded"||i.readyState=="complete")i=i.onload=i.onreadystatechange=null,n||t()}},t.qualifyURL=function(e){var t=document.createElement("a");return t.href=e,t.href}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/lib/app_config",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"no use strict";function o(e){typeof console!="undefined"&&console.warn&&console.warn.apply(console,arguments)}function u(e,t){var n=new Error(e);n.data=t,typeof console=="object"&&console.error&&console.error(n),setTimeout(function(){throw n})}var r=e("./oop"),i=e("./event_emitter").EventEmitter,s={setOptions:function(e){Object.keys(e).forEach(function(t){this.setOption(t,e[t])},this)},getOptions:function(e){var t={};return e?Array.isArray(e)||(t=e,e=Object.keys(t)):e=Object.keys(this.$options),e.forEach(function(e){t[e]=this.getOption(e)},this),t},setOption:function(e,t){if(this["$"+e]===t)return;var n=this.$options[e];if(!n)return o('misspelled option "'+e+'"');if(n.forwardTo)return this[n.forwardTo]&&this[n.forwardTo].setOption(e,t);n.handlesSet||(this["$"+e]=t),n&&n.set&&n.set.call(this,t)},getOption:function(e){var t=this.$options[e];return t?t.forwardTo?this[t.forwardTo]&&this[t.forwardTo].getOption(e):t&&t.get?t.get.call(this):this["$"+e]:o('misspelled option "'+e+'"')}},a=function(){this.$defaultOptions={}};(function(){r.implement(this,i),this.defineOptions=function(e,t,n){return e.$options||(this.$defaultOptions[t]=e.$options={}),Object.keys(n).forEach(function(t){var r=n[t];typeof r=="string"&&(r={forwardTo:r}),r.name||(r.name=t),e.$options[r.name]=r,"initialValue"in r&&(e["$"+r.name]=r.initialValue)}),r.implement(e,s),this},this.resetOptions=function(e){Object.keys(e.$options).forEach(function(t){var n=e.$options[t];"value"in n&&e.setOption(t,n.value)})},this.setDefaultValue=function(e,t,n){var r=this.$defaultOptions[e]||(this.$defaultOptions[e]={});r[t]&&(r.forwardTo?this.setDefaultValue(r.forwardTo,t,n):r[t].value=n)},this.setDefaultValues=function(e,t){Object.keys(t).forEach(function(n){this.setDefaultValue(e,n,t[n])},this)},this.warn=o,this.reportError=u}).call(a.prototype),t.AppConfig=a}),define("ace/config",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/lib/net","ace/lib/app_config"],function(e,t,n){"no use strict";function f(r){if(!u||!u.document)return;a.packaged=r||e.packaged||n.packaged||u.define&&define.packaged;var i={},s="",o=document.currentScript||document._currentScript,f=o&&o.ownerDocument||document,c=f.getElementsByTagName("script");for(var h=0;h<c.length;h++){var p=c[h],d=p.src||p.getAttribute("src");if(!d)continue;var v=p.attributes;for(var m=0,g=v.length;m<g;m++){var y=v[m];y.name.indexOf("data-ace-")===0&&(i[l(y.name.replace(/^data-ace-/,""))]=y.value)}var b=d.match(/^(.*)\/ace(\-\w+)?\.js(\?|$)/);b&&(s=b[1])}s&&(i.base=i.base||s,i.packaged=!0),i.basePath=i.base,i.workerPath=i.workerPath||i.base,i.modePath=i.modePath||i.base,i.themePath=i.themePath||i.base,delete i.base;for(var w in i)typeof i[w]!="undefined"&&t.set(w,i[w])}function l(e){return e.replace(/-(.)/g,function(e,t){return t.toUpperCase()})}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./lib/net"),o=e("./lib/app_config").AppConfig;n.exports=t=new o;var u=function(){return this||typeof window!="undefined"&&window}(),a={packaged:!1,workerPath:null,modePath:null,themePath:null,basePath:"",suffix:".js",$moduleUrls:{}};t.get=function(e){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);return a[e]},t.set=function(e,t){if(!a.hasOwnProperty(e))throw new Error("Unknown config key: "+e);a[e]=t},t.all=function(){return r.copyObject(a)},t.moduleUrl=function(e,t){if(a.$moduleUrls[e])return a.$moduleUrls[e];var n=e.split("/");t=t||n[n.length-2]||"";var r=t=="snippets"?"/":"-",i=n[n.length-1];if(t=="worker"&&r=="-"){var s=new RegExp("^"+t+"[\\-_]|[\\-_]"+t+"$","g");i=i.replace(s,"")}(!i||i==t)&&n.length>1&&(i=n[n.length-2]);var o=a[t+"Path"];return o==null?o=a.basePath:r=="/"&&(t=r=""),o&&o.slice(-1)!="/"&&(o+="/"),o+t+r+i+this.get("suffix")},t.setModuleUrl=function(e,t){return a.$moduleUrls[e]=t},t.$loading={},t.loadModule=function(n,r){var i,o;Array.isArray(n)&&(o=n[0],n=n[1]);try{i=e(n)}catch(u){}if(i&&!t.$loading[n])return r&&r(i);t.$loading[n]||(t.$loading[n]=[]),t.$loading[n].push(r);if(t.$loading[n].length>1)return;var a=function(){e([n],function(e){t._emit("load.module",{name:n,module:e});var r=t.$loading[n];t.$loading[n]=null,r.forEach(function(t){t&&t(e)})})};if(!t.get("packaged"))return a();s.loadScript(t.moduleUrl(n,o),a)},t.init=f}),define("ace/mouse/mouse_handler",["require","exports","module","ace/lib/event","ace/lib/useragent","ace/mouse/default_handlers","ace/mouse/default_gutter_handler","ace/mouse/mouse_event","ace/mouse/dragdrop_handler","ace/config"],function(e,t,n){"use strict";var r=e("../lib/event"),i=e("../lib/useragent"),s=e("./default_handlers").DefaultHandlers,o=e("./default_gutter_handler").GutterHandler,u=e("./mouse_event").MouseEvent,a=e("./dragdrop_handler").DragdropHandler,f=e("../config"),l=function(e){var t=this;this.editor=e,new s(this),new o(this),new a(this);var n=function(t){var n=!document.hasFocus||!document.hasFocus()||!e.isFocused()&&document.activeElement==(e.textInput&&e.textInput.getElement());n&&window.focus(),e.focus()},u=e.renderer.getMouseEventTarget();r.addListener(u,"click",this.onMouseEvent.bind(this,"click")),r.addListener(u,"mousemove",this.onMouseMove.bind(this,"mousemove")),r.addMultiMouseDownListener([u,e.renderer.scrollBarV&&e.renderer.scrollBarV.inner,e.renderer.scrollBarH&&e.renderer.scrollBarH.inner,e.textInput&&e.textInput.getElement()].filter(Boolean),[400,300,250],this,"onMouseEvent"),r.addMouseWheelListener(e.container,this.onMouseWheel.bind(this,"mousewheel")),r.addTouchMoveListener(e.container,this.onTouchMove.bind(this,"touchmove"));var f=e.renderer.$gutter;r.addListener(f,"mousedown",this.onMouseEvent.bind(this,"guttermousedown")),r.addListener(f,"click",this.onMouseEvent.bind(this,"gutterclick")),r.addListener(f,"dblclick",this.onMouseEvent.bind(this,"gutterdblclick")),r.addListener(f,"mousemove",this.onMouseEvent.bind(this,"guttermousemove")),r.addListener(u,"mousedown",n),r.addListener(f,"mousedown",n),i.isIE&&e.renderer.scrollBarV&&(r.addListener(e.renderer.scrollBarV.element,"mousedown",n),r.addListener(e.renderer.scrollBarH.element,"mousedown",n)),e.on("mousemove",function(n){if(t.state||t.$dragDelay||!t.$dragEnabled)return;var r=e.renderer.screenToTextCoordinates(n.x,n.y),i=e.session.selection.getRange(),s=e.renderer;!i.isEmpty()&&i.insideStart(r.row,r.column)?s.setCursorStyle("default"):s.setCursorStyle("")})};(function(){this.onMouseEvent=function(e,t){this.editor._emit(e,new u(t,this.editor))},this.onMouseMove=function(e,t){var n=this.editor._eventRegistry&&this.editor._eventRegistry.mousemove;if(!n||!n.length)return;this.editor._emit(e,new u(t,this.editor))},this.onMouseWheel=function(e,t){var n=new u(t,this.editor);n.speed=this.$scrollSpeed*2,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.onTouchMove=function(e,t){var n=new u(t,this.editor);n.speed=1,n.wheelX=t.wheelX,n.wheelY=t.wheelY,this.editor._emit(e,n)},this.setState=function(e){this.state=e},this.captureMouse=function(e,t){this.x=e.x,this.y=e.y,this.isMousePressed=!0;var n=this.editor.renderer;n.$keepTextAreaAtCursor&&(n.$keepTextAreaAtCursor=null);var s=this,o=function(e){if(!e)return;if(i.isWebKit&&!e.which&&s.releaseMouse)return s.releaseMouse();s.x=e.clientX,s.y=e.clientY,t&&t(e),s.mouseEvent=new u(e,s.editor),s.$mouseMoved=!0},a=function(e){clearInterval(l),f(),s[s.state+"End"]&&s[s.state+"End"](e),s.state="",n.$keepTextAreaAtCursor==null&&(n.$keepTextAreaAtCursor=!0,n.$moveTextAreaToCursor()),s.isMousePressed=!1,s.$onCaptureMouseMove=s.releaseMouse=null,e&&s.onMouseEvent("mouseup",e)},f=function(){s[s.state]&&s[s.state](),s.$mouseMoved=!1};if(i.isOldIE&&e.domEvent.type=="dblclick")return setTimeout(function(){a(e)});s.$onCaptureMouseMove=o,s.releaseMouse=r.capture(this.editor.container,o,a);var l=setInterval(f,20)},this.releaseMouse=null,this.cancelContextMenu=function(){var e=function(t){if(t&&t.domEvent&&t.domEvent.type!="contextmenu")return;this.editor.off("nativecontextmenu",e),t&&t.domEvent&&r.stopEvent(t.domEvent)}.bind(this);setTimeout(e,10),this.editor.on("nativecontextmenu",e)}}).call(l.prototype),f.defineOptions(l.prototype,"mouseHandler",{scrollSpeed:{initialValue:2},dragDelay:{initialValue:i.isMac?150:0},dragEnabled:{initialValue:!0},focusTimout:{initialValue:0},tooltipFollowsMouse:{initialValue:!0}}),t.MouseHandler=l}),define("ace/mouse/fold_handler",["require","exports","module"],function(e,t,n){"use strict";function r(e){e.on("click",function(t){var n=t.getDocumentPosition(),r=e.session,i=r.getFoldAt(n.row,n.column,1);i&&(t.getAccelKey()?r.removeFold(i):r.expandFold(i),t.stop())}),e.on("gutterclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session;i.foldWidgets&&i.foldWidgets[r]&&e.session.onFoldWidgetClick(r,t),e.isFocused()||e.focus(),t.stop()}}),e.on("gutterdblclick",function(t){var n=e.renderer.$gutterLayer.getRegion(t);if(n=="foldWidgets"){var r=t.getDocumentPosition().row,i=e.session,s=i.getParentFoldRangeData(r,!0),o=s.range||s.firstRange;if(o){r=o.start.row;var u=i.getFoldAt(r,i.getLine(r).length,1);u?i.removeFold(u):(i.addFold("...",o),e.renderer.scrollCursorIntoView({row:o.start.row,column:0}))}t.stop()}})}t.FoldHandler=r}),define("ace/keyboard/keybinding",["require","exports","module","ace/lib/keys","ace/lib/event"],function(e,t,n){"use strict";var r=e("../lib/keys"),i=e("../lib/event"),s=function(e){this.$editor=e,this.$data={editor:e},this.$handlers=[],this.setDefaultHandler(e.commands)};(function(){this.setDefaultHandler=function(e){this.removeKeyboardHandler(this.$defaultHandler),this.$defaultHandler=e,this.addKeyboardHandler(e,0)},this.setKeyboardHandler=function(e){var t=this.$handlers;if(t[t.length-1]==e)return;while(t[t.length-1]&&t[t.length-1]!=this.$defaultHandler)this.removeKeyboardHandler(t[t.length-1]);this.addKeyboardHandler(e,1)},this.addKeyboardHandler=function(e,t){if(!e)return;typeof e=="function"&&!e.handleKeyboard&&(e.handleKeyboard=e);var n=this.$handlers.indexOf(e);n!=-1&&this.$handlers.splice(n,1),t==undefined?this.$handlers.push(e):this.$handlers.splice(t,0,e),n==-1&&e.attach&&e.attach(this.$editor)},this.removeKeyboardHandler=function(e){var t=this.$handlers.indexOf(e);return t==-1?!1:(this.$handlers.splice(t,1),e.detach&&e.detach(this.$editor),!0)},this.getKeyboardHandler=function(){return this.$handlers[this.$handlers.length-1]},this.getStatusText=function(){var e=this.$data,t=e.editor;return this.$handlers.map(function(n){return n.getStatusText&&n.getStatusText(t,e)||""}).filter(Boolean).join(" ")},this.$callKeyboardHandlers=function(e,t,n,r){var s,o=!1,u=this.$editor.commands;for(var a=this.$handlers.length;a--;){s=this.$handlers[a].handleKeyboard(this.$data,e,t,n,r);if(!s||!s.command)continue;s.command=="null"?o=!0:o=u.exec(s.command,this.$editor,s.args,r),o&&r&&e!=-1&&s.passEvent!=1&&s.command.passEvent!=1&&i.stopEvent(r);if(o)break}return!o&&e==-1&&(s={command:"insertstring"},o=u.exec("insertstring",this.$editor,t)),o&&this.$editor._signal&&this.$editor._signal("keyboardActivity",s),o},this.onCommandKey=function(e,t,n){var i=r.keyCodeToString(n);this.$callKeyboardHandlers(t,i,n,e)},this.onTextInput=function(e){this.$callKeyboardHandlers(-1,e)}}).call(s.prototype),t.KeyBinding=s}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/selection",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter","ace/range"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=function(e){this.session=e,this.doc=e.getDocument(),this.clearSelection(),this.lead=this.selectionLead=this.doc.createAnchor(0,0),this.anchor=this.selectionAnchor=this.doc.createAnchor(0,0);var t=this;this.lead.on("change",function(e){t._emit("changeCursor"),t.$isEmpty||t._emit("changeSelection"),!t.$keepDesiredColumnOnChange&&e.old.column!=e.value.column&&(t.$desiredColumn=null)}),this.selectionAnchor.on("change",function(){t.$isEmpty||t._emit("changeSelection")})};(function(){r.implement(this,s),this.isEmpty=function(){return this.$isEmpty||this.anchor.row==this.lead.row&&this.anchor.column==this.lead.column},this.isMultiLine=function(){return this.isEmpty()?!1:this.getRange().isMultiLine()},this.getCursor=function(){return this.lead.getPosition()},this.setSelectionAnchor=function(e,t){this.anchor.setPosition(e,t),this.$isEmpty&&(this.$isEmpty=!1,this._emit("changeSelection"))},this.getSelectionAnchor=function(){return this.$isEmpty?this.getSelectionLead():this.anchor.getPosition()},this.getSelectionLead=function(){return this.lead.getPosition()},this.shiftSelection=function(e){if(this.$isEmpty){this.moveCursorTo(this.lead.row,this.lead.column+e);return}var t=this.getSelectionAnchor(),n=this.getSelectionLead(),r=this.isBackwards();(!r||t.column!==0)&&this.setSelectionAnchor(t.row,t.column+e),(r||n.column!==0)&&this.$moveSelection(function(){this.moveCursorTo(n.row,n.column+e)})},this.isBackwards=function(){var e=this.anchor,t=this.lead;return e.row>t.row||e.row==t.row&&e.column>t.column},this.getRange=function(){var e=this.anchor,t=this.lead;return this.isEmpty()?o.fromPoints(t,t):this.isBackwards()?o.fromPoints(t,e):o.fromPoints(e,t)},this.clearSelection=function(){this.$isEmpty||(this.$isEmpty=!0,this._emit("changeSelection"))},this.selectAll=function(){var e=this.doc.getLength()-1;this.setSelectionAnchor(0,0),this.moveCursorTo(e,this.doc.getLine(e).length)},this.setRange=this.setSelectionRange=function(e,t){t?(this.setSelectionAnchor(e.end.row,e.end.column),this.selectTo(e.start.row,e.start.column)):(this.setSelectionAnchor(e.start.row,e.start.column),this.selectTo(e.end.row,e.end.column)),this.getRange().isEmpty()&&(this.$isEmpty=!0),this.$desiredColumn=null},this.$moveSelection=function(e){var t=this.lead;this.$isEmpty&&this.setSelectionAnchor(t.row,t.column),e.call(this)},this.selectTo=function(e,t){this.$moveSelection(function(){this.moveCursorTo(e,t)})},this.selectToPosition=function(e){this.$moveSelection(function(){this.moveCursorToPosition(e)})},this.moveTo=function(e,t){this.clearSelection(),this.moveCursorTo(e,t)},this.moveToPosition=function(e){this.clearSelection(),this.moveCursorToPosition(e)},this.selectUp=function(){this.$moveSelection(this.moveCursorUp)},this.selectDown=function(){this.$moveSelection(this.moveCursorDown)},this.selectRight=function(){this.$moveSelection(this.moveCursorRight)},this.selectLeft=function(){this.$moveSelection(this.moveCursorLeft)},this.selectLineStart=function(){this.$moveSelection(this.moveCursorLineStart)},this.selectLineEnd=function(){this.$moveSelection(this.moveCursorLineEnd)},this.selectFileEnd=function(){this.$moveSelection(this.moveCursorFileEnd)},this.selectFileStart=function(){this.$moveSelection(this.moveCursorFileStart)},this.selectWordRight=function(){this.$moveSelection(this.moveCursorWordRight)},this.selectWordLeft=function(){this.$moveSelection(this.moveCursorWordLeft)},this.getWordRange=function(e,t){if(typeof t=="undefined"){var n=e||this.lead;e=n.row,t=n.column}return this.session.getWordRange(e,t)},this.selectWord=function(){this.setSelectionRange(this.getWordRange())},this.selectAWord=function(){var e=this.getCursor(),t=this.session.getAWordRange(e.row,e.column);this.setSelectionRange(t)},this.getLineRange=function(e,t){var n=typeof e=="number"?e:this.lead.row,r,i=this.session.getFoldLine(n);return i?(n=i.start.row,r=i.end.row):r=n,t===!0?new o(n,0,r,this.session.getLine(r).length):new o(n,0,r+1,0)},this.selectLine=function(){this.setSelectionRange(this.getLineRange())},this.moveCursorUp=function(){this.moveCursorBy(-1,0)},this.moveCursorDown=function(){this.moveCursorBy(1,0)},this.moveCursorLeft=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,-1))this.moveCursorTo(t.start.row,t.start.column);else if(e.column===0)e.row>0&&this.moveCursorTo(e.row-1,this.doc.getLine(e.row-1).length);else{var n=this.session.getTabSize();this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column-n,e.column).split(" ").length-1==n?this.moveCursorBy(0,-n):this.moveCursorBy(0,-1)}},this.moveCursorRight=function(){var e=this.lead.getPosition(),t;if(t=this.session.getFoldAt(e.row,e.column,1))this.moveCursorTo(t.end.row,t.end.column);else if(this.lead.column==this.doc.getLine(this.lead.row).length)this.lead.row<this.doc.getLength()-1&&this.moveCursorTo(this.lead.row+1,0);else{var n=this.session.getTabSize(),e=this.lead;this.session.isTabStop(e)&&this.doc.getLine(e.row).slice(e.column,e.column+n).split(" ").length-1==n?this.moveCursorBy(0,n):this.moveCursorBy(0,1)}},this.moveCursorLineStart=function(){var e=this.lead.row,t=this.lead.column,n=this.session.documentToScreenRow(e,t),r=this.session.screenToDocumentPosition(n,0),i=this.session.getDisplayLine(e,null,r.row,r.column),s=i.match(/^\s*/);s[0].length!=t&&!this.session.$useEmacsStyleLineStart&&(r.column+=s[0].length),this.moveCursorToPosition(r)},this.moveCursorLineEnd=function(){var e=this.lead,t=this.session.getDocumentLastRowColumnPosition(e.row,e.column);if(this.lead.column==t.column){var n=this.session.getLine(t.row);if(t.column==n.length){var r=n.search(/\s+$/);r>0&&(t.column=r)}}this.moveCursorTo(t.row,t.column)},this.moveCursorFileEnd=function(){var e=this.doc.getLength()-1,t=this.doc.getLine(e).length;this.moveCursorTo(e,t)},this.moveCursorFileStart=function(){this.moveCursorTo(0,0)},this.moveCursorLongWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;var s=this.session.getFoldAt(e,t,1);if(s){this.moveCursorTo(s.end.row,s.end.column);return}if(i=this.session.nonTokenRe.exec(r))t+=this.session.nonTokenRe.lastIndex,this.session.nonTokenRe.lastIndex=0,r=n.substring(t);if(t>=n.length){this.moveCursorTo(e,n.length),this.moveCursorRight(),e<this.doc.getLength()-1&&this.moveCursorWordRight();return}if(i=this.session.tokenRe.exec(r))t+=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.moveCursorLongWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1)){this.moveCursorTo(n.start.row,n.start.column);return}var r=this.session.getFoldStringAt(e,t,-1);r==null&&(r=this.doc.getLine(e).substring(0,t));var s=i.stringReverse(r),o;this.session.nonTokenRe.lastIndex=0,this.session.tokenRe.lastIndex=0;if(o=this.session.nonTokenRe.exec(s))t-=this.session.nonTokenRe.lastIndex,s=s.slice(this.session.nonTokenRe.lastIndex),this.session.nonTokenRe.lastIndex=0;if(t<=0){this.moveCursorTo(e,0),this.moveCursorLeft(),e>0&&this.moveCursorWordLeft();return}if(o=this.session.tokenRe.exec(s))t-=this.session.tokenRe.lastIndex,this.session.tokenRe.lastIndex=0;this.moveCursorTo(e,t)},this.$shortWordEndIndex=function(e){var t,n=0,r,i=/\s/,s=this.session.tokenRe;s.lastIndex=0;if(t=this.session.tokenRe.exec(e))n=this.session.tokenRe.lastIndex;else{while((r=e[n])&&i.test(r))n++;if(n<1){s.lastIndex=0;while((r=e[n])&&!s.test(r)){s.lastIndex=0,n++;if(i.test(r)){if(n>2){n--;break}while((r=e[n])&&i.test(r))n++;if(n>2)break}}}}return s.lastIndex=0,n},this.moveCursorShortWordRight=function(){var e=this.lead.row,t=this.lead.column,n=this.doc.getLine(e),r=n.substring(t),i=this.session.getFoldAt(e,t,1);if(i)return this.moveCursorTo(i.end.row,i.end.column);if(t==n.length){var s=this.doc.getLength();do e++,r=this.doc.getLine(e);while(e<s&&/^\s*$/.test(r));/^\s+/.test(r)||(r=""),t=0}var o=this.$shortWordEndIndex(r);this.moveCursorTo(e,t+o)},this.moveCursorShortWordLeft=function(){var e=this.lead.row,t=this.lead.column,n;if(n=this.session.getFoldAt(e,t,-1))return this.moveCursorTo(n.start.row,n.start.column);var r=this.session.getLine(e).substring(0,t);if(t===0){do e--,r=this.doc.getLine(e);while(e>0&&/^\s*$/.test(r));t=r.length,/\s+$/.test(r)||(r="")}var s=i.stringReverse(r),o=this.$shortWordEndIndex(s);return this.moveCursorTo(e,t-o)},this.moveCursorWordRight=function(){this.session.$selectLongWords?this.moveCursorLongWordRight():this.moveCursorShortWordRight()},this.moveCursorWordLeft=function(){this.session.$selectLongWords?this.moveCursorLongWordLeft():this.moveCursorShortWordLeft()},this.moveCursorBy=function(e,t){var n=this.session.documentToScreenPosition(this.lead.row,this.lead.column);t===0&&(this.$desiredColumn?n.column=this.$desiredColumn:this.$desiredColumn=n.column);var r=this.session.screenToDocumentPosition(n.row+e,n.column);e!==0&&t===0&&r.row===this.lead.row&&r.column===this.lead.column&&this.session.lineWidgets&&this.session.lineWidgets[r.row]&&(r.row>0||e>0)&&r.row++,this.moveCursorTo(r.row,r.column+t,t===0)},this.moveCursorToPosition=function(e){this.moveCursorTo(e.row,e.column)},this.moveCursorTo=function(e,t,n){var r=this.session.getFoldAt(e,t,1);r&&(e=r.start.row,t=r.start.column),this.$keepDesiredColumnOnChange=!0,this.lead.setPosition(e,t),this.$keepDesiredColumnOnChange=!1,n||(this.$desiredColumn=null)},this.moveCursorToScreen=function(e,t,n){var r=this.session.screenToDocumentPosition(e,t);this.moveCursorTo(r.row,r.column,n)},this.detach=function(){this.lead.detach(),this.anchor.detach(),this.session=this.doc=null},this.fromOrientedRange=function(e){this.setSelectionRange(e,e.cursor==e.start),this.$desiredColumn=e.desiredColumn||this.$desiredColumn},this.toOrientedRange=function(e){var t=this.getRange();return e?(e.start.column=t.start.column,e.start.row=t.start.row,e.end.column=t.end.column,e.end.row=t.end.row):e=t,e.cursor=this.isBackwards()?e.start:e.end,e.desiredColumn=this.$desiredColumn,e},this.getRangeOfMovements=function(e){var t=this.getCursor();try{e(this);var n=this.getCursor();return o.fromPoints(t,n)}catch(r){return o.fromPoints(t,t)}finally{this.moveCursorToPosition(t)}},this.toJSON=function(){if(this.rangeCount)var e=this.ranges.map(function(e){var t=e.clone();return t.isBackwards=e.cursor==e.start,t});else{var e=this.getRange();e.isBackwards=this.isBackwards()}return e},this.fromJSON=function(e){if(e.start==undefined){if(this.rangeList){this.toSingleRange(e[0]);for(var t=e.length;t--;){var n=o.fromPoints(e[t].start,e[t].end);e[t].isBackwards&&(n.cursor=n.start),this.addRange(n,!0)}return}e=e[0]}this.rangeList&&this.toSingleRange(e),this.setSelectionRange(e,e.isBackwards)},this.isEqual=function(e){if((e.length||this.rangeCount)&&e.length!=this.rangeCount)return!1;if(!e.length||!this.ranges)return this.getRange().isEqual(e);for(var t=this.ranges.length;t--;)if(!this.ranges[t].isEqual(e[t]))return!1;return!0}}).call(u.prototype),t.Selection=u}),define("ace/tokenizer",["require","exports","module","ace/config"],function(e,t,n){"use strict";var r=e("./config"),i=2e3,s=function(e){this.states=e,this.regExps={},this.matchMappings={};for(var t in this.states){var n=this.states[t],r=[],i=0,s=this.matchMappings[t]={defaultToken:"text"},o="g",u=[];for(var a=0;a<n.length;a++){var f=n[a];f.defaultToken&&(s.defaultToken=f.defaultToken),f.caseInsensitive&&(o="gi");if(f.regex==null)continue;f.regex instanceof RegExp&&(f.regex=f.regex.toString().slice(1,-1));var l=f.regex,c=(new RegExp("(?:("+l+")|(.))")).exec("a").length-2;Array.isArray(f.token)?f.token.length==1||c==1?f.token=f.token[0]:c-1!=f.token.length?(this.reportError("number of classes and regexp groups doesn't match",{rule:f,groupCount:c-1}),f.token=f.token[0]):(f.tokenArray=f.token,f.token=null,f.onMatch=this.$arrayTokens):typeof f.token=="function"&&!f.onMatch&&(c>1?f.onMatch=this.$applyToken:f.onMatch=f.token),c>1&&(/\\\d/.test(f.regex)?l=f.regex.replace(/\\([0-9]+)/g,function(e,t){return"\\"+(parseInt(t,10)+i+1)}):(c=1,l=this.removeCapturingGroups(f.regex)),!f.splitRegex&&typeof f.token!="string"&&u.push(f)),s[i]=a,i+=c,r.push(l),f.onMatch||(f.onMatch=null)}r.length||(s[0]=0,r.push("$")),u.forEach(function(e){e.splitRegex=this.createSplitterRegexp(e.regex,o)},this),this.regExps[t]=new RegExp("("+r.join(")|(")+")|($)",o)}};(function(){this.$setMaxTokenCount=function(e){i=e|0},this.$applyToken=function(e){var t=this.splitRegex.exec(e).slice(1),n=this.token.apply(this,t);if(typeof n=="string")return[{type:n,value:e}];var r=[];for(var i=0,s=n.length;i<s;i++)t[i]&&(r[r.length]={type:n[i],value:t[i]});return r},this.$arrayTokens=function(e){if(!e)return[];var t=this.splitRegex.exec(e);if(!t)return"text";var n=[],r=this.tokenArray;for(var i=0,s=r.length;i<s;i++)t[i+1]&&(n[n.length]={type:r[i],value:t[i+1]});return n},this.removeCapturingGroups=function(e){var t=e.replace(/\[(?:\\.|[^\]])*?\]|\\.|\(\?[:=!]|(\()/g,function(e,t){return t?"(?:":e});return t},this.createSplitterRegexp=function(e,t){if(e.indexOf("(?=")!=-1){var n=0,r=!1,i={};e.replace(/(\\.)|(\((?:\?[=!])?)|(\))|([\[\]])/g,function(e,t,s,o,u,a){return r?r=u!="]":u?r=!0:o?(n==i.stack&&(i.end=a+1,i.stack=-1),n--):s&&(n++,s.length!=1&&(i.stack=n,i.start=a)),e}),i.end!=null&&/^\)*$/.test(e.substr(i.end))&&(e=e.substring(0,i.start)+e.substr(i.end))}return e.charAt(0)!="^"&&(e="^"+e),e.charAt(e.length-1)!="$"&&(e+="$"),new RegExp(e,(t||"").replace("g",""))},this.getLineTokens=function(e,t){if(t&&typeof t!="string"){var n=t.slice(0);t=n[0],t==="#tmp"&&(n.shift(),t=n.shift())}else var n=[];var r=t||"start",s=this.states[r];s||(r="start",s=this.states[r]);var o=this.matchMappings[r],u=this.regExps[r];u.lastIndex=0;var a,f=[],l=0,c=0,h={type:null,value:""};while(a=u.exec(e)){var p=o.defaultToken,d=null,v=a[0],m=u.lastIndex;if(m-v.length>l){var g=e.substring(l,m-v.length);h.type==p?h.value+=g:(h.type&&f.push(h),h={type:p,value:g})}for(var y=0;y<a.length-2;y++){if(a[y+1]===undefined)continue;d=s[o[y]],d.onMatch?p=d.onMatch(v,r,n):p=d.token,d.next&&(typeof d.next=="string"?r=d.next:r=d.next(r,n),s=this.states[r],s||(this.reportError("state doesn't exist",r),r="start",s=this.states[r]),o=this.matchMappings[r],l=m,u=this.regExps[r],u.lastIndex=m);break}if(v)if(typeof p=="string")!!d&&d.merge===!1||h.type!==p?(h.type&&f.push(h),h={type:p,value:v}):h.value+=v;else if(p){h.type&&f.push(h),h={type:null,value:""};for(var y=0;y<p.length;y++)f.push(p[y])}if(l==e.length)break;l=m;if(c++>i){c>2*e.length&&this.reportError("infinite loop with in ace tokenizer",{startState:t,line:e});while(l<e.length)h.type&&f.push(h),h={value:e.substring(l,l+=2e3),type:"overflow"};r="start",n=[];break}}return h.type&&f.push(h),n.length>1&&n[0]!==r&&n.unshift("#tmp",r),{tokens:f,state:n.length?n:r}},this.reportError=r.reportError}).call(s.prototype),t.Tokenizer=s}),define("ace/mode/text_highlight_rules",["require","exports","module","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../lib/lang"),i=function(){this.$rules={start:[{token:"empty_line",regex:"^$"},{defaultToken:"text"}]}};(function(){this.addRules=function(e,t){if(!t){for(var n in e)this.$rules[n]=e[n];return}for(var n in e){var r=e[n];for(var i=0;i<r.length;i++){var s=r[i];if(s.next||s.onMatch)typeof s.next=="string"&&s.next.indexOf(t)!==0&&(s.next=t+s.next),s.nextState&&s.nextState.indexOf(t)!==0&&(s.nextState=t+s.nextState)}this.$rules[t+n]=r}},this.getRules=function(){return this.$rules},this.embedRules=function(e,t,n,i,s){var o=typeof e=="function"?(new e).getRules():e;if(i)for(var u=0;u<i.length;u++)i[u]=t+i[u];else{i=[];for(var a in o)i.push(t+a)}this.addRules(o,t);if(n){var f=Array.prototype[s?"push":"unshift"];for(var u=0;u<i.length;u++)f.apply(this.$rules[i[u]],r.deepCopy(n))}this.$embeds||(this.$embeds=[]),this.$embeds.push(t)},this.getEmbeds=function(){return this.$embeds};var e=function(e,t){return(e!="start"||t.length)&&t.unshift(this.nextState,e),this.nextState},t=function(e,t){return t.shift(),t.shift()||"start"};this.normalizeRules=function(){function i(s){var o=r[s];o.processed=!0;for(var u=0;u<o.length;u++){var a=o[u],f=null;Array.isArray(a)&&(f=a,a={}),!a.regex&&a.start&&(a.regex=a.start,a.next||(a.next=[]),a.next.push({defaultToken:a.token},{token:a.token+".end",regex:a.end||a.start,next:"pop"}),a.token=a.token+".start",a.push=!0);var l=a.next||a.push;if(l&&Array.isArray(l)){var c=a.stateName;c||(c=a.token,typeof c!="string"&&(c=c[0]||""),r[c]&&(c+=n++)),r[c]=l,a.next=c,i(c)}else l=="pop"&&(a.next=t);a.push&&(a.nextState=a.next||a.push,a.next=e,delete a.push);if(a.rules)for(var h in a.rules)r[h]?r[h].push&&r[h].push.apply(r[h],a.rules[h]):r[h]=a.rules[h];var p=typeof a=="string"?a:typeof a.include=="string"?a.include:"";p&&(f=r[p]);if(f){var d=[u,1].concat(f);a.noEscape&&(d=d.filter(function(e){return!e.next})),o.splice.apply(o,d),u--}a.keywordMap&&(a.token=this.createKeywordMapper(a.keywordMap,a.defaultToken||"text",a.caseInsensitive),delete a.defaultToken)}}var n=0,r=this.$rules;Object.keys(r).forEach(i,this)},this.createKeywordMapper=function(e,t,n,r){var i=Object.create(null);return Object.keys(e).forEach(function(t){var s=e[t];n&&(s=s.toLowerCase());var o=s.split(r||"|");for(var u=o.length;u--;)i[o[u]]=t}),Object.getPrototypeOf(i)&&(i.__proto__=null),this.$keywordList=Object.keys(i),e=null,n?function(e){return i[e.toLowerCase()]||t}:function(e){return i[e]||t}},this.getKeywords=function(){return this.$keywords}}).call(i.prototype),t.TextHighlightRules=i}),define("ace/mode/behaviour",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.$behaviours={}};(function(){this.add=function(e,t,n){switch(undefined){case this.$behaviours:this.$behaviours={};case this.$behaviours[e]:this.$behaviours[e]={}}this.$behaviours[e][t]=n},this.addBehaviours=function(e){for(var t in e)for(var n in e[t])this.add(t,n,e[t][n])},this.remove=function(e){this.$behaviours&&this.$behaviours[e]&&delete this.$behaviours[e]},this.inherit=function(e,t){if(typeof e=="function")var n=(new e).getBehaviours(t);else var n=e.getBehaviours(t);this.addBehaviours(n)},this.getBehaviours=function(e){if(!e)return this.$behaviours;var t={};for(var n=0;n<e.length;n++)this.$behaviours[e[n]]&&(t[e[n]]=this.$behaviours[e[n]]);return t}}).call(r.prototype),t.Behaviour=r}),define("ace/token_iterator",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t,n){this.$session=e,this.$row=t,this.$rowTokens=e.getTokens(t);var r=e.getTokenAt(t,n);this.$tokenIndex=r?r.index:-1};(function(){this.stepBackward=function(){this.$tokenIndex-=1;while(this.$tokenIndex<0){this.$row-=1;if(this.$row<0)return this.$row=0,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=this.$rowTokens.length-1}return this.$rowTokens[this.$tokenIndex]},this.stepForward=function(){this.$tokenIndex+=1;var e;while(this.$tokenIndex>=this.$rowTokens.length){this.$row+=1,e||(e=this.$session.getLength());if(this.$row>=e)return this.$row=e-1,null;this.$rowTokens=this.$session.getTokens(this.$row),this.$tokenIndex=0}return this.$rowTokens[this.$tokenIndex]},this.getCurrentToken=function(){return this.$rowTokens[this.$tokenIndex]},this.getCurrentTokenRow=function(){return this.$row},this.getCurrentTokenColumn=function(){var e=this.$rowTokens,t=this.$tokenIndex,n=e[t].start;if(n!==undefined)return n;n=0;while(t>0)t-=1,n+=e[t].value.length;return n},this.getCurrentTokenPosition=function(){return{row:this.$row,column:this.getCurrentTokenColumn()}}}).call(r.prototype),t.TokenIterator=r}),define("ace/mode/behaviour/cstyle",["require","exports","module","ace/lib/oop","ace/mode/behaviour","ace/token_iterator","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../behaviour").Behaviour,s=e("../../token_iterator").TokenIterator,o=e("../../lib/lang"),u=["text","paren.rparen","punctuation.operator"],a=["text","paren.rparen","punctuation.operator","comment"],f,l={},c=function(e){var t=-1;e.multiSelect&&(t=e.selection.index,l.rangeCount!=e.multiSelect.rangeCount&&(l={rangeCount:e.multiSelect.rangeCount}));if(l[t])return f=l[t];f=l[t]={autoInsertedBrackets:0,autoInsertedRow:-1,autoInsertedLineEnd:"",maybeInsertedBrackets:0,maybeInsertedRow:-1,maybeInsertedLineStart:"",maybeInsertedLineEnd:""}},h=function(e,t,n,r){var i=e.end.row-e.start.row;return{text:n+t+r,selection:[0,e.start.column+1,i,e.end.column+(i?0:1)]}},p=function(){this.add("braces","insertion",function(e,t,n,r,i){var s=n.getCursorPosition(),u=r.doc.getLine(s.row);if(i=="{"){c(n);var a=n.getSelectionRange(),l=r.doc.getTextRange(a);if(l!==""&&l!=="{"&&n.getWrapBehavioursEnabled())return h(a,l,"{","}");if(p.isSaneInsertion(n,r))return/[\]\}\)]/.test(u[s.column])||n.inMultiSelectMode?(p.recordAutoInsert(n,r,"}"),{text:"{}",selection:[1,1]}):(p.recordMaybeInsert(n,r,"{"),{text:"{",selection:[1,1]})}else if(i=="}"){c(n);var d=u.substring(s.column,s.column+1);if(d=="}"){var v=r.$findOpeningBracket("}",{column:s.column+1,row:s.row});if(v!==null&&p.isAutoInsertedClosing(s,u,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}else{if(i=="\n"||i=="\r\n"){c(n);var m="";p.isMaybeInsertedClosing(s,u)&&(m=o.stringRepeat("}",f.maybeInsertedBrackets),p.clearMaybeInsertedClosing());var d=u.substring(s.column,s.column+1);if(d==="}"){var g=r.findMatchingBracket({row:s.row,column:s.column+1},"}");if(!g)return null;var y=this.$getIndent(r.getLine(g.row))}else{if(!m){p.clearMaybeInsertedClosing();return}var y=this.$getIndent(u)}var b=y+r.getTabString();return{text:"\n"+b+"\n"+y+m,selection:[1,b.length,1,b.length]}}p.clearMaybeInsertedClosing()}}),this.add("braces","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="{"){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.end.column,i.end.column+1);if(u=="}")return i.end.column++,i;f.maybeInsertedBrackets--}}),this.add("parens","insertion",function(e,t,n,r,i){if(i=="("){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return h(s,o,"(",")");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,")"),{text:"()",selection:[1,1]}}else if(i==")"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f==")"){var l=r.$findOpeningBracket(")",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("parens","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="("){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==")")return i.end.column++,i}}),this.add("brackets","insertion",function(e,t,n,r,i){if(i=="["){c(n);var s=n.getSelectionRange(),o=r.doc.getTextRange(s);if(o!==""&&n.getWrapBehavioursEnabled())return h(s,o,"[","]");if(p.isSaneInsertion(n,r))return p.recordAutoInsert(n,r,"]"),{text:"[]",selection:[1,1]}}else if(i=="]"){c(n);var u=n.getCursorPosition(),a=r.doc.getLine(u.row),f=a.substring(u.column,u.column+1);if(f=="]"){var l=r.$findOpeningBracket("]",{column:u.column+1,row:u.row});if(l!==null&&p.isAutoInsertedClosing(u,a,i))return p.popAutoInsertedClosing(),{text:"",selection:[1,1]}}}}),this.add("brackets","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&s=="["){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u=="]")return i.end.column++,i}}),this.add("string_dquotes","insertion",function(e,t,n,r,i){if(i=='"'||i=="'"){if(this.lineCommentStart&&this.lineCommentStart.indexOf(i)!=-1)return;c(n);var s=i,o=n.getSelectionRange(),u=r.doc.getTextRange(o);if(u!==""&&u!=="'"&&u!='"'&&n.getWrapBehavioursEnabled())return h(o,u,s,s);if(!u){var a=n.getCursorPosition(),f=r.doc.getLine(a.row),l=f.substring(a.column-1,a.column),p=f.substring(a.column,a.column+1),d=r.getTokenAt(a.row,a.column),v=r.getTokenAt(a.row,a.column+1);if(l=="\\"&&d&&/escape/.test(d.type))return null;var m=d&&/string|escape/.test(d.type),g=!v||/string|escape/.test(v.type),y;if(p==s)y=m!==g,y&&/string\.end/.test(v.type)&&(y=!1);else{if(m&&!g)return null;if(m&&g)return null;var b=r.$mode.tokenRe;b.lastIndex=0;var w=b.test(l);b.lastIndex=0;var E=b.test(l);if(w||E)return null;if(p&&!/[\s;,.})\]\\]/.test(p))return null;y=!0}return{text:y?s+s:"",selection:[1,1]}}}}),this.add("string_dquotes","deletion",function(e,t,n,r,i){var s=r.doc.getTextRange(i);if(!i.isMultiLine()&&(s=='"'||s=="'")){c(n);var o=r.doc.getLine(i.start.row),u=o.substring(i.start.column+1,i.start.column+2);if(u==s)return i.end.column++,i}})};p.isSaneInsertion=function(e,t){var n=e.getCursorPosition(),r=new s(t,n.row,n.column);if(!this.$matchTokenType(r.getCurrentToken()||"text",u)){var i=new s(t,n.row,n.column+1);if(!this.$matchTokenType(i.getCurrentToken()||"text",u))return!1}return r.stepForward(),r.getCurrentTokenRow()!==n.row||this.$matchTokenType(r.getCurrentToken()||"text",a)},p.$matchTokenType=function(e,t){return t.indexOf(e.type||e)>-1},p.recordAutoInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isAutoInsertedClosing(r,i,f.autoInsertedLineEnd[0])||(f.autoInsertedBrackets=0),f.autoInsertedRow=r.row,f.autoInsertedLineEnd=n+i.substr(r.column),f.autoInsertedBrackets++},p.recordMaybeInsert=function(e,t,n){var r=e.getCursorPosition(),i=t.doc.getLine(r.row);this.isMaybeInsertedClosing(r,i)||(f.maybeInsertedBrackets=0),f.maybeInsertedRow=r.row,f.maybeInsertedLineStart=i.substr(0,r.column)+n,f.maybeInsertedLineEnd=i.substr(r.column),f.maybeInsertedBrackets++},p.isAutoInsertedClosing=function(e,t,n){return f.autoInsertedBrackets>0&&e.row===f.autoInsertedRow&&n===f.autoInsertedLineEnd[0]&&t.substr(e.column)===f.autoInsertedLineEnd},p.isMaybeInsertedClosing=function(e,t){return f.maybeInsertedBrackets>0&&e.row===f.maybeInsertedRow&&t.substr(e.column)===f.maybeInsertedLineEnd&&t.substr(0,e.column)==f.maybeInsertedLineStart},p.popAutoInsertedClosing=function(){f.autoInsertedLineEnd=f.autoInsertedLineEnd.substr(1),f.autoInsertedBrackets--},p.clearMaybeInsertedClosing=function(){f&&(f.maybeInsertedBrackets=0,f.maybeInsertedRow=-1)},r.inherits(p,i),t.CstyleBehaviour=p}),define("ace/unicode",["require","exports","module"],function(e,t,n){"use strict";function r(e){var n=/\w{4}/g;for(var r in e)t.packages[r]=e[r].replace(n,"\\u$&")}t.packages={},r({L:"0041-005A0061-007A00AA00B500BA00C0-00D600D8-00F600F8-02C102C6-02D102E0-02E402EC02EE0370-037403760377037A-037D03860388-038A038C038E-03A103A3-03F503F7-0481048A-05250531-055605590561-058705D0-05EA05F0-05F20621-064A066E066F0671-06D306D506E506E606EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA07F407F507FA0800-0815081A082408280904-0939093D09500958-0961097109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E460E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EC60EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10A0-10C510D0-10FA10FC1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317D717DC1820-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541AA71B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C7D1CE9-1CEC1CEE-1CF11D00-1DBF1E00-1F151F18-1F1D1F20-1F451F48-1F4D1F50-1F571F591F5B1F5D1F5F-1F7D1F80-1FB41FB6-1FBC1FBE1FC2-1FC41FC6-1FCC1FD0-1FD31FD6-1FDB1FE0-1FEC1FF2-1FF41FF6-1FFC2071207F2090-209421022107210A-211321152119-211D212421262128212A-212D212F-2139213C-213F2145-2149214E218321842C00-2C2E2C30-2C5E2C60-2CE42CEB-2CEE2D00-2D252D30-2D652D6F2D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE2E2F300530063031-3035303B303C3041-3096309D-309F30A1-30FA30FC-30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A48CA4D0-A4FDA500-A60CA610-A61FA62AA62BA640-A65FA662-A66EA67F-A697A6A0-A6E5A717-A71FA722-A788A78BA78CA7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2A9CFAA00-AA28AA40-AA42AA44-AA4BAA60-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADB-AADDABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB00-FB06FB13-FB17FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF21-FF3AFF41-FF5AFF66-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",Ll:"0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A",Lu:"0041-005A00C0-00D600D8-00DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189-018B018E-0191019301940196-0198019C019D019F01A001A201A401A601A701A901AC01AE01AF01B1-01B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6-01F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243-02460248024A024C024E03700372037603860388-038A038C038E038F0391-03A103A3-03AB03CF03D2-03D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD-042F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531-055610A0-10C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941E9E1EA01EA21EA41EA61EA81EAA1EAC1EAE1EB01EB21EB41EB61EB81EBA1EBC1EBE1EC01EC21EC41EC61EC81ECA1ECC1ECE1ED01ED21ED41ED61ED81EDA1EDC1EDE1EE01EE21EE41EE61EE81EEA1EEC1EEE1EF01EF21EF41EF61EF81EFA1EFC1EFE1F08-1F0F1F18-1F1D1F28-1F2F1F38-1F3F1F48-1F4D1F591F5B1F5D1F5F1F68-1F6F1FB8-1FBB1FC8-1FCB1FD8-1FDB1FE8-1FEC1FF8-1FFB21022107210B-210D2110-211221152119-211D212421262128212A-212D2130-2133213E213F214521832C00-2C2E2C602C62-2C642C672C692C6B2C6D-2C702C722C752C7E-2C802C822C842C862C882C8A2C8C2C8E2C902C922C942C962C982C9A2C9C2C9E2CA02CA22CA42CA62CA82CAA2CAC2CAE2CB02CB22CB42CB62CB82CBA2CBC2CBE2CC02CC22CC42CC62CC82CCA2CCC2CCE2CD02CD22CD42CD62CD82CDA2CDC2CDE2CE02CE22CEB2CEDA640A642A644A646A648A64AA64CA64EA650A652A654A656A658A65AA65CA65EA662A664A666A668A66AA66CA680A682A684A686A688A68AA68CA68EA690A692A694A696A722A724A726A728A72AA72CA72EA732A734A736A738A73AA73CA73EA740A742A744A746A748A74AA74CA74EA750A752A754A756A758A75AA75CA75EA760A762A764A766A768A76AA76CA76EA779A77BA77DA77EA780A782A784A786A78BFF21-FF3A",Lt:"01C501C801CB01F21F88-1F8F1F98-1F9F1FA8-1FAF1FBC1FCC1FFC",Lm:"02B0-02C102C6-02D102E0-02E402EC02EE0374037A0559064006E506E607F407F507FA081A0824082809710E460EC610FC17D718431AA71C78-1C7D1D2C-1D611D781D9B-1DBF2071207F2090-20942C7D2D6F2E2F30053031-3035303B309D309E30FC-30FEA015A4F8-A4FDA60CA67FA717-A71FA770A788A9CFAA70AADDFF70FF9EFF9F",Lo:"01BB01C0-01C3029405D0-05EA05F0-05F20621-063F0641-064A066E066F0671-06D306D506EE06EF06FA-06FC06FF07100712-072F074D-07A507B107CA-07EA0800-08150904-0939093D09500958-096109720979-097F0985-098C098F09900993-09A809AA-09B009B209B6-09B909BD09CE09DC09DD09DF-09E109F009F10A05-0A0A0A0F0A100A13-0A280A2A-0A300A320A330A350A360A380A390A59-0A5C0A5E0A72-0A740A85-0A8D0A8F-0A910A93-0AA80AAA-0AB00AB20AB30AB5-0AB90ABD0AD00AE00AE10B05-0B0C0B0F0B100B13-0B280B2A-0B300B320B330B35-0B390B3D0B5C0B5D0B5F-0B610B710B830B85-0B8A0B8E-0B900B92-0B950B990B9A0B9C0B9E0B9F0BA30BA40BA8-0BAA0BAE-0BB90BD00C05-0C0C0C0E-0C100C12-0C280C2A-0C330C35-0C390C3D0C580C590C600C610C85-0C8C0C8E-0C900C92-0CA80CAA-0CB30CB5-0CB90CBD0CDE0CE00CE10D05-0D0C0D0E-0D100D12-0D280D2A-0D390D3D0D600D610D7A-0D7F0D85-0D960D9A-0DB10DB3-0DBB0DBD0DC0-0DC60E01-0E300E320E330E40-0E450E810E820E840E870E880E8A0E8D0E94-0E970E99-0E9F0EA1-0EA30EA50EA70EAA0EAB0EAD-0EB00EB20EB30EBD0EC0-0EC40EDC0EDD0F000F40-0F470F49-0F6C0F88-0F8B1000-102A103F1050-1055105A-105D106110651066106E-10701075-1081108E10D0-10FA1100-1248124A-124D1250-12561258125A-125D1260-1288128A-128D1290-12B012B2-12B512B8-12BE12C012C2-12C512C8-12D612D8-13101312-13151318-135A1380-138F13A0-13F41401-166C166F-167F1681-169A16A0-16EA1700-170C170E-17111720-17311740-17511760-176C176E-17701780-17B317DC1820-18421844-18771880-18A818AA18B0-18F51900-191C1950-196D1970-19741980-19AB19C1-19C71A00-1A161A20-1A541B05-1B331B45-1B4B1B83-1BA01BAE1BAF1C00-1C231C4D-1C4F1C5A-1C771CE9-1CEC1CEE-1CF12135-21382D30-2D652D80-2D962DA0-2DA62DA8-2DAE2DB0-2DB62DB8-2DBE2DC0-2DC62DC8-2DCE2DD0-2DD62DD8-2DDE3006303C3041-3096309F30A1-30FA30FF3105-312D3131-318E31A0-31B731F0-31FF3400-4DB54E00-9FCBA000-A014A016-A48CA4D0-A4F7A500-A60BA610-A61FA62AA62BA66EA6A0-A6E5A7FB-A801A803-A805A807-A80AA80C-A822A840-A873A882-A8B3A8F2-A8F7A8FBA90A-A925A930-A946A960-A97CA984-A9B2AA00-AA28AA40-AA42AA44-AA4BAA60-AA6FAA71-AA76AA7AAA80-AAAFAAB1AAB5AAB6AAB9-AABDAAC0AAC2AADBAADCABC0-ABE2AC00-D7A3D7B0-D7C6D7CB-D7FBF900-FA2DFA30-FA6DFA70-FAD9FB1DFB1F-FB28FB2A-FB36FB38-FB3CFB3EFB40FB41FB43FB44FB46-FBB1FBD3-FD3DFD50-FD8FFD92-FDC7FDF0-FDFBFE70-FE74FE76-FEFCFF66-FF6FFF71-FF9DFFA0-FFBEFFC2-FFC7FFCA-FFCFFFD2-FFD7FFDA-FFDC",M:"0300-036F0483-04890591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DE-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0903093C093E-094E0951-0955096209630981-098309BC09BE-09C409C709C809CB-09CD09D709E209E30A01-0A030A3C0A3E-0A420A470A480A4B-0A4D0A510A700A710A750A81-0A830ABC0ABE-0AC50AC7-0AC90ACB-0ACD0AE20AE30B01-0B030B3C0B3E-0B440B470B480B4B-0B4D0B560B570B620B630B820BBE-0BC20BC6-0BC80BCA-0BCD0BD70C01-0C030C3E-0C440C46-0C480C4A-0C4D0C550C560C620C630C820C830CBC0CBE-0CC40CC6-0CC80CCA-0CCD0CD50CD60CE20CE30D020D030D3E-0D440D46-0D480D4A-0D4D0D570D620D630D820D830DCA0DCF-0DD40DD60DD8-0DDF0DF20DF30E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F3E0F3F0F71-0F840F860F870F90-0F970F99-0FBC0FC6102B-103E1056-1059105E-10601062-10641067-106D1071-10741082-108D108F109A-109D135F1712-17141732-1734175217531772177317B6-17D317DD180B-180D18A91920-192B1930-193B19B0-19C019C819C91A17-1A1B1A55-1A5E1A60-1A7C1A7F1B00-1B041B34-1B441B6B-1B731B80-1B821BA1-1BAA1C24-1C371CD0-1CD21CD4-1CE81CED1CF21DC0-1DE61DFD-1DFF20D0-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66F-A672A67CA67DA6F0A6F1A802A806A80BA823-A827A880A881A8B4-A8C4A8E0-A8F1A926-A92DA947-A953A980-A983A9B3-A9C0AA29-AA36AA43AA4CAA4DAA7BAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE3-ABEAABECABEDFB1EFE00-FE0FFE20-FE26",Mn:"0300-036F0483-04870591-05BD05BF05C105C205C405C505C70610-061A064B-065E067006D6-06DC06DF-06E406E706E806EA-06ED07110730-074A07A6-07B007EB-07F30816-0819081B-08230825-08270829-082D0900-0902093C0941-0948094D0951-095509620963098109BC09C1-09C409CD09E209E30A010A020A3C0A410A420A470A480A4B-0A4D0A510A700A710A750A810A820ABC0AC1-0AC50AC70AC80ACD0AE20AE30B010B3C0B3F0B41-0B440B4D0B560B620B630B820BC00BCD0C3E-0C400C46-0C480C4A-0C4D0C550C560C620C630CBC0CBF0CC60CCC0CCD0CE20CE30D41-0D440D4D0D620D630DCA0DD2-0DD40DD60E310E34-0E3A0E47-0E4E0EB10EB4-0EB90EBB0EBC0EC8-0ECD0F180F190F350F370F390F71-0F7E0F80-0F840F860F870F90-0F970F99-0FBC0FC6102D-10301032-10371039103A103D103E10581059105E-10601071-1074108210851086108D109D135F1712-17141732-1734175217531772177317B7-17BD17C617C9-17D317DD180B-180D18A91920-19221927192819321939-193B1A171A181A561A58-1A5E1A601A621A65-1A6C1A73-1A7C1A7F1B00-1B031B341B36-1B3A1B3C1B421B6B-1B731B801B811BA2-1BA51BA81BA91C2C-1C331C361C371CD0-1CD21CD4-1CE01CE2-1CE81CED1DC0-1DE61DFD-1DFF20D0-20DC20E120E5-20F02CEF-2CF12DE0-2DFF302A-302F3099309AA66FA67CA67DA6F0A6F1A802A806A80BA825A826A8C4A8E0-A8F1A926-A92DA947-A951A980-A982A9B3A9B6-A9B9A9BCAA29-AA2EAA31AA32AA35AA36AA43AA4CAAB0AAB2-AAB4AAB7AAB8AABEAABFAAC1ABE5ABE8ABEDFB1EFE00-FE0FFE20-FE26",Mc:"0903093E-09400949-094C094E0982098309BE-09C009C709C809CB09CC09D70A030A3E-0A400A830ABE-0AC00AC90ACB0ACC0B020B030B3E0B400B470B480B4B0B4C0B570BBE0BBF0BC10BC20BC6-0BC80BCA-0BCC0BD70C01-0C030C41-0C440C820C830CBE0CC0-0CC40CC70CC80CCA0CCB0CD50CD60D020D030D3E-0D400D46-0D480D4A-0D4C0D570D820D830DCF-0DD10DD8-0DDF0DF20DF30F3E0F3F0F7F102B102C10311038103B103C105610571062-10641067-106D108310841087-108C108F109A-109C17B617BE-17C517C717C81923-19261929-192B193019311933-193819B0-19C019C819C91A19-1A1B1A551A571A611A631A641A6D-1A721B041B351B3B1B3D-1B411B431B441B821BA11BA61BA71BAA1C24-1C2B1C341C351CE11CF2A823A824A827A880A881A8B4-A8C3A952A953A983A9B4A9B5A9BAA9BBA9BD-A9C0AA2FAA30AA33AA34AA4DAA7BABE3ABE4ABE6ABE7ABE9ABEAABEC",Me:"0488048906DE20DD-20E020E2-20E4A670-A672",N:"0030-003900B200B300B900BC-00BE0660-066906F0-06F907C0-07C90966-096F09E6-09EF09F4-09F90A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BF20C66-0C6F0C78-0C7E0CE6-0CEF0D66-0D750E50-0E590ED0-0ED90F20-0F331040-10491090-10991369-137C16EE-16F017E0-17E917F0-17F91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C5920702074-20792080-20892150-21822185-21892460-249B24EA-24FF2776-27932CFD30073021-30293038-303A3192-31953220-32293251-325F3280-328932B1-32BFA620-A629A6E6-A6EFA830-A835A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nd:"0030-00390660-066906F0-06F907C0-07C90966-096F09E6-09EF0A66-0A6F0AE6-0AEF0B66-0B6F0BE6-0BEF0C66-0C6F0CE6-0CEF0D66-0D6F0E50-0E590ED0-0ED90F20-0F291040-10491090-109917E0-17E91810-18191946-194F19D0-19DA1A80-1A891A90-1A991B50-1B591BB0-1BB91C40-1C491C50-1C59A620-A629A8D0-A8D9A900-A909A9D0-A9D9AA50-AA59ABF0-ABF9FF10-FF19",Nl:"16EE-16F02160-21822185-218830073021-30293038-303AA6E6-A6EF",No:"00B200B300B900BC-00BE09F4-09F90BF0-0BF20C78-0C7E0D70-0D750F2A-0F331369-137C17F0-17F920702074-20792080-20892150-215F21892460-249B24EA-24FF2776-27932CFD3192-31953220-32293251-325F3280-328932B1-32BFA830-A835",P:"0021-00230025-002A002C-002F003A003B003F0040005B-005D005F007B007D00A100AB00B700BB00BF037E0387055A-055F0589058A05BE05C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F3A-0F3D0F850FD0-0FD4104A-104F10FB1361-13681400166D166E169B169C16EB-16ED1735173617D4-17D617D8-17DA1800-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD32010-20272030-20432045-20512053-205E207D207E208D208E2329232A2768-277527C527C627E6-27EF2983-299829D8-29DB29FC29FD2CF9-2CFC2CFE2CFF2E00-2E2E2E302E313001-30033008-30113014-301F3030303D30A030FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFD3EFD3FFE10-FE19FE30-FE52FE54-FE61FE63FE68FE6AFE6BFF01-FF03FF05-FF0AFF0C-FF0FFF1AFF1BFF1FFF20FF3B-FF3DFF3FFF5BFF5DFF5F-FF65",Pd:"002D058A05BE140018062010-20152E172E1A301C303030A0FE31FE32FE58FE63FF0D",Ps:"0028005B007B0F3A0F3C169B201A201E2045207D208D23292768276A276C276E27702772277427C527E627E827EA27EC27EE2983298529872989298B298D298F299129932995299729D829DA29FC2E222E242E262E283008300A300C300E3010301430163018301A301DFD3EFE17FE35FE37FE39FE3BFE3DFE3FFE41FE43FE47FE59FE5BFE5DFF08FF3BFF5BFF5FFF62",Pe:"0029005D007D0F3B0F3D169C2046207E208E232A2769276B276D276F27712773277527C627E727E927EB27ED27EF298429862988298A298C298E2990299229942996299829D929DB29FD2E232E252E272E293009300B300D300F3011301530173019301B301E301FFD3FFE18FE36FE38FE3AFE3CFE3EFE40FE42FE44FE48FE5AFE5CFE5EFF09FF3DFF5DFF60FF63",Pi:"00AB2018201B201C201F20392E022E042E092E0C2E1C2E20",Pf:"00BB2019201D203A2E032E052E0A2E0D2E1D2E21",Pc:"005F203F20402054FE33FE34FE4D-FE4FFF3F",Po:"0021-00230025-0027002A002C002E002F003A003B003F0040005C00A100B700BF037E0387055A-055F058905C005C305C605F305F40609060A060C060D061B061E061F066A-066D06D40700-070D07F7-07F90830-083E0964096509700DF40E4F0E5A0E5B0F04-0F120F850FD0-0FD4104A-104F10FB1361-1368166D166E16EB-16ED1735173617D4-17D617D8-17DA1800-18051807-180A1944194519DE19DF1A1E1A1F1AA0-1AA61AA8-1AAD1B5A-1B601C3B-1C3F1C7E1C7F1CD3201620172020-20272030-2038203B-203E2041-20432047-205120532055-205E2CF9-2CFC2CFE2CFF2E002E012E06-2E082E0B2E0E-2E162E182E192E1B2E1E2E1F2E2A-2E2E2E302E313001-3003303D30FBA4FEA4FFA60D-A60FA673A67EA6F2-A6F7A874-A877A8CEA8CFA8F8-A8FAA92EA92FA95FA9C1-A9CDA9DEA9DFAA5C-AA5FAADEAADFABEBFE10-FE16FE19FE30FE45FE46FE49-FE4CFE50-FE52FE54-FE57FE5F-FE61FE68FE6AFE6BFF01-FF03FF05-FF07FF0AFF0CFF0EFF0FFF1AFF1BFF1FFF20FF3CFF61FF64FF65",S:"0024002B003C-003E005E0060007C007E00A2-00A900AC00AE-00B100B400B600B800D700F702C2-02C502D2-02DF02E5-02EB02ED02EF-02FF03750384038503F604820606-0608060B060E060F06E906FD06FE07F609F209F309FA09FB0AF10B700BF3-0BFA0C7F0CF10CF20D790E3F0F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-139917DB194019E0-19FF1B61-1B6A1B74-1B7C1FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE20442052207A-207C208A-208C20A0-20B8210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B2140-2144214A-214D214F2190-2328232B-23E82400-24262440-244A249C-24E92500-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE27C0-27C427C7-27CA27CC27D0-27E527F0-29822999-29D729DC-29FB29FE-2B4C2B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F309B309C319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A700-A716A720A721A789A78AA828-A82BA836-A839AA77-AA79FB29FDFCFDFDFE62FE64-FE66FE69FF04FF0BFF1C-FF1EFF3EFF40FF5CFF5EFFE0-FFE6FFE8-FFEEFFFCFFFD",Sm:"002B003C-003E007C007E00AC00B100D700F703F60606-060820442052207A-207C208A-208C2140-2144214B2190-2194219A219B21A021A321A621AE21CE21CF21D221D421F4-22FF2308-230B23202321237C239B-23B323DC-23E125B725C125F8-25FF266F27C0-27C427C7-27CA27CC27D0-27E527F0-27FF2900-29822999-29D729DC-29FB29FE-2AFF2B30-2B442B47-2B4CFB29FE62FE64-FE66FF0BFF1C-FF1EFF5CFF5EFFE2FFE9-FFEC",Sc:"002400A2-00A5060B09F209F309FB0AF10BF90E3F17DB20A0-20B8A838FDFCFE69FF04FFE0FFE1FFE5FFE6",Sk:"005E006000A800AF00B400B802C2-02C502D2-02DF02E5-02EB02ED02EF-02FF0375038403851FBD1FBF-1FC11FCD-1FCF1FDD-1FDF1FED-1FEF1FFD1FFE309B309CA700-A716A720A721A789A78AFF3EFF40FFE3",So:"00A600A700A900AE00B000B60482060E060F06E906FD06FE07F609FA0B700BF3-0BF80BFA0C7F0CF10CF20D790F01-0F030F13-0F170F1A-0F1F0F340F360F380FBE-0FC50FC7-0FCC0FCE0FCF0FD5-0FD8109E109F13601390-1399194019E0-19FF1B61-1B6A1B74-1B7C210021012103-21062108210921142116-2118211E-2123212521272129212E213A213B214A214C214D214F2195-2199219C-219F21A121A221A421A521A7-21AD21AF-21CD21D021D121D321D5-21F32300-2307230C-231F2322-2328232B-237B237D-239A23B4-23DB23E2-23E82400-24262440-244A249C-24E92500-25B625B8-25C025C2-25F72600-266E2670-26CD26CF-26E126E326E8-26FF2701-27042706-2709270C-27272729-274B274D274F-27522756-275E2761-276727942798-27AF27B1-27BE2800-28FF2B00-2B2F2B452B462B50-2B592CE5-2CEA2E80-2E992E9B-2EF32F00-2FD52FF0-2FFB300430123013302030363037303E303F319031913196-319F31C0-31E33200-321E322A-32503260-327F328A-32B032C0-32FE3300-33FF4DC0-4DFFA490-A4C6A828-A82BA836A837A839AA77-AA79FDFDFFE4FFE8FFEDFFEEFFFCFFFD",Z:"002000A01680180E2000-200A20282029202F205F3000",Zs:"002000A01680180E2000-200A202F205F3000",Zl:"2028",Zp:"2029",C:"0000-001F007F-009F00AD03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-0605061C061D0620065F06DD070E070F074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17B417B517DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF200B-200F202A-202E2060-206F20722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-F8FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFD-FF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFFBFFFEFFFF",Cc:"0000-001F007F-009F",Cf:"00AD0600-060306DD070F17B417B5200B-200F202A-202E2060-2064206A-206FFEFFFFF9-FFFB",Co:"E000-F8FF",Cs:"D800-DFFF",Cn:"03780379037F-0383038B038D03A20526-05300557055805600588058B-059005C8-05CF05EB-05EF05F5-05FF06040605061C061D0620065F070E074B074C07B2-07BF07FB-07FF082E082F083F-08FF093A093B094F095609570973-097809800984098D098E0991099209A909B109B3-09B509BA09BB09C509C609C909CA09CF-09D609D8-09DB09DE09E409E509FC-0A000A040A0B-0A0E0A110A120A290A310A340A370A3A0A3B0A3D0A43-0A460A490A4A0A4E-0A500A52-0A580A5D0A5F-0A650A76-0A800A840A8E0A920AA90AB10AB40ABA0ABB0AC60ACA0ACE0ACF0AD1-0ADF0AE40AE50AF00AF2-0B000B040B0D0B0E0B110B120B290B310B340B3A0B3B0B450B460B490B4A0B4E-0B550B58-0B5B0B5E0B640B650B72-0B810B840B8B-0B8D0B910B96-0B980B9B0B9D0BA0-0BA20BA5-0BA70BAB-0BAD0BBA-0BBD0BC3-0BC50BC90BCE0BCF0BD1-0BD60BD8-0BE50BFB-0C000C040C0D0C110C290C340C3A-0C3C0C450C490C4E-0C540C570C5A-0C5F0C640C650C70-0C770C800C810C840C8D0C910CA90CB40CBA0CBB0CC50CC90CCE-0CD40CD7-0CDD0CDF0CE40CE50CF00CF3-0D010D040D0D0D110D290D3A-0D3C0D450D490D4E-0D560D58-0D5F0D640D650D76-0D780D800D810D840D97-0D990DB20DBC0DBE0DBF0DC7-0DC90DCB-0DCE0DD50DD70DE0-0DF10DF5-0E000E3B-0E3E0E5C-0E800E830E850E860E890E8B0E8C0E8E-0E930E980EA00EA40EA60EA80EA90EAC0EBA0EBE0EBF0EC50EC70ECE0ECF0EDA0EDB0EDE-0EFF0F480F6D-0F700F8C-0F8F0F980FBD0FCD0FD9-0FFF10C6-10CF10FD-10FF1249124E124F12571259125E125F1289128E128F12B112B612B712BF12C112C612C712D7131113161317135B-135E137D-137F139A-139F13F5-13FF169D-169F16F1-16FF170D1715-171F1737-173F1754-175F176D17711774-177F17DE17DF17EA-17EF17FA-17FF180F181A-181F1878-187F18AB-18AF18F6-18FF191D-191F192C-192F193C-193F1941-1943196E196F1975-197F19AC-19AF19CA-19CF19DB-19DD1A1C1A1D1A5F1A7D1A7E1A8A-1A8F1A9A-1A9F1AAE-1AFF1B4C-1B4F1B7D-1B7F1BAB-1BAD1BBA-1BFF1C38-1C3A1C4A-1C4C1C80-1CCF1CF3-1CFF1DE7-1DFC1F161F171F1E1F1F1F461F471F4E1F4F1F581F5A1F5C1F5E1F7E1F7F1FB51FC51FD41FD51FDC1FF01FF11FF51FFF2065-206920722073208F2095-209F20B9-20CF20F1-20FF218A-218F23E9-23FF2427-243F244B-245F26CE26E226E4-26E727002705270A270B2728274C274E2753-2755275F27602795-279727B027BF27CB27CD-27CF2B4D-2B4F2B5A-2BFF2C2F2C5F2CF2-2CF82D26-2D2F2D66-2D6E2D70-2D7F2D97-2D9F2DA72DAF2DB72DBF2DC72DCF2DD72DDF2E32-2E7F2E9A2EF4-2EFF2FD6-2FEF2FFC-2FFF3040309730983100-3104312E-3130318F31B8-31BF31E4-31EF321F32FF4DB6-4DBF9FCC-9FFFA48D-A48FA4C7-A4CFA62C-A63FA660A661A674-A67BA698-A69FA6F8-A6FFA78D-A7FAA82C-A82FA83A-A83FA878-A87FA8C5-A8CDA8DA-A8DFA8FC-A8FFA954-A95EA97D-A97FA9CEA9DA-A9DDA9E0-A9FFAA37-AA3FAA4EAA4FAA5AAA5BAA7C-AA7FAAC3-AADAAAE0-ABBFABEEABEFABFA-ABFFD7A4-D7AFD7C7-D7CAD7FC-D7FFFA2EFA2FFA6EFA6FFADA-FAFFFB07-FB12FB18-FB1CFB37FB3DFB3FFB42FB45FBB2-FBD2FD40-FD4FFD90FD91FDC8-FDEFFDFEFDFFFE1A-FE1FFE27-FE2FFE53FE67FE6C-FE6FFE75FEFDFEFEFF00FFBF-FFC1FFC8FFC9FFD0FFD1FFD8FFD9FFDD-FFDFFFE7FFEF-FFF8FFFEFFFF"})}),define("ace/mode/text",["require","exports","module","ace/tokenizer","ace/mode/text_highlight_rules","ace/mode/behaviour/cstyle","ace/unicode","ace/lib/lang","ace/token_iterator","ace/range"],function(e,t,n){"use strict";var r=e("../tokenizer").Tokenizer,i=e("./text_highlight_rules").TextHighlightRules,s=e("./behaviour/cstyle").CstyleBehaviour,o=e("../unicode"),u=e("../lib/lang"),a=e("../token_iterator").TokenIterator,f=e("../range").Range,l=function(){this.HighlightRules=i};(function(){this.$defaultBehaviour=new s,this.tokenRe=new RegExp("^["+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]+","g"),this.nonTokenRe=new RegExp("^(?:[^"+o.packages.L+o.packages.Mn+o.packages.Mc+o.packages.Nd+o.packages.Pc+"\\$_]|\\s])+","g"),this.getTokenizer=function(){return this.$tokenizer||(this.$highlightRules=this.$highlightRules||new this.HighlightRules(this.$highlightRuleConfig),this.$tokenizer=new r(this.$highlightRules.getRules())),this.$tokenizer},this.lineCommentStart="",this.blockComment="",this.toggleCommentLines=function(e,t,n,r){function w(e){for(var t=n;t<=r;t++)e(i.getLine(t),t)}var i=t.doc,s=!0,o=!0,a=Infinity,f=t.getTabSize(),l=!1;if(!this.lineCommentStart){if(!this.blockComment)return!1;var c=this.blockComment.start,h=this.blockComment.end,p=new RegExp("^(\\s*)(?:"+u.escapeRegExp(c)+")"),d=new RegExp("(?:"+u.escapeRegExp(h)+")\\s*$"),v=function(e,t){if(g(e,t))return;if(!s||/\S/.test(e))i.insertInLine({row:t,column:e.length},h),i.insertInLine({row:t,column:a},c)},m=function(e,t){var n;(n=e.match(d))&&i.removeInLine(t,e.length-n[0].length,e.length),(n=e.match(p))&&i.removeInLine(t,n[1].length,n[0].length)},g=function(e,n){if(p.test(e))return!0;var r=t.getTokens(n);for(var i=0;i<r.length;i++)if(r[i].type==="comment")return!0}}else{if(Array.isArray(this.lineCommentStart))var p=this.lineCommentStart.map(u.escapeRegExp).join("|"),c=this.lineCommentStart[0];else var p=u.escapeRegExp(this.lineCommentStart),c=this.lineCommentStart;p=new RegExp("^(\\s*)(?:"+p+") ?"),l=t.getUseSoftTabs();var m=function(e,t){var n=e.match(p);if(!n)return;var r=n[1].length,s=n[0].length;!b(e,r,s)&&n[0][s-1]==" "&&s--,i.removeInLine(t,r,s)},y=c+" ",v=function(e,t){if(!s||/\S/.test(e))b(e,a,a)?i.insertInLine({row:t,column:a},y):i.insertInLine({row:t,column:a},c)},g=function(e,t){return p.test(e)},b=function(e,t,n){var r=0;while(t--&&e.charAt(t)==" ")r++;if(r%f!=0)return!1;var r=0;while(e.charAt(n++)==" ")r++;return f>2?r%f!=f-1:r%f==0}}var E=Infinity;w(function(e,t){var n=e.search(/\S/);n!==-1?(n<a&&(a=n),o&&!g(e,t)&&(o=!1)):E>e.length&&(E=e.length)}),a==Infinity&&(a=E,s=!1,o=!1),l&&a%f!=0&&(a=Math.floor(a/f)*f),w(o?m:v)},this.toggleBlockComment=function(e,t,n,r){var i=this.blockComment;if(!i)return;!i.start&&i[0]&&(i=i[0]);var s=new a(t,r.row,r.column),o=s.getCurrentToken(),u=t.selection,l=t.selection.toOrientedRange(),c,h;if(o&&/comment/.test(o.type)){var p,d;while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.start);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;p=new f(m,g,m,g+i.start.length);break}o=s.stepBackward()}var s=new a(t,r.row,r.column),o=s.getCurrentToken();while(o&&/comment/.test(o.type)){var v=o.value.indexOf(i.end);if(v!=-1){var m=s.getCurrentTokenRow(),g=s.getCurrentTokenColumn()+v;d=new f(m,g,m,g+i.end.length);break}o=s.stepForward()}d&&t.remove(d),p&&(t.remove(p),c=p.start.row,h=-i.start.length)}else h=i.start.length,c=n.start.row,t.insert(n.end,i.end),t.insert(n.start,i.start);l.start.row==c&&(l.start.column+=h),l.end.row==c&&(l.end.column+=h),t.selection.fromOrientedRange(l)},this.getNextLineIndent=function(e,t,n){return this.$getIndent(t)},this.checkOutdent=function(e,t,n){return!1},this.autoOutdent=function(e,t,n){},this.$getIndent=function(e){return e.match(/^\s*/)[0]},this.createWorker=function(e){return null},this.createModeDelegates=function(e){this.$embeds=[],this.$modes={};for(var t in e)e[t]&&(this.$embeds.push(t),this.$modes[t]=new e[t]);var n=["toggleBlockComment","toggleCommentLines","getNextLineIndent","checkOutdent","autoOutdent","transformAction","getCompletions"];for(var t=0;t<n.length;t++)(function(e){var r=n[t],i=e[r];e[n[t]]=function(){return this.$delegator(r,arguments,i)}})(this)},this.$delegator=function(e,t,n){var r=t[0];typeof r!="string"&&(r=r[0]);for(var i=0;i<this.$embeds.length;i++){if(!this.$modes[this.$embeds[i]])continue;var s=r.split(this.$embeds[i]);if(!s[0]&&s[1]){t[0]=s[1];var o=this.$modes[this.$embeds[i]];return o[e].apply(o,t)}}var u=n.apply(this,t);return n?u:undefined},this.transformAction=function(e,t,n,r,i){if(this.$behaviour){var s=this.$behaviour.getBehaviours();for(var o in s)if(s[o][t]){var u=s[o][t].apply(this,arguments);if(u)return u}}},this.getKeywords=function(e){if(!this.completionKeywords){var t=this.$tokenizer.rules,n=[];for(var r in t){var i=t[r];for(var s=0,o=i.length;s<o;s++)if(typeof i[s].token=="string")/keyword|support|storage/.test(i[s].token)&&n.push(i[s].regex);else if(typeof i[s].token=="object")for(var u=0,a=i[s].token.length;u<a;u++)if(/keyword|support|storage/.test(i[s].token[u])){var r=i[s].regex.match(/\(.+?\)/g)[u];n.push(r.substr(1,r.length-2))}}this.completionKeywords=n}return e?n.concat(this.$keywordList||[]):this.$keywordList},this.$createKeywordList=function(){return this.$highlightRules||this.getTokenizer(),this.$keywordList=this.$highlightRules.$keywordList||[]},this.getCompletions=function(e,t,n,r){var i=this.$keywordList||this.$createKeywordList();return i.map(function(e){return{name:e,value:e,score:0,meta:"keyword"}})},this.$id="ace/mode/text"}).call(l.prototype),t.Mode=l}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/background_tokenizer",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=function(e,t){this.running=!1,this.lines=[],this.states=[],this.currentLine=0,this.tokenizer=e;var n=this;this.$worker=function(){if(!n.running)return;var e=new Date,t=n.currentLine,r=-1,i=n.doc,s=t;while(n.lines[t])t++;var o=i.getLength(),u=0;n.running=!1;while(t<o){n.$tokenizeRow(t),r=t;do t++;while(n.lines[t]);u++;if(u%5===0&&new Date-e>20){n.running=setTimeout(n.$worker,20);break}}n.currentLine=t,s<=r&&n.fireUpdateEvent(s,r)}};(function(){r.implement(this,i),this.setTokenizer=function(e){this.tokenizer=e,this.lines=[],this.states=[],this.start(0)},this.setDocument=function(e){this.doc=e,this.lines=[],this.states=[],this.stop()},this.fireUpdateEvent=function(e,t){var n={first:e,last:t};this._signal("update",{data:n})},this.start=function(e){this.currentLine=Math.min(e||0,this.currentLine,this.doc.getLength()),this.lines.splice(this.currentLine,this.lines.length),this.states.splice(this.currentLine,this.states.length),this.stop(),this.running=setTimeout(this.$worker,700)},this.scheduleStart=function(){this.running||(this.running=setTimeout(this.$worker,700))},this.$updateOnChange=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.lines[t]=null;else if(e.action=="remove")this.lines.splice(t,n+1,null),this.states.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.lines.splice.apply(this.lines,r),this.states.splice.apply(this.states,r)}this.currentLine=Math.min(t,this.currentLine,this.doc.getLength()),this.stop()},this.stop=function(){this.running&&clearTimeout(this.running),this.running=!1},this.getTokens=function(e){return this.lines[e]||this.$tokenizeRow(e)},this.getState=function(e){return this.currentLine==e&&this.$tokenizeRow(e),this.states[e]||"start"},this.$tokenizeRow=function(e){var t=this.doc.getLine(e),n=this.states[e-1],r=this.tokenizer.getLineTokens(t,n,e);return this.states[e]+""!=r.state+""?(this.states[e]=r.state,this.lines[e+1]=null,this.currentLine>e+1&&(this.currentLine=e+1)):this.currentLine==e&&(this.currentLine=e+1),this.lines[e]=r.tokens}}).call(s.prototype),t.BackgroundTokenizer=s}),define("ace/search_highlight",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(e,t,n){this.setRegexp(e),this.clazz=t,this.type=n||"text"};(function(){this.MAX_RANGES=500,this.setRegexp=function(e){if(this.regExp+""==e+"")return;this.regExp=e,this.cache=[]},this.update=function(e,t,n,i){if(!this.regExp)return;var o=i.firstRow,u=i.lastRow;for(var a=o;a<=u;a++){var f=this.cache[a];f==null&&(f=r.getMatchOffsets(n.getLine(a),this.regExp),f.length>this.MAX_RANGES&&(f=f.slice(0,this.MAX_RANGES)),f=f.map(function(e){return new s(a,e.offset,a,e.offset+e.length)}),this.cache[a]=f.length?f:"");for(var l=f.length;l--;)t.drawSingleLineMarker(e,f[l].toScreenRange(n),this.clazz,i)}}}).call(o.prototype),t.SearchHighlight=o}),define("ace/edit_session/fold_line",["require","exports","module","ace/range"],function(e,t,n){"use strict";function i(e,t){this.foldData=e,Array.isArray(t)?this.folds=t:t=this.folds=[t];var n=t[t.length-1];this.range=new r(t[0].start.row,t[0].start.column,n.end.row,n.end.column),this.start=this.range.start,this.end=this.range.end,this.folds.forEach(function(e){e.setFoldLine(this)},this)}var r=e("../range").Range;(function(){this.shiftRow=function(e){this.start.row+=e,this.end.row+=e,this.folds.forEach(function(t){t.start.row+=e,t.end.row+=e})},this.addFold=function(e){if(e.sameRow){if(e.start.row<this.startRow||e.endRow>this.endRow)throw new Error("Can't add a fold to this FoldLine as it has no connection");this.folds.push(e),this.folds.sort(function(e,t){return-e.range.compareEnd(t.start.row,t.start.column)}),this.range.compareEnd(e.start.row,e.start.column)>0?(this.end.row=e.end.row,this.end.column=e.end.column):this.range.compareStart(e.end.row,e.end.column)<0&&(this.start.row=e.start.row,this.start.column=e.start.column)}else if(e.start.row==this.end.row)this.folds.push(e),this.end.row=e.end.row,this.end.column=e.end.column;else{if(e.end.row!=this.start.row)throw new Error("Trying to add fold to FoldRow that doesn't have a matching row");this.folds.unshift(e),this.start.row=e.start.row,this.start.column=e.start.column}e.foldLine=this},this.containsRow=function(e){return e>=this.start.row&&e<=this.end.row},this.walk=function(e,t,n){var r=0,i=this.folds,s,o,u,a=!0;t==null&&(t=this.end.row,n=this.end.column);for(var f=0;f<i.length;f++){s=i[f],o=s.range.compareStart(t,n);if(o==-1){e(null,t,n,r,a);return}u=e(null,s.start.row,s.start.column,r,a),u=!u&&e(s.placeholder,s.start.row,s.start.column,r);if(u||o===0)return;a=!s.sameRow,r=s.end.column}e(null,t,n,r,a)},this.getNextFoldTo=function(e,t){var n,r;for(var i=0;i<this.folds.length;i++){n=this.folds[i],r=n.range.compareEnd(e,t);if(r==-1)return{fold:n,kind:"after"};if(r===0)return{fold:n,kind:"inside"}}return null},this.addRemoveChars=function(e,t,n){var r=this.getNextFoldTo(e,t),i,s;if(r){i=r.fold;if(r.kind=="inside"&&i.start.column!=t&&i.start.row!=e)window.console&&window.console.log(e,t,i);else if(i.start.row==e){s=this.folds;var o=s.indexOf(i);o===0&&(this.start.column+=n);for(o;o<s.length;o++){i=s[o],i.start.column+=n;if(!i.sameRow)return;i.end.column+=n}this.end.column+=n}}},this.split=function(e,t){var n=this.getNextFoldTo(e,t);if(!n||n.kind=="inside")return null;var r=n.fold,s=this.folds,o=this.foldData,u=s.indexOf(r),a=s[u-1];this.end.row=a.end.row,this.end.column=a.end.column,s=s.splice(u,s.length-u);var f=new i(o,s);return o.splice(o.indexOf(this)+1,0,f),f},this.merge=function(e){var t=e.folds;for(var n=0;n<t.length;n++)this.addFold(t[n]);var r=this.foldData;r.splice(r.indexOf(e),1)},this.toString=function(){var e=[this.range.toString()+": ["];return this.folds.forEach(function(t){e.push("  "+t.toString())}),e.push("]"),e.join("\n")},this.idxToPosition=function(e){var t=0;for(var n=0;n<this.folds.length;n++){var r=this.folds[n];e-=r.start.column-t;if(e<0)return{row:r.start.row,column:r.start.column+e};e-=r.placeholder.length;if(e<0)return r.start;t=r.end.column}return{row:this.end.row,column:this.end.column+e}}}).call(i.prototype),t.FoldLine=i}),define("ace/range_list",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("./range").Range,i=r.comparePoints,s=function(){this.ranges=[]};(function(){this.comparePoints=i,this.pointIndex=function(e,t,n){var r=this.ranges;for(var s=n||0;s<r.length;s++){var o=r[s],u=i(e,o.end);if(u>0)continue;var a=i(e,o.start);return u===0?t&&a!==0?-s-2:s:a>0||a===0&&!t?s:-s-1}return-s-1},this.add=function(e){var t=!e.isEmpty(),n=this.pointIndex(e.start,t);n<0&&(n=-n-1);var r=this.pointIndex(e.end,t,n);return r<0?r=-r-1:r++,this.ranges.splice(n,r-n,e)},this.addList=function(e){var t=[];for(var n=e.length;n--;)t.push.apply(t,this.add(e[n]));return t},this.substractPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges.splice(t,1)},this.merge=function(){var e=[],t=this.ranges;t=t.sort(function(e,t){return i(e.start,t.start)});var n=t[0],r;for(var s=1;s<t.length;s++){r=n,n=t[s];var o=i(r.end,n.start);if(o<0)continue;if(o==0&&!r.isEmpty()&&!n.isEmpty())continue;i(r.end,n.end)<0&&(r.end.row=n.end.row,r.end.column=n.end.column),t.splice(s,1),e.push(n),n=r,s--}return this.ranges=t,e},this.contains=function(e,t){return this.pointIndex({row:e,column:t})>=0},this.containsPoint=function(e){return this.pointIndex(e)>=0},this.rangeAtPoint=function(e){var t=this.pointIndex(e);if(t>=0)return this.ranges[t]},this.clipRows=function(e,t){var n=this.ranges;if(n[0].start.row>t||n[n.length-1].start.row<e)return[];var r=this.pointIndex({row:e,column:0});r<0&&(r=-r-1);var i=this.pointIndex({row:t,column:0},r);i<0&&(i=-i-1);var s=[];for(var o=r;o<i;o++)s.push(n[o]);return s},this.removeAll=function(){return this.ranges.splice(0,this.ranges.length)},this.attach=function(e){this.session&&this.detach(),this.session=e,this.onChange=this.$onChange.bind(this),this.session.on("change",this.onChange)},this.detach=function(){if(!this.session)return;this.session.removeListener("change",this.onChange),this.session=null},this.$onChange=function(e){if(e.action=="insert")var t=e.start,n=e.end;else var n=e.start,t=e.end;var r=t.row,i=n.row,s=i-r,o=-t.column+n.column,u=this.ranges;for(var a=0,f=u.length;a<f;a++){var l=u[a];if(l.end.row<r)continue;if(l.start.row>r)break;l.start.row==r&&l.start.column>=t.column&&(l.start.column!=t.column||!this.$insertRight)&&(l.start.column+=o,l.start.row+=s);if(l.end.row==r&&l.end.column>=t.column){if(l.end.column==t.column&&this.$insertRight)continue;l.end.column==t.column&&o>0&&a<f-1&&l.end.column>l.start.column&&l.end.column==u[a+1].start.column&&(l.end.column-=o),l.end.column+=o,l.end.row+=s}}if(s!=0&&a<f)for(;a<f;a++){var l=u[a];l.start.row+=s,l.end.row+=s}}}).call(s.prototype),t.RangeList=s}),define("ace/edit_session/fold",["require","exports","module","ace/range","ace/range_list","ace/lib/oop"],function(e,t,n){"use strict";function u(e,t){e.row-=t.row,e.row==0&&(e.column-=t.column)}function a(e,t){u(e.start,t),u(e.end,t)}function f(e,t){e.row==0&&(e.column+=t.column),e.row+=t.row}function l(e,t){f(e.start,t),f(e.end,t)}var r=e("../range").Range,i=e("../range_list").RangeList,s=e("../lib/oop"),o=t.Fold=function(e,t){this.foldLine=null,this.placeholder=t,this.range=e,this.start=e.start,this.end=e.end,this.sameRow=e.start.row==e.end.row,this.subFolds=this.ranges=[]};s.inherits(o,i),function(){this.toString=function(){return'"'+this.placeholder+'" '+this.range.toString()},this.setFoldLine=function(e){this.foldLine=e,this.subFolds.forEach(function(t){t.setFoldLine(e)})},this.clone=function(){var e=this.range.clone(),t=new o(e,this.placeholder);return this.subFolds.forEach(function(e){t.subFolds.push(e.clone())}),t.collapseChildren=this.collapseChildren,t},this.addSubFold=function(e){if(this.range.isEqual(e))return;if(!this.range.containsRange(e))throw new Error("A fold can't intersect already existing fold"+e.range+this.range);a(e,this.start);var t=e.start.row,n=e.start.column;for(var r=0,i=-1;r<this.subFolds.length;r++){i=this.subFolds[r].range.compare(t,n);if(i!=1)break}var s=this.subFolds[r];if(i==0)return s.addSubFold(e);var t=e.range.end.row,n=e.range.end.column;for(var o=r,i=-1;o<this.subFolds.length;o++){i=this.subFolds[o].range.compare(t,n);if(i!=1)break}var u=this.subFolds[o];if(i==0)throw new Error("A fold can't intersect already existing fold"+e.range+this.range);var f=this.subFolds.splice(r,o-r,e);return e.setFoldLine(this.foldLine),e},this.restoreRange=function(e){return l(e,this.start)}}.call(o.prototype)}),define("ace/edit_session/folding",["require","exports","module","ace/range","ace/edit_session/fold_line","ace/edit_session/fold","ace/token_iterator"],function(e,t,n){"use strict";function u(){this.getFoldAt=function(e,t,n){var r=this.getFoldLine(e);if(!r)return null;var i=r.folds;for(var s=0;s<i.length;s++){var o=i[s];if(o.range.contains(e,t)){if(n==1&&o.range.isEnd(e,t))continue;if(n==-1&&o.range.isStart(e,t))continue;return o}}},this.getFoldsInRange=function(e){var t=e.start,n=e.end,r=this.$foldData,i=[];t.column+=1,n.column-=1;for(var s=0;s<r.length;s++){var o=r[s].range.compareRange(e);if(o==2)continue;if(o==-2)break;var u=r[s].folds;for(var a=0;a<u.length;a++){var f=u[a];o=f.range.compareRange(e);if(o==-2)break;if(o==2)continue;if(o==42)break;i.push(f)}}return t.column-=1,n.column+=1,i},this.getFoldsInRangeList=function(e){if(Array.isArray(e)){var t=[];e.forEach(function(e){t=t.concat(this.getFoldsInRange(e))},this)}else var t=this.getFoldsInRange(e);return t},this.getAllFolds=function(){var e=[],t=this.$foldData;for(var n=0;n<t.length;n++)for(var r=0;r<t[n].folds.length;r++)e.push(t[n].folds[r]);return e},this.getFoldStringAt=function(e,t,n,r){r=r||this.getFoldLine(e);if(!r)return null;var i={end:{column:0}},s,o;for(var u=0;u<r.folds.length;u++){o=r.folds[u];var a=o.range.compareEnd(e,t);if(a==-1){s=this.getLine(o.start.row).substring(i.end.column,o.start.column);break}if(a===0)return null;i=o}return s||(s=this.getLine(o.start.row).substring(i.end.column)),n==-1?s.substring(0,t-i.end.column):n==1?s.substring(t-i.end.column):s},this.getFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.start.row<=e&&i.end.row>=e)return i;if(i.end.row>e)return null}return null},this.getNextFoldLine=function(e,t){var n=this.$foldData,r=0;t&&(r=n.indexOf(t)),r==-1&&(r=0);for(r;r<n.length;r++){var i=n[r];if(i.end.row>=e)return i}return null},this.getFoldedRowCount=function(e,t){var n=this.$foldData,r=t-e+1;for(var i=0;i<n.length;i++){var s=n[i],o=s.end.row,u=s.start.row;if(o>=t){u<t&&(u>=e?r-=t-u:r=0);break}o>=e&&(u>=e?r-=o-u:r-=o-e+1)}return r},this.$addFoldLine=function(e){return this.$foldData.push(e),this.$foldData.sort(function(e,t){return e.start.row-t.start.row}),e},this.addFold=function(e,t){var n=this.$foldData,r=!1,o;e instanceof s?o=e:(o=new s(t,e),o.collapseChildren=t.collapseChildren),this.$clipRangeToDocument(o.range);var u=o.start.row,a=o.start.column,f=o.end.row,l=o.end.column;if(u<f||u==f&&a<=l-2){var c=this.getFoldAt(u,a,1),h=this.getFoldAt(f,l,-1);if(c&&h==c)return c.addSubFold(o);c&&!c.range.isStart(u,a)&&this.removeFold(c),h&&!h.range.isEnd(f,l)&&this.removeFold(h);var p=this.getFoldsInRange(o.range);p.length>0&&(this.removeFolds(p),p.forEach(function(e){o.addSubFold(e)}));for(var d=0;d<n.length;d++){var v=n[d];if(f==v.start.row){v.addFold(o),r=!0;break}if(u==v.end.row){v.addFold(o),r=!0;if(!o.sameRow){var m=n[d+1];if(m&&m.start.row==f){v.merge(m);break}}break}if(f<=v.start.row)break}return r||(v=this.$addFoldLine(new i(this.$foldData,o))),this.$useWrapMode?this.$updateWrapData(v.start.row,v.start.row):this.$updateRowLengthCache(v.start.row,v.start.row),this.$modified=!0,this._signal("changeFold",{data:o,action:"add"}),o}throw new Error("The range has to be at least 2 characters width")},this.addFolds=function(e){e.forEach(function(e){this.addFold(e)},this)},this.removeFold=function(e){var t=e.foldLine,n=t.start.row,r=t.end.row,i=this.$foldData,s=t.folds;if(s.length==1)i.splice(i.indexOf(t),1);else if(t.range.isEnd(e.end.row,e.end.column))s.pop(),t.end.row=s[s.length-1].end.row,t.end.column=s[s.length-1].end.column;else if(t.range.isStart(e.start.row,e.start.column))s.shift(),t.start.row=s[0].start.row,t.start.column=s[0].start.column;else if(e.sameRow)s.splice(s.indexOf(e),1);else{var o=t.split(e.start.row,e.start.column);s=o.folds,s.shift(),o.start.row=s[0].start.row,o.start.column=s[0].start.column}this.$updating||(this.$useWrapMode?this.$updateWrapData(n,r):this.$updateRowLengthCache(n,r)),this.$modified=!0,this._signal("changeFold",{data:e,action:"remove"})},this.removeFolds=function(e){var t=[];for(var n=0;n<e.length;n++)t.push(e[n]);t.forEach(function(e){this.removeFold(e)},this),this.$modified=!0},this.expandFold=function(e){this.removeFold(e),e.subFolds.forEach(function(t){e.restoreRange(t),this.addFold(t)},this),e.collapseChildren>0&&this.foldAll(e.start.row+1,e.end.row,e.collapseChildren-1),e.subFolds=[]},this.expandFolds=function(e){e.forEach(function(e){this.expandFold(e)},this)},this.unfold=function(e,t){var n,i;e==null?(n=new r(0,0,this.getLength(),0),t=!0):typeof e=="number"?n=new r(e,0,e,this.getLine(e).length):"row"in e?n=r.fromPoints(e,e):n=e,i=this.getFoldsInRangeList(n);if(t)this.removeFolds(i);else{var s=i;while(s.length)this.expandFolds(s),s=this.getFoldsInRangeList(n)}if(i.length)return i},this.isRowFolded=function(e,t){return!!this.getFoldLine(e,t)},this.getRowFoldEnd=function(e,t){var n=this.getFoldLine(e,t);return n?n.end.row:e},this.getRowFoldStart=function(e,t){var n=this.getFoldLine(e,t);return n?n.start.row:e},this.getFoldDisplayLine=function(e,t,n,r,i){r==null&&(r=e.start.row),i==null&&(i=0),t==null&&(t=e.end.row),n==null&&(n=this.getLine(t).length);var s=this.doc,o="";return e.walk(function(e,t,n,u){if(t<r)return;if(t==r){if(n<i)return;u=Math.max(i,u)}e!=null?o+=e:o+=s.getLine(t).substring(u,n)},t,n),o},this.getDisplayLine=function(e,t,n,r){var i=this.getFoldLine(e);if(!i){var s;return s=this.doc.getLine(e),s.substring(r||0,t||s.length)}return this.getFoldDisplayLine(i,e,t,n,r)},this.$cloneFoldData=function(){var e=[];return e=this.$foldData.map(function(t){var n=t.folds.map(function(e){return e.clone()});return new i(e,n)}),e},this.toggleFold=function(e){var t=this.selection,n=t.getRange(),r,i;if(n.isEmpty()){var s=n.start;r=this.getFoldAt(s.row,s.column);if(r){this.expandFold(r);return}(i=this.findMatchingBracket(s))?n.comparePoint(i)==1?n.end=i:(n.start=i,n.start.column++,n.end.column--):(i=this.findMatchingBracket({row:s.row,column:s.column+1}))?(n.comparePoint(i)==1?n.end=i:n.start=i,n.start.column++):n=this.getCommentFoldRange(s.row,s.column)||n}else{var o=this.getFoldsInRange(n);if(e&&o.length){this.expandFolds(o);return}o.length==1&&(r=o[0])}r||(r=this.getFoldAt(n.start.row,n.start.column));if(r&&r.range.toString()==n.toString()){this.expandFold(r);return}var u="...";if(!n.isMultiLine()){u=this.getTextRange(n);if(u.length<4)return;u=u.trim().substring(0,2)+".."}this.addFold(u,n)},this.getCommentFoldRange=function(e,t,n){var i=new o(this,e,t),s=i.getCurrentToken();if(s&&/^comment|string/.test(s.type)){var u=new r,a=new RegExp(s.type.replace(/\..*/,"\\."));if(n!=1){do s=i.stepBackward();while(s&&a.test(s.type));i.stepForward()}u.start.row=i.getCurrentTokenRow(),u.start.column=i.getCurrentTokenColumn()+2,i=new o(this,e,t);if(n!=-1){do s=i.stepForward();while(s&&a.test(s.type));s=i.stepBackward()}else s=i.getCurrentToken();return u.end.row=i.getCurrentTokenRow(),u.end.column=i.getCurrentTokenColumn()+s.value.length-2,u}},this.foldAll=function(e,t,n){n==undefined&&(n=1e5);var r=this.foldWidgets;if(!r)return;t=t||this.getLength(),e=e||0;for(var i=e;i<t;i++){r[i]==null&&(r[i]=this.getFoldWidget(i));if(r[i]!="start")continue;var s=this.getFoldWidgetRange(i);if(s&&s.isMultiLine()&&s.end.row<=t&&s.start.row>=e){i=s.end.row;try{var o=this.addFold("...",s);o&&(o.collapseChildren=n)}catch(u){}}}},this.$foldStyles={manual:1,markbegin:1,markbeginend:1},this.$foldStyle="markbegin",this.setFoldStyle=function(e){if(!this.$foldStyles[e])throw new Error("invalid fold style: "+e+"["+Object.keys(this.$foldStyles).join(", ")+"]");if(this.$foldStyle==e)return;this.$foldStyle=e,e=="manual"&&this.unfold();var t=this.$foldMode;this.$setFolding(null),this.$setFolding(t)},this.$setFolding=function(e){if(this.$foldMode==e)return;this.$foldMode=e,this.off("change",this.$updateFoldWidgets),this.off("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets),this._signal("changeAnnotation");if(!e||this.$foldStyle=="manual"){this.foldWidgets=null;return}this.foldWidgets=[],this.getFoldWidget=e.getFoldWidget.bind(e,this,this.$foldStyle),this.getFoldWidgetRange=e.getFoldWidgetRange.bind(e,this,this.$foldStyle),this.$updateFoldWidgets=this.updateFoldWidgets.bind(this),this.$tokenizerUpdateFoldWidgets=this.tokenizerUpdateFoldWidgets.bind(this),this.on("change",this.$updateFoldWidgets),this.on("tokenizerUpdate",this.$tokenizerUpdateFoldWidgets)},this.getParentFoldRangeData=function(e,t){var n=this.foldWidgets;if(!n||t&&n[e])return{};var r=e-1,i;while(r>=0){var s=n[r];s==null&&(s=n[r]=this.getFoldWidget(r));if(s=="start"){var o=this.getFoldWidgetRange(r);i||(i=o);if(o&&o.end.row>=e)break}r--}return{range:r!==-1&&o,firstRange:i}},this.onFoldWidgetClick=function(e,t){t=t.domEvent;var n={children:t.shiftKey,all:t.ctrlKey||t.metaKey,siblings:t.altKey},r=this.$toggleFoldWidget(e,n);if(!r){var i=t.target||t.srcElement;i&&/ace_fold-widget/.test(i.className)&&(i.className+=" ace_invalid")}},this.$toggleFoldWidget=function(e,t){if(!this.getFoldWidget)return;var n=this.getFoldWidget(e),r=this.getLine(e),i=n==="end"?-1:1,s=this.getFoldAt(e,i===-1?0:r.length,i);if(s)return t.children||t.all?this.removeFold(s):this.expandFold(s),s;var o=this.getFoldWidgetRange(e,!0);if(o&&!o.isMultiLine()){s=this.getFoldAt(o.start.row,o.start.column,1);if(s&&o.isEqual(s.range))return this.removeFold(s),s}if(t.siblings){var u=this.getParentFoldRangeData(e);if(u.range)var a=u.range.start.row+1,f=u.range.end.row;this.foldAll(a,f,t.all?1e4:0)}else t.children?(f=o?o.end.row:this.getLength(),this.foldAll(e+1,f,t.all?1e4:0)):o&&(t.all&&(o.collapseChildren=1e4),this.addFold("...",o));return o},this.toggleFoldWidget=function(e){var t=this.selection.getCursor().row;t=this.getRowFoldStart(t);var n=this.$toggleFoldWidget(t,{});if(n)return;var r=this.getParentFoldRangeData(t,!0);n=r.range||r.firstRange;if(n){t=n.start.row;var i=this.getFoldAt(t,this.getLine(t).length,1);i?this.removeFold(i):this.addFold("...",n)}},this.updateFoldWidgets=function(e){var t=e.start.row,n=e.end.row-t;if(n===0)this.foldWidgets[t]=null;else if(e.action=="remove")this.foldWidgets.splice(t,n+1,null);else{var r=Array(n+1);r.unshift(t,1),this.foldWidgets.splice.apply(this.foldWidgets,r)}},this.tokenizerUpdateFoldWidgets=function(e){var t=e.data;t.first!=t.last&&this.foldWidgets.length>t.first&&this.foldWidgets.splice(t.first,this.foldWidgets.length)}}var r=e("../range").Range,i=e("./fold_line").FoldLine,s=e("./fold").Fold,o=e("../token_iterator").TokenIterator;t.Folding=u}),define("ace/edit_session/bracket_match",["require","exports","module","ace/token_iterator","ace/range"],function(e,t,n){"use strict";function s(){this.findMatchingBracket=function(e,t){if(e.column==0)return null;var n=t||this.getLine(e.row).charAt(e.column-1);if(n=="")return null;var r=n.match(/([\(\[\{])|([\)\]\}])/);return r?r[1]?this.$findClosingBracket(r[1],e):this.$findOpeningBracket(r[2],e):null},this.getBracketRange=function(e){var t=this.getLine(e.row),n=!0,r,s=t.charAt(e.column-1),o=s&&s.match(/([\(\[\{])|([\)\]\}])/);o||(s=t.charAt(e.column),e={row:e.row,column:e.column+1},o=s&&s.match(/([\(\[\{])|([\)\]\}])/),n=!1);if(!o)return null;if(o[1]){var u=this.$findClosingBracket(o[1],e);if(!u)return null;r=i.fromPoints(e,u),n||(r.end.column++,r.start.column--),r.cursor=r.end}else{var u=this.$findOpeningBracket(o[2],e);if(!u)return null;r=i.fromPoints(u,e),n||(r.start.column++,r.end.column--),r.cursor=r.start}return r},this.$brackets={")":"(","(":")","]":"[","[":"]","{":"}","}":"{"},this.$findOpeningBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("rparen",".paren").replace(/\b(?:end)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn()-2,f=u.value;for(;;){while(a>=0){var l=f.charAt(a);if(l==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else l==e&&(s+=1);a-=1}do u=o.stepBackward();while(u&&!n.test(u.type));if(u==null)break;f=u.value,a=f.length-1}return null},this.$findClosingBracket=function(e,t,n){var i=this.$brackets[e],s=1,o=new r(this,t.row,t.column),u=o.getCurrentToken();u||(u=o.stepForward());if(!u)return;n||(n=new RegExp("(\\.?"+u.type.replace(".","\\.").replace("lparen",".paren").replace(/\b(?:start|begin)\b/,"(?:start|begin|end)")+")+"));var a=t.column-o.getCurrentTokenColumn();for(;;){var f=u.value,l=f.length;while(a<l){var c=f.charAt(a);if(c==i){s-=1;if(s==0)return{row:o.getCurrentTokenRow(),column:a+o.getCurrentTokenColumn()}}else c==e&&(s+=1);a+=1}do u=o.stepForward();while(u&&!n.test(u.type));if(u==null)break;a=0}return null}}var r=e("../token_iterator").TokenIterator,i=e("../range").Range;t.BracketMatch=s}),define("ace/edit_session",["require","exports","module","ace/lib/oop","ace/lib/lang","ace/config","ace/lib/event_emitter","ace/selection","ace/mode/text","ace/range","ace/document","ace/background_tokenizer","ace/search_highlight","ace/edit_session/folding","ace/edit_session/bracket_match"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/lang"),s=e("./config"),o=e("./lib/event_emitter").EventEmitter,u=e("./selection").Selection,a=e("./mode/text").Mode,f=e("./range").Range,l=e("./document").Document,c=e("./background_tokenizer").BackgroundTokenizer,h=e("./search_highlight").SearchHighlight,p=function(e,t){this.$breakpoints=[],this.$decorations=[],this.$frontMarkers={},this.$backMarkers={},this.$markerId=1,this.$undoSelect=!0,this.$foldData=[],this.id="session"+ ++p.$uid,this.$foldData.toString=function(){return this.join("\n")},this.on("changeFold",this.onChangeFold.bind(this)),this.$onChange=this.onChange.bind(this);if(typeof e!="object"||!e.getLine)e=new l(e);this.setDocument(e),this.selection=new u(this),s.resetOptions(this),this.setMode(t),s._signal("session",this)};(function(){function m(e){return e<4352?!1:e>=4352&&e<=4447||e>=4515&&e<=4519||e>=4602&&e<=4607||e>=9001&&e<=9002||e>=11904&&e<=11929||e>=11931&&e<=12019||e>=12032&&e<=12245||e>=12272&&e<=12283||e>=12288&&e<=12350||e>=12353&&e<=12438||e>=12441&&e<=12543||e>=12549&&e<=12589||e>=12593&&e<=12686||e>=12688&&e<=12730||e>=12736&&e<=12771||e>=12784&&e<=12830||e>=12832&&e<=12871||e>=12880&&e<=13054||e>=13056&&e<=19903||e>=19968&&e<=42124||e>=42128&&e<=42182||e>=43360&&e<=43388||e>=44032&&e<=55203||e>=55216&&e<=55238||e>=55243&&e<=55291||e>=63744&&e<=64255||e>=65040&&e<=65049||e>=65072&&e<=65106||e>=65108&&e<=65126||e>=65128&&e<=65131||e>=65281&&e<=65376||e>=65504&&e<=65510}r.implement(this,o),this.setDocument=function(e){this.doc&&this.doc.removeListener("change",this.$onChange),this.doc=e,e.on("change",this.$onChange),this.bgTokenizer&&this.bgTokenizer.setDocument(this.getDocument()),this.resetCaches()},this.getDocument=function(){return this.doc},this.$resetRowCache=function(e){if(!e){this.$docRowCache=[],this.$screenRowCache=[];return}var t=this.$docRowCache.length,n=this.$getRowCacheIndex(this.$docRowCache,e)+1;t>n&&(this.$docRowCache.splice(n,t),this.$screenRowCache.splice(n,t))},this.$getRowCacheIndex=function(e,t){var n=0,r=e.length-1;while(n<=r){var i=n+r>>1,s=e[i];if(t>s)n=i+1;else{if(!(t<s))return i;r=i-1}}return n-1},this.resetCaches=function(){this.$modified=!0,this.$wrapData=[],this.$rowLengthCache=[],this.$resetRowCache(0),this.bgTokenizer&&this.bgTokenizer.start(0)},this.onChangeFold=function(e){var t=e.data;this.$resetRowCache(t.start.row)},this.onChange=function(e){this.$modified=!0,this.$resetRowCache(e.start.row);var t=this.$updateInternalDataOnChange(e);!this.$fromUndo&&this.$undoManager&&!e.ignore&&(this.$deltasDoc.push(e),t&&t.length!=0&&this.$deltasFold.push({action:"removeFolds",folds:t}),this.$informUndoManager.schedule()),this.bgTokenizer&&this.bgTokenizer.$updateOnChange(e),this._signal("change",e)},this.setValue=function(e){this.doc.setValue(e),this.selection.moveTo(0,0),this.$resetRowCache(0),this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.setUndoManager(this.$undoManager),this.getUndoManager().reset()},this.getValue=this.toString=function(){return this.doc.getValue()},this.getSelection=function(){return this.selection},this.getState=function(e){return this.bgTokenizer.getState(e)},this.getTokens=function(e){return this.bgTokenizer.getTokens(e)},this.getTokenAt=function(e,t){var n=this.bgTokenizer.getTokens(e),r,i=0;if(t==null)s=n.length-1,i=this.getLine(e).length;else for(var s=0;s<n.length;s++){i+=n[s].value.length;if(i>=t)break}return r=n[s],r?(r.index=s,r.start=i-r.value.length,r):null},this.setUndoManager=function(e){this.$undoManager=e,this.$deltas=[],this.$deltasDoc=[],this.$deltasFold=[],this.$informUndoManager&&this.$informUndoManager.cancel();if(e){var t=this;this.$syncInformUndoManager=function(){t.$informUndoManager.cancel(),t.$deltasFold.length&&(t.$deltas.push({group:"fold",deltas:t.$deltasFold}),t.$deltasFold=[]),t.$deltasDoc.length&&(t.$deltas.push({group:"doc",deltas:t.$deltasDoc}),t.$deltasDoc=[]),t.$deltas.length>0&&e.execute({action:"aceupdate",args:[t.$deltas,t],merge:t.mergeUndoDeltas}),t.mergeUndoDeltas=!1,t.$deltas=[]},this.$informUndoManager=i.delayedCall(this.$syncInformUndoManager)}},this.markUndoGroup=function(){this.$syncInformUndoManager&&this.$syncInformUndoManager()},this.$defaultUndoManager={undo:function(){},redo:function(){},reset:function(){}},this.getUndoManager=function(){return this.$undoManager||this.$defaultUndoManager},this.getTabString=function(){return this.getUseSoftTabs()?i.stringRepeat(" ",this.getTabSize()):"	"},this.setUseSoftTabs=function(e){this.setOption("useSoftTabs",e)},this.getUseSoftTabs=function(){return this.$useSoftTabs&&!this.$mode.$indentWithTabs},this.setTabSize=function(e){this.setOption("tabSize",e)},this.getTabSize=function(){return this.$tabSize},this.isTabStop=function(e){return this.$useSoftTabs&&e.column%this.$tabSize===0},this.$overwrite=!1,this.setOverwrite=function(e){this.setOption("overwrite",e)},this.getOverwrite=function(){return this.$overwrite},this.toggleOverwrite=function(){this.setOverwrite(!this.$overwrite)},this.addGutterDecoration=function(e,t){this.$decorations[e]||(this.$decorations[e]=""),this.$decorations[e]+=" "+t,this._signal("changeBreakpoint",{})},this.removeGutterDecoration=function(e,t){this.$decorations[e]=(this.$decorations[e]||"").replace(" "+t,""),this._signal("changeBreakpoint",{})},this.getBreakpoints=function(){return this.$breakpoints},this.setBreakpoints=function(e){this.$breakpoints=[];for(var t=0;t<e.length;t++)this.$breakpoints[e[t]]="ace_breakpoint";this._signal("changeBreakpoint",{})},this.clearBreakpoints=function(){this.$breakpoints=[],this._signal("changeBreakpoint",{})},this.setBreakpoint=function(e,t){t===undefined&&(t="ace_breakpoint"),t?this.$breakpoints[e]=t:delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.clearBreakpoint=function(e){delete this.$breakpoints[e],this._signal("changeBreakpoint",{})},this.addMarker=function(e,t,n,r){var i=this.$markerId++,s={range:e,type:n||"line",renderer:typeof n=="function"?n:null,clazz:t,inFront:!!r,id:i};return r?(this.$frontMarkers[i]=s,this._signal("changeFrontMarker")):(this.$backMarkers[i]=s,this._signal("changeBackMarker")),i},this.addDynamicMarker=function(e,t){if(!e.update)return;var n=this.$markerId++;return e.id=n,e.inFront=!!t,t?(this.$frontMarkers[n]=e,this._signal("changeFrontMarker")):(this.$backMarkers[n]=e,this._signal("changeBackMarker")),e},this.removeMarker=function(e){var t=this.$frontMarkers[e]||this.$backMarkers[e];if(!t)return;var n=t.inFront?this.$frontMarkers:this.$backMarkers;t&&(delete n[e],this._signal(t.inFront?"changeFrontMarker":"changeBackMarker"))},this.getMarkers=function(e){return e?this.$frontMarkers:this.$backMarkers},this.highlight=function(e){if(!this.$searchHighlight){var t=new h(null,"ace_selected-word","text");this.$searchHighlight=this.addDynamicMarker(t)}this.$searchHighlight.setRegexp(e)},this.highlightLines=function(e,t,n,r){typeof t!="number"&&(n=t,t=e),n||(n="ace_step");var i=new f(e,0,t,Infinity);return i.id=this.addMarker(i,n,"fullLine",r),i},this.setAnnotations=function(e){this.$annotations=e,this._signal("changeAnnotation",{})},this.getAnnotations=function(){return this.$annotations||[]},this.clearAnnotations=function(){this.setAnnotations([])},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r?\n)/m);t?this.$autoNewLine=t[1]:this.$autoNewLine="\n"},this.getWordRange=function(e,t){var n=this.getLine(e),r=!1;t>0&&(r=!!n.charAt(t-1).match(this.tokenRe)),r||(r=!!n.charAt(t).match(this.tokenRe));if(r)var i=this.tokenRe;else if(/^\s+$/.test(n.slice(t-1,t+1)))var i=/\s/;else var i=this.nonTokenRe;var s=t;if(s>0){do s--;while(s>=0&&n.charAt(s).match(i));s++}var o=t;while(o<n.length&&n.charAt(o).match(i))o++;return new f(e,s,e,o)},this.getAWordRange=function(e,t){var n=this.getWordRange(e,t),r=this.getLine(n.end.row);while(r.charAt(n.end.column).match(/[ \t]/))n.end.column+=1;return n},this.setNewLineMode=function(e){this.doc.setNewLineMode(e)},this.getNewLineMode=function(){return this.doc.getNewLineMode()},this.setUseWorker=function(e){this.setOption("useWorker",e)},this.getUseWorker=function(){return this.$useWorker},this.onReloadTokenizer=function(e){var t=e.data;this.bgTokenizer.start(t.first),this._signal("tokenizerUpdate",e)},this.$modes={},this.$mode=null,this.$modeId=null,this.setMode=function(e,t){if(e&&typeof e=="object"){if(e.getTokenizer)return this.$onChangeMode(e);var n=e,r=n.path}else r=e||"ace/mode/text";this.$modes["ace/mode/text"]||(this.$modes["ace/mode/text"]=new a);if(this.$modes[r]&&!n){this.$onChangeMode(this.$modes[r]),t&&t();return}this.$modeId=r,s.loadModule(["mode",r],function(e){if(this.$modeId!==r)return t&&t();this.$modes[r]&&!n?this.$onChangeMode(this.$modes[r]):e&&e.Mode&&(e=new e.Mode(n),n||(this.$modes[r]=e,e.$id=r),this.$onChangeMode(e)),t&&t()}.bind(this)),this.$mode||this.$onChangeMode(this.$modes["ace/mode/text"],!0)},this.$onChangeMode=function(e,t){t||(this.$modeId=e.$id);if(this.$mode===e)return;this.$mode=e,this.$stopWorker(),this.$useWorker&&this.$startWorker();var n=e.getTokenizer();if(n.addEventListener!==undefined){var r=this.onReloadTokenizer.bind(this);n.addEventListener("update",r)}if(!this.bgTokenizer){this.bgTokenizer=new c(n);var i=this;this.bgTokenizer.addEventListener("update",function(e){i._signal("tokenizerUpdate",e)})}else this.bgTokenizer.setTokenizer(n);this.bgTokenizer.setDocument(this.getDocument()),this.tokenRe=e.tokenRe,this.nonTokenRe=e.nonTokenRe,t||(e.attachToSession&&e.attachToSession(this),this.$options.wrapMethod.set.call(this,this.$wrapMethod),this.$setFolding(e.foldingRules),this.bgTokenizer.start(0),this._emit("changeMode"))},this.$stopWorker=function(){this.$worker&&(this.$worker.terminate(),this.$worker=null)},this.$startWorker=function(){try{this.$worker=this.$mode.createWorker(this)}catch(e){s.warn("Could not load worker",e),this.$worker=null}},this.getMode=function(){return this.$mode},this.$scrollTop=0,this.setScrollTop=function(e){if(this.$scrollTop===e||isNaN(e))return;this.$scrollTop=e,this._signal("changeScrollTop",e)},this.getScrollTop=function(){return this.$scrollTop},this.$scrollLeft=0,this.setScrollLeft=function(e){if(this.$scrollLeft===e||isNaN(e))return;this.$scrollLeft=e,this._signal("changeScrollLeft",e)},this.getScrollLeft=function(){return this.$scrollLeft},this.getScreenWidth=function(){return this.$computeWidth(),this.lineWidgets?Math.max(this.getLineWidgetMaxWidth(),this.screenWidth):this.screenWidth},this.getLineWidgetMaxWidth=function(){if(this.lineWidgetsWidth!=null)return this.lineWidgetsWidth;var e=0;return this.lineWidgets.forEach(function(t){t&&t.screenWidth>e&&(e=t.screenWidth)}),this.lineWidgetWidth=e},this.$computeWidth=function(e){if(this.$modified||e){this.$modified=!1;if(this.$useWrapMode)return this.screenWidth=this.$wrapLimit;var t=this.doc.getAllLines(),n=this.$rowLengthCache,r=0,i=0,s=this.$foldData[i],o=s?s.start.row:Infinity,u=t.length;for(var a=0;a<u;a++){if(a>o){a=s.end.row+1;if(a>=u)break;s=this.$foldData[i++],o=s?s.start.row:Infinity}n[a]==null&&(n[a]=this.$getStringScreenWidth(t[a])[0]),n[a]>r&&(r=n[a])}this.screenWidth=r}},this.getLine=function(e){return this.doc.getLine(e)},this.getLines=function(e,t){return this.doc.getLines(e,t)},this.getLength=function(){return this.doc.getLength()},this.getTextRange=function(e){return this.doc.getTextRange(e||this.selection.getRange())},this.insert=function(e,t){return this.doc.insert(e,t)},this.remove=function(e){return this.doc.remove(e)},this.removeFullLines=function(e,t){return this.doc.removeFullLines(e,t)},this.undoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=e.length-1;r!=-1;r--){var i=e[r];i.group=="doc"?(this.doc.revertDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!0,n)):i.deltas.forEach(function(e){this.addFolds(e.folds)},this)}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.redoChanges=function(e,t){if(!e.length)return;this.$fromUndo=!0;var n=null;for(var r=0;r<e.length;r++){var i=e[r];i.group=="doc"&&(this.doc.applyDeltas(i.deltas),n=this.$getUndoSelection(i.deltas,!1,n))}return this.$fromUndo=!1,n&&this.$undoSelect&&!t&&this.selection.setSelectionRange(n),n},this.setUndoSelect=function(e){this.$undoSelect=e},this.$getUndoSelection=function(e,t,n){function r(e){return t?e.action!=="insert":e.action==="insert"}var i=e[0],s,o,u=!1;r(i)?(s=f.fromPoints(i.start,i.end),u=!0):(s=f.fromPoints(i.start,i.start),u=!1);for(var a=1;a<e.length;a++)i=e[a],r(i)?(o=i.start,s.compare(o.row,o.column)==-1&&s.setStart(o),o=i.end,s.compare(o.row,o.column)==1&&s.setEnd(o),u=!0):(o=i.start,s.compare(o.row,o.column)==-1&&(s=f.fromPoints(i.start,i.start)),u=!1);if(n!=null){f.comparePoints(n.start,s.start)===0&&(n.start.column+=s.end.column-s.start.column,n.end.column+=s.end.column-s.start.column);var l=n.compareRange(s);l==1?s.setStart(n.start):l==-1&&s.setEnd(n.end)}return s},this.replace=function(e,t){return this.doc.replace(e,t)},this.moveText=function(e,t,n){var r=this.getTextRange(e),i=this.getFoldsInRange(e),s=f.fromPoints(t,t);if(!n){this.remove(e);var o=e.start.row-e.end.row,u=o?-e.end.column:e.start.column-e.end.column;u&&(s.start.row==e.end.row&&s.start.column>e.end.column&&(s.start.column+=u),s.end.row==e.end.row&&s.end.column>e.end.column&&(s.end.column+=u)),o&&s.start.row>=e.end.row&&(s.start.row+=o,s.end.row+=o)}s.end=this.insert(s.start,r);if(i.length){var a=e.start,l=s.start,o=l.row-a.row,u=l.column-a.column;this.addFolds(i.map(function(e){return e=e.clone(),e.start.row==a.row&&(e.start.column+=u),e.end.row==a.row&&(e.end.column+=u),e.start.row+=o,e.end.row+=o,e}))}return s},this.indentRows=function(e,t,n){n=n.replace(/\t/g,this.getTabString());for(var r=e;r<=t;r++)this.doc.insertInLine({row:r,column:0},n)},this.outdentRows=function(e){var t=e.collapseRows(),n=new f(0,0,0,0),r=this.getTabSize();for(var i=t.start.row;i<=t.end.row;++i){var s=this.getLine(i);n.start.row=i,n.end.row=i;for(var o=0;o<r;++o)if(s.charAt(o)!=" ")break;o<r&&s.charAt(o)=="	"?(n.start.column=o,n.end.column=o+1):(n.start.column=0,n.end.column=o),this.remove(n)}},this.$moveLines=function(e,t,n){e=this.getRowFoldStart(e),t=this.getRowFoldEnd(t);if(n<0){var r=this.getRowFoldStart(e+n);if(r<0)return 0;var i=r-e}else if(n>0){var r=this.getRowFoldEnd(t+n);if(r>this.doc.getLength()-1)return 0;var i=r-t}else{e=this.$clipRowToDocument(e),t=this.$clipRowToDocument(t);var i=t-e+1}var s=new f(e,0,t,Number.MAX_VALUE),o=this.getFoldsInRange(s).map(function(e){return e=e.clone(),e.start.row+=i,e.end.row+=i,e}),u=n==0?this.doc.getLines(e,t):this.doc.removeFullLines(e,t);return this.doc.insertFullLines(e+i,u),o.length&&this.addFolds(o),i},this.moveLinesUp=function(e,t){return this.$moveLines(e,t,-1)},this.moveLinesDown=function(e,t){return this.$moveLines(e,t,1)},this.duplicateLines=function(e,t){return this.$moveLines(e,t,0)},this.$clipRowToDocument=function(e){return Math.max(0,Math.min(e,this.doc.getLength()-1))},this.$clipColumnToRow=function(e,t){return t<0?0:Math.min(this.doc.getLine(e).length,t)},this.$clipPositionToDocument=function(e,t){t=Math.max(0,t);if(e<0)e=0,t=0;else{var n=this.doc.getLength();e>=n?(e=n-1,t=this.doc.getLine(n-1).length):t=Math.min(this.doc.getLine(e).length,t)}return{row:e,column:t}},this.$clipRangeToDocument=function(e){e.start.row<0?(e.start.row=0,e.start.column=0):e.start.column=this.$clipColumnToRow(e.start.row,e.start.column);var t=this.doc.getLength()-1;return e.end.row>t?(e.end.row=t,e.end.column=this.doc.getLine(t).length):e.end.column=this.$clipColumnToRow(e.end.row,e.end.column),e},this.$wrapLimit=80,this.$useWrapMode=!1,this.$wrapLimitRange={min:null,max:null},this.setUseWrapMode=function(e){if(e!=this.$useWrapMode){this.$useWrapMode=e,this.$modified=!0,this.$resetRowCache(0);if(e){var t=this.getLength();this.$wrapData=Array(t),this.$updateWrapData(0,t-1)}this._signal("changeWrapMode")}},this.getUseWrapMode=function(){return this.$useWrapMode},this.setWrapLimitRange=function(e,t){if(this.$wrapLimitRange.min!==e||this.$wrapLimitRange.max!==t)this.$wrapLimitRange={min:e,max:t},this.$modified=!0,this.$useWrapMode&&this._signal("changeWrapMode")},this.adjustWrapLimit=function(e,t){var n=this.$wrapLimitRange;n.max<0&&(n={min:t,max:t});var r=this.$constrainWrapLimit(e,n.min,n.max);return r!=this.$wrapLimit&&r>1?(this.$wrapLimit=r,this.$modified=!0,this.$useWrapMode&&(this.$updateWrapData(0,this.getLength()-1),this.$resetRowCache(0),this._signal("changeWrapLimit")),!0):!1},this.$constrainWrapLimit=function(e,t,n){return t&&(e=Math.max(t,e)),n&&(e=Math.min(n,e)),e},this.getWrapLimit=function(){return this.$wrapLimit},this.setWrapLimit=function(e){this.setWrapLimitRange(e,e)},this.getWrapLimitRange=function(){return{min:this.$wrapLimitRange.min,max:this.$wrapLimitRange.max}},this.$updateInternalDataOnChange=function(e){var t=this.$useWrapMode,n=e.action,r=e.start,i=e.end,s=r.row,o=i.row,u=o-s,a=null;this.$updating=!0;if(u!=0)if(n==="remove"){this[t?"$wrapData":"$rowLengthCache"].splice(s,u);var f=this.$foldData;a=this.getFoldsInRange(e),this.removeFolds(a);var l=this.getFoldLine(i.row),c=0;if(l){l.addRemoveChars(i.row,i.column,r.column-i.column),l.shiftRow(-u);var h=this.getFoldLine(s);h&&h!==l&&(h.merge(l),l=h),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=i.row&&l.shiftRow(-u)}o=s}else{var p=Array(u);p.unshift(s,0);var d=t?this.$wrapData:this.$rowLengthCache;d.splice.apply(d,p);var f=this.$foldData,l=this.getFoldLine(s),c=0;if(l){var v=l.range.compareInside(r.row,r.column);v==0?(l=l.split(r.row,r.column),l&&(l.shiftRow(u),l.addRemoveChars(o,0,i.column-r.column))):v==-1&&(l.addRemoveChars(s,0,i.column-r.column),l.shiftRow(u)),c=f.indexOf(l)+1}for(c;c<f.length;c++){var l=f[c];l.start.row>=s&&l.shiftRow(u)}}else{u=Math.abs(e.start.column-e.end.column),n==="remove"&&(a=this.getFoldsInRange(e),this.removeFolds(a),u=-u);var l=this.getFoldLine(s);l&&l.addRemoveChars(s,r.column,u)}return t&&this.$wrapData.length!=this.doc.getLength()&&console.error("doc.getLength() and $wrapData.length have to be the same!"),this.$updating=!1,t?this.$updateWrapData(s,o):this.$updateRowLengthCache(s,o),a},this.$updateRowLengthCache=function(e,t,n){this.$rowLengthCache[e]=null,this.$rowLengthCache[t]=null},this.$updateWrapData=function(e,t){var r=this.doc.getAllLines(),i=this.getTabSize(),s=this.$wrapData,o=this.$wrapLimit,a,f,l=e;t=Math.min(t,r.length-1);while(l<=t)f=this.getFoldLine(l,f),f?(a=[],f.walk(function(e,t,i,s){var o;if(e!=null){o=this.$getDisplayTokens(e,a.length),o[0]=n;for(var f=1;f<o.length;f++)o[f]=u}else o=this.$getDisplayTokens(r[t].substring(s,i),a.length);a=a.concat(o)}.bind(this),f.end.row,r[f.end.row].length+1),s[f.start.row]=this.$computeWrapSplits(a,o,i),l=f.end.row+1):(a=this.$getDisplayTokens(r[l]),s[l]=this.$computeWrapSplits(a,o,i),l++)};var e=1,t=2,n=3,u=4,l=9,p=10,d=11,v=12;this.$computeWrapSplits=function(e,r,i){function g(){var t=0;if(m===0)return t;if(h)for(var n=0;n<e.length;n++){var r=e[n];if(r==p)t+=1;else{if(r!=d){if(r==v)continue;break}t+=i}}return c&&h!==!1&&(t+=i),Math.min(t,m)}function y(t){var n=e.slice(a,t),r=n.length;n.join("").replace(/12/g,function(){r-=1}).replace(/2/g,function(){r-=1}),s.length||(b=g(),s.indent=b),f+=r,s.push(f),a=t}if(e.length==0)return[];var s=[],o=e.length,a=0,f=0,c=this.$wrapAsCode,h=this.$indentedSoftWrap,m=r<=Math.max(2*i,8)||h===!1?0:Math.floor(r/2),b=0;while(o-a>r-b){var w=a+r-b;if(e[w-1]>=p&&e[w]>=p){y(w);continue}if(e[w]==n||e[w]==u){for(w;w!=a-1;w--)if(e[w]==n)break;if(w>a){y(w);continue}w=a+r;for(w;w<e.length;w++)if(e[w]!=u)break;if(w==e.length)break;y(w);continue}var E=Math.max(w-(r-(r>>2)),a-1);while(w>E&&e[w]<n)w--;if(c){while(w>E&&e[w]<n)w--;while(w>E&&e[w]==l)w--}else while(w>E&&e[w]<p)w--;if(w>E){y(++w);continue}w=a+r,e[w]==t&&w--,y(w-b)}return s},this.$getDisplayTokens=function(n,r){var i=[],s;r=r||0;for(var o=0;o<n.length;o++){var u=n.charCodeAt(o);if(u==9){s=this.getScreenTabSize(i.length+r),i.push(d);for(var a=1;a<s;a++)i.push(v)}else u==32?i.push(p):u>39&&u<48||u>57&&u<64?i.push(l):u>=4352&&m(u)?i.push(e,t):i.push(e)}return i},this.$getStringScreenWidth=function(e,t,n){if(t==0)return[0,0];t==null&&(t=Infinity),n=n||0;var r,i;for(i=0;i<e.length;i++){r=e.charCodeAt(i),r==9?n+=this.getScreenTabSize(n):r>=4352&&m(r)?n+=2:n+=1;if(n>t)break}return[n,i]},this.lineWidgets=null,this.getRowLength=function(e){if(this.lineWidgets)var t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0;else t=0;return!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.getRowLineCount=function(e){return!this.$useWrapMode||!this.$wrapData[e]?1:this.$wrapData[e].length+1},this.getRowWrapIndent=function(e){if(this.$useWrapMode){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE),n=this.$wrapData[t.row];return n.length&&n[0]<t.column?n.indent:0}return 0},this.getScreenLastRowColumn=function(e){var t=this.screenToDocumentPosition(e,Number.MAX_VALUE);return this.documentToScreenColumn(t.row,t.column)},this.getDocumentLastRowColumn=function(e,t){var n=this.documentToScreenRow(e,t);return this.getScreenLastRowColumn(n)},this.getDocumentLastRowColumnPosition=function(e,t){var n=this.documentToScreenRow(e,t);return this.screenToDocumentPosition(n,Number.MAX_VALUE/10)},this.getRowSplitData=function(e){return this.$useWrapMode?this.$wrapData[e]:undefined},this.getScreenTabSize=function(e){return this.$tabSize-e%this.$tabSize},this.screenToDocumentRow=function(e,t){return this.screenToDocumentPosition(e,t).row},this.screenToDocumentColumn=function(e,t){return this.screenToDocumentPosition(e,t).column},this.screenToDocumentPosition=function(e,t){if(e<0)return{row:0,column:0};var n,r=0,i=0,s,o=0,u=0,a=this.$screenRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var o=a[f],r=this.$docRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getLength()-1,p=this.getNextFoldLine(r),d=p?p.start.row:Infinity;while(o<=e){u=this.getRowLength(r);if(o+u>e||r>=h)break;o+=u,r++,r>d&&(r=p.end.row+1,p=this.getNextFoldLine(r,p),d=p?p.start.row:Infinity),c&&(this.$docRowCache.push(r),this.$screenRowCache.push(o))}if(p&&p.start.row<=r)n=this.getFoldDisplayLine(p),r=p.start.row;else{if(o+u<=e||r>h)return{row:h,column:this.getLine(h).length};n=this.getLine(r),p=null}var v=0;if(this.$useWrapMode){var m=this.$wrapData[r];if(m){var g=Math.floor(e-o);s=m[g],g>0&&m.length&&(v=m.indent,i=m[g-1]||m[m.length-1],n=n.substring(i))}}return i+=this.$getStringScreenWidth(n,t-v)[1],this.$useWrapMode&&i>=s&&(i=s-1),p?p.idxToPosition(i):{row:r,column:i}},this.documentToScreenPosition=function(e,t){if(typeof t=="undefined")var n=this.$clipPositionToDocument(e.row,e.column);else n=this.$clipPositionToDocument(e,t);e=n.row,t=n.column;var r=0,i=null,s=null;s=this.getFoldAt(e,t,1),s&&(e=s.start.row,t=s.start.column);var o,u=0,a=this.$docRowCache,f=this.$getRowCacheIndex(a,e),l=a.length;if(l&&f>=0)var u=a[f],r=this.$screenRowCache[f],c=e>a[l-1];else var c=!l;var h=this.getNextFoldLine(u),p=h?h.start.row:Infinity;while(u<e){if(u>=p){o=h.end.row+1;if(o>e)break;h=this.getNextFoldLine(o,h),p=h?h.start.row:Infinity}else o=u+1;r+=this.getRowLength(u),u=o,c&&(this.$docRowCache.push(u),this.$screenRowCache.push(r))}var d="";h&&u>=p?(d=this.getFoldDisplayLine(h,e,t),i=h.start.row):(d=this.getLine(e).substring(0,t),i=e);var v=0;if(this.$useWrapMode){var m=this.$wrapData[i];if(m){var g=0;while(d.length>=m[g])r++,g++;d=d.substring(m[g-1]||0,d.length),v=g>0?m.indent:0}}return{row:r,column:v+this.$getStringScreenWidth(d)[0]}},this.documentToScreenColumn=function(e,t){return this.documentToScreenPosition(e,t).column},this.documentToScreenRow=function(e,t){return this.documentToScreenPosition(e,t).row},this.getScreenLength=function(){var e=0,t=null;if(!this.$useWrapMode){e=this.getLength();var n=this.$foldData;for(var r=0;r<n.length;r++)t=n[r],e-=t.end.row-t.start.row}else{var i=this.$wrapData.length,s=0,r=0,t=this.$foldData[r++],o=t?t.start.row:Infinity;while(s<i){var u=this.$wrapData[s];e+=u?u.length+1:1,s++,s>o&&(s=t.end.row+1,t=this.$foldData[r++],o=t?t.start.row:Infinity)}}return this.lineWidgets&&(e+=this.$getWidgetScreenLength()),e},this.$setFontMetrics=function(e){if(!this.$enableVarChar)return;this.$getStringScreenWidth=function(t,n,r){if(n===0)return[0,0];n||(n=Infinity),r=r||0;var i,s;for(s=0;s<t.length;s++){i=t.charAt(s),i==="	"?r+=this.getScreenTabSize(r):r+=e.getCharacterWidth(i);if(r>n)break}return[r,s]}},this.destroy=function(){this.bgTokenizer&&(this.bgTokenizer.setDocument(null),this.bgTokenizer=null),this.$stopWorker()}}).call(p.prototype),e("./edit_session/folding").Folding.call(p.prototype),e("./edit_session/bracket_match").BracketMatch.call(p.prototype),s.defineOptions(p.prototype,"session",{wrap:{set:function(e){!e||e=="off"?e=!1:e=="free"?e=!0:e=="printMargin"?e=-1:typeof e=="string"&&(e=parseInt(e,10)||!1);if(this.$wrap==e)return;this.$wrap=e;if(!e)this.setUseWrapMode(!1);else{var t=typeof e=="number"?e:null;this.setWrapLimitRange(t,t),this.setUseWrapMode(!0)}},get:function(){return this.getUseWrapMode()?this.$wrap==-1?"printMargin":this.getWrapLimitRange().min?this.$wrap:"free":"off"},handlesSet:!0},wrapMethod:{set:function(e){e=e=="auto"?this.$mode.type!="text":e!="text",e!=this.$wrapAsCode&&(this.$wrapAsCode=e,this.$useWrapMode&&(this.$modified=!0,this.$resetRowCache(0),this.$updateWrapData(0,this.getLength()-1)))},initialValue:"auto"},indentedSoftWrap:{initialValue:!0},firstLineNumber:{set:function(){this._signal("changeBreakpoint")},initialValue:1},useWorker:{set:function(e){this.$useWorker=e,this.$stopWorker(),e&&this.$startWorker()},initialValue:!0},useSoftTabs:{initialValue:!0},tabSize:{set:function(e){if(isNaN(e)||this.$tabSize===e)return;this.$modified=!0,this.$rowLengthCache=[],this.$tabSize=e,this._signal("changeTabSize")},initialValue:4,handlesSet:!0},overwrite:{set:function(e){this._signal("changeOverwrite")},initialValue:!1},newLineMode:{set:function(e){this.doc.setNewLineMode(e)},get:function(){return this.doc.getNewLineMode()},handlesSet:!0},mode:{set:function(e){this.setMode(e)},get:function(){return this.$modeId}}}),t.EditSession=p}),define("ace/search",["require","exports","module","ace/lib/lang","ace/lib/oop","ace/range"],function(e,t,n){"use strict";function u(e,t){function n(e){return/\w/.test(e)||t.regExp?"\\b":""}return n(e[0])+e+n(e[e.length-1])}var r=e("./lib/lang"),i=e("./lib/oop"),s=e("./range").Range,o=function(){this.$options={}};(function(){this.set=function(e){return i.mixin(this.$options,e),this},this.getOptions=function(){return r.copyObject(this.$options)},this.setOptions=function(e){this.$options=e},this.find=function(e){var t=this.$options,n=this.$matchIterator(e,t);if(!n)return!1;var r=null;return n.forEach(function(e,n,i){if(!e.start){var o=e.offset+(i||0);r=new s(n,o,n,o+e.length);if(!e.length&&t.start&&t.start.start&&t.skipCurrent!=0&&r.isEqual(t.start))return r=null,!1}else r=e;return!0}),r},this.findAll=function(e){var t=this.$options;if(!t.needle)return[];this.$assembleRegExp(t);var n=t.range,i=n?e.getLines(n.start.row,n.end.row):e.doc.getAllLines(),o=[],u=t.re;if(t.$isMultiLine){var a=u.length,f=i.length-a,l;e:for(var c=u.offset||0;c<=f;c++){for(var h=0;h<a;h++)if(i[c+h].search(u[h])==-1)continue e;var p=i[c],d=i[c+a-1],v=p.length-p.match(u[0])[0].length,m=d.match(u[a-1])[0].length;if(l&&l.end.row===c&&l.end.column>v)continue;o.push(l=new s(c,v,c+a-1,m)),a>2&&(c=c+a-2)}}else for(var g=0;g<i.length;g++){var y=r.getMatchOffsets(i[g],u);for(var h=0;h<y.length;h++){var b=y[h];o.push(new s(g,b.offset,g,b.offset+b.length))}}if(n){var w=n.start.column,E=n.start.column,g=0,h=o.length-1;while(g<h&&o[g].start.column<w&&o[g].start.row==n.start.row)g++;while(g<h&&o[h].end.column>E&&o[h].end.row==n.end.row)h--;o=o.slice(g,h+1);for(g=0,h=o.length;g<h;g++)o[g].start.row+=n.start.row,o[g].end.row+=n.start.row}return o},this.replace=function(e,t){var n=this.$options,r=this.$assembleRegExp(n);if(n.$isMultiLine)return t;if(!r)return;var i=r.exec(e);if(!i||i[0].length!=e.length)return null;t=e.replace(r,t);if(n.preserveCase){t=t.split("");for(var s=Math.min(e.length,e.length);s--;){var o=e[s];o&&o.toLowerCase()!=o?t[s]=t[s].toUpperCase():t[s]=t[s].toLowerCase()}t=t.join("")}return t},this.$matchIterator=function(e,t){var n=this.$assembleRegExp(t);if(!n)return!1;var i;if(t.$isMultiLine)var o=n.length,u=function(t,r,u){var a=t.search(n[0]);if(a==-1)return;for(var f=1;f<o;f++){t=e.getLine(r+f);if(t.search(n[f])==-1)return}var l=t.match(n[o-1])[0].length,c=new s(r,a,r+o-1,l);n.offset==1?(c.start.row--,c.start.column=Number.MAX_VALUE):u&&(c.start.column+=u);if(i(c))return!0};else if(t.backwards)var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=o.length-1;u>=0;u--)if(i(o[u],t,s))return!0};else var u=function(e,t,s){var o=r.getMatchOffsets(e,n);for(var u=0;u<o.length;u++)if(i(o[u],t,s))return!0};var a=this.$lineIterator(e,t);return{forEach:function(e){i=e,a.forEach(u)}}},this.$assembleRegExp=function(e,t){if(e.needle instanceof RegExp)return e.re=e.needle;var n=e.needle;if(!e.needle)return e.re=!1;e.regExp||(n=r.escapeRegExp(n)),e.wholeWord&&(n=u(n,e));var i=e.caseSensitive?"gm":"gmi";e.$isMultiLine=!t&&/[\n\r]/.test(n);if(e.$isMultiLine)return e.re=this.$assembleMultilineRegExp(n,i);try{var s=new RegExp(n,i)}catch(o){s=!1}return e.re=s},this.$assembleMultilineRegExp=function(e,t){var n=e.replace(/\r\n|\r|\n/g,"$\n^").split("\n"),r=[];for(var i=0;i<n.length;i++)try{r.push(new RegExp(n[i],t))}catch(s){return!1}return n[0]==""?(r.shift(),r.offset=1):r.offset=0,r},this.$lineIterator=function(e,t){var n=t.backwards==1,r=t.skipCurrent!=0,i=t.range,s=t.start;s||(s=i?i[n?"end":"start"]:e.selection.getRange()),s.start&&(s=s[r!=n?"end":"start"]);var o=i?i.start.row:0,u=i?i.end.row:e.getLength()-1,a=n?function(n){var r=s.row,i=e.getLine(r).substring(0,s.column);if(n(i,r))return;for(r--;r>=o;r--)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=u,o=s.row;r>=o;r--)if(n(e.getLine(r),r))return}:function(n){var r=s.row,i=e.getLine(r).substr(s.column);if(n(i,r,s.column))return;for(r+=1;r<=u;r++)if(n(e.getLine(r),r))return;if(t.wrap==0)return;for(r=o,u=s.row;r<=u;r++)if(n(e.getLine(r),r))return};return{forEach:a}}}).call(o.prototype),t.Search=o}),define("ace/keyboard/hash_handler",["require","exports","module","ace/lib/keys","ace/lib/useragent"],function(e,t,n){"use strict";function o(e,t){this.platform=t||(i.isMac?"mac":"win"),this.commands={},this.commandKeyBinding={},this.addCommands(e),this.$singleCommand=!0}function u(e,t){o.call(this,e,t),this.$singleCommand=!1}var r=e("../lib/keys"),i=e("../lib/useragent"),s=r.KEY_MODS;u.prototype=o.prototype,function(){function e(e){return typeof e=="object"&&e.bindKey&&e.bindKey.position||0}this.addCommand=function(e){this.commands[e.name]&&this.removeCommand(e),this.commands[e.name]=e,e.bindKey&&this._buildKeyHash(e)},this.removeCommand=function(e,t){var n=e&&(typeof e=="string"?e:e.name);e=this.commands[n],t||delete this.commands[n];var r=this.commandKeyBinding;for(var i in r){var s=r[i];if(s==e)delete r[i];else if(Array.isArray(s)){var o=s.indexOf(e);o!=-1&&(s.splice(o,1),s.length==1&&(r[i]=s[0]))}}},this.bindKey=function(e,t,n){typeof e=="object"&&e&&(n==undefined&&(n=e.position),e=e[this.platform]);if(!e)return;if(typeof t=="function")return this.addCommand({exec:t,bindKey:e,name:t.name||e});e.split("|").forEach(function(e){var r="";if(e.indexOf(" ")!=-1){var i=e.split(/\s+/);e=i.pop(),i.forEach(function(e){var t=this.parseKeys(e),n=s[t.hashId]+t.key;r+=(r?" ":"")+n,this._addCommandToBinding(r,"chainKeys")},this),r+=" "}var o=this.parseKeys(e),u=s[o.hashId]+o.key;this._addCommandToBinding(r+u,t,n)},this)},this._addCommandToBinding=function(t,n,r){var i=this.commandKeyBinding,s;if(!n)delete i[t];else if(!i[t]||this.$singleCommand)i[t]=n;else{Array.isArray(i[t])?(s=i[t].indexOf(n))!=-1&&i[t].splice(s,1):i[t]=[i[t]],typeof r!="number"&&(r||n.isDefault?r=-100:r=e(n));var o=i[t];for(s=0;s<o.length;s++){var u=o[s],a=e(u);if(a>r)break}o.splice(s,0,n)}},this.addCommands=function(e){e&&Object.keys(e).forEach(function(t){var n=e[t];if(!n)return;if(typeof n=="string")return this.bindKey(n,t);typeof n=="function"&&(n={exec:n});if(typeof n!="object")return;n.name||(n.name=t),this.addCommand(n)},this)},this.removeCommands=function(e){Object.keys(e).forEach(function(t){this.removeCommand(e[t])},this)},this.bindKeys=function(e){Object.keys(e).forEach(function(t){this.bindKey(t,e[t])},this)},this._buildKeyHash=function(e){this.bindKey(e.bindKey,e)},this.parseKeys=function(e){var t=e.toLowerCase().split(/[\-\+]([\-\+])?/).filter(function(e){return e}),n=t.pop(),i=r[n];if(r.FUNCTION_KEYS[i])n=r.FUNCTION_KEYS[i].toLowerCase();else{if(!t.length)return{key:n,hashId:-1};if(t.length==1&&t[0]=="shift")return{key:n.toUpperCase(),hashId:-1}}var s=0;for(var o=t.length;o--;){var u=r.KEY_MODS[t[o]];if(u==null)return typeof console!="undefined"&&console.error("invalid modifier "+t[o]+" in "+e),!1;s|=u}return{key:n,hashId:s}},this.findKeyCommand=function(t,n){var r=s[t]+n;return this.commandKeyBinding[r]},this.handleKeyboard=function(e,t,n,r){if(r<0)return;var i=s[t]+n,o=this.commandKeyBinding[i];e.$keyChain&&(e.$keyChain+=" "+i,o=this.commandKeyBinding[e.$keyChain]||o);if(o)if(o=="chainKeys"||o[o.length-1]=="chainKeys")return e.$keyChain=e.$keyChain||i,{command:"null"};if(e.$keyChain)if(!!t&&t!=4||n.length!=1){if(t==-1||r>0)e.$keyChain=""}else e.$keyChain=e.$keyChain.slice(0,-i.length-1);return{command:o}},this.getStatusText=function(e,t){return t.$keyChain||""}}.call(o.prototype),t.HashHandler=o,t.MultiHashHandler=u}),define("ace/commands/command_manager",["require","exports","module","ace/lib/oop","ace/keyboard/hash_handler","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../keyboard/hash_handler").MultiHashHandler,s=e("../lib/event_emitter").EventEmitter,o=function(e,t){i.call(this,t,e),this.byName=this.commands,this.setDefaultHandler("exec",function(e){return e.command.exec(e.editor,e.args||{})})};r.inherits(o,i),function(){r.implement(this,s),this.exec=function(e,t,n){if(Array.isArray(e)){for(var r=e.length;r--;)if(this.exec(e[r],t,n))return!0;return!1}typeof e=="string"&&(e=this.commands[e]);if(!e)return!1;if(t&&t.$readOnly&&!e.readOnly)return!1;var i={editor:t,command:e,args:n};return i.returnValue=this._emit("exec",i),this._signal("afterExec",i),i.returnValue===!1?!1:!0},this.toggleRecording=function(e){if(this.$inReplay)return;return e&&e._emit("changeStatus"),this.recording?(this.macro.pop(),this.removeEventListener("exec",this.$addCommandToMacro),this.macro.length||(this.macro=this.oldMacro),this.recording=!1):(this.$addCommandToMacro||(this.$addCommandToMacro=function(e){this.macro.push([e.command,e.args])}.bind(this)),this.oldMacro=this.macro,this.macro=[],this.on("exec",this.$addCommandToMacro),this.recording=!0)},this.replay=function(e){if(this.$inReplay||!this.macro)return;if(this.recording)return this.toggleRecording(e);try{this.$inReplay=!0,this.macro.forEach(function(t){typeof t=="string"?this.exec(t,e):this.exec(t[0],e,t[1])},this)}finally{this.$inReplay=!1}},this.trimMacro=function(e){return e.map(function(e){return typeof e[0]!="string"&&(e[0]=e[0].name),e[1]||(e=e[0]),e})}}.call(o.prototype),t.CommandManager=o}),define("ace/commands/default_commands",["require","exports","module","ace/lib/lang","ace/config","ace/range"],function(e,t,n){"use strict";function o(e,t){return{win:e,mac:t}}var r=e("../lib/lang"),i=e("../config"),s=e("../range").Range;t.commands=[{name:"showSettingsMenu",bindKey:o("Ctrl-,","Command-,"),exec:function(e){i.loadModule("ace/ext/settings_menu",function(t){t.init(e),e.showSettingsMenu()})},readOnly:!0},{name:"goToNextError",bindKey:o("Alt-E","F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,1)})},scrollIntoView:"animate",readOnly:!0},{name:"goToPreviousError",bindKey:o("Alt-Shift-E","Shift-F4"),exec:function(e){i.loadModule("ace/ext/error_marker",function(t){t.showErrorMarker(e,-1)})},scrollIntoView:"animate",readOnly:!0},{name:"selectall",bindKey:o("Ctrl-A","Command-A"),exec:function(e){e.selectAll()},readOnly:!0},{name:"centerselection",bindKey:o(null,"Ctrl-L"),exec:function(e){e.centerSelection()},readOnly:!0},{name:"gotoline",bindKey:o("Ctrl-L","Command-L"),exec:function(e){var t=parseInt(prompt("Enter line number:"),10);isNaN(t)||e.gotoLine(t)},readOnly:!0},{name:"fold",bindKey:o("Alt-L|Ctrl-F1","Command-Alt-L|Command-F1"),exec:function(e){e.session.toggleFold(!1)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"unfold",bindKey:o("Alt-Shift-L|Ctrl-Shift-F1","Command-Alt-Shift-L|Command-Shift-F1"),exec:function(e){e.session.toggleFold(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleFoldWidget",bindKey:o("F2","F2"),exec:function(e){e.session.toggleFoldWidget()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"toggleParentFoldWidget",bindKey:o("Alt-F2","Alt-F2"),exec:function(e){e.session.toggleFoldWidget(!0)},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"foldall",bindKey:o(null,"Ctrl-Command-Option-0"),exec:function(e){e.session.foldAll()},scrollIntoView:"center",readOnly:!0},{name:"foldOther",bindKey:o("Alt-0","Command-Option-0"),exec:function(e){e.session.foldAll(),e.session.unfold(e.selection.getAllRanges())},scrollIntoView:"center",readOnly:!0},{name:"unfoldall",bindKey:o("Alt-Shift-0","Command-Option-Shift-0"),exec:function(e){e.session.unfold()},scrollIntoView:"center",readOnly:!0},{name:"findnext",bindKey:o("Ctrl-K","Command-G"),exec:function(e){e.findNext()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"findprevious",bindKey:o("Ctrl-Shift-K","Command-Shift-G"),exec:function(e){e.findPrevious()},multiSelectAction:"forEach",scrollIntoView:"center",readOnly:!0},{name:"selectOrFindNext",bindKey:o("Alt-K","Ctrl-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findNext()},readOnly:!0},{name:"selectOrFindPrevious",bindKey:o("Alt-Shift-K","Ctrl-Shift-G"),exec:function(e){e.selection.isEmpty()?e.selection.selectWord():e.findPrevious()},readOnly:!0},{name:"find",bindKey:o("Ctrl-F","Command-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e)})},readOnly:!0},{name:"overwrite",bindKey:"Insert",exec:function(e){e.toggleOverwrite()},readOnly:!0},{name:"selecttostart",bindKey:o("Ctrl-Shift-Home","Command-Shift-Home|Command-Shift-Up"),exec:function(e){e.getSelection().selectFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotostart",bindKey:o("Ctrl-Home","Command-Home|Command-Up"),exec:function(e){e.navigateFileStart()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectup",bindKey:o("Shift-Up","Shift-Up|Ctrl-Shift-P"),exec:function(e){e.getSelection().selectUp()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golineup",bindKey:o("Up","Up|Ctrl-P"),exec:function(e,t){e.navigateUp(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttoend",bindKey:o("Ctrl-Shift-End","Command-Shift-End|Command-Shift-Down"),exec:function(e){e.getSelection().selectFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"gotoend",bindKey:o("Ctrl-End","Command-End|Command-Down"),exec:function(e){e.navigateFileEnd()},multiSelectAction:"forEach",readOnly:!0,scrollIntoView:"animate",aceCommandGroup:"fileJump"},{name:"selectdown",bindKey:o("Shift-Down","Shift-Down|Ctrl-Shift-N"),exec:function(e){e.getSelection().selectDown()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"golinedown",bindKey:o("Down","Down|Ctrl-N"),exec:function(e,t){e.navigateDown(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordleft",bindKey:o("Ctrl-Shift-Left","Option-Shift-Left"),exec:function(e){e.getSelection().selectWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordleft",bindKey:o("Ctrl-Left","Option-Left"),exec:function(e){e.navigateWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolinestart",bindKey:o("Alt-Shift-Left","Command-Shift-Left|Ctrl-Shift-A"),exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolinestart",bindKey:o("Alt-Left|Home","Command-Left|Home|Ctrl-A"),exec:function(e){e.navigateLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectleft",bindKey:o("Shift-Left","Shift-Left|Ctrl-Shift-B"),exec:function(e){e.getSelection().selectLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoleft",bindKey:o("Left","Left|Ctrl-B"),exec:function(e,t){e.navigateLeft(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectwordright",bindKey:o("Ctrl-Shift-Right","Option-Shift-Right"),exec:function(e){e.getSelection().selectWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotowordright",bindKey:o("Ctrl-Right","Option-Right"),exec:function(e){e.navigateWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selecttolineend",bindKey:o("Alt-Shift-Right","Command-Shift-Right|Shift-End|Ctrl-Shift-E"),exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotolineend",bindKey:o("Alt-Right|End","Command-Right|End|Ctrl-E"),exec:function(e){e.navigateLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectright",bindKey:o("Shift-Right","Shift-Right"),exec:function(e){e.getSelection().selectRight()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"gotoright",bindKey:o("Right","Right|Ctrl-F"),exec:function(e,t){e.navigateRight(t.times)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectpagedown",bindKey:"Shift-PageDown",exec:function(e){e.selectPageDown()},readOnly:!0},{name:"pagedown",bindKey:o(null,"Option-PageDown"),exec:function(e){e.scrollPageDown()},readOnly:!0},{name:"gotopagedown",bindKey:o("PageDown","PageDown|Ctrl-V"),exec:function(e){e.gotoPageDown()},readOnly:!0},{name:"selectpageup",bindKey:"Shift-PageUp",exec:function(e){e.selectPageUp()},readOnly:!0},{name:"pageup",bindKey:o(null,"Option-PageUp"),exec:function(e){e.scrollPageUp()},readOnly:!0},{name:"gotopageup",bindKey:"PageUp",exec:function(e){e.gotoPageUp()},readOnly:!0},{name:"scrollup",bindKey:o("Ctrl-Up",null),exec:function(e){e.renderer.scrollBy(0,-2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"scrolldown",bindKey:o("Ctrl-Down",null),exec:function(e){e.renderer.scrollBy(0,2*e.renderer.layerConfig.lineHeight)},readOnly:!0},{name:"selectlinestart",bindKey:"Shift-Home",exec:function(e){e.getSelection().selectLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"selectlineend",bindKey:"Shift-End",exec:function(e){e.getSelection().selectLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"togglerecording",bindKey:o("Ctrl-Alt-E","Command-Option-E"),exec:function(e){e.commands.toggleRecording(e)},readOnly:!0},{name:"replaymacro",bindKey:o("Ctrl-Shift-E","Command-Shift-E"),exec:function(e){e.commands.replay(e)},readOnly:!0},{name:"jumptomatching",bindKey:o("Ctrl-P","Ctrl-P"),exec:function(e){e.jumpToMatching()},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"selecttomatching",bindKey:o("Ctrl-Shift-P","Ctrl-Shift-P"),exec:function(e){e.jumpToMatching(!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"expandToMatching",bindKey:o("Ctrl-Shift-M","Ctrl-Shift-M"),exec:function(e){e.jumpToMatching(!0,!0)},multiSelectAction:"forEach",scrollIntoView:"animate",readOnly:!0},{name:"passKeysToBrowser",bindKey:o(null,null),exec:function(){},passEvent:!0,readOnly:!0},{name:"copy",exec:function(e){},readOnly:!0},{name:"cut",exec:function(e){var t=e.getSelectionRange();e._emit("cut",t),e.selection.isEmpty()||(e.session.remove(t),e.clearSelection())},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"paste",exec:function(e,t){e.$handlePaste(t)},scrollIntoView:"cursor"},{name:"removeline",bindKey:o("Ctrl-D","Command-D"),exec:function(e){e.removeLines()},scrollIntoView:"cursor",multiSelectAction:"forEachLine"},{name:"duplicateSelection",bindKey:o("Ctrl-Shift-D","Command-Shift-D"),exec:function(e){e.duplicateSelection()},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"sortlines",bindKey:o("Ctrl-Alt-S","Command-Alt-S"),exec:function(e){e.sortLines()},scrollIntoView:"selection",multiSelectAction:"forEachLine"},{name:"togglecomment",bindKey:o("Ctrl-/","Command-/"),exec:function(e){e.toggleCommentLines()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"toggleBlockComment",bindKey:o("Ctrl-Shift-/","Command-Shift-/"),exec:function(e){e.toggleBlockComment()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"modifyNumberUp",bindKey:o("Ctrl-Shift-Up","Alt-Shift-Up"),exec:function(e){e.modifyNumber(1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"modifyNumberDown",bindKey:o("Ctrl-Shift-Down","Alt-Shift-Down"),exec:function(e){e.modifyNumber(-1)},scrollIntoView:"cursor",multiSelectAction:"forEach"},{name:"replace",bindKey:o("Ctrl-H","Command-Option-F"),exec:function(e){i.loadModule("ace/ext/searchbox",function(t){t.Search(e,!0)})}},{name:"undo",bindKey:o("Ctrl-Z","Command-Z"),exec:function(e){e.undo()}},{name:"redo",bindKey:o("Ctrl-Shift-Z|Ctrl-Y","Command-Shift-Z|Command-Y"),exec:function(e){e.redo()}},{name:"copylinesup",bindKey:o("Alt-Shift-Up","Command-Option-Up"),exec:function(e){e.copyLinesUp()},scrollIntoView:"cursor"},{name:"movelinesup",bindKey:o("Alt-Up","Option-Up"),exec:function(e){e.moveLinesUp()},scrollIntoView:"cursor"},{name:"copylinesdown",bindKey:o("Alt-Shift-Down","Command-Option-Down"),exec:function(e){e.copyLinesDown()},scrollIntoView:"cursor"},{name:"movelinesdown",bindKey:o("Alt-Down","Option-Down"),exec:function(e){e.moveLinesDown()},scrollIntoView:"cursor"},{name:"del",bindKey:o("Delete","Delete|Ctrl-D|Shift-Delete"),exec:function(e){e.remove("right")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"backspace",bindKey:o("Shift-Backspace|Backspace","Ctrl-Backspace|Shift-Backspace|Backspace|Ctrl-H"),exec:function(e){e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"cut_or_delete",bindKey:o("Shift-Delete",null),exec:function(e){if(!e.selection.isEmpty())return!1;e.remove("left")},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolinestart",bindKey:o("Alt-Backspace","Command-Backspace"),exec:function(e){e.removeToLineStart()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removetolineend",bindKey:o("Alt-Delete","Ctrl-K"),exec:function(e){e.removeToLineEnd()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordleft",bindKey:o("Ctrl-Backspace","Alt-Backspace|Ctrl-Alt-Backspace"),exec:function(e){e.removeWordLeft()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"removewordright",bindKey:o("Ctrl-Delete","Alt-Delete"),exec:function(e){e.removeWordRight()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"outdent",bindKey:o("Shift-Tab","Shift-Tab"),exec:function(e){e.blockOutdent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"indent",bindKey:o("Tab","Tab"),exec:function(e){e.indent()},multiSelectAction:"forEach",scrollIntoView:"selectionPart"},{name:"blockoutdent",bindKey:o("Ctrl-[","Ctrl-["),exec:function(e){e.blockOutdent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"blockindent",bindKey:o("Ctrl-]","Ctrl-]"),exec:function(e){e.blockIndent()},multiSelectAction:"forEachLine",scrollIntoView:"selectionPart"},{name:"insertstring",exec:function(e,t){e.insert(t)},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"inserttext",exec:function(e,t){e.insert(r.stringRepeat(t.text||"",t.times||1))},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"splitline",bindKey:o(null,"Ctrl-O"),exec:function(e){e.splitLine()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"transposeletters",bindKey:o("Ctrl-T","Ctrl-T"),exec:function(e){e.transposeLetters()},multiSelectAction:function(e){e.transposeSelections(1)},scrollIntoView:"cursor"},{name:"touppercase",bindKey:o("Ctrl-U","Ctrl-U"),exec:function(e){e.toUpperCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"tolowercase",bindKey:o("Ctrl-Shift-U","Ctrl-Shift-U"),exec:function(e){e.toLowerCase()},multiSelectAction:"forEach",scrollIntoView:"cursor"},{name:"expandtoline",bindKey:o("Ctrl-Shift-L","Command-Shift-L"),exec:function(e){var t=e.selection.getRange();t.start.column=t.end.column=0,t.end.row++,e.selection.setRange(t,!1)},multiSelectAction:"forEach",scrollIntoView:"cursor",readOnly:!0},{name:"joinlines",bindKey:o(null,null),exec:function(e){var t=e.selection.isBackwards(),n=t?e.selection.getSelectionLead():e.selection.getSelectionAnchor(),i=t?e.selection.getSelectionAnchor():e.selection.getSelectionLead(),o=e.session.doc.getLine(n.row).length,u=e.session.doc.getTextRange(e.selection.getRange()),a=u.replace(/\n\s*/," ").length,f=e.session.doc.getLine(n.row);for(var l=n.row+1;l<=i.row+1;l++){var c=r.stringTrimLeft(r.stringTrimRight(e.session.doc.getLine(l)));c.length!==0&&(c=" "+c),f+=c}i.row+1<e.session.doc.getLength()-1&&(f+=e.session.doc.getNewLineCharacter()),e.clearSelection(),e.session.doc.replace(new s(n.row,0,i.row+2,0),f),a>0?(e.selection.moveCursorTo(n.row,n.column),e.selection.selectTo(n.row,n.column+a)):(o=e.session.doc.getLine(n.row).length>o?o+1:o,e.selection.moveCursorTo(n.row,o))},multiSelectAction:"forEach",readOnly:!0},{name:"invertSelection",bindKey:o(null,null),exec:function(e){var t=e.session.doc.getLength()-1,n=e.session.doc.getLine(t).length,r=e.selection.rangeList.ranges,i=[];r.length<1&&(r=[e.selection.getRange()]);for(var o=0;o<r.length;o++)o==r.length-1&&(r[o].end.row!==t||r[o].end.column!==n)&&i.push(new s(r[o].end.row,r[o].end.column,t,n)),o===0?(r[o].start.row!==0||r[o].start.column!==0)&&i.push(new s(0,0,r[o].start.row,r[o].start.column)):i.push(new s(r[o-1].end.row,r[o-1].end.column,r[o].start.row,r[o].start.column));e.exitMultiSelectMode(),e.clearSelection();for(var o=0;o<i.length;o++)e.selection.addRange(i[o],!1)},readOnly:!0,scrollIntoView:"none"}]}),define("ace/editor",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/keyboard/textinput","ace/mouse/mouse_handler","ace/mouse/fold_handler","ace/keyboard/keybinding","ace/edit_session","ace/search","ace/range","ace/lib/event_emitter","ace/commands/command_manager","ace/commands/default_commands","ace/config","ace/token_iterator"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/lang"),o=e("./lib/useragent"),u=e("./keyboard/textinput").TextInput,a=e("./mouse/mouse_handler").MouseHandler,f=e("./mouse/fold_handler").FoldHandler,l=e("./keyboard/keybinding").KeyBinding,c=e("./edit_session").EditSession,h=e("./search").Search,p=e("./range").Range,d=e("./lib/event_emitter").EventEmitter,v=e("./commands/command_manager").CommandManager,m=e("./commands/default_commands").commands,g=e("./config"),y=e("./token_iterator").TokenIterator,b=function(e,t){var n=e.getContainerElement();this.container=n,this.renderer=e,this.commands=new v(o.isMac?"mac":"win",m),this.textInput=new u(e.getTextAreaContainer(),this),this.renderer.textarea=this.textInput.getElement(),this.keyBinding=new l(this),this.$mouseHandler=new a(this),new f(this),this.$blockScrolling=0,this.$search=(new h).set({wrap:!0}),this.$historyTracker=this.$historyTracker.bind(this),this.commands.on("exec",this.$historyTracker),this.$initOperationListeners(),this._$emitInputEvent=s.delayedCall(function(){this._signal("input",{}),this.session&&this.session.bgTokenizer&&this.session.bgTokenizer.scheduleStart()}.bind(this)),this.on("change",function(e,t){t._$emitInputEvent.schedule(31)}),this.setSession(t||new c("")),g.resetOptions(this),g._signal("editor",this)};(function(){r.implement(this,d),this.$initOperationListeners=function(){function e(e){return e[e.length-1]}this.selections=[],this.commands.on("exec",this.startOperation.bind(this),!0),this.commands.on("afterExec",this.endOperation.bind(this),!0),this.$opResetTimer=s.delayedCall(this.endOperation.bind(this)),this.on("change",function(){this.curOp||this.startOperation(),this.curOp.docChanged=!0}.bind(this),!0),this.on("changeSelection",function(){this.curOp||this.startOperation(),this.curOp.selectionChanged=!0}.bind(this),!0)},this.curOp=null,this.prevOp={},this.startOperation=function(e){if(this.curOp){if(!e||this.curOp.command)return;this.prevOp=this.curOp}e||(this.previousCommand=null,e={}),this.$opResetTimer.schedule(),this.curOp={command:e.command||{},args:e.args,scrollTop:this.renderer.scrollTop},this.curOp.command.name&&this.curOp.command.scrollIntoView!==undefined&&this.$blockScrolling++},this.endOperation=function(e){if(this.curOp){if(e&&e.returnValue===!1)return this.curOp=null;this._signal("beforeEndOperation");var t=this.curOp.command;t.name&&this.$blockScrolling>0&&this.$blockScrolling--;var n=t&&t.scrollIntoView;if(n){switch(n){case"center-animate":n="animate";case"center":this.renderer.scrollCursorIntoView(null,.5);break;case"animate":case"cursor":this.renderer.scrollCursorIntoView();break;case"selectionPart":var r=this.selection.getRange(),i=this.renderer.layerConfig;(r.start.row>=i.lastRow||r.end.row<=i.firstRow)&&this.renderer.scrollSelectionIntoView(this.selection.anchor,this.selection.lead);break;default:}n=="animate"&&this.renderer.animateScrolling(this.curOp.scrollTop)}this.prevOp=this.curOp,this.curOp=null}},this.$mergeableCommands=["backspace","del","insertstring"],this.$historyTracker=function(e){if(!this.$mergeUndoDeltas)return;var t=this.prevOp,n=this.$mergeableCommands,r=t.command&&e.command.name==t.command.name;if(e.command.name=="insertstring"){var i=e.args;this.mergeNextCommand===undefined&&(this.mergeNextCommand=!0),r=r&&this.mergeNextCommand&&(!/\s/.test(i)||/\s/.test(t.args)),this.mergeNextCommand=!0}else r=r&&n.indexOf(e.command.name)!==-1;this.$mergeUndoDeltas!="always"&&Date.now()-this.sequenceStartTime>2e3&&(r=!1),r?this.session.mergeUndoDeltas=!0:n.indexOf(e.command.name)!==-1&&(this.sequenceStartTime=Date.now())},this.setKeyboardHandler=function(e,t){if(e&&typeof e=="string"){this.$keybindingId=e;var n=this;g.loadModule(["keybinding",e],function(r){n.$keybindingId==e&&n.keyBinding.setKeyboardHandler(r&&r.handler),t&&t()})}else this.$keybindingId=null,this.keyBinding.setKeyboardHandler(e),t&&t()},this.getKeyboardHandler=function(){return this.keyBinding.getKeyboardHandler()},this.setSession=function(e){if(this.session==e)return;this.curOp&&this.endOperation(),this.curOp={};var t=this.session;if(t){this.session.off("change",this.$onDocumentChange),this.session.off("changeMode",this.$onChangeMode),this.session.off("tokenizerUpdate",this.$onTokenizerUpdate),this.session.off("changeTabSize",this.$onChangeTabSize),this.session.off("changeWrapLimit",this.$onChangeWrapLimit),this.session.off("changeWrapMode",this.$onChangeWrapMode),this.session.off("changeFold",this.$onChangeFold),this.session.off("changeFrontMarker",this.$onChangeFrontMarker),this.session.off("changeBackMarker",this.$onChangeBackMarker),this.session.off("changeBreakpoint",this.$onChangeBreakpoint),this.session.off("changeAnnotation",this.$onChangeAnnotation),this.session.off("changeOverwrite",this.$onCursorChange),this.session.off("changeScrollTop",this.$onScrollTopChange),this.session.off("changeScrollLeft",this.$onScrollLeftChange);var n=this.session.getSelection();n.off("changeCursor",this.$onCursorChange),n.off("changeSelection",this.$onSelectionChange)}this.session=e,e?(this.$onDocumentChange=this.onDocumentChange.bind(this),e.on("change",this.$onDocumentChange),this.renderer.setSession(e),this.$onChangeMode=this.onChangeMode.bind(this),e.on("changeMode",this.$onChangeMode),this.$onTokenizerUpdate=this.onTokenizerUpdate.bind(this),e.on("tokenizerUpdate",this.$onTokenizerUpdate),this.$onChangeTabSize=this.renderer.onChangeTabSize.bind(this.renderer),e.on("changeTabSize",this.$onChangeTabSize),this.$onChangeWrapLimit=this.onChangeWrapLimit.bind(this),e.on("changeWrapLimit",this.$onChangeWrapLimit),this.$onChangeWrapMode=this.onChangeWrapMode.bind(this),e.on("changeWrapMode",this.$onChangeWrapMode),this.$onChangeFold=this.onChangeFold.bind(this),e.on("changeFold",this.$onChangeFold),this.$onChangeFrontMarker=this.onChangeFrontMarker.bind(this),this.session.on("changeFrontMarker",this.$onChangeFrontMarker),this.$onChangeBackMarker=this.onChangeBackMarker.bind(this),this.session.on("changeBackMarker",this.$onChangeBackMarker),this.$onChangeBreakpoint=this.onChangeBreakpoint.bind(this),this.session.on("changeBreakpoint",this.$onChangeBreakpoint),this.$onChangeAnnotation=this.onChangeAnnotation.bind(this),this.session.on("changeAnnotation",this.$onChangeAnnotation),this.$onCursorChange=this.onCursorChange.bind(this),this.session.on("changeOverwrite",this.$onCursorChange),this.$onScrollTopChange=this.onScrollTopChange.bind(this),this.session.on("changeScrollTop",this.$onScrollTopChange),this.$onScrollLeftChange=this.onScrollLeftChange.bind(this),this.session.on("changeScrollLeft",this.$onScrollLeftChange),this.selection=e.getSelection(),this.selection.on("changeCursor",this.$onCursorChange),this.$onSelectionChange=this.onSelectionChange.bind(this),this.selection.on("changeSelection",this.$onSelectionChange),this.onChangeMode(),this.$blockScrolling+=1,this.onCursorChange(),this.$blockScrolling-=1,this.onScrollTopChange(),this.onScrollLeftChange(),this.onSelectionChange(),this.onChangeFrontMarker(),this.onChangeBackMarker(),this.onChangeBreakpoint(),this.onChangeAnnotation(),this.session.getUseWrapMode()&&this.renderer.adjustWrapLimit(),this.renderer.updateFull()):(this.selection=null,this.renderer.setSession(e)),this._signal("changeSession",{session:e,oldSession:t}),this.curOp=null,t&&t._signal("changeEditor",{oldEditor:this}),e&&e._signal("changeEditor",{editor:this})},this.getSession=function(){return this.session},this.setValue=function(e,t){return this.session.doc.setValue(e),t?t==1?this.navigateFileEnd():t==-1&&this.navigateFileStart():this.selectAll(),e},this.getValue=function(){return this.session.getValue()},this.getSelection=function(){return this.selection},this.resize=function(e){this.renderer.onResize(e)},this.setTheme=function(e,t){this.renderer.setTheme(e,t)},this.getTheme=function(){return this.renderer.getTheme()},this.setStyle=function(e){this.renderer.setStyle(e)},this.unsetStyle=function(e){this.renderer.unsetStyle(e)},this.getFontSize=function(){return this.getOption("fontSize")||i.computedStyle(this.container,"fontSize")},this.setFontSize=function(e){this.setOption("fontSize",e)},this.$highlightBrackets=function(){this.session.$bracketHighlight&&(this.session.removeMarker(this.session.$bracketHighlight),this.session.$bracketHighlight=null);if(this.$highlightPending)return;var e=this;this.$highlightPending=!0,setTimeout(function(){e.$highlightPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=t.findMatchingBracket(e.getCursorPosition());if(n)var r=new p(n.row,n.column,n.row,n.column+1);else if(t.$mode.getMatching)var r=t.$mode.getMatching(e.session);r&&(t.$bracketHighlight=t.addMarker(r,"ace_bracket","text"))},50)},this.$highlightTags=function(){if(this.$highlightTagPending)return;var e=this;this.$highlightTagPending=!0,setTimeout(function(){e.$highlightTagPending=!1;var t=e.session;if(!t||!t.bgTokenizer)return;var n=e.getCursorPosition(),r=new y(e.session,n.row,n.column),i=r.getCurrentToken();if(!i||!/\b(?:tag-open|tag-name)/.test(i.type)){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}if(i.type.indexOf("tag-open")!=-1){i=r.stepForward();if(!i)return}var s=i.value,o=0,u=r.stepBackward();if(u.value=="<"){do u=i,i=r.stepForward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(i&&o>=0)}else{do i=u,u=r.stepBackward(),i&&i.value===s&&i.type.indexOf("tag-name")!==-1&&(u.value==="<"?o++:u.value==="</"&&o--);while(u&&o<=0);r.stepForward()}if(!i){t.removeMarker(t.$tagHighlight),t.$tagHighlight=null;return}var a=r.getCurrentTokenRow(),f=r.getCurrentTokenColumn(),l=new p(a,f,a,f+i.value.length),c=t.$backMarkers[t.$tagHighlight];t.$tagHighlight&&c!=undefined&&l.compareRange(c.range)!==0&&(t.removeMarker(t.$tagHighlight),t.$tagHighlight=null),l&&!t.$tagHighlight&&(t.$tagHighlight=t.addMarker(l,"ace_bracket","text"))},50)},this.focus=function(){var e=this;setTimeout(function(){e.textInput.focus()}),this.textInput.focus()},this.isFocused=function(){return this.textInput.isFocused()},this.blur=function(){this.textInput.blur()},this.onFocus=function(e){if(this.$isFocused)return;this.$isFocused=!0,this.renderer.showCursor(),this.renderer.visualizeFocus(),this._emit("focus",e)},this.onBlur=function(e){if(!this.$isFocused)return;this.$isFocused=!1,this.renderer.hideCursor(),this.renderer.visualizeBlur(),this._emit("blur",e)},this.$cursorChange=function(){this.renderer.updateCursor()},this.onDocumentChange=function(e){var t=this.session.$useWrapMode,n=e.start.row==e.end.row?e.end.row:Infinity;this.renderer.updateLines(e.start.row,n,t),this._signal("change",e),this.$cursorChange(),this.$updateHighlightActiveLine()},this.onTokenizerUpdate=function(e){var t=e.data;this.renderer.updateLines(t.first,t.last)},this.onScrollTopChange=function(){this.renderer.scrollToY(this.session.getScrollTop())},this.onScrollLeftChange=function(){this.renderer.scrollToX(this.session.getScrollLeft())},this.onCursorChange=function(){this.$cursorChange(),this.$blockScrolling||(g.warn("Automatically scrolling cursor into view after selection change","this will be disabled in the next version","set editor.$blockScrolling = Infinity to disable this message"),this.renderer.scrollCursorIntoView()),this.$highlightBrackets(),this.$highlightTags(),this.$updateHighlightActiveLine(),this._signal("changeSelection")},this.$updateHighlightActiveLine=function(){var e=this.getSession(),t;if(this.$highlightActiveLine){if(this.$selectionStyle!="line"||!this.selection.isMultiLine())t=this.getCursorPosition();this.renderer.$maxLines&&this.session.getLength()===1&&!(this.renderer.$minLines>1)&&(t=!1)}if(e.$highlightLineMarker&&!t)e.removeMarker(e.$highlightLineMarker.id),e.$highlightLineMarker=null;else if(!e.$highlightLineMarker&&t){var n=new p(t.row,t.column,t.row,Infinity);n.id=e.addMarker(n,"ace_active-line","screenLine"),e.$highlightLineMarker=n}else t&&(e.$highlightLineMarker.start.row=t.row,e.$highlightLineMarker.end.row=t.row,e.$highlightLineMarker.start.column=t.column,e._signal("changeBackMarker"))},this.onSelectionChange=function(e){var t=this.session;t.$selectionMarker&&t.removeMarker(t.$selectionMarker),t.$selectionMarker=null;if(!this.selection.isEmpty()){var n=this.selection.getRange(),r=this.getSelectionStyle();t.$selectionMarker=t.addMarker(n,"ace_selection",r)}else this.$updateHighlightActiveLine();var i=this.$highlightSelectedWord&&this.$getSelectionHighLightRegexp();this.session.highlight(i),this._signal("changeSelection")},this.$getSelectionHighLightRegexp=function(){var e=this.session,t=this.getSelectionRange();if(t.isEmpty()||t.isMultiLine())return;var n=t.start.column-1,r=t.end.column+1,i=e.getLine(t.start.row),s=i.length,o=i.substring(Math.max(n,0),Math.min(r,s));if(n>=0&&/^[\w\d]/.test(o)||r<=s&&/[\w\d]$/.test(o))return;o=i.substring(t.start.column,t.end.column);if(!/^[\w\d]+$/.test(o))return;var u=this.$search.$assembleRegExp({wholeWord:!0,caseSensitive:!0,needle:o});return u},this.onChangeFrontMarker=function(){this.renderer.updateFrontMarkers()},this.onChangeBackMarker=function(){this.renderer.updateBackMarkers()},this.onChangeBreakpoint=function(){this.renderer.updateBreakpoints()},this.onChangeAnnotation=function(){this.renderer.setAnnotations(this.session.getAnnotations())},this.onChangeMode=function(e){this.renderer.updateText(),this._emit("changeMode",e)},this.onChangeWrapLimit=function(){this.renderer.updateFull()},this.onChangeWrapMode=function(){this.renderer.onResize(!0)},this.onChangeFold=function(){this.$updateHighlightActiveLine(),this.renderer.updateFull()},this.getSelectedText=function(){return this.session.getTextRange(this.getSelectionRange())},this.getCopyText=function(){var e=this.getSelectedText();return this._signal("copy",e),e},this.onCopy=function(){this.commands.exec("copy",this)},this.onCut=function(){this.commands.exec("cut",this)},this.onPaste=function(e,t){var n={text:e,event:t};this.commands.exec("paste",this,n)},this.$handlePaste=function(e){typeof e=="string"&&(e={text:e}),this._signal("paste",e);var t=e.text;if(!this.inMultiSelectMode||this.inVirtualSelectionMode)this.insert(t);else{var n=t.split(/\r\n|\r|\n/),r=this.selection.rangeList.ranges;if(n.length>r.length||n.length<2||!n[1])return this.commands.exec("insertstring",this,t);for(var i=r.length;i--;){var s=r[i];s.isEmpty()||this.session.remove(s),this.session.insert(s.start,n[i])}}},this.execCommand=function(e,t){return this.commands.exec(e,this,t)},this.insert=function(e,t){var n=this.session,r=n.getMode(),i=this.getCursorPosition();if(this.getBehavioursEnabled()&&!t){var s=r.transformAction(n.getState(i.row),"insertion",this,n,e);s&&(e!==s.text&&(this.session.mergeUndoDeltas=!1,this.$mergeNextCommand=!1),e=s.text)}e=="	"&&(e=this.session.getTabString());if(!this.selection.isEmpty()){var o=this.getSelectionRange();i=this.session.remove(o),this.clearSelection()}else if(this.session.getOverwrite()){var o=new p.fromPoints(i,i);o.end.column+=e.length,this.session.remove(o)}if(e=="\n"||e=="\r\n"){var u=n.getLine(i.row);if(i.column>u.search(/\S|$/)){var a=u.substr(i.column).search(/\S|$/);n.doc.removeInLine(i.row,i.column,i.column+a)}}this.clearSelection();var f=i.column,l=n.getState(i.row),u=n.getLine(i.row),c=r.checkOutdent(l,u,e),h=n.insert(i,e);s&&s.selection&&(s.selection.length==2?this.selection.setSelectionRange(new p(i.row,f+s.selection[0],i.row,f+s.selection[1])):this.selection.setSelectionRange(new p(i.row+s.selection[0],s.selection[1],i.row+s.selection[2],s.selection[3])));if(n.getDocument().isNewLine(e)){var d=r.getNextLineIndent(l,u.slice(0,i.column),n.getTabString());n.insert({row:i.row+1,column:0},d)}c&&r.autoOutdent(l,n,i.row)},this.onTextInput=function(e){this.keyBinding.onTextInput(e)},this.onCommandKey=function(e,t,n){this.keyBinding.onCommandKey(e,t,n)},this.setOverwrite=function(e){this.session.setOverwrite(e)},this.getOverwrite=function(){return this.session.getOverwrite()},this.toggleOverwrite=function(){this.session.toggleOverwrite()},this.setScrollSpeed=function(e){this.setOption("scrollSpeed",e)},this.getScrollSpeed=function(){return this.getOption("scrollSpeed")},this.setDragDelay=function(e){this.setOption("dragDelay",e)},this.getDragDelay=function(){return this.getOption("dragDelay")},this.setSelectionStyle=function(e){this.setOption("selectionStyle",e)},this.getSelectionStyle=function(){return this.getOption("selectionStyle")},this.setHighlightActiveLine=function(e){this.setOption("highlightActiveLine",e)},this.getHighlightActiveLine=function(){return this.getOption("highlightActiveLine")},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.setHighlightSelectedWord=function(e){this.setOption("highlightSelectedWord",e)},this.getHighlightSelectedWord=function(){return this.$highlightSelectedWord},this.setAnimatedScroll=function(e){this.renderer.setAnimatedScroll(e)},this.getAnimatedScroll=function(){return this.renderer.getAnimatedScroll()},this.setShowInvisibles=function(e){this.renderer.setShowInvisibles(e)},this.getShowInvisibles=function(){return this.renderer.getShowInvisibles()},this.setDisplayIndentGuides=function(e){this.renderer.setDisplayIndentGuides(e)},this.getDisplayIndentGuides=function(){return this.renderer.getDisplayIndentGuides()},this.setShowPrintMargin=function(e){this.renderer.setShowPrintMargin(e)},this.getShowPrintMargin=function(){return this.renderer.getShowPrintMargin()},this.setPrintMarginColumn=function(e){this.renderer.setPrintMarginColumn(e)},this.getPrintMarginColumn=function(){return this.renderer.getPrintMarginColumn()},this.setReadOnly=function(e){this.setOption("readOnly",e)},this.getReadOnly=function(){return this.getOption("readOnly")},this.setBehavioursEnabled=function(e){this.setOption("behavioursEnabled",e)},this.getBehavioursEnabled=function(){return this.getOption("behavioursEnabled")},this.setWrapBehavioursEnabled=function(e){this.setOption("wrapBehavioursEnabled",e)},this.getWrapBehavioursEnabled=function(){return this.getOption("wrapBehavioursEnabled")},this.setShowFoldWidgets=function(e){this.setOption("showFoldWidgets",e)},this.getShowFoldWidgets=function(){return this.getOption("showFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.remove=function(e){this.selection.isEmpty()&&(e=="left"?this.selection.selectLeft():this.selection.selectRight());var t=this.getSelectionRange();if(this.getBehavioursEnabled()){var n=this.session,r=n.getState(t.start.row),i=n.getMode().transformAction(r,"deletion",this,n,t);if(t.end.column===0){var s=n.getTextRange(t);if(s[s.length-1]=="\n"){var o=n.getLine(t.end.row);/^\s+$/.test(o)&&(t.end.column=o.length)}}i&&(t=i)}this.session.remove(t),this.clearSelection()},this.removeWordRight=function(){this.selection.isEmpty()&&this.selection.selectWordRight(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeWordLeft=function(){this.selection.isEmpty()&&this.selection.selectWordLeft(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineStart=function(){this.selection.isEmpty()&&this.selection.selectLineStart(),this.session.remove(this.getSelectionRange()),this.clearSelection()},this.removeToLineEnd=function(){this.selection.isEmpty()&&this.selection.selectLineEnd();var e=this.getSelectionRange();e.start.column==e.end.column&&e.start.row==e.end.row&&(e.end.column=0,e.end.row++),this.session.remove(e),this.clearSelection()},this.splitLine=function(){this.selection.isEmpty()||(this.session.remove(this.getSelectionRange()),this.clearSelection());var e=this.getCursorPosition();this.insert("\n"),this.moveCursorToPosition(e)},this.transposeLetters=function(){if(!this.selection.isEmpty())return;var e=this.getCursorPosition(),t=e.column;if(t===0)return;var n=this.session.getLine(e.row),r,i;t<n.length?(r=n.charAt(t)+n.charAt(t-1),i=new p(e.row,t-1,e.row,t+1)):(r=n.charAt(t-1)+n.charAt(t-2),i=new p(e.row,t-2,e.row,t)),this.session.replace(i,r)},this.toLowerCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toLowerCase()),this.selection.setSelectionRange(e)},this.toUpperCase=function(){var e=this.getSelectionRange();this.selection.isEmpty()&&this.selection.selectWord();var t=this.getSelectionRange(),n=this.session.getTextRange(t);this.session.replace(t,n.toUpperCase()),this.selection.setSelectionRange(e)},this.indent=function(){var e=this.session,t=this.getSelectionRange();if(t.start.row<t.end.row){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}if(t.start.column<t.end.column){var r=e.getTextRange(t);if(!/^\s+$/.test(r)){var n=this.$getSelectedRows();e.indentRows(n.first,n.last,"	");return}}var i=e.getLine(t.start.row),o=t.start,u=e.getTabSize(),a=e.documentToScreenColumn(o.row,o.column);if(this.session.getUseSoftTabs())var f=u-a%u,l=s.stringRepeat(" ",f);else{var f=a%u;while(i[t.start.column-1]==" "&&f)t.start.column--,f--;this.selection.setSelectionRange(t),l="	"}return this.insert(l)},this.blockIndent=function(){var e=this.$getSelectedRows();this.session.indentRows(e.first,e.last,"	")},this.blockOutdent=function(){var e=this.session.getSelection();this.session.outdentRows(e.getRange())},this.sortLines=function(){var e=this.$getSelectedRows(),t=this.session,n=[];for(i=e.first;i<=e.last;i++)n.push(t.getLine(i));n.sort(function(e,t){return e.toLowerCase()<t.toLowerCase()?-1:e.toLowerCase()>t.toLowerCase()?1:0});var r=new p(0,0,0,0);for(var i=e.first;i<=e.last;i++){var s=t.getLine(i);r.start.row=i,r.end.row=i,r.end.column=s.length,t.replace(r,n[i-e.first])}},this.toggleCommentLines=function(){var e=this.session.getState(this.getCursorPosition().row),t=this.$getSelectedRows();this.session.getMode().toggleCommentLines(e,this.session,t.first,t.last)},this.toggleBlockComment=function(){var e=this.getCursorPosition(),t=this.session.getState(e.row),n=this.getSelectionRange();this.session.getMode().toggleBlockComment(t,this.session,n,e)},this.getNumberAt=function(e,t){var n=/[\-]?[0-9]+(?:\.[0-9]+)?/g;n.lastIndex=0;var r=this.session.getLine(e);while(n.lastIndex<t){var i=n.exec(r);if(i.index<=t&&i.index+i[0].length>=t){var s={value:i[0],start:i.index,end:i.index+i[0].length};return s}}return null},this.modifyNumber=function(e){var t=this.selection.getCursor().row,n=this.selection.getCursor().column,r=new p(t,n-1,t,n),i=this.session.getTextRange(r);if(!isNaN(parseFloat(i))&&isFinite(i)){var s=this.getNumberAt(t,n);if(s){var o=s.value.indexOf(".")>=0?s.start+s.value.indexOf(".")+1:s.end,u=s.start+s.value.length-o,a=parseFloat(s.value);a*=Math.pow(10,u),o!==s.end&&n<o?e*=Math.pow(10,s.end-n-1):e*=Math.pow(10,s.end-n),a+=e,a/=Math.pow(10,u);var f=a.toFixed(u),l=new p(t,s.start,t,s.end);this.session.replace(l,f),this.moveCursorTo(t,Math.max(s.start+1,n+f.length-s.value.length))}}},this.removeLines=function(){var e=this.$getSelectedRows();this.session.removeFullLines(e.first,e.last),this.clearSelection()},this.duplicateSelection=function(){var e=this.selection,t=this.session,n=e.getRange(),r=e.isBackwards();if(n.isEmpty()){var i=n.start.row;t.duplicateLines(i,i)}else{var s=r?n.start:n.end,o=t.insert(s,t.getTextRange(n),!1);n.start=s,n.end=o,e.setSelectionRange(n,r)}},this.moveLinesDown=function(){this.$moveLines(1,!1)},this.moveLinesUp=function(){this.$moveLines(-1,!1)},this.moveText=function(e,t,n){return this.session.moveText(e,t,n)},this.copyLinesUp=function(){this.$moveLines(-1,!0)},this.copyLinesDown=function(){this.$moveLines(1,!0)},this.$moveLines=function(e,t){var n,r,i=this.selection;if(!i.inMultiSelectMode||this.inVirtualSelectionMode){var s=i.toOrientedRange();n=this.$getSelectedRows(s),r=this.session.$moveLines(n.first,n.last,t?0:e),t&&e==-1&&(r=0),s.moveBy(r,0),i.fromOrientedRange(s)}else{var o=i.rangeList.ranges;i.rangeList.detach(this.session),this.inVirtualSelectionMode=!0;var u=0,a=0,f=o.length;for(var l=0;l<f;l++){var c=l;o[l].moveBy(u,0),n=this.$getSelectedRows(o[l]);var h=n.first,p=n.last;while(++l<f){a&&o[l].moveBy(a,0);var d=this.$getSelectedRows(o[l]);if(t&&d.first!=p)break;if(!t&&d.first>p+1)break;p=d.last}l--,u=this.session.$moveLines(h,p,t?0:e),t&&e==-1&&(c=l+1);while(c<=l)o[c].moveBy(u,0),c++;t||(u=0),a+=u}i.fromOrientedRange(i.ranges[0]),i.rangeList.attach(this.session),this.inVirtualSelectionMode=!1}},this.$getSelectedRows=function(e){return e=(e||this.getSelectionRange()).collapseRows(),{first:this.session.getRowFoldStart(e.start.row),last:this.session.getRowFoldEnd(e.end.row)}},this.onCompositionStart=function(e){this.renderer.showComposition(this.getCursorPosition())},this.onCompositionUpdate=function(e){this.renderer.setCompositionText(e)},this.onCompositionEnd=function(){this.renderer.hideComposition()},this.getFirstVisibleRow=function(){return this.renderer.getFirstVisibleRow()},this.getLastVisibleRow=function(){return this.renderer.getLastVisibleRow()},this.isRowVisible=function(e){return e>=this.getFirstVisibleRow()&&e<=this.getLastVisibleRow()},this.isRowFullyVisible=function(e){return e>=this.renderer.getFirstFullyVisibleRow()&&e<=this.renderer.getLastFullyVisibleRow()},this.$getVisibleRowCount=function(){return this.renderer.getScrollBottomRow()-this.renderer.getScrollTopRow()+1},this.$moveByPage=function(e,t){var n=this.renderer,r=this.renderer.layerConfig,i=e*Math.floor(r.height/r.lineHeight);this.$blockScrolling++,t===!0?this.selection.$moveSelection(function(){this.moveCursorBy(i,0)}):t===!1&&(this.selection.moveCursorBy(i,0),this.selection.clearSelection()),this.$blockScrolling--;var s=n.scrollTop;n.scrollBy(0,i*r.lineHeight),t!=null&&n.scrollCursorIntoView(null,.5),n.animateScrolling(s)},this.selectPageDown=function(){this.$moveByPage(1,!0)},this.selectPageUp=function(){this.$moveByPage(-1,!0)},this.gotoPageDown=function(){this.$moveByPage(1,!1)},this.gotoPageUp=function(){this.$moveByPage(-1,!1)},this.scrollPageDown=function(){this.$moveByPage(1)},this.scrollPageUp=function(){this.$moveByPage(-1)},this.scrollToRow=function(e){this.renderer.scrollToRow(e)},this.scrollToLine=function(e,t,n,r){this.renderer.scrollToLine(e,t,n,r)},this.centerSelection=function(){var e=this.getSelectionRange(),t={row:Math.floor(e.start.row+(e.end.row-e.start.row)/2),column:Math.floor(e.start.column+(e.end.column-e.start.column)/2)};this.renderer.alignCursor(t,.5)},this.getCursorPosition=function(){return this.selection.getCursor()},this.getCursorPositionScreen=function(){return this.session.documentToScreenPosition(this.getCursorPosition())},this.getSelectionRange=function(){return this.selection.getRange()},this.selectAll=function(){this.$blockScrolling+=1,this.selection.selectAll(),this.$blockScrolling-=1},this.clearSelection=function(){this.selection.clearSelection()},this.moveCursorTo=function(e,t){this.selection.moveCursorTo(e,t)},this.moveCursorToPosition=function(e){this.selection.moveCursorToPosition(e)},this.jumpToMatching=function(e,t){var n=this.getCursorPosition(),r=new y(this.session,n.row,n.column),i=r.getCurrentToken(),s=i||r.stepForward();if(!s)return;var o,u=!1,a={},f=n.column-s.start,l,c={")":"(","(":"(","]":"[","[":"[","{":"{","}":"{"};do{if(s.value.match(/[{}()\[\]]/g))for(;f<s.value.length&&!u;f++){if(!c[s.value[f]])continue;l=c[s.value[f]]+"."+s.type.replace("rparen","lparen"),isNaN(a[l])&&(a[l]=0);switch(s.value[f]){case"(":case"[":case"{":a[l]++;break;case")":case"]":case"}":a[l]--,a[l]===-1&&(o="bracket",u=!0)}}else s&&s.type.indexOf("tag-name")!==-1&&(isNaN(a[s.value])&&(a[s.value]=0),i.value==="<"?a[s.value]++:i.value==="</"&&a[s.value]--,a[s.value]===-1&&(o="tag",u=!0));u||(i=s,s=r.stepForward(),f=0)}while(s&&!u);if(!o)return;var h,d;if(o==="bracket"){h=this.session.getBracketRange(n);if(!h){h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1,r.getCurrentTokenRow(),r.getCurrentTokenColumn()+f-1),d=h.start;if(t||d.row===n.row&&Math.abs(d.column-n.column)<2)h=this.session.getBracketRange(d)}}else if(o==="tag"){if(!s||s.type.indexOf("tag-name")===-1)return;var v=s.value;h=new p(r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2,r.getCurrentTokenRow(),r.getCurrentTokenColumn()-2);if(h.compare(n.row,n.column)===0){u=!1;do s=i,i=r.stepBackward(),i&&(i.type.indexOf("tag-close")!==-1&&h.setEnd(r.getCurrentTokenRow(),r.getCurrentTokenColumn()+1),s.value===v&&s.type.indexOf("tag-name")!==-1&&(i.value==="<"?a[v]++:i.value==="</"&&a[v]--,a[v]===0&&(u=!0)));while(i&&!u)}s&&s.type.indexOf("tag-name")&&(d=h.start,d.row==n.row&&Math.abs(d.column-n.column)<2&&(d=h.end))}d=h&&h.cursor||d,d&&(e?h&&t?this.selection.setRange(h):h&&h.isEqual(this.getSelectionRange())?this.clearSelection():this.selection.selectTo(d.row,d.column):this.selection.moveTo(d.row,d.column))},this.gotoLine=function(e,t,n){this.selection.clearSelection(),this.session.unfold({row:e-1,column:t||0}),this.$blockScrolling+=1,this.exitMultiSelectMode&&this.exitMultiSelectMode(),this.moveCursorTo(e-1,t||0),this.$blockScrolling-=1,this.isRowFullyVisible(e-1)||this.scrollToLine(e-1,!0,n)},this.navigateTo=function(e,t){this.selection.moveTo(e,t)},this.navigateUp=function(e){if(this.selection.isMultiLine()&&!this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(-e||-1,0)},this.navigateDown=function(e){if(this.selection.isMultiLine()&&this.selection.isBackwards()){var t=this.selection.anchor.getPosition();return this.moveCursorToPosition(t)}this.selection.clearSelection(),this.selection.moveCursorBy(e||1,0)},this.navigateLeft=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().start;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorLeft()}this.clearSelection()},this.navigateRight=function(e){if(!this.selection.isEmpty()){var t=this.getSelectionRange().end;this.moveCursorToPosition(t)}else{e=e||1;while(e--)this.selection.moveCursorRight()}this.clearSelection()},this.navigateLineStart=function(){this.selection.moveCursorLineStart(),this.clearSelection()},this.navigateLineEnd=function(){this.selection.moveCursorLineEnd(),this.clearSelection()},this.navigateFileEnd=function(){this.selection.moveCursorFileEnd(),this.clearSelection()},this.navigateFileStart=function(){this.selection.moveCursorFileStart(),this.clearSelection()},this.navigateWordRight=function(){this.selection.moveCursorWordRight(),this.clearSelection()},this.navigateWordLeft=function(){this.selection.moveCursorWordLeft(),this.clearSelection()},this.replace=function(e,t){t&&this.$search.set(t);var n=this.$search.find(this.session),r=0;return n?(this.$tryReplace(n,e)&&(r=1),n!==null&&(this.selection.setSelectionRange(n),this.renderer.scrollSelectionIntoView(n.start,n.end)),r):r},this.replaceAll=function(e,t){t&&this.$search.set(t);var n=this.$search.findAll(this.session),r=0;if(!n.length)return r;this.$blockScrolling+=1;var i=this.getSelectionRange();this.selection.moveTo(0,0);for(var s=n.length-1;s>=0;--s)this.$tryReplace(n[s],e)&&r++;return this.selection.setSelectionRange(i),this.$blockScrolling-=1,r},this.$tryReplace=function(e,t){var n=this.session.getTextRange(e);return t=this.$search.replace(n,t),t!==null?(e.end=this.session.replace(e,t),e):null},this.getLastSearchOptions=function(){return this.$search.getOptions()},this.find=function(e,t,n){t||(t={}),typeof e=="string"||e instanceof RegExp?t.needle=e:typeof e=="object"&&r.mixin(t,e);var i=this.selection.getRange();t.needle==null&&(e=this.session.getTextRange(i)||this.$search.$options.needle,e||(i=this.session.getWordRange(i.start.row,i.start.column),e=this.session.getTextRange(i)),this.$search.set({needle:e})),this.$search.set(t),t.start||this.$search.set({start:i});var s=this.$search.find(this.session);if(t.preventScroll)return s;if(s)return this.revealRange(s,n),s;t.backwards?i.start=i.end:i.end=i.start,this.selection.setRange(i)},this.findNext=function(e,t){this.find({skipCurrent:!0,backwards:!1},e,t)},this.findPrevious=function(e,t){this.find(e,{skipCurrent:!0,backwards:!0},t)},this.revealRange=function(e,t){this.$blockScrolling+=1,this.session.unfold(e),this.selection.setSelectionRange(e),this.$blockScrolling-=1;var n=this.renderer.scrollTop;this.renderer.scrollSelectionIntoView(e.start,e.end,.5),t!==!1&&this.renderer.animateScrolling(n)},this.undo=function(){this.$blockScrolling++,this.session.getUndoManager().undo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.redo=function(){this.$blockScrolling++,this.session.getUndoManager().redo(),this.$blockScrolling--,this.renderer.scrollCursorIntoView(null,.5)},this.destroy=function(){this.renderer.destroy(),this._signal("destroy",this),this.session&&this.session.destroy()},this.setAutoScrollEditorIntoView=function(e){if(!e)return;var t,n=this,r=!1;this.$scrollAnchor||(this.$scrollAnchor=document.createElement("div"));var i=this.$scrollAnchor;i.style.cssText="position:absolute",this.container.insertBefore(i,this.container.firstChild);var s=this.on("changeSelection",function(){r=!0}),o=this.renderer.on("beforeRender",function(){r&&(t=n.renderer.container.getBoundingClientRect())}),u=this.renderer.on("afterRender",function(){if(r&&t&&(n.isFocused()||n.searchBox&&n.searchBox.isFocused())){var e=n.renderer,s=e.$cursorLayer.$pixelPos,o=e.layerConfig,u=s.top-o.offset;s.top>=0&&u+t.top<0?r=!0:s.top<o.height&&s.top+t.top+o.lineHeight>window.innerHeight?r=!1:r=null,r!=null&&(i.style.top=u+"px",i.style.left=s.left+"px",i.style.height=o.lineHeight+"px",i.scrollIntoView(r)),r=t=null}});this.setAutoScrollEditorIntoView=function(e){if(e)return;delete this.setAutoScrollEditorIntoView,this.off("changeSelection",s),this.renderer.off("afterRender",u),this.renderer.off("beforeRender",o)}},this.$resetCursorStyle=function(){var e=this.$cursorStyle||"ace",t=this.renderer.$cursorLayer;if(!t)return;t.setSmoothBlinking(/smooth/.test(e)),t.isBlinking=!this.$readOnly&&e!="wide",i.setCssClass(t.element,"ace_slim-cursors",/slim/.test(e))}}).call(b.prototype),g.defineOptions(b.prototype,"editor",{selectionStyle:{set:function(e){this.onSelectionChange(),this._signal("changeSelectionStyle",{data:e})},initialValue:"line"},highlightActiveLine:{set:function(){this.$updateHighlightActiveLine()},initialValue:!0},highlightSelectedWord:{set:function(e){this.$onSelectionChange()},initialValue:!0},readOnly:{set:function(e){this.$resetCursorStyle()},initialValue:!1},cursorStyle:{set:function(e){this.$resetCursorStyle()},values:["ace","slim","smooth","wide"],initialValue:"ace"},mergeUndoDeltas:{values:[!1,!0,"always"],initialValue:!0},behavioursEnabled:{initialValue:!0},wrapBehavioursEnabled:{initialValue:!0},autoScrollEditorIntoView:{set:function(e){this.setAutoScrollEditorIntoView(e)}},keyboardHandler:{set:function(e){this.setKeyboardHandler(e)},get:function(){return this.keybindingId},handlesSet:!0},hScrollBarAlwaysVisible:"renderer",vScrollBarAlwaysVisible:"renderer",highlightGutterLine:"renderer",animatedScroll:"renderer",showInvisibles:"renderer",showPrintMargin:"renderer",printMarginColumn:"renderer",printMargin:"renderer",fadeFoldWidgets:"renderer",showFoldWidgets:"renderer",showLineNumbers:"renderer",showGutter:"renderer",displayIndentGuides:"renderer",fontSize:"renderer",fontFamily:"renderer",maxLines:"renderer",minLines:"renderer",scrollPastEnd:"renderer",fixedWidthGutter:"renderer",theme:"renderer",scrollSpeed:"$mouseHandler",dragDelay:"$mouseHandler",dragEnabled:"$mouseHandler",focusTimout:"$mouseHandler",tooltipFollowsMouse:"$mouseHandler",firstLineNumber:"session",overwrite:"session",newLineMode:"session",useWorker:"session",useSoftTabs:"session",tabSize:"session",wrap:"session",indentedSoftWrap:"session",foldStyle:"session",mode:"session"}),t.Editor=b}),define("ace/undomanager",["require","exports","module"],function(e,t,n){"use strict";var r=function(){this.reset()};(function(){function e(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines.length==1?null:e.lines,text:e.lines.length==1?e.lines[0]:null}}function t(e){return{action:e.action,start:e.start,end:e.end,lines:e.lines||[e.text]}}function n(e,t){var n=new Array(e.length);for(var r=0;r<e.length;r++){var i=e[r],s={group:i.group,deltas:new Array(i.length)};for(var o=0;o<i.deltas.length;o++){var u=i.deltas[o];s.deltas[o]=t(u)}n[r]=s}return n}this.execute=function(e){var t=e.args[0];this.$doc=e.args[1],e.merge&&this.hasUndo()&&(this.dirtyCounter--,t=this.$undoStack.pop().concat(t)),this.$undoStack.push(t),this.$redoStack=[],this.dirtyCounter<0&&(this.dirtyCounter=NaN),this.dirtyCounter++},this.undo=function(e){var t=this.$undoStack.pop(),n=null;return t&&(n=this.$doc.undoChanges(t,e),this.$redoStack.push(t),this.dirtyCounter--),n},this.redo=function(e){var t=this.$redoStack.pop(),n=null;return t&&(n=this.$doc.redoChanges(this.$deserializeDeltas(t),e),this.$undoStack.push(t),this.dirtyCounter++),n},this.reset=function(){this.$undoStack=[],this.$redoStack=[],this.dirtyCounter=0},this.hasUndo=function(){return this.$undoStack.length>0},this.hasRedo=function(){return this.$redoStack.length>0},this.markClean=function(){this.dirtyCounter=0},this.isClean=function(){return this.dirtyCounter===0},this.$serializeDeltas=function(t){return n(t,e)},this.$deserializeDeltas=function(e){return n(e,t)}}).call(r.prototype),t.UndoManager=r}),define("ace/layer/gutter",["require","exports","module","ace/lib/dom","ace/lib/oop","ace/lib/lang","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/dom"),i=e("../lib/oop"),s=e("../lib/lang"),o=e("../lib/event_emitter").EventEmitter,u=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_gutter-layer",e.appendChild(this.element),this.setShowFoldWidgets(this.$showFoldWidgets),this.gutterWidth=0,this.$annotations=[],this.$updateAnnotations=this.$updateAnnotations.bind(this),this.$cells=[]};(function(){i.implement(this,o),this.setSession=function(e){this.session&&this.session.removeEventListener("change",this.$updateAnnotations),this.session=e,e&&e.on("change",this.$updateAnnotations)},this.addGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.addGutterDecoration"),this.session.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){window.console&&console.warn&&console.warn("deprecated use session.removeGutterDecoration"),this.session.removeGutterDecoration(e,t)},this.setAnnotations=function(e){this.$annotations=[];for(var t=0;t<e.length;t++){var n=e[t],r=n.row,i=this.$annotations[r];i||(i=this.$annotations[r]={text:[]});var o=n.text;o=o?s.escapeHTML(o):n.html||"",i.text.indexOf(o)===-1&&i.text.push(o);var u=n.type;u=="error"?i.className=" ace_error":u=="warning"&&i.className!=" ace_error"?i.className=" ace_warning":u=="info"&&!i.className&&(i.className=" ace_info")}},this.$updateAnnotations=function(e){if(!this.$annotations.length)return;var t=e.start.row,n=e.end.row-t;if(n!==0)if(e.action=="remove")this.$annotations.splice(t,n+1,null);else{var r=new Array(n+1);r.unshift(t,1),this.$annotations.splice.apply(this.$annotations,r)}},this.update=function(e){var t=this.session,n=e.firstRow,i=Math.min(e.lastRow+e.gutterOffset,t.getLength()-1),s=t.getNextFoldLine(n),o=s?s.start.row:Infinity,u=this.$showFoldWidgets&&t.foldWidgets,a=t.$breakpoints,f=t.$decorations,l=t.$firstLineNumber,c=0,h=t.gutterRenderer||this.$renderer,p=null,d=-1,v=n;for(;;){v>o&&(v=s.end.row+1,s=t.getNextFoldLine(v,s),o=s?s.start.row:Infinity);if(v>i){while(this.$cells.length>d+1)p=this.$cells.pop(),this.element.removeChild(p.element);break}p=this.$cells[++d],p||(p={element:null,textNode:null,foldWidget:null},p.element=r.createElement("div"),p.textNode=document.createTextNode(""),p.element.appendChild(p.textNode),this.element.appendChild(p.element),this.$cells[d]=p);var m="ace_gutter-cell ";a[v]&&(m+=a[v]),f[v]&&(m+=f[v]),this.$annotations[v]&&(m+=this.$annotations[v].className),p.element.className!=m&&(p.element.className=m);var g=t.getRowLength(v)*e.lineHeight+"px";g!=p.element.style.height&&(p.element.style.height=g);if(u){var y=u[v];y==null&&(y=u[v]=t.getFoldWidget(v))}if(y){p.foldWidget||(p.foldWidget=r.createElement("span"),p.element.appendChild(p.foldWidget));var m="ace_fold-widget ace_"+y;y=="start"&&v==o&&v<s.end.row?m+=" ace_closed":m+=" ace_open",p.foldWidget.className!=m&&(p.foldWidget.className=m);var g=e.lineHeight+"px";p.foldWidget.style.height!=g&&(p.foldWidget.style.height=g)}else p.foldWidget&&(p.element.removeChild(p.foldWidget),p.foldWidget=null);var b=c=h?h.getText(t,v):v+l;b!=p.textNode.data&&(p.textNode.data=b),v++}this.element.style.height=e.minHeight+"px";if(this.$fixedWidth||t.$useWrapMode)c=t.getLength()+l;var w=h?h.getWidth(t,c,e):c.toString().length*e.characterWidth,E=this.$padding||this.$computePadding();w+=E.left+E.right,w!==this.gutterWidth&&!isNaN(w)&&(this.gutterWidth=w,this.element.style.width=Math.ceil(this.gutterWidth)+"px",this._emit("changeGutterWidth",w))},this.$fixedWidth=!1,this.$showLineNumbers=!0,this.$renderer="",this.setShowLineNumbers=function(e){this.$renderer=!e&&{getWidth:function(){return""},getText:function(){return""}}},this.getShowLineNumbers=function(){return this.$showLineNumbers},this.$showFoldWidgets=!0,this.setShowFoldWidgets=function(e){e?r.addCssClass(this.element,"ace_folding-enabled"):r.removeCssClass(this.element,"ace_folding-enabled"),this.$showFoldWidgets=e,this.$padding=null},this.getShowFoldWidgets=function(){return this.$showFoldWidgets},this.$computePadding=function(){if(!this.element.firstChild)return{left:0,right:0};var e=r.computedStyle(this.element.firstChild);return this.$padding={},this.$padding.left=parseInt(e.paddingLeft)+1||0,this.$padding.right=parseInt(e.paddingRight)||0,this.$padding},this.getRegion=function(e){var t=this.$padding||this.$computePadding(),n=this.element.getBoundingClientRect();if(e.x<t.left+n.left)return"markers";if(this.$showFoldWidgets&&e.x>n.right-t.right)return"foldWidgets"}}).call(u.prototype),t.Gutter=u}),define("ace/layer/marker",["require","exports","module","ace/range","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../lib/dom"),s=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_marker-layer",e.appendChild(this.element)};(function(){function e(e,t,n,r){return(e?1:0)|(t?2:0)|(n?4:0)|(r?8:0)}this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setMarkers=function(e){this.markers=e},this.update=function(e){var e=e||this.config;if(!e)return;this.config=e;var t=[];for(var n in this.markers){var r=this.markers[n];if(!r.range){r.update(t,this,this.session,e);continue}var i=r.range.clipRows(e.firstRow,e.lastRow);if(i.isEmpty())continue;i=i.toScreenRange(this.session);if(r.renderer){var s=this.$getTop(i.start.row,e),o=this.$padding+i.start.column*e.characterWidth;r.renderer(t,i,o,s,e)}else r.type=="fullLine"?this.drawFullLineMarker(t,i,r.clazz,e):r.type=="screenLine"?this.drawScreenLineMarker(t,i,r.clazz,e):i.isMultiLine()?r.type=="text"?this.drawTextMarker(t,i,r.clazz,e):this.drawMultiLineMarker(t,i,r.clazz,e):this.drawSingleLineMarker(t,i,r.clazz+" ace_start"+" ace_br15",e)}this.element.innerHTML=t.join("")},this.$getTop=function(e,t){return(e-t.firstRowScreen)*t.lineHeight},this.drawTextMarker=function(t,n,i,s,o){var u=this.session,a=n.start.row,f=n.end.row,l=a,c=0,h=0,p=u.getScreenLastRowColumn(l),d=new r(l,n.start.column,l,h);for(;l<=f;l++)d.start.row=d.end.row=l,d.start.column=l==a?n.start.column:u.getRowWrapIndent(l),d.end.column=p,c=h,h=p,p=l+1<f?u.getScreenLastRowColumn(l+1):l==f?0:n.end.column,this.drawSingleLineMarker(t,d,i+(l==a?" ace_start":"")+" ace_br"+e(l==a||l==a+1&&n.start.column,c<h,h>p,l==f),s,l==f?0:1,o)},this.drawMultiLineMarker=function(e,t,n,r,i){var s=this.$padding,o=r.lineHeight,u=this.$getTop(t.start.row,r),a=s+t.start.column*r.characterWidth;i=i||"",e.push("<div class='",n," ace_br1 ace_start' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",a,"px;",i,"'></div>"),u=this.$getTop(t.end.row,r);var f=t.end.column*r.characterWidth;e.push("<div class='",n," ace_br12' style='","height:",o,"px;","width:",f,"px;","top:",u,"px;","left:",s,"px;",i,"'></div>"),o=(t.end.row-t.start.row-1)*r.lineHeight;if(o<=0)return;u=this.$getTop(t.start.row+1,r);var l=(t.start.column?1:0)|(t.end.column?0:8);e.push("<div class='",n,l?" ace_br"+l:"","' style='","height:",o,"px;","right:0;","top:",u,"px;","left:",s,"px;",i,"'></div>")},this.drawSingleLineMarker=function(e,t,n,r,i,s){var o=r.lineHeight,u=(t.end.column+(i||0)-t.start.column)*r.characterWidth,a=this.$getTop(t.start.row,r),f=this.$padding+t.start.column*r.characterWidth;e.push("<div class='",n,"' style='","height:",o,"px;","width:",u,"px;","top:",a,"px;","left:",f,"px;",s||"","'></div>")},this.drawFullLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;t.start.row!=t.end.row&&(o+=this.$getTop(t.end.row,r)-s),e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")},this.drawScreenLineMarker=function(e,t,n,r,i){var s=this.$getTop(t.start.row,r),o=r.lineHeight;e.push("<div class='",n,"' style='","height:",o,"px;","top:",s,"px;","left:0;right:0;",i||"","'></div>")}}).call(s.prototype),t.Marker=s}),define("ace/layer/text",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=function(e){this.element=i.createElement("div"),this.element.className="ace_layer ace_text-layer",e.appendChild(this.element),this.$updateEolChar=this.$updateEolChar.bind(this)};(function(){r.implement(this,u),this.EOF_CHAR="\u00b6",this.EOL_CHAR_LF="\u00ac",this.EOL_CHAR_CRLF="\u00a4",this.EOL_CHAR=this.EOL_CHAR_LF,this.TAB_CHAR="\u2014",this.SPACE_CHAR="\u00b7",this.$padding=0,this.$updateEolChar=function(){var e=this.session.doc.getNewLineCharacter()=="\n"?this.EOL_CHAR_LF:this.EOL_CHAR_CRLF;if(this.EOL_CHAR!=e)return this.EOL_CHAR=e,!0},this.setPadding=function(e){this.$padding=e,this.element.style.padding="0 "+e+"px"},this.getLineHeight=function(){return this.$fontMetrics.$characterSize.height||0},this.getCharacterWidth=function(){return this.$fontMetrics.$characterSize.width||0},this.$setFontMetrics=function(e){this.$fontMetrics=e,this.$fontMetrics.on("changeCharacterSize",function(e){this._signal("changeCharacterSize",e)}.bind(this)),this.$pollSizeChanges()},this.checkForSizeChanges=function(){this.$fontMetrics.checkForSizeChanges()},this.$pollSizeChanges=function(){return this.$pollSizeChangesTimer=this.$fontMetrics.$pollSizeChanges()},this.setSession=function(e){this.session=e,e&&this.$computeTabString()},this.showInvisibles=!1,this.setShowInvisibles=function(e){return this.showInvisibles==e?!1:(this.showInvisibles=e,this.$computeTabString(),!0)},this.displayIndentGuides=!0,this.setDisplayIndentGuides=function(e){return this.displayIndentGuides==e?!1:(this.displayIndentGuides=e,this.$computeTabString(),!0)},this.$tabStrings=[],this.onChangeTabSize=this.$computeTabString=function(){var e=this.session.getTabSize();this.tabSize=e;var t=this.$tabStrings=[0];for(var n=1;n<e+1;n++)this.showInvisibles?t.push("<span class='ace_invisible ace_invisible_tab'>"+s.stringRepeat(this.TAB_CHAR,n)+"</span>"):t.push(s.stringRepeat(" ",n));if(this.displayIndentGuides){this.$indentGuideRe=/\s\S| \t|\t |\s$/;var r="ace_indent-guide",i="",o="";if(this.showInvisibles){r+=" ace_invisible",i=" ace_invisible_space",o=" ace_invisible_tab";var u=s.stringRepeat(this.SPACE_CHAR,this.tabSize),a=s.stringRepeat(this.TAB_CHAR,this.tabSize)}else var u=s.stringRepeat(" ",this.tabSize),a=u;this.$tabStrings[" "]="<span class='"+r+i+"'>"+u+"</span>",this.$tabStrings["	"]="<span class='"+r+o+"'>"+a+"</span>"}},this.updateLines=function(e,t,n){(this.config.lastRow!=e.lastRow||this.config.firstRow!=e.firstRow)&&this.scrollLines(e),this.config=e;var r=Math.max(t,e.firstRow),i=Math.min(n,e.lastRow),s=this.element.childNodes,o=0;for(var u=e.firstRow;u<r;u++){var a=this.session.getFoldLine(u);if(a){if(a.containsRow(r)){r=a.start.row;break}u=a.end.row}o++}var u=r,a=this.session.getNextFoldLine(u),f=a?a.start.row:Infinity;for(;;){u>f&&(u=a.end.row+1,a=this.session.getNextFoldLine(u,a),f=a?a.start.row:Infinity);if(u>i)break;var l=s[o++];if(l){var c=[];this.$renderLine(c,u,!this.$useLineGroups(),u==f?a:!1),l.style.height=e.lineHeight*this.session.getRowLength(u)+"px",l.innerHTML=c.join("")}u++}},this.scrollLines=function(e){var t=this.config;this.config=e;if(!t||t.lastRow<e.firstRow)return this.update(e);if(e.lastRow<t.firstRow)return this.update(e);var n=this.element;if(t.firstRow<e.firstRow)for(var r=this.session.getFoldedRowCount(t.firstRow,e.firstRow-1);r>0;r--)n.removeChild(n.firstChild);if(t.lastRow>e.lastRow)for(var r=this.session.getFoldedRowCount(e.lastRow+1,t.lastRow);r>0;r--)n.removeChild(n.lastChild);if(e.firstRow<t.firstRow){var i=this.$renderLinesFragment(e,e.firstRow,t.firstRow-1);n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i)}if(e.lastRow>t.lastRow){var i=this.$renderLinesFragment(e,t.lastRow+1,e.lastRow);n.appendChild(i)}},this.$renderLinesFragment=function(e,t,n){var r=this.element.ownerDocument.createDocumentFragment(),s=t,o=this.session.getNextFoldLine(s),u=o?o.start.row:Infinity;for(;;){s>u&&(s=o.end.row+1,o=this.session.getNextFoldLine(s,o),u=o?o.start.row:Infinity);if(s>n)break;var a=i.createElement("div"),f=[];this.$renderLine(f,s,!1,s==u?o:!1),a.innerHTML=f.join("");if(this.$useLineGroups())a.className="ace_line_group",r.appendChild(a),a.style.height=e.lineHeight*this.session.getRowLength(s)+"px";else while(a.firstChild)r.appendChild(a.firstChild);s++}return r},this.update=function(e){this.config=e;var t=[],n=e.firstRow,r=e.lastRow,i=n,s=this.session.getNextFoldLine(i),o=s?s.start.row:Infinity;for(;;){i>o&&(i=s.end.row+1,s=this.session.getNextFoldLine(i,s),o=s?s.start.row:Infinity);if(i>r)break;this.$useLineGroups()&&t.push("<div class='ace_line_group' style='height:",e.lineHeight*this.session.getRowLength(i),"px'>"),this.$renderLine(t,i,!1,i==o?s:!1),this.$useLineGroups()&&t.push("</div>"),i++}this.element.innerHTML=t.join("")},this.$textToken={text:!0,rparen:!0,lparen:!0},this.$renderToken=function(e,t,n,r){var i=this,o=/\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g,u=function(e,n,r,o,u){if(n)return i.showInvisibles?"<span class='ace_invisible ace_invisible_space'>"+s.stringRepeat(i.SPACE_CHAR,e.length)+"</span>":e;if(e=="&")return"&#38;";if(e=="<")return"&#60;";if(e==">")return"&#62;";if(e=="	"){var a=i.session.getScreenTabSize(t+o);return t+=a-1,i.$tabStrings[a]}if(e=="\u3000"){var f=i.showInvisibles?"ace_cjk ace_invisible ace_invisible_space":"ace_cjk",l=i.showInvisibles?i.SPACE_CHAR:"";return t+=1,"<span class='"+f+"' style='width:"+i.config.characterWidth*2+"px'>"+l+"</span>"}return r?"<span class='ace_invisible ace_invisible_space ace_invalid'>"+i.SPACE_CHAR+"</span>":(t+=1,"<span class='ace_cjk' style='width:"+i.config.characterWidth*2+"px'>"+e+"</span>")},a=r.replace(o,u);if(!this.$textToken[n.type]){var f="ace_"+n.type.replace(/\./g," ace_"),l="";n.type=="fold"&&(l=" style='width:"+n.value.length*this.config.characterWidth+"px;' "),e.push("<span class='",f,"'",l,">",a,"</span>")}else e.push(a);return t+r.length},this.renderIndentGuide=function(e,t,n){var r=t.search(this.$indentGuideRe);return r<=0||r>=n?t:t[0]==" "?(r-=r%this.tabSize,e.push(s.stringRepeat(this.$tabStrings[" "],r/this.tabSize)),t.substr(r)):t[0]=="	"?(e.push(s.stringRepeat(this.$tabStrings["	"],r)),t.substr(r)):t},this.$renderWrappedLine=function(e,t,n,r){var i=0,o=0,u=n[0],a=0;for(var f=0;f<t.length;f++){var l=t[f],c=l.value;if(f==0&&this.displayIndentGuides){i=c.length,c=this.renderIndentGuide(e,c,u);if(!c)continue;i-=c.length}if(i+c.length<u)a=this.$renderToken(e,a,l,c),i+=c.length;else{while(i+c.length>=u)a=this.$renderToken(e,a,l,c.substring(0,u-i)),c=c.substring(u-i),i=u,r||e.push("</div>","<div class='ace_line' style='height:",this.config.lineHeight,"px'>"),e.push(s.stringRepeat("\u00a0",n.indent)),o++,a=0,u=n[o]||Number.MAX_VALUE;c.length!=0&&(i+=c.length,a=this.$renderToken(e,a,l,c))}}},this.$renderSimpleLine=function(e,t){var n=0,r=t[0],i=r.value;this.displayIndentGuides&&(i=this.renderIndentGuide(e,i)),i&&(n=this.$renderToken(e,n,r,i));for(var s=1;s<t.length;s++)r=t[s],i=r.value,n=this.$renderToken(e,n,r,i)},this.$renderLine=function(e,t,n,r){!r&&r!=0&&(r=this.session.getFoldLine(t));if(r)var i=this.$getFoldLineTokens(t,r);else var i=this.session.getTokens(t);n||e.push("<div class='ace_line' style='height:",this.config.lineHeight*(this.$useLineGroups()?1:this.session.getRowLength(t)),"px'>");if(i.length){var s=this.session.getRowSplitData(t);s&&s.length?this.$renderWrappedLine(e,i,s,n):this.$renderSimpleLine(e,i)}this.showInvisibles&&(r&&(t=r.end.row),e.push("<span class='ace_invisible ace_invisible_eol'>",t==this.session.getLength()-1?this.EOF_CHAR:this.EOL_CHAR,"</span>")),n||e.push("</div>")},this.$getFoldLineTokens=function(e,t){function i(e,t,n){var i=0,s=0;while(s+e[i].value.length<t){s+=e[i].value.length,i++;if(i==e.length)return}if(s!=t){var o=e[i].value.substring(t-s);o.length>n-t&&(o=o.substring(0,n-t)),r.push({type:e[i].type,value:o}),s=t+o.length,i+=1}while(s<n&&i<e.length){var o=e[i].value;o.length+s>n?r.push({type:e[i].type,value:o.substring(0,n-s)}):r.push(e[i]),s+=o.length,i+=1}}var n=this.session,r=[],s=n.getTokens(e);return t.walk(function(e,t,o,u,a){e!=null?r.push({type:"fold",value:e}):(a&&(s=n.getTokens(t)),s.length&&i(s,u,o))},t.end.row,this.session.getLine(t.end.row).length),r},this.$useLineGroups=function(){return this.session.getUseWrapMode()},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.$measureNode&&this.$measureNode.parentNode.removeChild(this.$measureNode),delete this.$measureNode}}).call(a.prototype),t.Text=a}),define("ace/layer/cursor",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";var r=e("../lib/dom"),i,s=function(e){this.element=r.createElement("div"),this.element.className="ace_layer ace_cursor-layer",e.appendChild(this.element),i===undefined&&(i=!("opacity"in this.element.style)),this.isVisible=!1,this.isBlinking=!0,this.blinkInterval=1e3,this.smoothBlinking=!1,this.cursors=[],this.cursor=this.addCursor(),r.addCssClass(this.element,"ace_hidden-cursors"),this.$updateCursors=(i?this.$updateVisibility:this.$updateOpacity).bind(this)};(function(){this.$updateVisibility=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.visibility=e?"":"hidden"},this.$updateOpacity=function(e){var t=this.cursors;for(var n=t.length;n--;)t[n].style.opacity=e?"":"0"},this.$padding=0,this.setPadding=function(e){this.$padding=e},this.setSession=function(e){this.session=e},this.setBlinking=function(e){e!=this.isBlinking&&(this.isBlinking=e,this.restartTimer())},this.setBlinkInterval=function(e){e!=this.blinkInterval&&(this.blinkInterval=e,this.restartTimer())},this.setSmoothBlinking=function(e){e!=this.smoothBlinking&&!i&&(this.smoothBlinking=e,r.setCssClass(this.element,"ace_smooth-blinking",e),this.$updateCursors(!0),this.$updateCursors=this.$updateOpacity.bind(this),this.restartTimer())},this.addCursor=function(){var e=r.createElement("div");return e.className="ace_cursor",this.element.appendChild(e),this.cursors.push(e),e},this.removeCursor=function(){if(this.cursors.length>1){var e=this.cursors.pop();return e.parentNode.removeChild(e),e}},this.hideCursor=function(){this.isVisible=!1,r.addCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.showCursor=function(){this.isVisible=!0,r.removeCssClass(this.element,"ace_hidden-cursors"),this.restartTimer()},this.restartTimer=function(){var e=this.$updateCursors;clearInterval(this.intervalId),clearTimeout(this.timeoutId),this.smoothBlinking&&r.removeCssClass(this.element,"ace_smooth-blinking"),e(!0);if(!this.isBlinking||!this.blinkInterval||!this.isVisible)return;this.smoothBlinking&&setTimeout(function(){r.addCssClass(this.element,"ace_smooth-blinking")}.bind(this));var t=function(){this.timeoutId=setTimeout(function(){e(!1)},.6*this.blinkInterval)}.bind(this);this.intervalId=setInterval(function(){e(!0),t()},this.blinkInterval),t()},this.getPixelPosition=function(e,t){if(!this.config||!this.session)return{left:0,top:0};e||(e=this.session.selection.getCursor());var n=this.session.documentToScreenPosition(e),r=this.$padding+n.column*this.config.characterWidth,i=(n.row-(t?this.config.firstRowScreen:0))*this.config.lineHeight;return{left:r,top:i}},this.update=function(e){this.config=e;var t=this.session.$selectionMarkers,n=0,r=0;if(t===undefined||t.length===0)t=[{cursor:null}];for(var n=0,i=t.length;n<i;n++){var s=this.getPixelPosition(t[n].cursor,!0);if((s.top>e.height+e.offset||s.top<0)&&n>1)continue;var o=(this.cursors[r++]||this.addCursor()).style;this.drawCursor?this.drawCursor(o,s,e,t[n],this.session):(o.left=s.left+"px",o.top=s.top+"px",o.width=e.characterWidth+"px",o.height=e.lineHeight+"px")}while(this.cursors.length>r)this.removeCursor();var u=this.session.getOverwrite();this.$setOverwrite(u),this.$pixelPos=s,this.restartTimer()},this.drawCursor=null,this.$setOverwrite=function(e){e!=this.overwrite&&(this.overwrite=e,e?r.addCssClass(this.element,"ace_overwrite-cursors"):r.removeCssClass(this.element,"ace_overwrite-cursors"))},this.destroy=function(){clearInterval(this.intervalId),clearTimeout(this.timeoutId)}}).call(s.prototype),t.Cursor=s}),define("ace/scrollbar",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/event","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./lib/event"),o=e("./lib/event_emitter").EventEmitter,u=32768,a=function(e){this.element=i.createElement("div"),this.element.className="ace_scrollbar ace_scrollbar"+this.classSuffix,this.inner=i.createElement("div"),this.inner.className="ace_scrollbar-inner",this.element.appendChild(this.inner),e.appendChild(this.element),this.setVisible(!1),this.skipEvent=!1,s.addListener(this.element,"scroll",this.onScroll.bind(this)),s.addListener(this.element,"mousedown",s.preventDefault)};(function(){r.implement(this,o),this.setVisible=function(e){this.element.style.display=e?"":"none",this.isVisible=e,this.coeff=1}}).call(a.prototype);var f=function(e,t){a.call(this,e),this.scrollTop=0,this.scrollHeight=0,t.$scrollbarWidth=this.width=i.scrollbarWidth(e.ownerDocument),this.inner.style.width=this.element.style.width=(this.width||15)+5+"px"};r.inherits(f,a),function(){this.classSuffix="-v",this.onScroll=function(){if(!this.skipEvent){this.scrollTop=this.element.scrollTop;if(this.coeff!=1){var e=this.element.clientHeight/this.scrollHeight;this.scrollTop=this.scrollTop*(1-e)/(this.coeff-e)}this._emit("scroll",{data:this.scrollTop})}this.skipEvent=!1},this.getWidth=function(){return this.isVisible?this.width:0},this.setHeight=function(e){this.element.style.height=e+"px"},this.setInnerHeight=this.setScrollHeight=function(e){this.scrollHeight=e,e>u?(this.coeff=u/e,e=u):this.coeff!=1&&(this.coeff=1),this.inner.style.height=e+"px"},this.setScrollTop=function(e){this.scrollTop!=e&&(this.skipEvent=!0,this.scrollTop=e,this.element.scrollTop=e*this.coeff)}}.call(f.prototype);var l=function(e,t){a.call(this,e),this.scrollLeft=0,this.height=t.$scrollbarWidth,this.inner.style.height=this.element.style.height=(this.height||15)+5+"px"};r.inherits(l,a),function(){this.classSuffix="-h",this.onScroll=function(){this.skipEvent||(this.scrollLeft=this.element.scrollLeft,this._emit("scroll",{data:this.scrollLeft})),this.skipEvent=!1},this.getHeight=function(){return this.isVisible?this.height:0},this.setWidth=function(e){this.element.style.width=e+"px"},this.setInnerWidth=function(e){this.inner.style.width=e+"px"},this.setScrollWidth=function(e){this.inner.style.width=e+"px"},this.setScrollLeft=function(e){this.scrollLeft!=e&&(this.skipEvent=!0,this.scrollLeft=this.element.scrollLeft=e)}}.call(l.prototype),t.ScrollBar=f,t.ScrollBarV=f,t.ScrollBarH=l,t.VScrollBar=f,t.HScrollBar=l}),define("ace/renderloop",["require","exports","module","ace/lib/event"],function(e,t,n){"use strict";var r=e("./lib/event"),i=function(e,t){this.onRender=e,this.pending=!1,this.changes=0,this.window=t||window};(function(){this.schedule=function(e){this.changes=this.changes|e;if(!this.pending&&this.changes){this.pending=!0;var t=this;r.nextFrame(function(){t.pending=!1;var e;while(e=t.changes)t.changes=0,t.onRender(e)},this.window)}}}).call(i.prototype),t.RenderLoop=i}),define("ace/layer/font_metrics",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/lib/lang","ace/lib/useragent","ace/lib/event_emitter"],function(e,t,n){var r=e("../lib/oop"),i=e("../lib/dom"),s=e("../lib/lang"),o=e("../lib/useragent"),u=e("../lib/event_emitter").EventEmitter,a=0,f=t.FontMetrics=function(e){this.el=i.createElement("div"),this.$setMeasureNodeStyles(this.el.style,!0),this.$main=i.createElement("div"),this.$setMeasureNodeStyles(this.$main.style),this.$measureNode=i.createElement("div"),this.$setMeasureNodeStyles(this.$measureNode.style),this.el.appendChild(this.$main),this.el.appendChild(this.$measureNode),e.appendChild(this.el),a||this.$testFractionalRect(),this.$measureNode.innerHTML=s.stringRepeat("X",a),this.$characterSize={width:0,height:0},this.checkForSizeChanges()};(function(){r.implement(this,u),this.$characterSize={width:0,height:0},this.$testFractionalRect=function(){var e=i.createElement("div");this.$setMeasureNodeStyles(e.style),e.style.width="0.2px",document.documentElement.appendChild(e);var t=e.getBoundingClientRect().width;t>0&&t<1?a=50:a=100,e.parentNode.removeChild(e)},this.$setMeasureNodeStyles=function(e,t){e.width=e.height="auto",e.left=e.top="0px",e.visibility="hidden",e.position="absolute",e.whiteSpace="pre",o.isIE<8?e["font-family"]="inherit":e.font="inherit",e.overflow=t?"hidden":"visible"},this.checkForSizeChanges=function(){var e=this.$measureSizes();if(e&&(this.$characterSize.width!==e.width||this.$characterSize.height!==e.height)){this.$measureNode.style.fontWeight="bold";var t=this.$measureSizes();this.$measureNode.style.fontWeight="",this.$characterSize=e,this.charSizes=Object.create(null),this.allowBoldFonts=t&&t.width===e.width&&t.height===e.height,this._emit("changeCharacterSize",{data:e})}},this.$pollSizeChanges=function(){if(this.$pollSizeChangesTimer)return this.$pollSizeChangesTimer;var e=this;return this.$pollSizeChangesTimer=setInterval(function(){e.checkForSizeChanges()},500)},this.setPolling=function(e){e?this.$pollSizeChanges():this.$pollSizeChangesTimer&&(clearInterval(this.$pollSizeChangesTimer),this.$pollSizeChangesTimer=0)},this.$measureSizes=function(){if(a===50){var e=null;try{e=this.$measureNode.getBoundingClientRect()}catch(t){e={width:0,height:0}}var n={height:e.height,width:e.width/a}}else var n={height:this.$measureNode.clientHeight,width:this.$measureNode.clientWidth/a};return n.width===0||n.height===0?null:n},this.$measureCharWidth=function(e){this.$main.innerHTML=s.stringRepeat(e,a);var t=this.$main.getBoundingClientRect();return t.width/a},this.getCharacterWidth=function(e){var t=this.charSizes[e];return t===undefined&&(t=this.charSizes[e]=this.$measureCharWidth(e)/this.$characterSize.width),t},this.destroy=function(){clearInterval(this.$pollSizeChangesTimer),this.el&&this.el.parentNode&&this.el.parentNode.removeChild(this.el)}}).call(f.prototype)}),define("ace/virtual_renderer",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/config","ace/lib/useragent","ace/layer/gutter","ace/layer/marker","ace/layer/text","ace/layer/cursor","ace/scrollbar","ace/scrollbar","ace/renderloop","ace/layer/font_metrics","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./config"),o=e("./lib/useragent"),u=e("./layer/gutter").Gutter,a=e("./layer/marker").Marker,f=e("./layer/text").Text,l=e("./layer/cursor").Cursor,c=e("./scrollbar").HScrollBar,h=e("./scrollbar").VScrollBar,p=e("./renderloop").RenderLoop,d=e("./layer/font_metrics").FontMetrics,v=e("./lib/event_emitter").EventEmitter,m='.ace_editor {position: relative;overflow: hidden;font: 12px/normal \'Monaco\', \'Menlo\', \'Ubuntu Mono\', \'Consolas\', \'source-code-pro\', monospace;direction: ltr;text-align: left;}.ace_scroller {position: absolute;overflow: hidden;top: 0;bottom: 0;background-color: inherit;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;cursor: text;}.ace_content {position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;min-width: 100%;}.ace_dragging .ace_scroller:before{position: absolute;top: 0;left: 0;right: 0;bottom: 0;content: \'\';background: rgba(250, 250, 250, 0.01);z-index: 1000;}.ace_dragging.ace_dark .ace_scroller:before{background: rgba(0, 0, 0, 0.01);}.ace_selecting, .ace_selecting * {cursor: text !important;}.ace_gutter {position: absolute;overflow : hidden;width: auto;top: 0;bottom: 0;left: 0;cursor: default;z-index: 4;-ms-user-select: none;-moz-user-select: none;-webkit-user-select: none;user-select: none;}.ace_gutter-active-line {position: absolute;left: 0;right: 0;}.ace_scroller.ace_scroll-left {box-shadow: 17px 0 16px -16px rgba(0, 0, 0, 0.4) inset;}.ace_gutter-cell {padding-left: 19px;padding-right: 6px;background-repeat: no-repeat;}.ace_gutter-cell.ace_error {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAABOFBMVEX/////////QRswFAb/Ui4wFAYwFAYwFAaWGAfDRymzOSH/PxswFAb/SiUwFAYwFAbUPRvjQiDllog5HhHdRybsTi3/Tyv9Tir+Syj/UC3////XurebMBIwFAb/RSHbPx/gUzfdwL3kzMivKBAwFAbbvbnhPx66NhowFAYwFAaZJg8wFAaxKBDZurf/RB6mMxb/SCMwFAYwFAbxQB3+RB4wFAb/Qhy4Oh+4QifbNRcwFAYwFAYwFAb/QRzdNhgwFAYwFAbav7v/Uy7oaE68MBK5LxLewr/r2NXewLswFAaxJw4wFAbkPRy2PyYwFAaxKhLm1tMwFAazPiQwFAaUGAb/QBrfOx3bvrv/VC/maE4wFAbRPBq6MRO8Qynew8Dp2tjfwb0wFAbx6eju5+by6uns4uH9/f36+vr/GkHjAAAAYnRSTlMAGt+64rnWu/bo8eAA4InH3+DwoN7j4eLi4xP99Nfg4+b+/u9B/eDs1MD1mO7+4PHg2MXa347g7vDizMLN4eG+Pv7i5evs/v79yu7S3/DV7/498Yv24eH+4ufQ3Ozu/v7+y13sRqwAAADLSURBVHjaZc/XDsFgGIBhtDrshlitmk2IrbHFqL2pvXf/+78DPokj7+Fz9qpU/9UXJIlhmPaTaQ6QPaz0mm+5gwkgovcV6GZzd5JtCQwgsxoHOvJO15kleRLAnMgHFIESUEPmawB9ngmelTtipwwfASilxOLyiV5UVUyVAfbG0cCPHig+GBkzAENHS0AstVF6bacZIOzgLmxsHbt2OecNgJC83JERmePUYq8ARGkJx6XtFsdddBQgZE2nPR6CICZhawjA4Fb/chv+399kfR+MMMDGOQAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: 2px center;}.ace_gutter-cell.ace_warning {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAAmVBMVEX///8AAAD///8AAAAAAABPSzb/5sAAAAB/blH/73z/ulkAAAAAAAD85pkAAAAAAAACAgP/vGz/rkDerGbGrV7/pkQICAf////e0IsAAAD/oED/qTvhrnUAAAD/yHD/njcAAADuv2r/nz//oTj/p064oGf/zHAAAAA9Nir/tFIAAAD/tlTiuWf/tkIAAACynXEAAAAAAAAtIRW7zBpBAAAAM3RSTlMAABR1m7RXO8Ln31Z36zT+neXe5OzooRDfn+TZ4p3h2hTf4t3k3ucyrN1K5+Xaks52Sfs9CXgrAAAAjklEQVR42o3PbQ+CIBQFYEwboPhSYgoYunIqqLn6/z8uYdH8Vmdnu9vz4WwXgN/xTPRD2+sgOcZjsge/whXZgUaYYvT8QnuJaUrjrHUQreGczuEafQCO/SJTufTbroWsPgsllVhq3wJEk2jUSzX3CUEDJC84707djRc5MTAQxoLgupWRwW6UB5fS++NV8AbOZgnsC7BpEAAAAABJRU5ErkJggg==");background-position: 2px center;}.ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAAAAAA6mKC9AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAAJ0Uk5TAAB2k804AAAAPklEQVQY02NgIB68QuO3tiLznjAwpKTgNyDbMegwisCHZUETUZV0ZqOquBpXj2rtnpSJT1AEnnRmL2OgGgAAIKkRQap2htgAAAAASUVORK5CYII=");background-position: 2px center;}.ace_dark .ace_gutter-cell.ace_info {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQBAMAAADt3eJSAAAAJFBMVEUAAAChoaGAgIAqKiq+vr6tra1ZWVmUlJSbm5s8PDxubm56enrdgzg3AAAAAXRSTlMAQObYZgAAAClJREFUeNpjYMAPdsMYHegyJZFQBlsUlMFVCWUYKkAZMxZAGdxlDMQBAG+TBP4B6RyJAAAAAElFTkSuQmCC");}.ace_scrollbar {position: absolute;right: 0;bottom: 0;z-index: 6;}.ace_scrollbar-inner {position: absolute;cursor: text;left: 0;top: 0;}.ace_scrollbar-v{overflow-x: hidden;overflow-y: scroll;top: 0;}.ace_scrollbar-h {overflow-x: scroll;overflow-y: hidden;left: 0;}.ace_print-margin {position: absolute;height: 100%;}.ace_text-input {position: absolute;z-index: 0;width: 0.5em;height: 1em;opacity: 0;background: transparent;-moz-appearance: none;appearance: none;border: none;resize: none;outline: none;overflow: hidden;font: inherit;padding: 0 1px;margin: 0 -1px;text-indent: -1em;-ms-user-select: text;-moz-user-select: text;-webkit-user-select: text;user-select: text;white-space: pre!important;}.ace_text-input.ace_composition {background: inherit;color: inherit;z-index: 1000;opacity: 1;text-indent: 0;}.ace_layer {z-index: 1;position: absolute;overflow: hidden;word-wrap: normal;white-space: pre;height: 100%;width: 100%;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;pointer-events: none;}.ace_gutter-layer {position: relative;width: auto;text-align: right;pointer-events: auto;}.ace_text-layer {font: inherit !important;}.ace_cjk {display: inline-block;text-align: center;}.ace_cursor-layer {z-index: 4;}.ace_cursor {z-index: 4;position: absolute;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;border-left: 2px solid;transform: translatez(0);}.ace_slim-cursors .ace_cursor {border-left-width: 1px;}.ace_overwrite-cursors .ace_cursor {border-left-width: 0;border-bottom: 1px solid;}.ace_hidden-cursors .ace_cursor {opacity: 0.2;}.ace_smooth-blinking .ace_cursor {-webkit-transition: opacity 0.18s;transition: opacity 0.18s;}.ace_editor.ace_multiselect .ace_cursor {border-left-width: 1px;}.ace_marker-layer .ace_step, .ace_marker-layer .ace_stack {position: absolute;z-index: 3;}.ace_marker-layer .ace_selection {position: absolute;z-index: 5;}.ace_marker-layer .ace_bracket {position: absolute;z-index: 6;}.ace_marker-layer .ace_active-line {position: absolute;z-index: 2;}.ace_marker-layer .ace_selected-word {position: absolute;z-index: 4;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;}.ace_line .ace_fold {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;display: inline-block;height: 11px;margin-top: -2px;vertical-align: middle;background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACJJREFUeNpi+P//fxgTAwPDBxDxD078RSX+YeEyDFMCIMAAI3INmXiwf2YAAAAASUVORK5CYII=");background-repeat: no-repeat, repeat-x;background-position: center center, top left;color: transparent;border: 1px solid black;border-radius: 2px;cursor: pointer;pointer-events: auto;}.ace_dark .ace_fold {}.ace_fold:hover{background-image:url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAAJCAYAAADU6McMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJpJREFUeNpi/P//PwOlgAXGYGRklAVSokD8GmjwY1wasKljQpYACtpCFeADcHVQfQyMQAwzwAZI3wJKvCLkfKBaMSClBlR7BOQikCFGQEErIH0VqkabiGCAqwUadAzZJRxQr/0gwiXIal8zQQPnNVTgJ1TdawL0T5gBIP1MUJNhBv2HKoQHHjqNrA4WO4zY0glyNKLT2KIfIMAAQsdgGiXvgnYAAAAASUVORK5CYII="),url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAA3CAYAAADNNiA5AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAACBJREFUeNpi+P//fz4TAwPDZxDxD5X4i5fLMEwJgAADAEPVDbjNw87ZAAAAAElFTkSuQmCC");}.ace_tooltip {background-color: #FFF;background-image: -webkit-linear-gradient(top, transparent, rgba(0, 0, 0, 0.1));background-image: linear-gradient(to bottom, transparent, rgba(0, 0, 0, 0.1));border: 1px solid gray;border-radius: 1px;box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);color: black;max-width: 100%;padding: 3px 4px;position: fixed;z-index: 999999;-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;cursor: default;white-space: pre;word-wrap: break-word;line-height: normal;font-style: normal;font-weight: normal;letter-spacing: normal;pointer-events: none;}.ace_folding-enabled > .ace_gutter-cell {padding-right: 13px;}.ace_fold-widget {-moz-box-sizing: border-box;-webkit-box-sizing: border-box;box-sizing: border-box;margin: 0 -12px 0 1px;display: none;width: 11px;vertical-align: top;background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42mWKsQ0AMAzC8ixLlrzQjzmBiEjp0A6WwBCSPgKAXoLkqSot7nN3yMwR7pZ32NzpKkVoDBUxKAAAAABJRU5ErkJggg==");background-repeat: no-repeat;background-position: center;border-radius: 3px;border: 1px solid transparent;cursor: pointer;}.ace_folding-enabled .ace_fold-widget {display: inline-block;   }.ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAANElEQVR42m3HwQkAMAhD0YzsRchFKI7sAikeWkrxwScEB0nh5e7KTPWimZki4tYfVbX+MNl4pyZXejUO1QAAAABJRU5ErkJggg==");}.ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAGCAYAAAAG5SQMAAAAOUlEQVR42jXKwQkAMAgDwKwqKD4EwQ26sSOkVWjgIIHAzPiCgaqiqnJHZnKICBERHN194O5b9vbLuAVRL+l0YWnZAAAAAElFTkSuQmCCXA==");}.ace_fold-widget:hover {border: 1px solid rgba(0, 0, 0, 0.3);background-color: rgba(255, 255, 255, 0.2);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.7);}.ace_fold-widget:active {border: 1px solid rgba(0, 0, 0, 0.4);background-color: rgba(0, 0, 0, 0.05);box-shadow: 0 1px 1px rgba(255, 255, 255, 0.8);}.ace_dark .ace_fold-widget {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHklEQVQIW2P4//8/AzoGEQ7oGCaLLAhWiSwB146BAQCSTPYocqT0AAAAAElFTkSuQmCC");}.ace_dark .ace_fold-widget.ace_end {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAH0lEQVQIW2P4//8/AxQ7wNjIAjDMgC4AxjCVKBirIAAF0kz2rlhxpAAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget.ace_closed {background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAMAAAAFCAYAAACAcVaiAAAAHElEQVQIW2P4//+/AxAzgDADlOOAznHAKgPWAwARji8UIDTfQQAAAABJRU5ErkJggg==");}.ace_dark .ace_fold-widget:hover {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);background-color: rgba(255, 255, 255, 0.1);}.ace_dark .ace_fold-widget:active {box-shadow: 0 1px 1px rgba(255, 255, 255, 0.2);}.ace_fold-widget.ace_invalid {background-color: #FFB4B4;border-color: #DE5555;}.ace_fade-fold-widgets .ace_fold-widget {-webkit-transition: opacity 0.4s ease 0.05s;transition: opacity 0.4s ease 0.05s;opacity: 0;}.ace_fade-fold-widgets:hover .ace_fold-widget {-webkit-transition: opacity 0.05s ease 0.05s;transition: opacity 0.05s ease 0.05s;opacity:1;}.ace_underline {text-decoration: underline;}.ace_bold {font-weight: bold;}.ace_nobold .ace_bold {font-weight: normal;}.ace_italic {font-style: italic;}.ace_error-marker {background-color: rgba(255, 0, 0,0.2);position: absolute;z-index: 9;}.ace_highlight-marker {background-color: rgba(255, 255, 0,0.2);position: absolute;z-index: 8;}.ace_br1 {border-top-left-radius    : 3px;}.ace_br2 {border-top-right-radius   : 3px;}.ace_br3 {border-top-left-radius    : 3px; border-top-right-radius:    3px;}.ace_br4 {border-bottom-right-radius: 3px;}.ace_br5 {border-top-left-radius    : 3px; border-bottom-right-radius: 3px;}.ace_br6 {border-top-right-radius   : 3px; border-bottom-right-radius: 3px;}.ace_br7 {border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px;}.ace_br8 {border-bottom-left-radius : 3px;}.ace_br9 {border-top-left-radius    : 3px; border-bottom-left-radius:  3px;}.ace_br10{border-top-right-radius   : 3px; border-bottom-left-radius:  3px;}.ace_br11{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-left-radius:  3px;}.ace_br12{border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br13{border-top-left-radius    : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br14{border-top-right-radius   : 3px; border-bottom-right-radius: 3px; border-bottom-left-radius:  3px;}.ace_br15{border-top-left-radius    : 3px; border-top-right-radius:    3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px;}';i.importCssString(m,"ace_editor.css");var g=function(e,t){var n=this;this.container=e||i.createElement("div"),this.$keepTextAreaAtCursor=!o.isOldIE,i.addCssClass(this.container,"ace_editor"),this.setTheme(t),this.$gutter=i.createElement("div"),this.$gutter.className="ace_gutter",this.container.appendChild(this.$gutter),this.scroller=i.createElement("div"),this.scroller.className="ace_scroller",this.container.appendChild(this.scroller),this.content=i.createElement("div"),this.content.className="ace_content",this.scroller.appendChild(this.content),this.$gutterLayer=new u(this.$gutter),this.$gutterLayer.on("changeGutterWidth",this.onGutterResize.bind(this)),this.$markerBack=new a(this.content);var r=this.$textLayer=new f(this.content);this.canvas=r.element,this.$markerFront=new a(this.content),this.$cursorLayer=new l(this.content),this.$horizScroll=!1,this.$vScroll=!1,this.scrollBar=this.scrollBarV=new h(this.container,this),this.scrollBarH=new c(this.container,this),this.scrollBarV.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollTop(e.data-n.scrollMargin.top)}),this.scrollBarH.addEventListener("scroll",function(e){n.$scrollAnimation||n.session.setScrollLeft(e.data-n.scrollMargin.left)}),this.scrollTop=0,this.scrollLeft=0,this.cursorPos={row:0,column:0},this.$fontMetrics=new d(this.container),this.$textLayer.$setFontMetrics(this.$fontMetrics),this.$textLayer.addEventListener("changeCharacterSize",function(e){n.updateCharacterSize(),n.onResize(!0,n.gutterWidth,n.$size.width,n.$size.height),n._signal("changeCharacterSize",e)}),this.$size={width:0,height:0,scrollerHeight:0,scrollerWidth:0,$dirty:!0},this.layerConfig={width:1,padding:0,firstRow:0,firstRowScreen:0,lastRow:0,lineHeight:0,characterWidth:0,minHeight:1,maxHeight:1,offset:0,height:1,gutterOffset:1},this.scrollMargin={left:0,right:0,top:0,bottom:0,v:0,h:0},this.$loop=new p(this.$renderChanges.bind(this),this.container.ownerDocument.defaultView),this.$loop.schedule(this.CHANGE_FULL),this.updateCharacterSize(),this.setPadding(4),s.resetOptions(this),s._emit("renderer",this)};(function(){this.CHANGE_CURSOR=1,this.CHANGE_MARKER=2,this.CHANGE_GUTTER=4,this.CHANGE_SCROLL=8,this.CHANGE_LINES=16,this.CHANGE_TEXT=32,this.CHANGE_SIZE=64,this.CHANGE_MARKER_BACK=128,this.CHANGE_MARKER_FRONT=256,this.CHANGE_FULL=512,this.CHANGE_H_SCROLL=1024,r.implement(this,v),this.updateCharacterSize=function(){this.$textLayer.allowBoldFonts!=this.$allowBoldFonts&&(this.$allowBoldFonts=this.$textLayer.allowBoldFonts,this.setStyle("ace_nobold",!this.$allowBoldFonts)),this.layerConfig.characterWidth=this.characterWidth=this.$textLayer.getCharacterWidth(),this.layerConfig.lineHeight=this.lineHeight=this.$textLayer.getLineHeight(),this.$updatePrintMargin()},this.setSession=function(e){this.session&&this.session.doc.off("changeNewLineMode",this.onChangeNewLineMode),this.session=e,e&&this.scrollMargin.top&&e.getScrollTop()<=0&&e.setScrollTop(-this.scrollMargin.top),this.$cursorLayer.setSession(e),this.$markerBack.setSession(e),this.$markerFront.setSession(e),this.$gutterLayer.setSession(e),this.$textLayer.setSession(e);if(!e)return;this.$loop.schedule(this.CHANGE_FULL),this.session.$setFontMetrics(this.$fontMetrics),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null,this.onChangeNewLineMode=this.onChangeNewLineMode.bind(this),this.onChangeNewLineMode(),this.session.doc.on("changeNewLineMode",this.onChangeNewLineMode)},this.updateLines=function(e,t,n){t===undefined&&(t=Infinity),this.$changedLines?(this.$changedLines.firstRow>e&&(this.$changedLines.firstRow=e),this.$changedLines.lastRow<t&&(this.$changedLines.lastRow=t)):this.$changedLines={firstRow:e,lastRow:t};if(this.$changedLines.lastRow<this.layerConfig.firstRow){if(!n)return;this.$changedLines.lastRow=this.layerConfig.lastRow}if(this.$changedLines.firstRow>this.layerConfig.lastRow)return;this.$loop.schedule(this.CHANGE_LINES)},this.onChangeNewLineMode=function(){this.$loop.schedule(this.CHANGE_TEXT),this.$textLayer.$updateEolChar()},this.onChangeTabSize=function(){this.$loop.schedule(this.CHANGE_TEXT|this.CHANGE_MARKER),this.$textLayer.onChangeTabSize()},this.updateText=function(){this.$loop.schedule(this.CHANGE_TEXT)},this.updateFull=function(e){e?this.$renderChanges(this.CHANGE_FULL,!0):this.$loop.schedule(this.CHANGE_FULL)},this.updateFontSize=function(){this.$textLayer.checkForSizeChanges()},this.$changes=0,this.$updateSizeAsync=function(){this.$loop.pending?this.$size.$dirty=!0:this.onResize()},this.onResize=function(e,t,n,r){if(this.resizing>2)return;this.resizing>0?this.resizing++:this.resizing=e?1:0;var i=this.container;r||(r=i.clientHeight||i.scrollHeight),n||(n=i.clientWidth||i.scrollWidth);var s=this.$updateCachedSize(e,t,n,r);if(!this.$size.scrollerHeight||!n&&!r)return this.resizing=0;e&&(this.$gutterLayer.$padding=null),e?this.$renderChanges(s|this.$changes,!0):this.$loop.schedule(s|this.$changes),this.resizing&&(this.resizing=0),this.scrollBarV.scrollLeft=this.scrollBarV.scrollTop=null},this.$updateCachedSize=function(e,t,n,r){r-=this.$extraHeight||0;var i=0,s=this.$size,o={width:s.width,height:s.height,scrollerHeight:s.scrollerHeight,scrollerWidth:s.scrollerWidth};r&&(e||s.height!=r)&&(s.height=r,i|=this.CHANGE_SIZE,s.scrollerHeight=s.height,this.$horizScroll&&(s.scrollerHeight-=this.scrollBarH.getHeight()),this.scrollBarV.element.style.bottom=this.scrollBarH.getHeight()+"px",i|=this.CHANGE_SCROLL);if(n&&(e||s.width!=n)){i|=this.CHANGE_SIZE,s.width=n,t==null&&(t=this.$showGutter?this.$gutter.offsetWidth:0),this.gutterWidth=t,this.scrollBarH.element.style.left=this.scroller.style.left=t+"px",s.scrollerWidth=Math.max(0,n-t-this.scrollBarV.getWidth()),this.scrollBarH.element.style.right=this.scroller.style.right=this.scrollBarV.getWidth()+"px",this.scroller.style.bottom=this.scrollBarH.getHeight()+"px";if(this.session&&this.session.getUseWrapMode()&&this.adjustWrapLimit()||e)i|=this.CHANGE_FULL}return s.$dirty=!n||!r,i&&this._signal("resize",o),i},this.onGutterResize=function(){var e=this.$showGutter?this.$gutter.offsetWidth:0;e!=this.gutterWidth&&(this.$changes|=this.$updateCachedSize(!0,e,this.$size.width,this.$size.height)),this.session.getUseWrapMode()&&this.adjustWrapLimit()?this.$loop.schedule(this.CHANGE_FULL):this.$size.$dirty?this.$loop.schedule(this.CHANGE_FULL):(this.$computeLayerConfig(),this.$loop.schedule(this.CHANGE_MARKER))},this.adjustWrapLimit=function(){var e=this.$size.scrollerWidth-this.$padding*2,t=Math.floor(e/this.characterWidth);return this.session.adjustWrapLimit(t,this.$showPrintMargin&&this.$printMarginColumn)},this.setAnimatedScroll=function(e){this.setOption("animatedScroll",e)},this.getAnimatedScroll=function(){return this.$animatedScroll},this.setShowInvisibles=function(e){this.setOption("showInvisibles",e)},this.getShowInvisibles=function(){return this.getOption("showInvisibles")},this.getDisplayIndentGuides=function(){return this.getOption("displayIndentGuides")},this.setDisplayIndentGuides=function(e){this.setOption("displayIndentGuides",e)},this.setShowPrintMargin=function(e){this.setOption("showPrintMargin",e)},this.getShowPrintMargin=function(){return this.getOption("showPrintMargin")},this.setPrintMarginColumn=function(e){this.setOption("printMarginColumn",e)},this.getPrintMarginColumn=function(){return this.getOption("printMarginColumn")},this.getShowGutter=function(){return this.getOption("showGutter")},this.setShowGutter=function(e){return this.setOption("showGutter",e)},this.getFadeFoldWidgets=function(){return this.getOption("fadeFoldWidgets")},this.setFadeFoldWidgets=function(e){this.setOption("fadeFoldWidgets",e)},this.setHighlightGutterLine=function(e){this.setOption("highlightGutterLine",e)},this.getHighlightGutterLine=function(){return this.getOption("highlightGutterLine")},this.$updateGutterLineHighlight=function(){var e=this.$cursorLayer.$pixelPos,t=this.layerConfig.lineHeight;if(this.session.getUseWrapMode()){var n=this.session.selection.getCursor();n.column=0,e=this.$cursorLayer.getPixelPosition(n,!0),t*=this.session.getRowLength(n.row)}this.$gutterLineHighlight.style.top=e.top-this.layerConfig.offset+"px",this.$gutterLineHighlight.style.height=t+"px"},this.$updatePrintMargin=function(){if(!this.$showPrintMargin&&!this.$printMarginEl)return;if(!this.$printMarginEl){var e=i.createElement("div");e.className="ace_layer ace_print-margin-layer",this.$printMarginEl=i.createElement("div"),this.$printMarginEl.className="ace_print-margin",e.appendChild(this.$printMarginEl),this.content.insertBefore(e,this.content.firstChild)}var t=this.$printMarginEl.style;t.left=this.characterWidth*this.$printMarginColumn+this.$padding+"px",t.visibility=this.$showPrintMargin?"visible":"hidden",this.session&&this.session.$wrap==-1&&this.adjustWrapLimit()},this.getContainerElement=function(){return this.container},this.getMouseEventTarget=function(){return this.scroller},this.getTextAreaContainer=function(){return this.container},this.$moveTextAreaToCursor=function(){if(!this.$keepTextAreaAtCursor)return;var e=this.layerConfig,t=this.$cursorLayer.$pixelPos.top,n=this.$cursorLayer.$pixelPos.left;t-=e.offset;var r=this.textarea.style,i=this.lineHeight;if(t<0||t>e.height-i){r.top=r.left="0";return}var s=this.characterWidth;if(this.$composition){var o=this.textarea.value.replace(/^\x01+/,"");s*=this.session.$getStringScreenWidth(o)[0]+2,i+=2}n-=this.scrollLeft,n>this.$size.scrollerWidth-s&&(n=this.$size.scrollerWidth-s),n+=this.gutterWidth,r.height=i+"px",r.width=s+"px",r.left=Math.min(n,this.$size.scrollerWidth-s)+"px",r.top=Math.min(t,this.$size.height-i)+"px"},this.getFirstVisibleRow=function(){return this.layerConfig.firstRow},this.getFirstFullyVisibleRow=function(){return this.layerConfig.firstRow+(this.layerConfig.offset===0?0:1)},this.getLastFullyVisibleRow=function(){var e=this.layerConfig,t=e.lastRow,n=this.session.documentToScreenRow(t,0)*e.lineHeight;return n-this.session.getScrollTop()>e.height-e.lineHeight?t-1:t},this.getLastVisibleRow=function(){return this.layerConfig.lastRow},this.$padding=null,this.setPadding=function(e){this.$padding=e,this.$textLayer.setPadding(e),this.$cursorLayer.setPadding(e),this.$markerFront.setPadding(e),this.$markerBack.setPadding(e),this.$loop.schedule(this.CHANGE_FULL),this.$updatePrintMargin()},this.setScrollMargin=function(e,t,n,r){var i=this.scrollMargin;i.top=e|0,i.bottom=t|0,i.right=r|0,i.left=n|0,i.v=i.top+i.bottom,i.h=i.left+i.right,i.top&&this.scrollTop<=0&&this.session&&this.session.setScrollTop(-i.top),this.updateFull()},this.getHScrollBarAlwaysVisible=function(){return this.$hScrollBarAlwaysVisible},this.setHScrollBarAlwaysVisible=function(e){this.setOption("hScrollBarAlwaysVisible",e)},this.getVScrollBarAlwaysVisible=function(){return this.$vScrollBarAlwaysVisible},this.setVScrollBarAlwaysVisible=function(e){this.setOption("vScrollBarAlwaysVisible",e)},this.$updateScrollBarV=function(){var e=this.layerConfig.maxHeight,t=this.$size.scrollerHeight;!this.$maxLines&&this.$scrollPastEnd&&(e-=(t-this.lineHeight)*this.$scrollPastEnd,this.scrollTop>e-t&&(e=this.scrollTop+t,this.scrollBarV.scrollTop=null)),this.scrollBarV.setScrollHeight(e+this.scrollMargin.v),this.scrollBarV.setScrollTop(this.scrollTop+this.scrollMargin.top)},this.$updateScrollBarH=function(){this.scrollBarH.setScrollWidth(this.layerConfig.width+2*this.$padding+this.scrollMargin.h),this.scrollBarH.setScrollLeft(this.scrollLeft+this.scrollMargin.left)},this.$frozen=!1,this.freeze=function(){this.$frozen=!0},this.unfreeze=function(){this.$frozen=!1},this.$renderChanges=function(e,t){this.$changes&&(e|=this.$changes,this.$changes=0);if(!this.session||!this.container.offsetWidth||this.$frozen||!e&&!t){this.$changes|=e;return}if(this.$size.$dirty)return this.$changes|=e,this.onResize(!0);this.lineHeight||this.$textLayer.checkForSizeChanges(),this._signal("beforeRender");var n=this.layerConfig;if(e&this.CHANGE_FULL||e&this.CHANGE_SIZE||e&this.CHANGE_TEXT||e&this.CHANGE_LINES||e&this.CHANGE_SCROLL||e&this.CHANGE_H_SCROLL){e|=this.$computeLayerConfig();if(n.firstRow!=this.layerConfig.firstRow&&n.firstRowScreen==this.layerConfig.firstRowScreen){var r=this.scrollTop+(n.firstRow-this.layerConfig.firstRow)*this.lineHeight;r>0&&(this.scrollTop=r,e|=this.CHANGE_SCROLL,e|=this.$computeLayerConfig())}n=this.layerConfig,this.$updateScrollBarV(),e&this.CHANGE_H_SCROLL&&this.$updateScrollBarH(),this.$gutterLayer.element.style.marginTop=-n.offset+"px",this.content.style.marginTop=-n.offset+"px",this.content.style.width=n.width+2*this.$padding+"px",this.content.style.height=n.minHeight+"px"}e&this.CHANGE_H_SCROLL&&(this.content.style.marginLeft=-this.scrollLeft+"px",this.scroller.className=this.scrollLeft<=0?"ace_scroller":"ace_scroller ace_scroll-left");if(e&this.CHANGE_FULL){this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this._signal("afterRender");return}if(e&this.CHANGE_SCROLL){e&this.CHANGE_TEXT||e&this.CHANGE_LINES?this.$textLayer.update(n):this.$textLayer.scrollLines(n),this.$showGutter&&this.$gutterLayer.update(n),this.$markerBack.update(n),this.$markerFront.update(n),this.$cursorLayer.update(n),this.$highlightGutterLine&&this.$updateGutterLineHighlight(),this.$moveTextAreaToCursor(),this._signal("afterRender");return}e&this.CHANGE_TEXT?(this.$textLayer.update(n),this.$showGutter&&this.$gutterLayer.update(n)):e&this.CHANGE_LINES?(this.$updateLines()||e&this.CHANGE_GUTTER&&this.$showGutter)&&this.$gutterLayer.update(n):(e&this.CHANGE_TEXT||e&this.CHANGE_GUTTER)&&this.$showGutter&&this.$gutterLayer.update(n),e&this.CHANGE_CURSOR&&(this.$cursorLayer.update(n),this.$moveTextAreaToCursor(),this.$highlightGutterLine&&this.$updateGutterLineHighlight()),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_FRONT)&&this.$markerFront.update(n),e&(this.CHANGE_MARKER|this.CHANGE_MARKER_BACK)&&this.$markerBack.update(n),this._signal("afterRender")},this.$autosize=function(){var e=this.session.getScreenLength()*this.lineHeight,t=this.$maxLines*this.lineHeight,n=Math.min(t,Math.max((this.$minLines||1)*this.lineHeight,e))+this.scrollMargin.v+(this.$extraHeight||0);this.$horizScroll&&(n+=this.scrollBarH.getHeight()),this.$maxPixelHeight&&n>this.$maxPixelHeight&&(n=this.$maxPixelHeight);var r=e>t;if(n!=this.desiredHeight||this.$size.height!=this.desiredHeight||r!=this.$vScroll){r!=this.$vScroll&&(this.$vScroll=r,this.scrollBarV.setVisible(r));var i=this.container.clientWidth;this.container.style.height=n+"px",this.$updateCachedSize(!0,this.$gutterWidth,i,n),this.desiredHeight=n,this._signal("autosize")}},this.$computeLayerConfig=function(){var e=this.session,t=this.$size,n=t.height<=2*this.lineHeight,r=this.session.getScreenLength(),i=r*this.lineHeight,s=this.$getLongestLine(),o=!n&&(this.$hScrollBarAlwaysVisible||t.scrollerWidth-s-2*this.$padding<0),u=this.$horizScroll!==o;u&&(this.$horizScroll=o,this.scrollBarH.setVisible(o));var a=this.$vScroll;this.$maxLines&&this.lineHeight>1&&this.$autosize();var f=this.scrollTop%this.lineHeight,l=t.scrollerHeight+this.lineHeight,c=!this.$maxLines&&this.$scrollPastEnd?(t.scrollerHeight-this.lineHeight)*this.$scrollPastEnd:0;i+=c;var h=this.scrollMargin;this.session.setScrollTop(Math.max(-h.top,Math.min(this.scrollTop,i-t.scrollerHeight+h.bottom))),this.session.setScrollLeft(Math.max(-h.left,Math.min(this.scrollLeft,s+2*this.$padding-t.scrollerWidth+h.right)));var p=!n&&(this.$vScrollBarAlwaysVisible||t.scrollerHeight-i+c<0||this.scrollTop>h.top),d=a!==p;d&&(this.$vScroll=p,this.scrollBarV.setVisible(p));var v=Math.ceil(l/this.lineHeight)-1,m=Math.max(0,Math.round((this.scrollTop-f)/this.lineHeight)),g=m+v,y,b,w=this.lineHeight;m=e.screenToDocumentRow(m,0);var E=e.getFoldLine(m);E&&(m=E.start.row),y=e.documentToScreenRow(m,0),b=e.getRowLength(m)*w,g=Math.min(e.screenToDocumentRow(g,0),e.getLength()-1),l=t.scrollerHeight+e.getRowLength(g)*w+b,f=this.scrollTop-y*w;var S=0;this.layerConfig.width!=s&&(S=this.CHANGE_H_SCROLL);if(u||d)S=this.$updateCachedSize(!0,this.gutterWidth,t.width,t.height),this._signal("scrollbarVisibilityChanged"),d&&(s=this.$getLongestLine());return this.layerConfig={width:s,padding:this.$padding,firstRow:m,firstRowScreen:y,lastRow:g,lineHeight:w,characterWidth:this.characterWidth,minHeight:l,maxHeight:i,offset:f,gutterOffset:w?Math.max(0,Math.ceil((f+t.height-t.scrollerHeight)/w)):0,height:this.$size.scrollerHeight},S},this.$updateLines=function(){var e=this.$changedLines.firstRow,t=this.$changedLines.lastRow;this.$changedLines=null;var n=this.layerConfig;if(e>n.lastRow+1)return;if(t<n.firstRow)return;if(t===Infinity){this.$showGutter&&this.$gutterLayer.update(n),this.$textLayer.update(n);return}return this.$textLayer.updateLines(n,e,t),!0},this.$getLongestLine=function(){var e=this.session.getScreenWidth();return this.showInvisibles&&!this.session.$useWrapMode&&(e+=1),Math.max(this.$size.scrollerWidth-2*this.$padding,Math.round(e*this.characterWidth))},this.updateFrontMarkers=function(){this.$markerFront.setMarkers(this.session.getMarkers(!0)),this.$loop.schedule(this.CHANGE_MARKER_FRONT)},this.updateBackMarkers=function(){this.$markerBack.setMarkers(this.session.getMarkers()),this.$loop.schedule(this.CHANGE_MARKER_BACK)},this.addGutterDecoration=function(e,t){this.$gutterLayer.addGutterDecoration(e,t)},this.removeGutterDecoration=function(e,t){this.$gutterLayer.removeGutterDecoration(e,t)},this.updateBreakpoints=function(e){this.$loop.schedule(this.CHANGE_GUTTER)},this.setAnnotations=function(e){this.$gutterLayer.setAnnotations(e),this.$loop.schedule(this.CHANGE_GUTTER)},this.updateCursor=function(){this.$loop.schedule(this.CHANGE_CURSOR)},this.hideCursor=function(){this.$cursorLayer.hideCursor()},this.showCursor=function(){this.$cursorLayer.showCursor()},this.scrollSelectionIntoView=function(e,t,n){this.scrollCursorIntoView(e,n),this.scrollCursorIntoView(t,n)},this.scrollCursorIntoView=function(e,t,n){if(this.$size.scrollerHeight===0)return;var r=this.$cursorLayer.getPixelPosition(e),i=r.left,s=r.top,o=n&&n.top||0,u=n&&n.bottom||0,a=this.$scrollAnimation?this.session.getScrollTop():this.scrollTop;a+o>s?(t&&a+o>s+this.lineHeight&&(s-=t*this.$size.scrollerHeight),s===0&&(s=-this.scrollMargin.top),this.session.setScrollTop(s)):a+this.$size.scrollerHeight-u<s+this.lineHeight&&(t&&a+this.$size.scrollerHeight-u<s-this.lineHeight&&(s+=t*this.$size.scrollerHeight),this.session.setScrollTop(s+this.lineHeight-this.$size.scrollerHeight));var f=this.scrollLeft;f>i?(i<this.$padding+2*this.layerConfig.characterWidth&&(i=-this.scrollMargin.left),this.session.setScrollLeft(i)):f+this.$size.scrollerWidth<i+this.characterWidth?this.session.setScrollLeft(Math.round(i+this.characterWidth-this.$size.scrollerWidth)):f<=this.$padding&&i-f<this.characterWidth&&this.session.setScrollLeft(0)},this.getScrollTop=function(){return this.session.getScrollTop()},this.getScrollLeft=function(){return this.session.getScrollLeft()},this.getScrollTopRow=function(){return this.scrollTop/this.lineHeight},this.getScrollBottomRow=function(){return Math.max(0,Math.floor((this.scrollTop+this.$size.scrollerHeight)/this.lineHeight)-1)},this.scrollToRow=function(e){this.session.setScrollTop(e*this.lineHeight)},this.alignCursor=function(e,t){typeof e=="number"&&(e={row:e,column:0});var n=this.$cursorLayer.getPixelPosition(e),r=this.$size.scrollerHeight-this.lineHeight,i=n.top-r*(t||0);return this.session.setScrollTop(i),i},this.STEPS=8,this.$calcSteps=function(e,t){var n=0,r=this.STEPS,i=[],s=function(e,t,n){return n*(Math.pow(e-1,3)+1)+t};for(n=0;n<r;++n)i.push(s(n/this.STEPS,e,t-e));return i},this.scrollToLine=function(e,t,n,r){var i=this.$cursorLayer.getPixelPosition({row:e,column:0}),s=i.top;t&&(s-=this.$size.scrollerHeight/2);var o=this.scrollTop;this.session.setScrollTop(s),n!==!1&&this.animateScrolling(o,r)},this.animateScrolling=function(e,t){var n=this.scrollTop;if(!this.$animatedScroll)return;var r=this;if(e==n)return;if(this.$scrollAnimation){var i=this.$scrollAnimation.steps;if(i.length){e=i[0];if(e==n)return}}var s=r.$calcSteps(e,n);this.$scrollAnimation={from:e,to:n,steps:s},clearInterval(this.$timer),r.session.setScrollTop(s.shift()),r.session.$scrollTop=n,this.$timer=setInterval(function(){s.length?(r.session.setScrollTop(s.shift()),r.session.$scrollTop=n):n!=null?(r.session.$scrollTop=-1,r.session.setScrollTop(n),n=null):(r.$timer=clearInterval(r.$timer),r.$scrollAnimation=null,t&&t())},10)},this.scrollToY=function(e){this.scrollTop!==e&&(this.$loop.schedule(this.CHANGE_SCROLL),this.scrollTop=e)},this.scrollToX=function(e){this.scrollLeft!==e&&(this.scrollLeft=e),this.$loop.schedule(this.CHANGE_H_SCROLL)},this.scrollTo=function(e,t){this.session.setScrollTop(t),this.session.setScrollLeft(t)},this.scrollBy=function(e,t){t&&this.session.setScrollTop(this.session.getScrollTop()+t),e&&this.session.setScrollLeft(this.session.getScrollLeft()+e)},this.isScrollableBy=function(e,t){if(t<0&&this.session.getScrollTop()>=1-this.scrollMargin.top)return!0;if(t>0&&this.session.getScrollTop()+this.$size.scrollerHeight-this.layerConfig.maxHeight<-1+this.scrollMargin.bottom)return!0;if(e<0&&this.session.getScrollLeft()>=1-this.scrollMargin.left)return!0;if(e>0&&this.session.getScrollLeft()+this.$size.scrollerWidth-this.layerConfig.width<-1+this.scrollMargin.right)return!0},this.pixelToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=(e+this.scrollLeft-n.left-this.$padding)/this.characterWidth,i=Math.floor((t+this.scrollTop-n.top)/this.lineHeight),s=Math.round(r);return{row:i,column:s,side:r-s>0?1:-1}},this.screenToTextCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=Math.round((e+this.scrollLeft-n.left-this.$padding)/this.characterWidth),i=(t+this.scrollTop-n.top)/this.lineHeight;return this.session.screenToDocumentPosition(i,Math.max(r,0))},this.textToScreenCoordinates=function(e,t){var n=this.scroller.getBoundingClientRect(),r=this.session.documentToScreenPosition(e,t),i=this.$padding+Math.round(r.column*this.characterWidth),s=r.row*this.lineHeight;return{pageX:n.left+i-this.scrollLeft,pageY:n.top+s-this.scrollTop}},this.visualizeFocus=function(){i.addCssClass(this.container,"ace_focus")},this.visualizeBlur=function(){i.removeCssClass(this.container,"ace_focus")},this.showComposition=function(e){this.$composition||(this.$composition={keepTextAreaAtCursor:this.$keepTextAreaAtCursor,cssText:this.textarea.style.cssText}),this.$keepTextAreaAtCursor=!0,i.addCssClass(this.textarea,"ace_composition"),this.textarea.style.cssText="",this.$moveTextAreaToCursor()},this.setCompositionText=function(e){this.$moveTextAreaToCursor()},this.hideComposition=function(){if(!this.$composition)return;i.removeCssClass(this.textarea,"ace_composition"),this.$keepTextAreaAtCursor=this.$composition.keepTextAreaAtCursor,this.textarea.style.cssText=this.$composition.cssText,this.$composition=null},this.setTheme=function(e,t){function o(r){if(n.$themeId!=e)return t&&t();if(!r||!r.cssClass)throw new Error("couldn't load module "+e+" or it didn't call define");i.importCssString(r.cssText,r.cssClass,n.container.ownerDocument),n.theme&&i.removeCssClass(n.container,n.theme.cssClass);var s="padding"in r?r.padding:"padding"in(n.theme||{})?4:n.$padding;n.$padding&&s!=n.$padding&&n.setPadding(s),n.$theme=r.cssClass,n.theme=r,i.addCssClass(n.container,r.cssClass),i.setCssClass(n.container,"ace_dark",r.isDark),n.$size&&(n.$size.width=0,n.$updateSizeAsync()),n._dispatchEvent("themeLoaded",{theme:r}),t&&t()}var n=this;this.$themeId=e,n._dispatchEvent("themeChange",{theme:e});if(!e||typeof e=="string"){var r=e||this.$options.theme.initialValue;s.loadModule(["theme",r],o)}else o(e)},this.getTheme=function(){return this.$themeId},this.setStyle=function(e,t){i.setCssClass(this.container,e,t!==!1)},this.unsetStyle=function(e){i.removeCssClass(this.container,e)},this.setCursorStyle=function(e){this.scroller.style.cursor!=e&&(this.scroller.style.cursor=e)},this.setMouseCursor=function(e){this.scroller.style.cursor=e},this.destroy=function(){this.$textLayer.destroy(),this.$cursorLayer.destroy()}}).call(g.prototype),s.defineOptions(g.prototype,"renderer",{animatedScroll:{initialValue:!1},showInvisibles:{set:function(e){this.$textLayer.setShowInvisibles(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!1},showPrintMargin:{set:function(){this.$updatePrintMargin()},initialValue:!0},printMarginColumn:{set:function(){this.$updatePrintMargin()},initialValue:80},printMargin:{set:function(e){typeof e=="number"&&(this.$printMarginColumn=e),this.$showPrintMargin=!!e,this.$updatePrintMargin()},get:function(){return this.$showPrintMargin&&this.$printMarginColumn}},showGutter:{set:function(e){this.$gutter.style.display=e?"block":"none",this.$loop.schedule(this.CHANGE_FULL),this.onGutterResize()},initialValue:!0},fadeFoldWidgets:{set:function(e){i.setCssClass(this.$gutter,"ace_fade-fold-widgets",e)},initialValue:!1},showFoldWidgets:{set:function(e){this.$gutterLayer.setShowFoldWidgets(e)},initialValue:!0},showLineNumbers:{set:function(e){this.$gutterLayer.setShowLineNumbers(e),this.$loop.schedule(this.CHANGE_GUTTER)},initialValue:!0},displayIndentGuides:{set:function(e){this.$textLayer.setDisplayIndentGuides(e)&&this.$loop.schedule(this.CHANGE_TEXT)},initialValue:!0},highlightGutterLine:{set:function(e){if(!this.$gutterLineHighlight){this.$gutterLineHighlight=i.createElement("div"),this.$gutterLineHighlight.className="ace_gutter-active-line",this.$gutter.appendChild(this.$gutterLineHighlight);return}this.$gutterLineHighlight.style.display=e?"":"none",this.$cursorLayer.$pixelPos&&this.$updateGutterLineHighlight()},initialValue:!1,value:!0},hScrollBarAlwaysVisible:{set:function(e){(!this.$hScrollBarAlwaysVisible||!this.$horizScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},vScrollBarAlwaysVisible:{set:function(e){(!this.$vScrollBarAlwaysVisible||!this.$vScroll)&&this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:!1},fontSize:{set:function(e){typeof e=="number"&&(e+="px"),this.container.style.fontSize=e,this.updateFontSize()},initialValue:12},fontFamily:{set:function(e){this.container.style.fontFamily=e,this.updateFontSize()}},maxLines:{set:function(e){this.updateFull()}},minLines:{set:function(e){this.updateFull()}},maxPixelHeight:{set:function(e){this.updateFull()},initialValue:0},scrollPastEnd:{set:function(e){e=+e||0;if(this.$scrollPastEnd==e)return;this.$scrollPastEnd=e,this.$loop.schedule(this.CHANGE_SCROLL)},initialValue:0,handlesSet:!0},fixedWidthGutter:{set:function(e){this.$gutterLayer.$fixedWidth=!!e,this.$loop.schedule(this.CHANGE_GUTTER)}},theme:{set:function(e){this.setTheme(e)},get:function(){return this.$themeId||this.theme},initialValue:"./theme/textmate",handlesSet:!0}}),t.VirtualRenderer=g}),define("ace/worker/worker_client",["require","exports","module","ace/lib/oop","ace/lib/net","ace/lib/event_emitter","ace/config"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../lib/net"),s=e("../lib/event_emitter").EventEmitter,o=e("../config"),u=function(t,n,r,i){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.onMessage=this.onMessage.bind(this),e.nameToUrl&&!e.toUrl&&(e.toUrl=e.nameToUrl);if(o.get("packaged")||!e.toUrl)i=i||o.moduleUrl(n,"worker");else{var s=this.$normalizePath;i=i||s(e.toUrl("ace/worker/worker.js",null,"_"));var u={};t.forEach(function(t){u[t]=s(e.toUrl(t,null,"_").replace(/(\.js)?(\?.*)?$/,""))})}try{this.$worker=new Worker(i)}catch(a){if(!(a instanceof window.DOMException))throw a;var f=this.$workerBlob(i),l=window.URL||window.webkitURL,c=l.createObjectURL(f);this.$worker=new Worker(c),l.revokeObjectURL(c)}this.$worker.postMessage({init:!0,tlns:u,module:n,classname:r}),this.callbackId=1,this.callbacks={},this.$worker.onmessage=this.onMessage};(function(){r.implement(this,s),this.onMessage=function(e){var t=e.data;switch(t.type){case"event":this._signal(t.name,{data:t.data});break;case"call":var n=this.callbacks[t.id];n&&(n(t.data),delete this.callbacks[t.id]);break;case"error":this.reportError(t.data);break;case"log":window.console&&console.log&&console.log.apply(console,t.data)}},this.reportError=function(e){window.console&&console.error&&console.error(e)},this.$normalizePath=function(e){return i.qualifyURL(e)},this.terminate=function(){this._signal("terminate",{}),this.deltaQueue=null,this.$worker.terminate(),this.$worker=null,this.$doc&&this.$doc.off("change",this.changeListener),this.$doc=null},this.send=function(e,t){this.$worker.postMessage({command:e,args:t})},this.call=function(e,t,n){if(n){var r=this.callbackId++;this.callbacks[r]=n,t.push(r)}this.send(e,t)},this.emit=function(e,t){try{this.$worker.postMessage({event:e,data:{data:t.data}})}catch(n){console.error(n.stack)}},this.attachToDocument=function(e){this.$doc&&this.terminate(),this.$doc=e,this.call("setValue",[e.getValue()]),e.on("change",this.changeListener)},this.changeListener=function(e){this.deltaQueue||(this.deltaQueue=[],setTimeout(this.$sendDeltaQueue,0)),e.action=="insert"?this.deltaQueue.push(e.start,e.lines):this.deltaQueue.push(e.start,e.end)},this.$sendDeltaQueue=function(){var e=this.deltaQueue;if(!e)return;this.deltaQueue=null,e.length>50&&e.length>this.$doc.getLength()>>1?this.call("setValue",[this.$doc.getValue()]):this.emit("change",{data:e})},this.$workerBlob=function(e){var t="importScripts('"+i.qualifyURL(e)+"');";try{return new Blob([t],{type:"application/javascript"})}catch(n){var r=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder,s=new r;return s.append(t),s.getBlob("application/javascript")}}}).call(u.prototype);var a=function(e,t,n){this.$sendDeltaQueue=this.$sendDeltaQueue.bind(this),this.changeListener=this.changeListener.bind(this),this.callbackId=1,this.callbacks={},this.messageBuffer=[];var r=null,i=!1,u=Object.create(s),a=this;this.$worker={},this.$worker.terminate=function(){},this.$worker.postMessage=function(e){a.messageBuffer.push(e),r&&(i?setTimeout(f):f())},this.setEmitSync=function(e){i=e};var f=function(){var e=a.messageBuffer.shift();e.command?r[e.command].apply(r,e.args):e.event&&u._signal(e.event,e.data)};u.postMessage=function(e){a.onMessage({data:e})},u.callback=function(e,t){this.postMessage({type:"call",id:t,data:e})},u.emit=function(e,t){this.postMessage({type:"event",name:e,data:t})},o.loadModule(["worker",t],function(e){r=new e[n](u);while(a.messageBuffer.length)f()})};a.prototype=u.prototype,t.UIWorkerClient=a,t.WorkerClient=u}),define("ace/placeholder",["require","exports","module","ace/range","ace/lib/event_emitter","ace/lib/oop"],function(e,t,n){"use strict";var r=e("./range").Range,i=e("./lib/event_emitter").EventEmitter,s=e("./lib/oop"),o=function(e,t,n,r,i,s){var o=this;this.length=t,this.session=e,this.doc=e.getDocument(),this.mainClass=i,this.othersClass=s,this.$onUpdate=this.onUpdate.bind(this),this.doc.on("change",this.$onUpdate),this.$others=r,this.$onCursorChange=function(){setTimeout(function(){o.onCursorChange()})},this.$pos=n;var u=e.getUndoManager().$undoStack||e.getUndoManager().$undostack||{length:-1};this.$undoStackDepth=u.length,this.setup(),e.selection.on("changeCursor",this.$onCursorChange)};(function(){s.implement(this,i),this.setup=function(){var e=this,t=this.doc,n=this.session;this.selectionBefore=n.selection.toJSON(),n.selection.inMultiSelectMode&&n.selection.toSingleRange(),this.pos=t.createAnchor(this.$pos.row,this.$pos.column);var i=this.pos;i.$insertRight=!0,i.detach(),i.markerId=n.addMarker(new r(i.row,i.column,i.row,i.column+this.length),this.mainClass,null,!1),this.others=[],this.$others.forEach(function(n){var r=t.createAnchor(n.row,n.column);r.$insertRight=!0,r.detach(),e.others.push(r)}),n.setUndoSelect(!1)},this.showOtherMarkers=function(){if(this.othersActive)return;var e=this.session,t=this;this.othersActive=!0,this.others.forEach(function(n){n.markerId=e.addMarker(new r(n.row,n.column,n.row,n.column+t.length),t.othersClass,null,!1)})},this.hideOtherMarkers=function(){if(!this.othersActive)return;this.othersActive=!1;for(var e=0;e<this.others.length;e++)this.session.removeMarker(this.others[e].markerId)},this.onUpdate=function(e){if(this.$updating)return this.updateAnchors(e);var t=e;if(t.start.row!==t.end.row)return;if(t.start.row!==this.pos.row)return;this.$updating=!0;var n=e.action==="insert"?t.end.column-t.start.column:t.start.column-t.end.column,i=t.start.column>=this.pos.column&&t.start.column<=this.pos.column+this.length+1,s=t.start.column-this.pos.column;this.updateAnchors(e),i&&(this.length+=n);if(i&&!this.session.$fromUndo)if(e.action==="insert")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.insertMergedLines(a,e.lines)}else if(e.action==="remove")for(var o=this.others.length-1;o>=0;o--){var u=this.others[o],a={row:u.row,column:u.column+s};this.doc.remove(new r(a.row,a.column,a.row,a.column-n))}this.$updating=!1,this.updateMarkers()},this.updateAnchors=function(e){this.pos.onChange(e);for(var t=this.others.length;t--;)this.others[t].onChange(e);this.updateMarkers()},this.updateMarkers=function(){if(this.$updating)return;var e=this,t=this.session,n=function(n,i){t.removeMarker(n.markerId),n.markerId=t.addMarker(new r(n.row,n.column,n.row,n.column+e.length),i,null,!1)};n(this.pos,this.mainClass);for(var i=this.others.length;i--;)n(this.others[i],this.othersClass)},this.onCursorChange=function(e){if(this.$updating||!this.session)return;var t=this.session.selection.getCursor();t.row===this.pos.row&&t.column>=this.pos.column&&t.column<=this.pos.column+this.length?(this.showOtherMarkers(),this._emit("cursorEnter",e)):(this.hideOtherMarkers(),this._emit("cursorLeave",e))},this.detach=function(){this.session.removeMarker(this.pos&&this.pos.markerId),this.hideOtherMarkers(),this.doc.removeEventListener("change",this.$onUpdate),this.session.selection.removeEventListener("changeCursor",this.$onCursorChange),this.session.setUndoSelect(!0),this.session=null},this.cancel=function(){if(this.$undoStackDepth===-1)return;var e=this.session.getUndoManager(),t=(e.$undoStack||e.$undostack).length-this.$undoStackDepth;for(var n=0;n<t;n++)e.undo(!0);this.selectionBefore&&this.session.selection.fromJSON(this.selectionBefore)}}).call(o.prototype),t.PlaceHolder=o}),define("ace/mouse/multi_select_handler",["require","exports","module","ace/lib/event","ace/lib/useragent"],function(e,t,n){function s(e,t){return e.row==t.row&&e.column==t.column}function o(e){var t=e.domEvent,n=t.altKey,o=t.shiftKey,u=t.ctrlKey,a=e.getAccelKey(),f=e.getButton();u&&i.isMac&&(f=t.button);if(e.editor.inMultiSelectMode&&f==2){e.editor.textInput.onContextMenu(e.domEvent);return}if(!u&&!n&&!a){f===0&&e.editor.inMultiSelectMode&&e.editor.exitMultiSelectMode();return}if(f!==0)return;var l=e.editor,c=l.selection,h=l.inMultiSelectMode,p=e.getDocumentPosition(),d=c.getCursor(),v=e.inSelection()||c.isEmpty()&&s(p,d),m=e.x,g=e.y,y=function(e){m=e.clientX,g=e.clientY},b=l.session,w=l.renderer.pixelToScreenCoordinates(m,g),E=w,S;if(l.$mouseHandler.$enableJumpToDef)u&&n||a&&n?S=o?"block":"add":n&&l.$blockSelectEnabled&&(S="block");else if(a&&!n){S="add";if(!h&&o)return}else n&&l.$blockSelectEnabled&&(S="block");S&&i.isMac&&t.ctrlKey&&l.$mouseHandler.cancelContextMenu();if(S=="add"){if(!h&&v)return;if(!h){var x=c.toOrientedRange();l.addSelectionMarker(x)}var T=c.rangeList.rangeAtPoint(p);l.$blockScrolling++,l.inVirtualSelectionMode=!0,o&&(T=null,x=c.ranges[0]||x,l.removeSelectionMarker(x)),l.once("mouseup",function(){var e=c.toOrientedRange();T&&e.isEmpty()&&s(T.cursor,e.cursor)?c.substractPoint(e.cursor):(o?c.substractPoint(x.cursor):x&&(l.removeSelectionMarker(x),c.addRange(x)),c.addRange(e)),l.$blockScrolling--,l.inVirtualSelectionMode=!1})}else if(S=="block"){e.stop(),l.inVirtualSelectionMode=!0;var N,C=[],k=function(){var e=l.renderer.pixelToScreenCoordinates(m,g),t=b.screenToDocumentPosition(e.row,e.column);if(s(E,e)&&s(t,c.lead))return;E=e,l.$blockScrolling++,l.selection.moveToPosition(t),l.renderer.scrollCursorIntoView(),l.removeSelectionMarkers(C),C=c.rectangularRangeBlock(E,w),l.$mouseHandler.$clickSelection&&C.length==1&&C[0].isEmpty()&&(C[0]=l.$mouseHandler.$clickSelection.clone()),C.forEach(l.addSelectionMarker,l),l.updateSelectionMarkers(),l.$blockScrolling--};l.$blockScrolling++,h&&!a?c.toSingleRange():!h&&a&&(N=c.toOrientedRange(),l.addSelectionMarker(N)),o?w=b.documentToScreenPosition(c.lead):c.moveToPosition(p),l.$blockScrolling--,E={row:-1,column:-1};var L=function(e){clearInterval(O),l.removeSelectionMarkers(C),C.length||(C=[c.toOrientedRange()]),l.$blockScrolling++,N&&(l.removeSelectionMarker(N),c.toSingleRange(N));for(var t=0;t<C.length;t++)c.addRange(C[t]);l.inVirtualSelectionMode=!1,l.$mouseHandler.$clickSelection=null,l.$blockScrolling--},A=k;r.capture(l.container,y,L);var O=setInterval(function(){A()},20);return e.preventDefault()}}var r=e("../lib/event"),i=e("../lib/useragent");t.onMouseDown=o}),define("ace/commands/multi_select_commands",["require","exports","module","ace/keyboard/hash_handler"],function(e,t,n){t.defaultCommands=[{name:"addCursorAbove",exec:function(e){e.selectMoreLines(-1)},bindKey:{win:"Ctrl-Alt-Up",mac:"Ctrl-Alt-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelow",exec:function(e){e.selectMoreLines(1)},bindKey:{win:"Ctrl-Alt-Down",mac:"Ctrl-Alt-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorAboveSkipCurrent",exec:function(e){e.selectMoreLines(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Up",mac:"Ctrl-Alt-Shift-Up"},scrollIntoView:"cursor",readOnly:!0},{name:"addCursorBelowSkipCurrent",exec:function(e){e.selectMoreLines(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Down",mac:"Ctrl-Alt-Shift-Down"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreBefore",exec:function(e){e.selectMore(-1)},bindKey:{win:"Ctrl-Alt-Left",mac:"Ctrl-Alt-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectMoreAfter",exec:function(e){e.selectMore(1)},bindKey:{win:"Ctrl-Alt-Right",mac:"Ctrl-Alt-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextBefore",exec:function(e){e.selectMore(-1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Left",mac:"Ctrl-Alt-Shift-Left"},scrollIntoView:"cursor",readOnly:!0},{name:"selectNextAfter",exec:function(e){e.selectMore(1,!0)},bindKey:{win:"Ctrl-Alt-Shift-Right",mac:"Ctrl-Alt-Shift-Right"},scrollIntoView:"cursor",readOnly:!0},{name:"splitIntoLines",exec:function(e){e.multiSelect.splitIntoLines()},bindKey:{win:"Ctrl-Alt-L",mac:"Ctrl-Alt-L"},readOnly:!0},{name:"alignCursors",exec:function(e){e.alignCursors()},bindKey:{win:"Ctrl-Alt-A",mac:"Ctrl-Alt-A"},scrollIntoView:"cursor"},{name:"findAll",exec:function(e){e.findAll()},bindKey:{win:"Ctrl-Alt-K",mac:"Ctrl-Alt-G"},scrollIntoView:"cursor",readOnly:!0}],t.multiSelectCommands=[{name:"singleSelection",bindKey:"esc",exec:function(e){e.exitMultiSelectMode()},scrollIntoView:"cursor",readOnly:!0,isAvailable:function(e){return e&&e.inMultiSelectMode}}];var r=e("../keyboard/hash_handler").HashHandler;t.keyboardHandler=new r(t.multiSelectCommands)}),define("ace/multi_select",["require","exports","module","ace/range_list","ace/range","ace/selection","ace/mouse/multi_select_handler","ace/lib/event","ace/lib/lang","ace/commands/multi_select_commands","ace/search","ace/edit_session","ace/editor","ace/config"],function(e,t,n){function h(e,t,n){return c.$options.wrap=!0,c.$options.needle=t,c.$options.backwards=n==-1,c.find(e)}function v(e,t){return e.row==t.row&&e.column==t.column}function m(e){if(e.$multiselectOnSessionChange)return;e.$onAddRange=e.$onAddRange.bind(e),e.$onRemoveRange=e.$onRemoveRange.bind(e),e.$onMultiSelect=e.$onMultiSelect.bind(e),e.$onSingleSelect=e.$onSingleSelect.bind(e),e.$multiselectOnSessionChange=t.onSessionChange.bind(e),e.$checkMultiselectChange=e.$checkMultiselectChange.bind(e),e.$multiselectOnSessionChange(e),e.on("changeSession",e.$multiselectOnSessionChange),e.on("mousedown",o),e.commands.addCommands(f.defaultCommands),g(e)}function g(e){function r(t){n&&(e.renderer.setMouseCursor(""),n=!1)}var t=e.textInput.getElement(),n=!1;u.addListener(t,"keydown",function(t){var i=t.keyCode==18&&!(t.ctrlKey||t.shiftKey||t.metaKey);e.$blockSelectEnabled&&i?n||(e.renderer.setMouseCursor("crosshair"),n=!0):n&&r()}),u.addListener(t,"keyup",r),u.addListener(t,"blur",r)}var r=e("./range_list").RangeList,i=e("./range").Range,s=e("./selection").Selection,o=e("./mouse/multi_select_handler").onMouseDown,u=e("./lib/event"),a=e("./lib/lang"),f=e("./commands/multi_select_commands");t.commands=f.defaultCommands.concat(f.multiSelectCommands);var l=e("./search").Search,c=new l,p=e("./edit_session").EditSession;(function(){this.getSelectionMarkers=function(){return this.$selectionMarkers}}).call(p.prototype),function(){this.ranges=null,this.rangeList=null,this.addRange=function(e,t){if(!e)return;if(!this.inMultiSelectMode&&this.rangeCount===0){var n=this.toOrientedRange();this.rangeList.add(n),this.rangeList.add(e);if(this.rangeList.ranges.length!=2)return this.rangeList.removeAll(),t||this.fromOrientedRange(e);this.rangeList.removeAll(),this.rangeList.add(n),this.$onAddRange(n)}e.cursor||(e.cursor=e.end);var r=this.rangeList.add(e);return this.$onAddRange(e),r.length&&this.$onRemoveRange(r),this.rangeCount>1&&!this.inMultiSelectMode&&(this._signal("multiSelect"),this.inMultiSelectMode=!0,this.session.$undoSelect=!1,this.rangeList.attach(this.session)),t||this.fromOrientedRange(e)},this.toSingleRange=function(e){e=e||this.ranges[0];var t=this.rangeList.removeAll();t.length&&this.$onRemoveRange(t),e&&this.fromOrientedRange(e)},this.substractPoint=function(e){var t=this.rangeList.substractPoint(e);if(t)return this.$onRemoveRange(t),t[0]},this.mergeOverlappingRanges=function(){var e=this.rangeList.merge();e.length?this.$onRemoveRange(e):this.ranges[0]&&this.fromOrientedRange(this.ranges[0])},this.$onAddRange=function(e){this.rangeCount=this.rangeList.ranges.length,this.ranges.unshift(e),this._signal("addRange",{range:e})},this.$onRemoveRange=function(e){this.rangeCount=this.rangeList.ranges.length;if(this.rangeCount==1&&this.inMultiSelectMode){var t=this.rangeList.ranges.pop();e.push(t),this.rangeCount=0}for(var n=e.length;n--;){var r=this.ranges.indexOf(e[n]);this.ranges.splice(r,1)}this._signal("removeRange",{ranges:e}),this.rangeCount===0&&this.inMultiSelectMode&&(this.inMultiSelectMode=!1,this._signal("singleSelect"),this.session.$undoSelect=!0,this.rangeList.detach(this.session)),t=t||this.ranges[0],t&&!t.isEqual(this.getRange())&&this.fromOrientedRange(t)},this.$initRangeList=function(){if(this.rangeList)return;this.rangeList=new r,this.ranges=[],this.rangeCount=0},this.getAllRanges=function(){return this.rangeCount?this.rangeList.ranges.concat():[this.getRange()]},this.splitIntoLines=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var n=this.getRange(),r=this.isBackwards(),s=n.start.row,o=n.end.row;if(s==o){if(r)var u=n.end,a=n.start;else var u=n.start,a=n.end;this.addRange(i.fromPoints(a,a)),this.addRange(i.fromPoints(u,u));return}var f=[],l=this.getLineRange(s,!0);l.start.column=n.start.column,f.push(l);for(var c=s+1;c<o;c++)f.push(this.getLineRange(c,!0));l=this.getLineRange(o,!0),l.end.column=n.end.column,f.push(l),f.forEach(this.addRange,this)}},this.toggleBlockSelection=function(){if(this.rangeCount>1){var e=this.rangeList.ranges,t=e[e.length-1],n=i.fromPoints(e[0].start,t.end);this.toSingleRange(),this.setSelectionRange(n,t.cursor==t.start)}else{var r=this.session.documentToScreenPosition(this.selectionLead),s=this.session.documentToScreenPosition(this.selectionAnchor),o=this.rectangularRangeBlock(r,s);o.forEach(this.addRange,this)}},this.rectangularRangeBlock=function(e,t,n){var r=[],s=e.column<t.column;if(s)var o=e.column,u=t.column;else var o=t.column,u=e.column;var a=e.row<t.row;if(a)var f=e.row,l=t.row;else var f=t.row,l=e.row;o<0&&(o=0),f<0&&(f=0),f==l&&(n=!0);for(var c=f;c<=l;c++){var h=i.fromPoints(this.session.screenToDocumentPosition(c,o),this.session.screenToDocumentPosition(c,u));if(h.isEmpty()){if(p&&v(h.end,p))break;var p=h.end}h.cursor=s?h.start:h.end,r.push(h)}a&&r.reverse();if(!n){var d=r.length-1;while(r[d].isEmpty()&&d>0)d--;if(d>0){var m=0;while(r[m].isEmpty())m++}for(var g=d;g>=m;g--)r[g].isEmpty()&&r.splice(g,1)}return r}}.call(s.prototype);var d=e("./editor").Editor;(function(){this.updateSelectionMarkers=function(){this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.addSelectionMarker=function(e){e.cursor||(e.cursor=e.end);var t=this.getSelectionStyle();return e.marker=this.session.addMarker(e,"ace_selection",t),this.session.$selectionMarkers.push(e),this.session.selectionMarkerCount=this.session.$selectionMarkers.length,e},this.removeSelectionMarker=function(e){if(!e.marker)return;this.session.removeMarker(e.marker);var t=this.session.$selectionMarkers.indexOf(e);t!=-1&&this.session.$selectionMarkers.splice(t,1),this.session.selectionMarkerCount=this.session.$selectionMarkers.length},this.removeSelectionMarkers=function(e){var t=this.session.$selectionMarkers;for(var n=e.length;n--;){var r=e[n];if(!r.marker)continue;this.session.removeMarker(r.marker);var i=t.indexOf(r);i!=-1&&t.splice(i,1)}this.session.selectionMarkerCount=t.length},this.$onAddRange=function(e){this.addSelectionMarker(e.range),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onRemoveRange=function(e){this.removeSelectionMarkers(e.ranges),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onMultiSelect=function(e){if(this.inMultiSelectMode)return;this.inMultiSelectMode=!0,this.setStyle("ace_multiselect"),this.keyBinding.addKeyboardHandler(f.keyboardHandler),this.commands.setDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers()},this.$onSingleSelect=function(e){if(this.session.multiSelect.inVirtualMode)return;this.inMultiSelectMode=!1,this.unsetStyle("ace_multiselect"),this.keyBinding.removeKeyboardHandler(f.keyboardHandler),this.commands.removeDefaultHandler("exec",this.$onMultiSelectExec),this.renderer.updateCursor(),this.renderer.updateBackMarkers(),this._emit("changeSelection")},this.$onMultiSelectExec=function(e){var t=e.command,n=e.editor;if(!n.multiSelect)return;if(!t.multiSelectAction){var r=t.exec(n,e.args||{});n.multiSelect.addRange(n.multiSelect.toOrientedRange()),n.multiSelect.mergeOverlappingRanges()}else t.multiSelectAction=="forEach"?r=n.forEachSelection(t,e.args):t.multiSelectAction=="forEachLine"?r=n.forEachSelection(t,e.args,!0):t.multiSelectAction=="single"?(n.exitMultiSelectMode(),r=t.exec(n,e.args||{})):r=t.multiSelectAction(n,e.args||{});return r},this.forEachSelection=function(e,t,n){if(this.inVirtualSelectionMode)return;var r=n&&n.keepOrder,i=n==1||n&&n.$byLines,o=this.session,u=this.selection,a=u.rangeList,f=(r?u:a).ranges,l;if(!f.length)return e.exec?e.exec(this,t||{}):e(this,t||{});var c=u._eventRegistry;u._eventRegistry={};var h=new s(o);this.inVirtualSelectionMode=!0;for(var p=f.length;p--;){if(i)while(p>0&&f[p].start.row==f[p-1].end.row)p--;h.fromOrientedRange(f[p]),h.index=p,this.selection=o.selection=h;var d=e.exec?e.exec(this,t||{}):e(this,t||{});!l&&d!==undefined&&(l=d),h.toOrientedRange(f[p])}h.detach(),this.selection=o.selection=u,this.inVirtualSelectionMode=!1,u._eventRegistry=c,u.mergeOverlappingRanges();var v=this.renderer.$scrollAnimation;return this.onCursorChange(),this.onSelectionChange(),v&&v.from==v.to&&this.renderer.animateScrolling(v.from),l},this.exitMultiSelectMode=function(){if(!this.inMultiSelectMode||this.inVirtualSelectionMode)return;this.multiSelect.toSingleRange()},this.getSelectedText=function(){var e="";if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var t=this.multiSelect.rangeList.ranges,n=[];for(var r=0;r<t.length;r++)n.push(this.session.getTextRange(t[r]));var i=this.session.getDocument().getNewLineCharacter();e=n.join(i),e.length==(n.length-1)*i.length&&(e="")}else this.selection.isEmpty()||(e=this.session.getTextRange(this.getSelectionRange()));return e},this.$checkMultiselectChange=function(e,t){if(this.inMultiSelectMode&&!this.inVirtualSelectionMode){var n=this.multiSelect.ranges[0];if(this.multiSelect.isEmpty()&&t==this.multiSelect.anchor)return;var r=t==this.multiSelect.anchor?n.cursor==n.start?n.end:n.start:n.cursor;(r.row!=t.row||this.session.$clipPositionToDocument(r.row,r.column).column!=t.column)&&this.multiSelect.toSingleRange(this.multiSelect.toOrientedRange())}},this.findAll=function(e,t,n){t=t||{},t.needle=e||t.needle;if(t.needle==undefined){var r=this.selection.isEmpty()?this.selection.getWordRange():this.selection.getRange();t.needle=this.session.getTextRange(r)}this.$search.set(t);var i=this.$search.findAll(this.session);if(!i.length)return 0;this.$blockScrolling+=1;var s=this.multiSelect;n||s.toSingleRange(i[0]);for(var o=i.length;o--;)s.addRange(i[o],!0);return r&&s.rangeList.rangeAtPoint(r.start)&&s.addRange(r,!0),this.$blockScrolling-=1,i.length},this.selectMoreLines=function(e,t){var n=this.selection.toOrientedRange(),r=n.cursor==n.end,s=this.session.documentToScreenPosition(n.cursor);this.selection.$desiredColumn&&(s.column=this.selection.$desiredColumn);var o=this.session.screenToDocumentPosition(s.row+e,s.column);if(!n.isEmpty())var u=this.session.documentToScreenPosition(r?n.end:n.start),a=this.session.screenToDocumentPosition(u.row+e,u.column);else var a=o;if(r){var f=i.fromPoints(o,a);f.cursor=f.start}else{var f=i.fromPoints(a,o);f.cursor=f.end}f.desiredColumn=s.column;if(!this.selection.inMultiSelectMode)this.selection.addRange(n);else if(t)var l=n.cursor;this.selection.addRange(f),l&&this.selection.substractPoint(l)},this.transposeSelections=function(e){var t=this.session,n=t.multiSelect,r=n.ranges;for(var i=r.length;i--;){var s=r[i];if(s.isEmpty()){var o=t.getWordRange(s.start.row,s.start.column);s.start.row=o.start.row,s.start.column=o.start.column,s.end.row=o.end.row,s.end.column=o.end.column}}n.mergeOverlappingRanges();var u=[];for(var i=r.length;i--;){var s=r[i];u.unshift(t.getTextRange(s))}e<0?u.unshift(u.pop()):u.push(u.shift());for(var i=r.length;i--;){var s=r[i],o=s.clone();t.replace(s,u[i]),s.start.row=o.start.row,s.start.column=o.start.column}},this.selectMore=function(e,t,n){var r=this.session,i=r.multiSelect,s=i.toOrientedRange();if(s.isEmpty()){s=r.getWordRange(s.start.row,s.start.column),s.cursor=e==-1?s.start:s.end,this.multiSelect.addRange(s);if(n)return}var o=r.getTextRange(s),u=h(r,o,e);u&&(u.cursor=e==-1?u.start:u.end,this.$blockScrolling+=1,this.session.unfold(u),this.multiSelect.addRange(u),this.$blockScrolling-=1,this.renderer.scrollCursorIntoView(null,.5)),t&&this.multiSelect.substractPoint(s.cursor)},this.alignCursors=function(){var e=this.session,t=e.multiSelect,n=t.ranges,r=-1,s=n.filter(function(e){if(e.cursor.row==r)return!0;r=e.cursor.row});if(!n.length||s.length==n.length-1){var o=this.selection.getRange(),u=o.start.row,f=o.end.row,l=u==f;if(l){var c=this.session.getLength(),h;do h=this.session.getLine(f);while(/[=:]/.test(h)&&++f<c);do h=this.session.getLine(u);while(/[=:]/.test(h)&&--u>0);u<0&&(u=0),f>=c&&(f=c-1)}var p=this.session.removeFullLines(u,f);p=this.$reAlignText(p,l),this.session.insert({row:u,column:0},p.join("\n")+"\n"),l||(o.start.column=0,o.end.column=p[p.length-1].length),this.selection.setRange(o)}else{s.forEach(function(e){t.substractPoint(e.cursor)});var d=0,v=Infinity,m=n.map(function(t){var n=t.cursor,r=e.getLine(n.row),i=r.substr(n.column).search(/\S/g);return i==-1&&(i=0),n.column>d&&(d=n.column),i<v&&(v=i),i});n.forEach(function(t,n){var r=t.cursor,s=d-r.column,o=m[n]-v;s>o?e.insert(r,a.stringRepeat(" ",s-o)):e.remove(new i(r.row,r.column,r.row,r.column-s+o)),t.start.column=t.end.column=d,t.start.row=t.end.row=r.row,t.cursor=t.end}),t.fromOrientedRange(n[0]),this.renderer.updateCursor(),this.renderer.updateBackMarkers()}},this.$reAlignText=function(e,t){function u(e){return a.stringRepeat(" ",e)}function f(e){return e[2]?u(i)+e[2]+u(s-e[2].length+o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function l(e){return e[2]?u(i+s-e[2].length)+e[2]+u(o," ")+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}function c(e){return e[2]?u(i)+e[2]+u(o)+e[4].replace(/^([=:])\s+/,"$1 "):e[0]}var n=!0,r=!0,i,s,o;return e.map(function(e){var t=e.match(/(\s*)(.*?)(\s*)([=:].*)/);return t?i==null?(i=t[1].length,s=t[2].length,o=t[3].length,t):(i+s+o!=t[1].length+t[2].length+t[3].length&&(r=!1),i!=t[1].length&&(n=!1),i>t[1].length&&(i=t[1].length),s<t[2].length&&(s=t[2].length),o>t[3].length&&(o=t[3].length),t):[e]}).map(t?f:n?r?l:f:c)}}).call(d.prototype),t.onSessionChange=function(e){var t=e.session;t&&!t.multiSelect&&(t.$selectionMarkers=[],t.selection.$initRangeList(),t.multiSelect=t.selection),this.multiSelect=t&&t.multiSelect;var n=e.oldSession;n&&(n.multiSelect.off("addRange",this.$onAddRange),n.multiSelect.off("removeRange",this.$onRemoveRange),n.multiSelect.off("multiSelect",this.$onMultiSelect),n.multiSelect.off("singleSelect",this.$onSingleSelect),n.multiSelect.lead.off("change",this.$checkMultiselectChange),n.multiSelect.anchor.off("change",this.$checkMultiselectChange)),t&&(t.multiSelect.on("addRange",this.$onAddRange),t.multiSelect.on("removeRange",this.$onRemoveRange),t.multiSelect.on("multiSelect",this.$onMultiSelect),t.multiSelect.on("singleSelect",this.$onSingleSelect),t.multiSelect.lead.on("change",this.$checkMultiselectChange),t.multiSelect.anchor.on("change",this.$checkMultiselectChange)),t&&this.inMultiSelectMode!=t.selection.inMultiSelectMode&&(t.selection.inMultiSelectMode?this.$onMultiSelect():this.$onSingleSelect())},t.MultiSelect=m,e("./config").defineOptions(d.prototype,"editor",{enableMultiselect:{set:function(e){m(this),e?(this.on("changeSession",this.$multiselectOnSessionChange),this.on("mousedown",o)):(this.off("changeSession",this.$multiselectOnSessionChange),this.off("mousedown",o))},value:!0},enableBlockSelect:{set:function(e){this.$blockSelectEnabled=e},value:!0}})}),define("ace/mode/folding/fold_mode",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../../range").Range,i=t.FoldMode=function(){};(function(){this.foldingStartMarker=null,this.foldingStopMarker=null,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);return this.foldingStartMarker.test(r)?"start":t=="markbeginend"&&this.foldingStopMarker&&this.foldingStopMarker.test(r)?"end":""},this.getFoldWidgetRange=function(e,t,n){return null},this.indentationBlock=function(e,t,n){var i=/\S/,s=e.getLine(t),o=s.search(i);if(o==-1)return;var u=n||s.length,a=e.getLength(),f=t,l=t;while(++t<a){var c=e.getLine(t).search(i);if(c==-1)continue;if(c<=o)break;l=t}if(l>f){var h=e.getLine(l).length;return new r(f,u,l,h)}},this.openingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i+1},u=e.$findClosingBracket(t,o,s);if(!u)return;var a=e.foldWidgets[u.row];return a==null&&(a=e.getFoldWidget(u.row)),a=="start"&&u.row>o.row&&(u.row--,u.column=e.getLine(u.row).length),r.fromPoints(o,u)},this.closingBracketBlock=function(e,t,n,i,s){var o={row:n,column:i},u=e.$findOpeningBracket(t,o);if(!u)return;return u.column++,o.column--,r.fromPoints(u,o)}}).call(i.prototype)}),define("ace/theme/textmate",["require","exports","module","ace/lib/dom"],function(e,t,n){"use strict";t.isDark=!1,t.cssClass="ace-tm",t.cssText='.ace-tm .ace_gutter {background: #f0f0f0;color: #333;}.ace-tm .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-tm .ace_fold {background-color: #6B72E6;}.ace-tm {background-color: #FFFFFF;color: black;}.ace-tm .ace_cursor {color: black;}.ace-tm .ace_invisible {color: rgb(191, 191, 191);}.ace-tm .ace_storage,.ace-tm .ace_keyword {color: blue;}.ace-tm .ace_constant {color: rgb(197, 6, 11);}.ace-tm .ace_constant.ace_buildin {color: rgb(88, 72, 246);}.ace-tm .ace_constant.ace_language {color: rgb(88, 92, 246);}.ace-tm .ace_constant.ace_library {color: rgb(6, 150, 14);}.ace-tm .ace_invalid {background-color: rgba(255, 0, 0, 0.1);color: red;}.ace-tm .ace_support.ace_function {color: rgb(60, 76, 114);}.ace-tm .ace_support.ace_constant {color: rgb(6, 150, 14);}.ace-tm .ace_support.ace_type,.ace-tm .ace_support.ace_class {color: rgb(109, 121, 222);}.ace-tm .ace_keyword.ace_operator {color: rgb(104, 118, 135);}.ace-tm .ace_string {color: rgb(3, 106, 7);}.ace-tm .ace_comment {color: rgb(76, 136, 107);}.ace-tm .ace_comment.ace_doc {color: rgb(0, 102, 255);}.ace-tm .ace_comment.ace_doc.ace_tag {color: rgb(128, 159, 191);}.ace-tm .ace_constant.ace_numeric {color: rgb(0, 0, 205);}.ace-tm .ace_variable {color: rgb(49, 132, 149);}.ace-tm .ace_xml-pe {color: rgb(104, 104, 91);}.ace-tm .ace_entity.ace_name.ace_function {color: #0000A2;}.ace-tm .ace_heading {color: rgb(12, 7, 255);}.ace-tm .ace_list {color:rgb(185, 6, 144);}.ace-tm .ace_meta.ace_tag {color:rgb(0, 22, 142);}.ace-tm .ace_string.ace_regex {color: rgb(255, 0, 0)}.ace-tm .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-tm.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-tm .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-tm .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-tm .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-tm .ace_marker-layer .ace_active-line {background: rgba(0, 0, 0, 0.07);}.ace-tm .ace_gutter-active-line {background-color : #dcdcdc;}.ace-tm .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-tm .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)}),define("ace/line_widgets",["require","exports","module","ace/lib/oop","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e){this.session=e,this.session.widgetManager=this,this.session.getRowLength=this.getRowLength,this.session.$getWidgetScreenLength=this.$getWidgetScreenLength,this.updateOnChange=this.updateOnChange.bind(this),this.renderWidgets=this.renderWidgets.bind(this),this.measureWidgets=this.measureWidgets.bind(this),this.session._changedWidgets=[],this.$onChangeEditor=this.$onChangeEditor.bind(this),this.session.on("change",this.updateOnChange),this.session.on("changeFold",this.updateOnFold),this.session.on("changeEditor",this.$onChangeEditor)}var r=e("./lib/oop"),i=e("./lib/dom"),s=e("./range").Range;(function(){this.getRowLength=function(e){var t;return this.lineWidgets?t=this.lineWidgets[e]&&this.lineWidgets[e].rowCount||0:t=0,!this.$useWrapMode||!this.$wrapData[e]?1+t:this.$wrapData[e].length+1+t},this.$getWidgetScreenLength=function(){var e=0;return this.lineWidgets.forEach(function(t){t&&t.rowCount&&!t.hidden&&(e+=t.rowCount)}),e},this.$onChangeEditor=function(e){this.attach(e.editor)},this.attach=function(e){e&&e.widgetManager&&e.widgetManager!=this&&e.widgetManager.detach();if(this.editor==e)return;this.detach(),this.editor=e,e&&(e.widgetManager=this,e.renderer.on("beforeRender",this.measureWidgets),e.renderer.on("afterRender",this.renderWidgets))},this.detach=function(e){var t=this.editor;if(!t)return;this.editor=null,t.widgetManager=null,t.renderer.off("beforeRender",this.measureWidgets),t.renderer.off("afterRender",this.renderWidgets);var n=this.session.lineWidgets;n&&n.forEach(function(e){e&&e.el&&e.el.parentNode&&(e._inDocument=!1,e.el.parentNode.removeChild(e.el))})},this.updateOnFold=function(e,t){var n=t.lineWidgets;if(!n||!e.action)return;var r=e.data,i=r.start.row,s=r.end.row,o=e.action=="add";for(var u=i+1;u<s;u++)n[u]&&(n[u].hidden=o);n[s]&&(o?n[i]?n[s].hidden=o:n[i]=n[s]:(n[i]==n[s]&&(n[i]=undefined),n[s].hidden=o))},this.updateOnChange=function(e){var t=this.session.lineWidgets;if(!t)return;var n=e.start.row,r=e.end.row-n;if(r!==0)if(e.action=="remove"){var i=t.splice(n+1,r);i.forEach(function(e){e&&this.removeLineWidget(e)},this),this.$updateRows()}else{var s=new Array(r);s.unshift(n,0),t.splice.apply(t,s),this.$updateRows()}},this.$updateRows=function(){var e=this.session.lineWidgets;if(!e)return;var t=!0;e.forEach(function(e,n){if(e){t=!1,e.row=n;while(e.$oldWidget)e.$oldWidget.row=n,e=e.$oldWidget}}),t&&(this.session.lineWidgets=null)},this.addLineWidget=function(e){this.session.lineWidgets||(this.session.lineWidgets=new Array(this.session.getLength()));var t=this.session.lineWidgets[e.row];t&&(e.$oldWidget=t,t.el&&t.el.parentNode&&(t.el.parentNode.removeChild(t.el),t._inDocument=!1)),this.session.lineWidgets[e.row]=e,e.session=this.session;var n=this.editor.renderer;e.html&&!e.el&&(e.el=i.createElement("div"),e.el.innerHTML=e.html),e.el&&(i.addCssClass(e.el,"ace_lineWidgetContainer"),e.el.style.position="absolute",e.el.style.zIndex=5,n.container.appendChild(e.el),e._inDocument=!0),e.coverGutter||(e.el.style.zIndex=3),e.pixelHeight==null&&(e.pixelHeight=e.el.offsetHeight),e.rowCount==null&&(e.rowCount=e.pixelHeight/n.layerConfig.lineHeight);var r=this.session.getFoldAt(e.row,0);e.$fold=r;if(r){var s=this.session.lineWidgets;e.row==r.end.row&&!s[r.start.row]?s[r.start.row]=e:e.hidden=!0}return this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows(),this.renderWidgets(null,n),this.onWidgetChanged(e),e},this.removeLineWidget=function(e){e._inDocument=!1,e.session=null,e.el&&e.el.parentNode&&e.el.parentNode.removeChild(e.el);if(e.editor&&e.editor.destroy)try{e.editor.destroy()}catch(t){}if(this.session.lineWidgets){var n=this.session.lineWidgets[e.row];if(n==e)this.session.lineWidgets[e.row]=e.$oldWidget,e.$oldWidget&&this.onWidgetChanged(e.$oldWidget);else while(n){if(n.$oldWidget==e){n.$oldWidget=e.$oldWidget;break}n=n.$oldWidget}}this.session._emit("changeFold",{data:{start:{row:e.row}}}),this.$updateRows()},this.getWidgetsAtRow=function(e){var t=this.session.lineWidgets,n=t&&t[e],r=[];while(n)r.push(n),n=n.$oldWidget;return r},this.onWidgetChanged=function(e){this.session._changedWidgets.push(e),this.editor&&this.editor.renderer.updateFull()},this.measureWidgets=function(e,t){var n=this.session._changedWidgets,r=t.layerConfig;if(!n||!n.length)return;var i=Infinity;for(var s=0;s<n.length;s++){var o=n[s];if(!o||!o.el)continue;if(o.session!=this.session)continue;if(!o._inDocument){if(this.session.lineWidgets[o.row]!=o)continue;o._inDocument=!0,t.container.appendChild(o.el)}o.h=o.el.offsetHeight,o.fixedWidth||(o.w=o.el.offsetWidth,o.screenWidth=Math.ceil(o.w/r.characterWidth));var u=o.h/r.lineHeight;o.coverLine&&(u-=this.session.getRowLineCount(o.row),u<0&&(u=0)),o.rowCount!=u&&(o.rowCount=u,o.row<i&&(i=o.row))}i!=Infinity&&(this.session._emit("changeFold",{data:{start:{row:i}}}),this.session.lineWidgetWidth=null),this.session._changedWidgets=[]},this.renderWidgets=function(e,t){var n=t.layerConfig,r=this.session.lineWidgets;if(!r)return;var i=Math.min(this.firstRow,n.firstRow),s=Math.max(this.lastRow,n.lastRow,r.length);while(i>0&&!r[i])i--;this.firstRow=n.firstRow,this.lastRow=n.lastRow,t.$cursorLayer.config=n;for(var o=i;o<=s;o++){var u=r[o];if(!u||!u.el)continue;if(u.hidden){u.el.style.top=-100-(u.pixelHeight||0)+"px";continue}u._inDocument||(u._inDocument=!0,t.container.appendChild(u.el));var a=t.$cursorLayer.getPixelPosition({row:o,column:0},!0).top;u.coverLine||(a+=n.lineHeight*this.session.getRowLineCount(u.row)),u.el.style.top=a-n.offset+"px";var f=u.coverGutter?0:t.gutterWidth;u.fixedWidth||(f-=t.scrollLeft),u.el.style.left=f+"px",u.fullWidth&&u.screenWidth&&(u.el.style.minWidth=n.width+2*n.padding+"px"),u.fixedWidth?u.el.style.right=t.scrollBar.getWidth()+"px":u.el.style.right=""}}}).call(o.prototype),t.LineWidgets=o}),define("ace/ext/error_marker",["require","exports","module","ace/line_widgets","ace/lib/dom","ace/range"],function(e,t,n){"use strict";function o(e,t,n){var r=0,i=e.length-1;while(r<=i){var s=r+i>>1,o=n(t,e[s]);if(o>0)r=s+1;else{if(!(o<0))return s;i=s-1}}return-(r+1)}function u(e,t,n){var r=e.getAnnotations().sort(s.comparePoints);if(!r.length)return;var i=o(r,{row:t,column:-1},s.comparePoints);i<0&&(i=-i-1),i>=r.length?i=n>0?0:r.length-1:i===0&&n<0&&(i=r.length-1);var u=r[i];if(!u||!n)return;if(u.row===t){do u=r[i+=n];while(u&&u.row===t);if(!u)return r.slice()}var a=[];t=u.row;do a[n<0?"unshift":"push"](u),u=r[i+=n];while(u&&u.row==t);return a.length&&a}var r=e("../line_widgets").LineWidgets,i=e("../lib/dom"),s=e("../range").Range;t.showErrorMarker=function(e,t){var n=e.session;n.widgetManager||(n.widgetManager=new r(n),n.widgetManager.attach(e));var s=e.getCursorPosition(),o=s.row,a=n.widgetManager.getWidgetsAtRow(o).filter(function(e){return e.type=="errorMarker"})[0];a?a.destroy():o-=t;var f=u(n,o,t),l;if(f){var c=f[0];s.column=(c.pos&&typeof c.column!="number"?c.pos.sc:c.column)||0,s.row=c.row,l=e.renderer.$gutterLayer.$annotations[s.row]}else{if(a)return;l={text:["Looks good!"],className:"ace_ok"}}e.session.unfold(s.row),e.selection.moveToPosition(s);var h={row:s.row,fixedWidth:!0,coverGutter:!0,el:i.createElement("div"),type:"errorMarker"},p=h.el.appendChild(i.createElement("div")),d=h.el.appendChild(i.createElement("div"));d.className="error_widget_arrow "+l.className;var v=e.renderer.$cursorLayer.getPixelPosition(s).left;d.style.left=v+e.renderer.gutterWidth-5+"px",h.el.className="error_widget_wrapper",p.className="error_widget "+l.className,p.innerHTML=l.text.join("<br>"),p.appendChild(i.createElement("div"));var m=function(e,t,n){if(t===0&&(n==="esc"||n==="return"))return h.destroy(),{command:"null"}};h.destroy=function(){if(e.$mouseHandler.isMousePressed)return;e.keyBinding.removeKeyboardHandler(m),n.widgetManager.removeLineWidget(h),e.off("changeSelection",h.destroy),e.off("changeSession",h.destroy),e.off("mouseup",h.destroy),e.off("change",h.destroy)},e.keyBinding.addKeyboardHandler(m),e.on("changeSelection",h.destroy),e.on("changeSession",h.destroy),e.on("mouseup",h.destroy),e.on("change",h.destroy),e.session.widgetManager.addLineWidget(h),h.el.onmousedown=e.focus.bind(e),e.renderer.scrollCursorIntoView(null,.5,{bottom:h.el.offsetHeight})},i.importCssString("    .error_widget_wrapper {        background: inherit;        color: inherit;        border:none    }    .error_widget {        border-top: solid 2px;        border-bottom: solid 2px;        margin: 5px 0;        padding: 10px 40px;        white-space: pre-wrap;    }    .error_widget.ace_error, .error_widget_arrow.ace_error{        border-color: #ff5a5a    }    .error_widget.ace_warning, .error_widget_arrow.ace_warning{        border-color: #F1D817    }    .error_widget.ace_info, .error_widget_arrow.ace_info{        border-color: #5a5a5a    }    .error_widget.ace_ok, .error_widget_arrow.ace_ok{        border-color: #5aaa5a    }    .error_widget_arrow {        position: absolute;        border: solid 5px;        border-top-color: transparent!important;        border-right-color: transparent!important;        border-left-color: transparent!important;        top: -5px;    }","")}),define("ace/ace",["require","exports","module","ace/lib/fixoldbrowsers","ace/lib/dom","ace/lib/event","ace/editor","ace/edit_session","ace/undomanager","ace/virtual_renderer","ace/worker/worker_client","ace/keyboard/hash_handler","ace/placeholder","ace/multi_select","ace/mode/folding/fold_mode","ace/theme/textmate","ace/ext/error_marker","ace/config"],function(e,t,n){"use strict";e("./lib/fixoldbrowsers");var r=e("./lib/dom"),i=e("./lib/event"),s=e("./editor").Editor,o=e("./edit_session").EditSession,u=e("./undomanager").UndoManager,a=e("./virtual_renderer").VirtualRenderer;e("./worker/worker_client"),e("./keyboard/hash_handler"),e("./placeholder"),e("./multi_select"),e("./mode/folding/fold_mode"),e("./theme/textmate"),e("./ext/error_marker"),t.config=e("./config"),t.require=e,typeof define=="function"&&(t.define=define),t.edit=function(e){if(typeof e=="string"){var n=e;e=document.getElementById(n);if(!e)throw new Error("ace.edit can't find div #"+n)}if(e&&e.env&&e.env.editor instanceof s)return e.env.editor;var o="";if(e&&/input|textarea/i.test(e.tagName)){var u=e;o=u.value,e=r.createElement("pre"),u.parentNode.replaceChild(e,u)}else e&&(o=r.getInnerText(e),e.innerHTML="");var f=t.createEditSession(o),l=new s(new a(e));l.setSession(f);var c={document:f,editor:l,onResize:l.resize.bind(l,null)};return u&&(c.textarea=u),i.addListener(window,"resize",c.onResize),l.on("destroy",function(){i.removeListener(window,"resize",c.onResize),c.editor.container.env=null}),l.container.env=l.env=c,l},t.createEditSession=function(e,t){var n=new o(e,t);return n.setUndoManager(new u),n},t.EditSession=o,t.UndoManager=u,t.version="1.2.6"});
+            (function() {
+                window.require(["ace/ace"], function(a) {
+                    if (a) {
+                        a.config.init(true);
+                        a.define = window.define;
+                    }
+                    if (!window.ace)
+                        window.ace = a;
+                    for (var key in a) if (a.hasOwnProperty(key))
+                        window.ace[key] = a[key];
+                });
+            })();
+        
\ No newline at end of file
diff --git a/v2/vendor/ace-builds/src-min/mode-json.js b/v2/vendor/ace-builds/src-min/mode-json.js
new file mode 100644
index 0000000000000000000000000000000000000000..c919855a6c81fcf864a468d5d6047e03c65fdfb9
--- /dev/null
+++ b/v2/vendor/ace-builds/src-min/mode-json.js
@@ -0,0 +1 @@
+define("ace/mode/json_highlight_rules",["require","exports","module","ace/lib/oop","ace/mode/text_highlight_rules"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text_highlight_rules").TextHighlightRules,s=function(){this.$rules={start:[{token:"variable",regex:'["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]\\s*(?=:)'},{token:"string",regex:'"',next:"string"},{token:"constant.numeric",regex:"0[xX][0-9a-fA-F]+\\b"},{token:"constant.numeric",regex:"[+-]?\\d+(?:(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)?\\b"},{token:"constant.language.boolean",regex:"(?:true|false)\\b"},{token:"invalid.illegal",regex:"['](?:(?:\\\\.)|(?:[^'\\\\]))*?[']"},{token:"invalid.illegal",regex:"\\/\\/.*$"},{token:"paren.lparen",regex:"[[({]"},{token:"paren.rparen",regex:"[\\])}]"},{token:"text",regex:"\\s+"}],string:[{token:"constant.language.escape",regex:/\\(?:x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|["\\\/bfnrt])/},{token:"string",regex:'[^"\\\\]+'},{token:"string",regex:'"',next:"start"},{token:"string",regex:"",next:"start"}]}};r.inherits(s,i),t.JsonHighlightRules=s}),define("ace/mode/matching_brace_outdent",["require","exports","module","ace/range"],function(e,t,n){"use strict";var r=e("../range").Range,i=function(){};(function(){this.checkOutdent=function(e,t){return/^\s+$/.test(e)?/^\s*\}/.test(t):!1},this.autoOutdent=function(e,t){var n=e.getLine(t),i=n.match(/^(\s*\})/);if(!i)return 0;var s=i[1].length,o=e.findMatchingBracket({row:t,column:s});if(!o||o.row==t)return 0;var u=this.$getIndent(e.getLine(o.row));e.replace(new r(t,0,t,s-1),u)},this.$getIndent=function(e){return e.match(/^\s*/)[0]}}).call(i.prototype),t.MatchingBraceOutdent=i}),define("ace/mode/folding/cstyle",["require","exports","module","ace/lib/oop","ace/range","ace/mode/folding/fold_mode"],function(e,t,n){"use strict";var r=e("../../lib/oop"),i=e("../../range").Range,s=e("./fold_mode").FoldMode,o=t.FoldMode=function(e){e&&(this.foldingStartMarker=new RegExp(this.foldingStartMarker.source.replace(/\|[^|]*?$/,"|"+e.start)),this.foldingStopMarker=new RegExp(this.foldingStopMarker.source.replace(/\|[^|]*?$/,"|"+e.end)))};r.inherits(o,s),function(){this.foldingStartMarker=/(\{|\[)[^\}\]]*$|^\s*(\/\*)/,this.foldingStopMarker=/^[^\[\{]*(\}|\])|^[\s\*]*(\*\/)/,this.singleLineBlockCommentRe=/^\s*(\/\*).*\*\/\s*$/,this.tripleStarBlockCommentRe=/^\s*(\/\*\*\*).*\*\/\s*$/,this.startRegionRe=/^\s*(\/\*|\/\/)#?region\b/,this._getFoldWidgetBase=this.getFoldWidget,this.getFoldWidget=function(e,t,n){var r=e.getLine(n);if(this.singleLineBlockCommentRe.test(r)&&!this.startRegionRe.test(r)&&!this.tripleStarBlockCommentRe.test(r))return"";var i=this._getFoldWidgetBase(e,t,n);return!i&&this.startRegionRe.test(r)?"start":i},this.getFoldWidgetRange=function(e,t,n,r){var i=e.getLine(n);if(this.startRegionRe.test(i))return this.getCommentRegionBlock(e,i,n);var s=i.match(this.foldingStartMarker);if(s){var o=s.index;if(s[1])return this.openingBracketBlock(e,s[1],n,o);var u=e.getCommentFoldRange(n,o+s[0].length,1);return u&&!u.isMultiLine()&&(r?u=this.getSectionRange(e,n):t!="all"&&(u=null)),u}if(t==="markbegin")return;var s=i.match(this.foldingStopMarker);if(s){var o=s.index+s[0].length;return s[1]?this.closingBracketBlock(e,s[1],n,o):e.getCommentFoldRange(n,o,-1)}},this.getSectionRange=function(e,t){var n=e.getLine(t),r=n.search(/\S/),s=t,o=n.length;t+=1;var u=t,a=e.getLength();while(++t<a){n=e.getLine(t);var f=n.search(/\S/);if(f===-1)continue;if(r>f)break;var l=this.getFoldWidgetRange(e,"all",t);if(l){if(l.start.row<=s)break;if(l.isMultiLine())t=l.end.row;else if(r==f)break}u=t}return new i(s,o,u,e.getLine(u).length)},this.getCommentRegionBlock=function(e,t,n){var r=t.search(/\s*$/),s=e.getLength(),o=n,u=/^\s*(?:\/\*|\/\/|--)#?(end)?region\b/,a=1;while(++n<s){t=e.getLine(n);var f=u.exec(t);if(!f)continue;f[1]?a--:a++;if(!a)break}var l=n;if(l>o)return new i(o,r,l,t.length)}}.call(o.prototype)}),define("ace/mode/json",["require","exports","module","ace/lib/oop","ace/mode/text","ace/mode/json_highlight_rules","ace/mode/matching_brace_outdent","ace/mode/behaviour/cstyle","ace/mode/folding/cstyle","ace/worker/worker_client"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("./text").Mode,s=e("./json_highlight_rules").JsonHighlightRules,o=e("./matching_brace_outdent").MatchingBraceOutdent,u=e("./behaviour/cstyle").CstyleBehaviour,a=e("./folding/cstyle").FoldMode,f=e("../worker/worker_client").WorkerClient,l=function(){this.HighlightRules=s,this.$outdent=new o,this.$behaviour=new u,this.foldingRules=new a};r.inherits(l,i),function(){this.getNextLineIndent=function(e,t,n){var r=this.$getIndent(t);if(e=="start"){var i=t.match(/^.*[\{\(\[]\s*$/);i&&(r+=n)}return r},this.checkOutdent=function(e,t,n){return this.$outdent.checkOutdent(t,n)},this.autoOutdent=function(e,t,n){this.$outdent.autoOutdent(t,n)},this.createWorker=function(e){var t=new f(["ace"],"ace/mode/json_worker","JsonWorker");return t.attachToDocument(e.getDocument()),t.on("annotate",function(t){e.setAnnotations(t.data)}),t.on("terminate",function(){e.clearAnnotations()}),t},this.$id="ace/mode/json"}.call(l.prototype),t.Mode=l})
\ No newline at end of file
diff --git a/v2/vendor/ace-builds/src-min/theme-github.js b/v2/vendor/ace-builds/src-min/theme-github.js
new file mode 100644
index 0000000000000000000000000000000000000000..6077ea29dabe3b94a7d767ae844644c56310ae52
--- /dev/null
+++ b/v2/vendor/ace-builds/src-min/theme-github.js
@@ -0,0 +1 @@
+define("ace/theme/github",["require","exports","module","ace/lib/dom"],function(e,t,n){t.isDark=!1,t.cssClass="ace-github",t.cssText='.ace-github .ace_gutter {background: #e8e8e8;color: #AAA;}.ace-github  {background: #fff;color: #000;}.ace-github .ace_keyword {font-weight: bold;}.ace-github .ace_string {color: #D14;}.ace-github .ace_variable.ace_class {color: teal;}.ace-github .ace_constant.ace_numeric {color: #099;}.ace-github .ace_constant.ace_buildin {color: #0086B3;}.ace-github .ace_support.ace_function {color: #0086B3;}.ace-github .ace_comment {color: #998;font-style: italic;}.ace-github .ace_variable.ace_language  {color: #0086B3;}.ace-github .ace_paren {font-weight: bold;}.ace-github .ace_boolean {font-weight: bold;}.ace-github .ace_string.ace_regexp {color: #009926;font-weight: normal;}.ace-github .ace_variable.ace_instance {color: teal;}.ace-github .ace_constant.ace_language {font-weight: bold;}.ace-github .ace_cursor {color: black;}.ace-github.ace_focus .ace_marker-layer .ace_active-line {background: rgb(255, 255, 204);}.ace-github .ace_marker-layer .ace_active-line {background: rgb(245, 245, 245);}.ace-github .ace_marker-layer .ace_selection {background: rgb(181, 213, 255);}.ace-github.ace_multiselect .ace_selection.ace_start {box-shadow: 0 0 3px 0px white;}.ace-github.ace_nobold .ace_line > span {font-weight: normal !important;}.ace-github .ace_marker-layer .ace_step {background: rgb(252, 255, 0);}.ace-github .ace_marker-layer .ace_stack {background: rgb(164, 229, 101);}.ace-github .ace_marker-layer .ace_bracket {margin: -1px 0 0 -1px;border: 1px solid rgb(192, 192, 192);}.ace-github .ace_gutter-active-line {background-color : rgba(0, 0, 0, 0.07);}.ace-github .ace_marker-layer .ace_selected-word {background: rgb(250, 250, 255);border: 1px solid rgb(200, 200, 250);}.ace-github .ace_invisible {color: #BFBFBF}.ace-github .ace_print-margin {width: 1px;background: #e8e8e8;}.ace-github .ace_indent-guide {background: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAACCAYAAACZgbYnAAAAE0lEQVQImWP4////f4bLly//BwAmVgd1/w11/gAAAABJRU5ErkJggg==") right repeat-y;}';var r=e("../lib/dom");r.importCssString(t.cssText,t.cssClass)})
\ No newline at end of file
diff --git a/v2/vendor/ace-builds/src-min/worker-json.js b/v2/vendor/ace-builds/src-min/worker-json.js
new file mode 100644
index 0000000000000000000000000000000000000000..a443035ec39e7f8fe2e23c29caf44572f81434d7
--- /dev/null
+++ b/v2/vendor/ace-builds/src-min/worker-json.js
@@ -0,0 +1 @@
+"no use strict";(function(e){function t(e,t){var n=e,r="";while(n){var i=t[n];if(typeof i=="string")return i+r;if(i)return i.location.replace(/\/*$/,"/")+(r||i.main||i.name);if(i===!1)return"";var s=n.lastIndexOf("/");if(s===-1)break;r=n.substr(s)+r,n=n.slice(0,s)}return e}if(typeof e.window!="undefined"&&e.document)return;if(e.require&&e.define)return;e.console||(e.console=function(){var e=Array.prototype.slice.call(arguments,0);postMessage({type:"log",data:e})},e.console.error=e.console.warn=e.console.log=e.console.trace=e.console),e.window=e,e.ace=e,e.onerror=function(e,t,n,r,i){postMessage({type:"error",data:{message:e,data:i.data,file:t,line:n,col:r,stack:i.stack}})},e.normalizeModule=function(t,n){if(n.indexOf("!")!==-1){var r=n.split("!");return e.normalizeModule(t,r[0])+"!"+e.normalizeModule(t,r[1])}if(n.charAt(0)=="."){var i=t.split("/").slice(0,-1).join("/");n=(i?i+"/":"")+n;while(n.indexOf(".")!==-1&&s!=n){var s=n;n=n.replace(/^\.\//,"").replace(/\/\.\//,"/").replace(/[^\/]+\/\.\.\//,"")}}return n},e.require=function(r,i){i||(i=r,r=null);if(!i.charAt)throw new Error("worker.js require() accepts only (parentId, id) as arguments");i=e.normalizeModule(r,i);var s=e.require.modules[i];if(s)return s.initialized||(s.initialized=!0,s.exports=s.factory().exports),s.exports;if(!e.require.tlns)return console.log("unable to load "+i);var o=t(i,e.require.tlns);return o.slice(-3)!=".js"&&(o+=".js"),e.require.id=i,e.require.modules[i]={},importScripts(o),e.require(r,i)},e.require.modules={},e.require.tlns={},e.define=function(t,n,r){arguments.length==2?(r=n,typeof t!="string"&&(n=t,t=e.require.id)):arguments.length==1&&(r=t,n=[],t=e.require.id);if(typeof r!="function"){e.require.modules[t]={exports:r,initialized:!0};return}n.length||(n=["require","exports","module"]);var i=function(n){return e.require(t,n)};e.require.modules[t]={exports:{},factory:function(){var e=this,t=r.apply(this,n.map(function(t){switch(t){case"require":return i;case"exports":return e.exports;case"module":return e;default:return i(t)}}));return t&&(e.exports=t),e}}},e.define.amd={},require.tlns={},e.initBaseUrls=function(t){for(var n in t)require.tlns[n]=t[n]},e.initSender=function(){var n=e.require("ace/lib/event_emitter").EventEmitter,r=e.require("ace/lib/oop"),i=function(){};return function(){r.implement(this,n),this.callback=function(e,t){postMessage({type:"call",id:t,data:e})},this.emit=function(e,t){postMessage({type:"event",name:e,data:t})}}.call(i.prototype),new i};var n=e.main=null,r=e.sender=null;e.onmessage=function(t){var i=t.data;if(i.event&&r)r._signal(i.event,i.data);else if(i.command)if(n[i.command])n[i.command].apply(n,i.args);else{if(!e[i.command])throw new Error("Unknown command:"+i.command);e[i.command].apply(e,i.args)}else if(i.init){e.initBaseUrls(i.tlns),require("ace/lib/es5-shim"),r=e.sender=e.initSender();var s=require(i.module)[i.classname];n=e.main=new s(r)}}})(this),define("ace/lib/oop",["require","exports","module"],function(e,t,n){"use strict";t.inherits=function(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})},t.mixin=function(e,t){for(var n in t)e[n]=t[n];return e},t.implement=function(e,n){t.mixin(e,n)}}),define("ace/range",["require","exports","module"],function(e,t,n){"use strict";var r=function(e,t){return e.row-t.row||e.column-t.column},i=function(e,t,n,r){this.start={row:e,column:t},this.end={row:n,column:r}};(function(){this.isEqual=function(e){return this.start.row===e.start.row&&this.end.row===e.end.row&&this.start.column===e.start.column&&this.end.column===e.end.column},this.toString=function(){return"Range: ["+this.start.row+"/"+this.start.column+"] -> ["+this.end.row+"/"+this.end.column+"]"},this.contains=function(e,t){return this.compare(e,t)==0},this.compareRange=function(e){var t,n=e.end,r=e.start;return t=this.compare(n.row,n.column),t==1?(t=this.compare(r.row,r.column),t==1?2:t==0?1:0):t==-1?-2:(t=this.compare(r.row,r.column),t==-1?-1:t==1?42:0)},this.comparePoint=function(e){return this.compare(e.row,e.column)},this.containsRange=function(e){return this.comparePoint(e.start)==0&&this.comparePoint(e.end)==0},this.intersects=function(e){var t=this.compareRange(e);return t==-1||t==0||t==1},this.isEnd=function(e,t){return this.end.row==e&&this.end.column==t},this.isStart=function(e,t){return this.start.row==e&&this.start.column==t},this.setStart=function(e,t){typeof e=="object"?(this.start.column=e.column,this.start.row=e.row):(this.start.row=e,this.start.column=t)},this.setEnd=function(e,t){typeof e=="object"?(this.end.column=e.column,this.end.row=e.row):(this.end.row=e,this.end.column=t)},this.inside=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)||this.isStart(e,t)?!1:!0:!1},this.insideStart=function(e,t){return this.compare(e,t)==0?this.isEnd(e,t)?!1:!0:!1},this.insideEnd=function(e,t){return this.compare(e,t)==0?this.isStart(e,t)?!1:!0:!1},this.compare=function(e,t){return!this.isMultiLine()&&e===this.start.row?t<this.start.column?-1:t>this.end.column?1:0:e<this.start.row?-1:e>this.end.row?1:this.start.row===e?t>=this.start.column?0:-1:this.end.row===e?t<=this.end.column?0:1:0},this.compareStart=function(e,t){return this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.compareEnd=function(e,t){return this.end.row==e&&this.end.column==t?1:this.compare(e,t)},this.compareInside=function(e,t){return this.end.row==e&&this.end.column==t?1:this.start.row==e&&this.start.column==t?-1:this.compare(e,t)},this.clipRows=function(e,t){if(this.end.row>t)var n={row:t+1,column:0};else if(this.end.row<e)var n={row:e,column:0};if(this.start.row>t)var r={row:t+1,column:0};else if(this.start.row<e)var r={row:e,column:0};return i.fromPoints(r||this.start,n||this.end)},this.extend=function(e,t){var n=this.compare(e,t);if(n==0)return this;if(n==-1)var r={row:e,column:t};else var s={row:e,column:t};return i.fromPoints(r||this.start,s||this.end)},this.isEmpty=function(){return this.start.row===this.end.row&&this.start.column===this.end.column},this.isMultiLine=function(){return this.start.row!==this.end.row},this.clone=function(){return i.fromPoints(this.start,this.end)},this.collapseRows=function(){return this.end.column==0?new i(this.start.row,0,Math.max(this.start.row,this.end.row-1),0):new i(this.start.row,0,this.end.row,0)},this.toScreenRange=function(e){var t=e.documentToScreenPosition(this.start),n=e.documentToScreenPosition(this.end);return new i(t.row,t.column,n.row,n.column)},this.moveBy=function(e,t){this.start.row+=e,this.start.column+=t,this.end.row+=e,this.end.column+=t}}).call(i.prototype),i.fromPoints=function(e,t){return new i(e.row,e.column,t.row,t.column)},i.comparePoints=r,i.comparePoints=function(e,t){return e.row-t.row||e.column-t.column},t.Range=i}),define("ace/apply_delta",["require","exports","module"],function(e,t,n){"use strict";function r(e,t){throw console.log("Invalid Delta:",e),"Invalid Delta: "+t}function i(e,t){return t.row>=0&&t.row<e.length&&t.column>=0&&t.column<=e[t.row].length}function s(e,t){t.action!="insert"&&t.action!="remove"&&r(t,"delta.action must be 'insert' or 'remove'"),t.lines instanceof Array||r(t,"delta.lines must be an Array"),(!t.start||!t.end)&&r(t,"delta.start/end must be an present");var n=t.start;i(e,t.start)||r(t,"delta.start must be contained in document");var s=t.end;t.action=="remove"&&!i(e,s)&&r(t,"delta.end must contained in document for 'remove' actions");var o=s.row-n.row,u=s.column-(o==0?n.column:0);(o!=t.lines.length-1||t.lines[o].length!=u)&&r(t,"delta.range must match delta lines")}t.applyDelta=function(e,t,n){var r=t.start.row,i=t.start.column,s=e[r]||"";switch(t.action){case"insert":var o=t.lines;if(o.length===1)e[r]=s.substring(0,i)+t.lines[0]+s.substring(i);else{var u=[r,1].concat(t.lines);e.splice.apply(e,u),e[r]=s.substring(0,i)+e[r],e[r+t.lines.length-1]+=s.substring(i)}break;case"remove":var a=t.end.column,f=t.end.row;r===f?e[r]=s.substring(0,i)+s.substring(a):e.splice(r,f-r+1,s.substring(0,i)+e[f].substring(a))}}}),define("ace/lib/event_emitter",["require","exports","module"],function(e,t,n){"use strict";var r={},i=function(){this.propagationStopped=!0},s=function(){this.defaultPrevented=!0};r._emit=r._dispatchEvent=function(e,t){this._eventRegistry||(this._eventRegistry={}),this._defaultHandlers||(this._defaultHandlers={});var n=this._eventRegistry[e]||[],r=this._defaultHandlers[e];if(!n.length&&!r)return;if(typeof t!="object"||!t)t={};t.type||(t.type=e),t.stopPropagation||(t.stopPropagation=i),t.preventDefault||(t.preventDefault=s),n=n.slice();for(var o=0;o<n.length;o++){n[o](t,this);if(t.propagationStopped)break}if(r&&!t.defaultPrevented)return r(t,this)},r._signal=function(e,t){var n=(this._eventRegistry||{})[e];if(!n)return;n=n.slice();for(var r=0;r<n.length;r++)n[r](t,this)},r.once=function(e,t){var n=this;t&&this.addEventListener(e,function r(){n.removeEventListener(e,r),t.apply(null,arguments)})},r.setDefaultHandler=function(e,t){var n=this._defaultHandlers;n||(n=this._defaultHandlers={_disabled_:{}});if(n[e]){var r=n[e],i=n._disabled_[e];i||(n._disabled_[e]=i=[]),i.push(r);var s=i.indexOf(t);s!=-1&&i.splice(s,1)}n[e]=t},r.removeDefaultHandler=function(e,t){var n=this._defaultHandlers;if(!n)return;var r=n._disabled_[e];if(n[e]==t){var i=n[e];r&&this.setDefaultHandler(e,r.pop())}else if(r){var s=r.indexOf(t);s!=-1&&r.splice(s,1)}},r.on=r.addEventListener=function(e,t,n){this._eventRegistry=this._eventRegistry||{};var r=this._eventRegistry[e];return r||(r=this._eventRegistry[e]=[]),r.indexOf(t)==-1&&r[n?"unshift":"push"](t),t},r.off=r.removeListener=r.removeEventListener=function(e,t){this._eventRegistry=this._eventRegistry||{};var n=this._eventRegistry[e];if(!n)return;var r=n.indexOf(t);r!==-1&&n.splice(r,1)},r.removeAllListeners=function(e){this._eventRegistry&&(this._eventRegistry[e]=[])},t.EventEmitter=r}),define("ace/anchor",["require","exports","module","ace/lib/oop","ace/lib/event_emitter"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./lib/event_emitter").EventEmitter,s=t.Anchor=function(e,t,n){this.$onChange=this.onChange.bind(this),this.attach(e),typeof n=="undefined"?this.setPosition(t.row,t.column):this.setPosition(t,n)};(function(){function e(e,t,n){var r=n?e.column<=t.column:e.column<t.column;return e.row<t.row||e.row==t.row&&r}function t(t,n,r){var i=t.action=="insert",s=(i?1:-1)*(t.end.row-t.start.row),o=(i?1:-1)*(t.end.column-t.start.column),u=t.start,a=i?u:t.end;return e(n,u,r)?{row:n.row,column:n.column}:e(a,n,!r)?{row:n.row+s,column:n.column+(n.row==a.row?o:0)}:{row:u.row,column:u.column}}r.implement(this,i),this.getPosition=function(){return this.$clipPositionToDocument(this.row,this.column)},this.getDocument=function(){return this.document},this.$insertRight=!1,this.onChange=function(e){if(e.start.row==e.end.row&&e.start.row!=this.row)return;if(e.start.row>this.row)return;var n=t(e,{row:this.row,column:this.column},this.$insertRight);this.setPosition(n.row,n.column,!0)},this.setPosition=function(e,t,n){var r;n?r={row:e,column:t}:r=this.$clipPositionToDocument(e,t);if(this.row==r.row&&this.column==r.column)return;var i={row:this.row,column:this.column};this.row=r.row,this.column=r.column,this._signal("change",{old:i,value:r})},this.detach=function(){this.document.removeEventListener("change",this.$onChange)},this.attach=function(e){this.document=e||this.document,this.document.on("change",this.$onChange)},this.$clipPositionToDocument=function(e,t){var n={};return e>=this.document.getLength()?(n.row=Math.max(0,this.document.getLength()-1),n.column=this.document.getLine(n.row).length):e<0?(n.row=0,n.column=0):(n.row=e,n.column=Math.min(this.document.getLine(n.row).length,Math.max(0,t))),t<0&&(n.column=0),n}}).call(s.prototype)}),define("ace/document",["require","exports","module","ace/lib/oop","ace/apply_delta","ace/lib/event_emitter","ace/range","ace/anchor"],function(e,t,n){"use strict";var r=e("./lib/oop"),i=e("./apply_delta").applyDelta,s=e("./lib/event_emitter").EventEmitter,o=e("./range").Range,u=e("./anchor").Anchor,a=function(e){this.$lines=[""],e.length===0?this.$lines=[""]:Array.isArray(e)?this.insertMergedLines({row:0,column:0},e):this.insert({row:0,column:0},e)};(function(){r.implement(this,s),this.setValue=function(e){var t=this.getLength()-1;this.remove(new o(0,0,t,this.getLine(t).length)),this.insert({row:0,column:0},e)},this.getValue=function(){return this.getAllLines().join(this.getNewLineCharacter())},this.createAnchor=function(e,t){return new u(this,e,t)},"aaa".split(/a/).length===0?this.$split=function(e){return e.replace(/\r\n|\r/g,"\n").split("\n")}:this.$split=function(e){return e.split(/\r\n|\r|\n/)},this.$detectNewLine=function(e){var t=e.match(/^.*?(\r\n|\r|\n)/m);this.$autoNewLine=t?t[1]:"\n",this._signal("changeNewLineMode")},this.getNewLineCharacter=function(){switch(this.$newLineMode){case"windows":return"\r\n";case"unix":return"\n";default:return this.$autoNewLine||"\n"}},this.$autoNewLine="",this.$newLineMode="auto",this.setNewLineMode=function(e){if(this.$newLineMode===e)return;this.$newLineMode=e,this._signal("changeNewLineMode")},this.getNewLineMode=function(){return this.$newLineMode},this.isNewLine=function(e){return e=="\r\n"||e=="\r"||e=="\n"},this.getLine=function(e){return this.$lines[e]||""},this.getLines=function(e,t){return this.$lines.slice(e,t+1)},this.getAllLines=function(){return this.getLines(0,this.getLength())},this.getLength=function(){return this.$lines.length},this.getTextRange=function(e){return this.getLinesForRange(e).join(this.getNewLineCharacter())},this.getLinesForRange=function(e){var t;if(e.start.row===e.end.row)t=[this.getLine(e.start.row).substring(e.start.column,e.end.column)];else{t=this.getLines(e.start.row,e.end.row),t[0]=(t[0]||"").substring(e.start.column);var n=t.length-1;e.end.row-e.start.row==n&&(t[n]=t[n].substring(0,e.end.column))}return t},this.insertLines=function(e,t){return console.warn("Use of document.insertLines is deprecated. Use the insertFullLines method instead."),this.insertFullLines(e,t)},this.removeLines=function(e,t){return console.warn("Use of document.removeLines is deprecated. Use the removeFullLines method instead."),this.removeFullLines(e,t)},this.insertNewLine=function(e){return console.warn("Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead."),this.insertMergedLines(e,["",""])},this.insert=function(e,t){return this.getLength()<=1&&this.$detectNewLine(t),this.insertMergedLines(e,this.$split(t))},this.insertInLine=function(e,t){var n=this.clippedPos(e.row,e.column),r=this.pos(e.row,e.column+t.length);return this.applyDelta({start:n,end:r,action:"insert",lines:[t]},!0),this.clonePos(r)},this.clippedPos=function(e,t){var n=this.getLength();e===undefined?e=n:e<0?e=0:e>=n&&(e=n-1,t=undefined);var r=this.getLine(e);return t==undefined&&(t=r.length),t=Math.min(Math.max(t,0),r.length),{row:e,column:t}},this.clonePos=function(e){return{row:e.row,column:e.column}},this.pos=function(e,t){return{row:e,column:t}},this.$clipPosition=function(e){var t=this.getLength();return e.row>=t?(e.row=Math.max(0,t-1),e.column=this.getLine(t-1).length):(e.row=Math.max(0,e.row),e.column=Math.min(Math.max(e.column,0),this.getLine(e.row).length)),e},this.insertFullLines=function(e,t){e=Math.min(Math.max(e,0),this.getLength());var n=0;e<this.getLength()?(t=t.concat([""]),n=0):(t=[""].concat(t),e--,n=this.$lines[e].length),this.insertMergedLines({row:e,column:n},t)},this.insertMergedLines=function(e,t){var n=this.clippedPos(e.row,e.column),r={row:n.row+t.length-1,column:(t.length==1?n.column:0)+t[t.length-1].length};return this.applyDelta({start:n,end:r,action:"insert",lines:t}),this.clonePos(r)},this.remove=function(e){var t=this.clippedPos(e.start.row,e.start.column),n=this.clippedPos(e.end.row,e.end.column);return this.applyDelta({start:t,end:n,action:"remove",lines:this.getLinesForRange({start:t,end:n})}),this.clonePos(t)},this.removeInLine=function(e,t,n){var r=this.clippedPos(e,t),i=this.clippedPos(e,n);return this.applyDelta({start:r,end:i,action:"remove",lines:this.getLinesForRange({start:r,end:i})},!0),this.clonePos(r)},this.removeFullLines=function(e,t){e=Math.min(Math.max(0,e),this.getLength()-1),t=Math.min(Math.max(0,t),this.getLength()-1);var n=t==this.getLength()-1&&e>0,r=t<this.getLength()-1,i=n?e-1:e,s=n?this.getLine(i).length:0,u=r?t+1:t,a=r?0:this.getLine(u).length,f=new o(i,s,u,a),l=this.$lines.slice(e,t+1);return this.applyDelta({start:f.start,end:f.end,action:"remove",lines:this.getLinesForRange(f)}),l},this.removeNewLine=function(e){e<this.getLength()-1&&e>=0&&this.applyDelta({start:this.pos(e,this.getLine(e).length),end:this.pos(e+1,0),action:"remove",lines:["",""]})},this.replace=function(e,t){e instanceof o||(e=o.fromPoints(e.start,e.end));if(t.length===0&&e.isEmpty())return e.start;if(t==this.getTextRange(e))return e.end;this.remove(e);var n;return t?n=this.insert(e.start,t):n=e.start,n},this.applyDeltas=function(e){for(var t=0;t<e.length;t++)this.applyDelta(e[t])},this.revertDeltas=function(e){for(var t=e.length-1;t>=0;t--)this.revertDelta(e[t])},this.applyDelta=function(e,t){var n=e.action=="insert";if(n?e.lines.length<=1&&!e.lines[0]:!o.comparePoints(e.start,e.end))return;n&&e.lines.length>2e4&&this.$splitAndapplyLargeDelta(e,2e4),i(this.$lines,e,t),this._signal("change",e)},this.$splitAndapplyLargeDelta=function(e,t){var n=e.lines,r=n.length,i=e.start.row,s=e.start.column,o=0,u=0;do{o=u,u+=t-1;var a=n.slice(o,u);if(u>r){e.lines=a,e.start.row=i+o,e.start.column=s;break}a.push(""),this.applyDelta({start:this.pos(i+o,s),end:this.pos(i+u,s=0),action:e.action,lines:a},!0)}while(!0)},this.revertDelta=function(e){this.applyDelta({start:this.clonePos(e.start),end:this.clonePos(e.end),action:e.action=="insert"?"remove":"insert",lines:e.lines.slice()})},this.indexToPosition=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length;for(var i=t||0,s=n.length;i<s;i++){e-=n[i].length+r;if(e<0)return{row:i,column:e+n[i].length+r}}return{row:s-1,column:n[s-1].length}},this.positionToIndex=function(e,t){var n=this.$lines||this.getAllLines(),r=this.getNewLineCharacter().length,i=0,s=Math.min(e.row,n.length);for(var o=t||0;o<s;++o)i+=n[o].length+r;return i+e.column}}).call(a.prototype),t.Document=a}),define("ace/lib/lang",["require","exports","module"],function(e,t,n){"use strict";t.last=function(e){return e[e.length-1]},t.stringReverse=function(e){return e.split("").reverse().join("")},t.stringRepeat=function(e,t){var n="";while(t>0){t&1&&(n+=e);if(t>>=1)e+=e}return n};var r=/^\s\s*/,i=/\s\s*$/;t.stringTrimLeft=function(e){return e.replace(r,"")},t.stringTrimRight=function(e){return e.replace(i,"")},t.copyObject=function(e){var t={};for(var n in e)t[n]=e[n];return t},t.copyArray=function(e){var t=[];for(var n=0,r=e.length;n<r;n++)e[n]&&typeof e[n]=="object"?t[n]=this.copyObject(e[n]):t[n]=e[n];return t},t.deepCopy=function s(e){if(typeof e!="object"||!e)return e;var t;if(Array.isArray(e)){t=[];for(var n=0;n<e.length;n++)t[n]=s(e[n]);return t}if(Object.prototype.toString.call(e)!=="[object Object]")return e;t={};for(var n in e)t[n]=s(e[n]);return t},t.arrayToMap=function(e){var t={};for(var n=0;n<e.length;n++)t[e[n]]=1;return t},t.createMap=function(e){var t=Object.create(null);for(var n in e)t[n]=e[n];return t},t.arrayRemove=function(e,t){for(var n=0;n<=e.length;n++)t===e[n]&&e.splice(n,1)},t.escapeRegExp=function(e){return e.replace(/([.*+?^${}()|[\]\/\\])/g,"\\$1")},t.escapeHTML=function(e){return e.replace(/&/g,"&#38;").replace(/"/g,"&#34;").replace(/'/g,"&#39;").replace(/</g,"&#60;")},t.getMatchOffsets=function(e,t){var n=[];return e.replace(t,function(e){n.push({offset:arguments[arguments.length-2],length:e.length})}),n},t.deferredCall=function(e){var t=null,n=function(){t=null,e()},r=function(e){return r.cancel(),t=setTimeout(n,e||0),r};return r.schedule=r,r.call=function(){return this.cancel(),e(),r},r.cancel=function(){return clearTimeout(t),t=null,r},r.isPending=function(){return t},r},t.delayedCall=function(e,t){var n=null,r=function(){n=null,e()},i=function(e){n==null&&(n=setTimeout(r,e||t))};return i.delay=function(e){n&&clearTimeout(n),n=setTimeout(r,e||t)},i.schedule=i,i.call=function(){this.cancel(),e()},i.cancel=function(){n&&clearTimeout(n),n=null},i.isPending=function(){return n},i}}),define("ace/worker/mirror",["require","exports","module","ace/range","ace/document","ace/lib/lang"],function(e,t,n){"use strict";var r=e("../range").Range,i=e("../document").Document,s=e("../lib/lang"),o=t.Mirror=function(e){this.sender=e;var t=this.doc=new i(""),n=this.deferredUpdate=s.delayedCall(this.onUpdate.bind(this)),r=this;e.on("change",function(e){var i=e.data;if(i[0].start)t.applyDeltas(i);else for(var s=0;s<i.length;s+=2){if(Array.isArray(i[s+1]))var o={action:"insert",start:i[s],lines:i[s+1]};else var o={action:"remove",start:i[s],end:i[s+1]};t.applyDelta(o,!0)}if(r.$timeout)return n.schedule(r.$timeout);r.onUpdate()})};(function(){this.$timeout=500,this.setTimeout=function(e){this.$timeout=e},this.setValue=function(e){this.doc.setValue(e),this.deferredUpdate.schedule(this.$timeout)},this.getValue=function(e){this.sender.callback(this.doc.getValue(),e)},this.onUpdate=function(){},this.isPending=function(){return this.deferredUpdate.isPending()}}).call(o.prototype)}),define("ace/mode/json/json_parse",["require","exports","module"],function(e,t,n){"use strict";var r,i,s={'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:"\n",r:"\r",t:"	"},o,u=function(e){throw{name:"SyntaxError",message:e,at:r,text:o}},a=function(e){return e&&e!==i&&u("Expected '"+e+"' instead of '"+i+"'"),i=o.charAt(r),r+=1,i},f=function(){var e,t="";i==="-"&&(t="-",a("-"));while(i>="0"&&i<="9")t+=i,a();if(i==="."){t+=".";while(a()&&i>="0"&&i<="9")t+=i}if(i==="e"||i==="E"){t+=i,a();if(i==="-"||i==="+")t+=i,a();while(i>="0"&&i<="9")t+=i,a()}e=+t;if(!isNaN(e))return e;u("Bad number")},l=function(){var e,t,n="",r;if(i==='"')while(a()){if(i==='"')return a(),n;if(i==="\\"){a();if(i==="u"){r=0;for(t=0;t<4;t+=1){e=parseInt(a(),16);if(!isFinite(e))break;r=r*16+e}n+=String.fromCharCode(r)}else{if(typeof s[i]!="string")break;n+=s[i]}}else n+=i}u("Bad string")},c=function(){while(i&&i<=" ")a()},h=function(){switch(i){case"t":return a("t"),a("r"),a("u"),a("e"),!0;case"f":return a("f"),a("a"),a("l"),a("s"),a("e"),!1;case"n":return a("n"),a("u"),a("l"),a("l"),null}u("Unexpected '"+i+"'")},p,d=function(){var e=[];if(i==="["){a("["),c();if(i==="]")return a("]"),e;while(i){e.push(p()),c();if(i==="]")return a("]"),e;a(","),c()}}u("Bad array")},v=function(){var e,t={};if(i==="{"){a("{"),c();if(i==="}")return a("}"),t;while(i){e=l(),c(),a(":"),Object.hasOwnProperty.call(t,e)&&u('Duplicate key "'+e+'"'),t[e]=p(),c();if(i==="}")return a("}"),t;a(","),c()}}u("Bad object")};return p=function(){c();switch(i){case"{":return v();case"[":return d();case'"':return l();case"-":return f();default:return i>="0"&&i<="9"?f():h()}},function(e,t){var n;return o=e,r=0,i=" ",n=p(),c(),i&&u("Syntax error"),typeof t=="function"?function s(e,n){var r,i,o=e[n];if(o&&typeof o=="object")for(r in o)Object.hasOwnProperty.call(o,r)&&(i=s(o,r),i!==undefined?o[r]=i:delete o[r]);return t.call(e,n,o)}({"":n},""):n}}),define("ace/mode/json_worker",["require","exports","module","ace/lib/oop","ace/worker/mirror","ace/mode/json/json_parse"],function(e,t,n){"use strict";var r=e("../lib/oop"),i=e("../worker/mirror").Mirror,s=e("./json/json_parse"),o=t.JsonWorker=function(e){i.call(this,e),this.setTimeout(200)};r.inherits(o,i),function(){this.onUpdate=function(){var e=this.doc.getValue(),t=[];try{e&&s(e)}catch(n){var r=this.doc.indexToPosition(n.at-1);t.push({row:r.row,column:r.column,text:n.message,type:"error"})}this.sender.emit("annotate",t)}}.call(o.prototype)}),define("ace/lib/es5-shim",["require","exports","module"],function(e,t,n){function r(){}function w(e){try{return Object.defineProperty(e,"sentinel",{}),"sentinel"in e}catch(t){}}function H(e){return e=+e,e!==e?e=0:e!==0&&e!==1/0&&e!==-1/0&&(e=(e>0||-1)*Math.floor(Math.abs(e))),e}function B(e){var t=typeof e;return e===null||t==="undefined"||t==="boolean"||t==="number"||t==="string"}function j(e){var t,n,r;if(B(e))return e;n=e.valueOf;if(typeof n=="function"){t=n.call(e);if(B(t))return t}r=e.toString;if(typeof r=="function"){t=r.call(e);if(B(t))return t}throw new TypeError}Function.prototype.bind||(Function.prototype.bind=function(t){var n=this;if(typeof n!="function")throw new TypeError("Function.prototype.bind called on incompatible "+n);var i=u.call(arguments,1),s=function(){if(this instanceof s){var e=n.apply(this,i.concat(u.call(arguments)));return Object(e)===e?e:this}return n.apply(t,i.concat(u.call(arguments)))};return n.prototype&&(r.prototype=n.prototype,s.prototype=new r,r.prototype=null),s});var i=Function.prototype.call,s=Array.prototype,o=Object.prototype,u=s.slice,a=i.bind(o.toString),f=i.bind(o.hasOwnProperty),l,c,h,p,d;if(d=f(o,"__defineGetter__"))l=i.bind(o.__defineGetter__),c=i.bind(o.__defineSetter__),h=i.bind(o.__lookupGetter__),p=i.bind(o.__lookupSetter__);if([1,2].splice(0).length!=2)if(!function(){function e(e){var t=new Array(e+2);return t[0]=t[1]=0,t}var t=[],n;t.splice.apply(t,e(20)),t.splice.apply(t,e(26)),n=t.length,t.splice(5,0,"XXX"),n+1==t.length;if(n+1==t.length)return!0}())Array.prototype.splice=function(e,t){var n=this.length;e>0?e>n&&(e=n):e==void 0?e=0:e<0&&(e=Math.max(n+e,0)),e+t<n||(t=n-e);var r=this.slice(e,e+t),i=u.call(arguments,2),s=i.length;if(e===n)s&&this.push.apply(this,i);else{var o=Math.min(t,n-e),a=e+o,f=a+s-o,l=n-a,c=n-o;if(f<a)for(var h=0;h<l;++h)this[f+h]=this[a+h];else if(f>a)for(h=l;h--;)this[f+h]=this[a+h];if(s&&e===c)this.length=c,this.push.apply(this,i);else{this.length=c+s;for(h=0;h<s;++h)this[e+h]=i[h]}}return r};else{var v=Array.prototype.splice;Array.prototype.splice=function(e,t){return arguments.length?v.apply(this,[e===void 0?0:e,t===void 0?this.length-e:t].concat(u.call(arguments,2))):[]}}Array.isArray||(Array.isArray=function(t){return a(t)=="[object Array]"});var m=Object("a"),g=m[0]!="a"||!(0 in m);Array.prototype.forEach||(Array.prototype.forEach=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=arguments[1],s=-1,o=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError;while(++s<o)s in r&&t.call(i,r[s],s,n)}),Array.prototype.map||(Array.prototype.map=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=Array(i),o=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var u=0;u<i;u++)u in r&&(s[u]=t.call(o,r[u],u,n));return s}),Array.prototype.filter||(Array.prototype.filter=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=[],o,u=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var f=0;f<i;f++)f in r&&(o=r[f],t.call(u,o,f,n)&&s.push(o));return s}),Array.prototype.every||(Array.prototype.every=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&!t.call(s,r[o],o,n))return!1;return!0}),Array.prototype.some||(Array.prototype.some=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0,s=arguments[1];if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");for(var o=0;o<i;o++)if(o in r&&t.call(s,r[o],o,n))return!0;return!1}),Array.prototype.reduce||(Array.prototype.reduce=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduce of empty array with no initial value");var s=0,o;if(arguments.length>=2)o=arguments[1];else do{if(s in r){o=r[s++];break}if(++s>=i)throw new TypeError("reduce of empty array with no initial value")}while(!0);for(;s<i;s++)s in r&&(o=t.call(void 0,o,r[s],s,n));return o}),Array.prototype.reduceRight||(Array.prototype.reduceRight=function(t){var n=F(this),r=g&&a(this)=="[object String]"?this.split(""):n,i=r.length>>>0;if(a(t)!="[object Function]")throw new TypeError(t+" is not a function");if(!i&&arguments.length==1)throw new TypeError("reduceRight of empty array with no initial value");var s,o=i-1;if(arguments.length>=2)s=arguments[1];else do{if(o in r){s=r[o--];break}if(--o<0)throw new TypeError("reduceRight of empty array with no initial value")}while(!0);do o in this&&(s=t.call(void 0,s,r[o],o,n));while(o--);return s});if(!Array.prototype.indexOf||[0,1].indexOf(1,2)!=-1)Array.prototype.indexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=0;arguments.length>1&&(i=H(arguments[1])),i=i>=0?i:Math.max(0,r+i);for(;i<r;i++)if(i in n&&n[i]===t)return i;return-1};if(!Array.prototype.lastIndexOf||[0,1].lastIndexOf(0,-3)!=-1)Array.prototype.lastIndexOf=function(t){var n=g&&a(this)=="[object String]"?this.split(""):F(this),r=n.length>>>0;if(!r)return-1;var i=r-1;arguments.length>1&&(i=Math.min(i,H(arguments[1]))),i=i>=0?i:r-Math.abs(i);for(;i>=0;i--)if(i in n&&t===n[i])return i;return-1};Object.getPrototypeOf||(Object.getPrototypeOf=function(t){return t.__proto__||(t.constructor?t.constructor.prototype:o)});if(!Object.getOwnPropertyDescriptor){var y="Object.getOwnPropertyDescriptor called on a non-object: ";Object.getOwnPropertyDescriptor=function(t,n){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(y+t);if(!f(t,n))return;var r,i,s;r={enumerable:!0,configurable:!0};if(d){var u=t.__proto__;t.__proto__=o;var i=h(t,n),s=p(t,n);t.__proto__=u;if(i||s)return i&&(r.get=i),s&&(r.set=s),r}return r.value=t[n],r}}Object.getOwnPropertyNames||(Object.getOwnPropertyNames=function(t){return Object.keys(t)});if(!Object.create){var b;Object.prototype.__proto__===null?b=function(){return{__proto__:null}}:b=function(){var e={};for(var t in e)e[t]=null;return e.constructor=e.hasOwnProperty=e.propertyIsEnumerable=e.isPrototypeOf=e.toLocaleString=e.toString=e.valueOf=e.__proto__=null,e},Object.create=function(t,n){var r;if(t===null)r=b();else{if(typeof t!="object")throw new TypeError("typeof prototype["+typeof t+"] != 'object'");var i=function(){};i.prototype=t,r=new i,r.__proto__=t}return n!==void 0&&Object.defineProperties(r,n),r}}if(Object.defineProperty){var E=w({}),S=typeof document=="undefined"||w(document.createElement("div"));if(!E||!S)var x=Object.defineProperty}if(!Object.defineProperty||x){var T="Property description must be an object: ",N="Object.defineProperty called on non-object: ",C="getters & setters can not be defined on this javascript engine";Object.defineProperty=function(t,n,r){if(typeof t!="object"&&typeof t!="function"||t===null)throw new TypeError(N+t);if(typeof r!="object"&&typeof r!="function"||r===null)throw new TypeError(T+r);if(x)try{return x.call(Object,t,n,r)}catch(i){}if(f(r,"value"))if(d&&(h(t,n)||p(t,n))){var s=t.__proto__;t.__proto__=o,delete t[n],t[n]=r.value,t.__proto__=s}else t[n]=r.value;else{if(!d)throw new TypeError(C);f(r,"get")&&l(t,n,r.get),f(r,"set")&&c(t,n,r.set)}return t}}Object.defineProperties||(Object.defineProperties=function(t,n){for(var r in n)f(n,r)&&Object.defineProperty(t,r,n[r]);return t}),Object.seal||(Object.seal=function(t){return t}),Object.freeze||(Object.freeze=function(t){return t});try{Object.freeze(function(){})}catch(k){Object.freeze=function(t){return function(n){return typeof n=="function"?n:t(n)}}(Object.freeze)}Object.preventExtensions||(Object.preventExtensions=function(t){return t}),Object.isSealed||(Object.isSealed=function(t){return!1}),Object.isFrozen||(Object.isFrozen=function(t){return!1}),Object.isExtensible||(Object.isExtensible=function(t){if(Object(t)===t)throw new TypeError;var n="";while(f(t,n))n+="?";t[n]=!0;var r=f(t,n);return delete t[n],r});if(!Object.keys){var L=!0,A=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],O=A.length;for(var M in{toString:null})L=!1;Object.keys=function I(e){if(typeof e!="object"&&typeof e!="function"||e===null)throw new TypeError("Object.keys called on a non-object");var I=[];for(var t in e)f(e,t)&&I.push(t);if(L)for(var n=0,r=O;n<r;n++){var i=A[n];f(e,i)&&I.push(i)}return I}}Date.now||(Date.now=function(){return(new Date).getTime()});var _="	\n\f\r \u00a0\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000\u2028\u2029\ufeff";if(!String.prototype.trim||_.trim()){_="["+_+"]";var D=new RegExp("^"+_+_+"*"),P=new RegExp(_+_+"*$");String.prototype.trim=function(){return String(this).replace(D,"").replace(P,"")}}var F=function(e){if(e==null)throw new TypeError("can't convert "+e+" to object");return Object(e)}})
\ No newline at end of file
diff --git a/v2/vendor/ractive/ractive.runtime.min.js b/v2/vendor/ractive/ractive.runtime.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..8516b8ce0dc5c01b72a4c594257c346c761b9deb
--- /dev/null
+++ b/v2/vendor/ractive/ractive.runtime.min.js
@@ -0,0 +1,8 @@
+/* Ractive.js v0.8.7-c734e03d202b67fc68dd27d7ae9a9c40505543f4 - License MIT */
+!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):function(){var n=t.Ractive,i=e();return i.noConflict=function(){return t.Ractive=n,i},t.Ractive=i}()}(this,function(){"use strict";function t(){return io.createDocumentFragment()}function e(t){var e;if(t&&"boolean"!=typeof t)return no&&io&&t?t.nodeType?t:"string"==typeof t&&(e=io.getElementById(t),!e&&io.querySelector&&(e=io.querySelector(t)),e&&e.nodeType)?e:t[0]&&t[0].nodeType?t[0]:null:null}function n(t){return t&&"unknown"!=typeof t.parentNode&&t.parentNode&&t.parentNode.removeChild(t),t}function i(t){return null!=t&&t.toString?""+t:""}function r(t){return i(t).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function o(t){return t.replace(Ao,function(t){return t.charAt(1).toUpperCase()})}function s(t){return t.replace(Fo,function(t){return"-"+t.toLowerCase()})}function a(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];var i;return e.forEach(function(e){for(i in e)Vo.call(e,i)&&(t[i]=e[i])}),t}function h(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return e.forEach(function(e){for(var n in e)!Vo.call(e,n)||n in t||(t[n]=e[n])}),t}function u(t){return"[object Array]"===Bo.call(t)}function p(t,e){return null===t&&null===e||"object"!=typeof t&&"object"!=typeof e&&t===e}function l(t){return!isNaN(parseFloat(t))&&isFinite(t)}function c(t){return t&&"[object Object]"===Bo.call(t)}function d(){}function f(t,e){return t.replace(/%s/g,function(){return e.shift()})}function m(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];throw t=f(t,e),new Error(t)}function v(){Zr.DEBUG&&To.apply(null,arguments)}function g(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];t=f(t,e),No(t,e)}function y(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];t=f(t,e),Ko[t]||(Ko[t]=!0,No(t,e))}function b(){Zr.DEBUG&&g.apply(null,arguments)}function w(){Zr.DEBUG&&y.apply(null,arguments)}function k(t,e,n){var i=E(t,e,n);return i?i[t][n]:null}function E(t,e,n){for(;e;){if(n in e[t])return e;if(e.isolated)return null;e=e.parent}}function _(t,e,n,i){if(t===e)return null;if(i){var r=k("interpolators",n,i);if(r)return r(t,e)||null;m(Lo(i,"interpolator"))}return Do.number(t,e)||Do.array(t,e)||Do.object(t,e)||null}function x(t){return function(){return t}}function O(t,e){var n=t.indexOf(e);n===-1&&t.push(e)}function C(t,e){for(var n=0,i=t.length;n<i;n++)if(t[n]==e)return!0;return!1}function j(t,e){var n;if(!u(t)||!u(e))return!1;if(t.length!==e.length)return!1;for(n=t.length;n--;)if(t[n]!==e[n])return!1;return!0}function A(t){return"string"==typeof t?[t]:void 0===t?[]:t}function F(t){return t[t.length-1]}function T(t,e){if(t){var n=t.indexOf(e);n!==-1&&t.splice(n,1)}}function N(t){for(var e=[],n=t.length;n--;)e[n]=t[n];return e}function S(t){setTimeout(t,0)}function V(t,e){return function(){for(var n;n=t.shift();)n(e)}}function B(t,e,n,i){var r;if(e===t)throw new TypeError("A promise's fulfillment handler cannot return the same promise");if(e instanceof Ho)e.then(n,i);else if(!e||"object"!=typeof e&&"function"!=typeof e)n(e);else{try{r=e.then}catch(t){return void i(t)}if("function"==typeof r){var o,s,a;s=function(e){o||(o=!0,B(t,e,n,i))},a=function(t){o||(o=!0,i(t))};try{r.call(e,s,a)}catch(t){if(!o)return i(t),void(o=!0)}}else n(e)}}function K(t){t.detach()}function P(t){t.detachNodes()}function M(t){!t.ready||t.outros.length||t.outroChildren||(t.outrosComplete||(t.outrosComplete=!0,t.parent&&!t.parent.outrosComplete?t.parent.decrementOutros(t):t.detachNodes()),t.intros.length||t.totalChildren||("function"==typeof t.callback&&t.callback(),t.parent&&!t.notifiedTotal&&(t.notifiedTotal=!0,t.parent.decrementTotal())))}function I(t){var e,n,i=t.detachQueue,r=R(t),o=i.length,s=0;t:for(;o--;){for(e=i[o].node,s=r.length;s--;)if(n=r[s].element.node,n===e||n.contains(e)||e.contains(n))continue t;i[o].detach(),i.splice(o,1)}}function R(t,e){if(e){for(var n=t.children.length;n--;)e=R(t.children[n],e);return e=e.concat(t.outros)}e=[];for(var i=t;i.parent;)i=i.parent;return R(i,e)}function L(t){t.dispatch()}function D(){var t=Yo.immediateObservers;Yo.immediateObservers=[],t.forEach(L);var e,n=Yo.fragments.length;t=Yo.fragments,Yo.fragments=[];var i=Yo.ractives;for(Yo.ractives=[];n--;){e=t[n];var r=e.ractive;Object.keys(r.viewmodel.changes).length&&Zo.fire(r,r.viewmodel.changes),r.viewmodel.changes={},T(i,r),e.update()}for(n=i.length;n--;){var o=i[n];Zo.fire(o,o.viewmodel.changes),o.viewmodel.changes={}}Yo.transitionManager.ready(),t=Yo.deferredObservers,Yo.deferredObservers=[],t.forEach(L);var s=Yo.tasks;for(Yo.tasks=[],n=0;n<s.length;n+=1)s[n]();if(Yo.fragments.length||Yo.immediateObservers.length||Yo.deferredObservers.length||Yo.ractives.length||Yo.tasks.length)return D()}function U(t){return"string"==typeof t?t.replace(es,"\\$&"):t}function q(t){return t?t.replace(Xo,".$1"):""}function H(t){var e,n=[];for(t=q(t);e=ts.exec(t);){var i=e.index+e[1].length;n.push(t.substr(0,i)),t=t.substr(i+1)}return n.push(t),n}function W(t){return"string"==typeof t?t.replace(ns,"$1$2"):t}function Q(t,e){if(!/this/.test(t.toString()))return t;var n=t.bind(e);for(var i in t)n[i]=t[i];return n}function z(t,e){for(var n=Jo.start(t,!0),i=e.length;i--;){var r=e[i],o=r[0],s=r[1];"function"==typeof s&&(s=Q(s,t)),o.set(s)}return Jo.end(),n}function $(t,e,n){return void 0===n&&(n=t.viewmodel),is.test(e)?n.findMatches(H(e)):[n.joinAll(H(e))]}function G(t,e,n){var i=[];if(c(e)){var r=function(n){e.hasOwnProperty(n)&&i.push.apply(i,$(t,n).map(function(t){return[t,e[n]]}))};for(var o in e)r(o)}else i.push.apply(i,$(t,e).map(function(t){return[t,n]}));return i}function Y(t,e,n){if("string"!=typeof e||!l(n))throw new Error("Bad arguments");var i=G(t,e,n);return z(t,i.map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error(rs);return[e,i+n]}))}function Z(t,e){return Y(this,t,void 0===e?1:+e)}function J(t,e){t=t||{};var n;return t.easing&&(n="function"==typeof t.easing?t.easing:e.easing[t.easing]),{easing:n||ss,duration:"duration"in t?t.duration:400,complete:t.complete||d,step:t.step||d}}function X(t,e,n,i){i=J(i,t);var r=e.get();if(p(r,n))return i.complete(i.to),os;var o=_(r,n,t,i.interpolator);return o?e.animate(r,n,i,o):(Jo.start(),e.set(n),Jo.end(),os)}function tt(t,e,n){if("object"==typeof t){var i=Object.keys(t);throw new Error("ractive.animate(...) no longer supports objects. Instead of ractive.animate({\n  "+i.map(function(e){return"'"+e+"': "+t[e]}).join("\n  ")+"\n}, {...}), do\n\n"+i.map(function(e){return"ractive.animate('"+e+"', "+t[e]+", {...});"}).join("\n")+"\n")}return X(this,this.viewmodel.joinAll(H(t)),e,n)}function et(){return this.isDetached?this.el:(this.el&&T(this.el.__ractive_instances__,this),this.el=this.fragment.detach(),this.isDetached=!0,as.fire(this),this.el)}function nt(t){if(!this.el)throw new Error("Cannot call ractive.find('"+t+"') unless instance is rendered to the DOM");return this.fragment.find(t)}function it(t,e){if(t.compareDocumentPosition){var n=t.compareDocumentPosition(e);return 2&n?1:-1}return rt(t,e)}function rt(t,e){for(var n,i=st(t.component||t._ractive.proxy),r=st(e.component||e._ractive.proxy),o=F(i),s=F(r);o&&o===s;)i.pop(),r.pop(),n=o,o=F(i),s=F(r);o=o.component||o,s=s.component||s;var a=o.parentFragment,h=s.parentFragment;if(a===h){var u=a.items.indexOf(o),p=h.items.indexOf(s);return u-p||i.length-r.length}var l=n.iterations;if(l){var c=l.indexOf(a),d=l.indexOf(h);return c-d||i.length-r.length}throw new Error("An unexpected condition was met while comparing the position of two components. Please file an issue at https://github.com/ractivejs/ractive/issues - thanks!")}function ot(t){var e=t.parentFragment;return e?e.owner:t.component&&(e=t.component.parentFragment)?e.owner:void 0}function st(t){for(var e=[t],n=ot(t);n;)e.push(n),n=ot(n);return e}function at(t,e){if(!this.el)throw new Error("Cannot call ractive.findAll('"+t+"', ...) unless instance is rendered to the DOM");e=e||{};var n=this._liveQueries,i=n[t];return i?e&&e.live?i:i.slice():(i=new hs(this,t,!!e.live,!1),i.live&&(n.push(t),n["_"+t]=i),this.fragment.findAll(t,i),i.init(),i.result)}function ht(t,e){e=e||{};var n=this._liveComponentQueries,i=n[t];return i?e&&e.live?i:i.slice():(i=new hs(this,t,!!e.live,!0),i.live&&(n.push(t),n["_"+t]=i),this.fragment.findAllComponents(t,i),i.init(),i.result)}function ut(t){return this.fragment.findComponent(t)}function pt(t){return this.container?this.container.component&&this.container.component.name===t?this.container:this.container.findContainer(t):null}function lt(t){return this.parent?this.parent.component&&this.parent.component.name===t?this.parent:this.parent.findParent(t):null}function ct(t,e){t.event&&t._eventQueue.push(t.event),t.event=e}function dt(t){t._eventQueue.length?t.event=t._eventQueue.pop():t.event=null}function ft(t){var e,n,i,r,o,s;for(e=H(t),(n=ps[e.length])||(n=mt(e.length)),o=[],i=function(t,n){return t?"*":e[n]},r=n.length;r--;)s=n[r].map(i).join("."),o.hasOwnProperty(s)||(o.push(s),o[s]=!0);return o}function mt(t){var e,n,i,r,o,s,a,h,u="";if(!ps[t]){for(i=[];u.length<t;)u+=1;for(e=parseInt(u,2),r=function(t){return"1"===t},o=0;o<=e;o+=1){for(n=o.toString(2);n.length<t;)n="0"+n;for(h=[],a=n.length,s=0;s<a;s++)h.push(r(n[s]));i[o]=h}ps[t]=i}return ps[t]}function vt(t,e,n){if(void 0===n&&(n={}),e){n.event?n.event.name=e:n.event={name:e,_noArg:!0};var i=gt(e);return yt(t,i,n.event,n.args,!0)}}function gt(t){return ls.hasOwnProperty(t)?ls[t]:ls[t]=ft(t)}function yt(t,e,n,i,r){void 0===r&&(r=!1);var o,s,a=!0;for(ct(t,n),s=e.length;s>=0;s--)o=t._subs[e[s]],o&&(a=bt(t,o,n,i)&&a);if(dt(t),t.parent&&a){if(r&&t.component){var h=t.component.name+"."+e[e.length-1];e=gt(h),n&&!n.component&&(n.component=t)}yt(t.parent,e,n,i)}return a}function bt(t,e,n,i){var r=null,o=!1;n&&!n._noArg&&(i=[n].concat(i)),e=e.slice();for(var s=0,a=e.length;s<a;s+=1)e[s].off||e[s].apply(t,i)!==!1||(o=!0);return n&&!n._noArg&&o&&(r=n.original)&&(r.preventDefault&&r.preventDefault(),r.stopPropagation&&r.stopPropagation()),!o}function wt(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return vt(this,t,{args:e})}function kt(t){throw new Error("An index or key reference ("+t+") cannot have child properties")}function Et(t,e){for(var n,i,r,o=t.findContext().root,s=H(e),a=s[0];t;){if(t.isIteration){if(a===t.parent.keyRef)return s.length>1&&kt(a),t.context.getKeyModel(t.key);if(a===t.parent.indexRef)return s.length>1&&kt(a),t.context.getKeyModel(t.index)}if(((r=t.owner.aliases)||(r=t.aliases))&&r.hasOwnProperty(a)){var h=r[a];if(1===s.length)return h;if("function"==typeof h.joinAll)return h.joinAll(s.slice(1))}if(t.context&&(t.isRoot&&!t.ractive.component||(n=!0),t.context.has(a)))return i?o.createLink(a,t.context.joinKey(s.shift()),a).joinAll(s):t.context.joinAll(s);t.componentParent&&!t.ractive.isolated?(t=t.componentParent,i=!0):t=t.parent}if(!n)return o.joinAll(s)}function _t(){cs.push(us=[])}function xt(){var t=cs.pop();return us=cs[cs.length-1],t}function Ot(t){us&&us.push(t)}function Ct(t){t.bind()}function jt(t){t.cancel()}function At(t){t.handleChange()}function Ft(t){t.mark()}function Tt(t){t.marked()}function Nt(t){t.notifiedUpstream()}function St(t){t.render()}function Vt(t){t.teardown()}function Bt(t){t.unbind()}function Kt(t){t.unrender()}function Pt(t){t.unrender(!0)}function Mt(t){t.update()}function It(t){return t.toString()}function Rt(t){return t.toString(!0)}function Lt(t){t.updateFromBindings(!0)}function Dt(t){for(var e=t.length;e--;)if(t[e].bound){var n=t[e].owner;if(n){var i="checked"===n.name?n.node.checked:n.node.value;return{value:i}}}}function Ut(t){if(t){var e=vs[t];vs[t]=[];for(var n=e.length;n--;)e[n]();var i=gs[t];for(gs[t]=[],n=i.length;n--;)i[n].model.register(i[n].item)}else Ut("early"),Ut("mark")}function qt(t,e,n){var i=t.r||t;if(!i||"string"!=typeof i)return e;if("."===i||"@"===i[0]||(e||n).isKey||(e||n).isKeypath)return e;for(var r=i.split("/"),o=H(r[r.length-1]),s=e||n,a=o.length,h=!0,u=!1;s&&a--;)s.shuffling&&(u=!0),o[a]!=s.key&&(h=!1),s=s.parent;return!e&&h&&u?n:e&&!h&&u?n:e}function Ht(){Jo.start();var t,e,n=Es();for(t=0;t<_s.length;t+=1)e=_s[t],e.tick(n)||_s.splice(t--,1);Jo.end(),_s.length?ks(Ht):xs=!1}function Wt(t,e){var n,i={};if(!e)return t;e+=".";for(n in t)t.hasOwnProperty(n)&&(i[e+n]=t[n]);return i}function Qt(t){var e;return Cs[t]||(e=t?t+".":"",Cs[t]=function(n,i){var r;return"string"==typeof n?(r={},r[e+n]=i,r):"object"==typeof n?e?Wt(n,t):n:void 0}),Cs[t]}function zt(t){for(var e=[],n=0;n<t.length;n++)e[n]=(t.childByKey[n]||{}).value;return e}function $t(t,e){var n=t.findContext();if("."===e||"this"===e)return n;if(0===e.indexOf("@keypath")){var i=Ts.exec(e);if(i&&i[1]){var r=$t(t,i[1]);if(r)return r.getKeypathModel()}return n.getKeypathModel()}if(0===e.indexOf("@rootpath")){for(;n.isRoot&&n.ractive.component;)n=n.ractive.component.parentFragment.findContext();var o=Ts.exec(e);if(o&&o[1]){var s=$t(t,o[1]);if(s)return s.getKeypathModel(t.ractive.root)}return n.getKeypathModel(t.ractive.root)}if("@index"===e||"@key"===e){var a=t.findRepeatingFragment();if(!a.isIteration)return;return a.context.getKeyModel(a["i"===e[1]?"index":"key"])}if("@this"===e)return t.ractive.viewmodel.getRactiveModel();if("@global"===e)return Fs;if("~"===e[0])return t.ractive.viewmodel.joinAll(H(e.slice(2)));if("."===e[0]){for(var h=e.split("/");"."===h[0]||".."===h[0];){var u=h.shift();".."===u&&(n=n.parent)}return e=h.join("/"),"."===e[0]&&(e=e.slice(1)),n.joinAll(H(e))}return Et(t,e)}function Gt(t,e){if("string"!=typeof t)return this.viewmodel.get(!0,t);var n,i=H(t),r=i[0];return this.viewmodel.has(r)||this.component&&!this.isolated&&(n=$t(this.component.parentFragment,r),n&&this.viewmodel.map(r,n)),n=this.viewmodel.joinAll(i),n.get(!0,e)}function Yt(t){for(var e={},n={};t;){if(t.parent&&(t.parent.indexRef||t.parent.keyRef)){var i=t.parent.indexRef;!i||i in n||(n[i]=t.index),i=t.parent.keyRef,!i||i in e||(e[i]=t.key)}t=t.componentParent&&!t.ractive.isolated?t.componentParent:t.parent}return{key:e,index:n}}function Zt(t,e,n){var i,r,o,s,a,h=[];if(i=Jt(t,e,n),!i)return null;for(s=i.length-2-i[1],r=Math.min(t,i[0]),o=r+i[1],h.startIndex=r,a=0;a<r;a+=1)h.push(a);for(;a<o;a+=1)h.push(-1);for(;a<t;a+=1)h.push(a+s);return 0!==s?h.touchedFrom=i[0]:h.touchedFrom=t,h}function Jt(t,e,n){switch(e){case"splice":for(void 0!==n[0]&&n[0]<0&&(n[0]=t+Math.max(n[0],-t)),void 0===n[0]&&(n[0]=0);n.length<2;)n.push(t-n[0]);return"number"!=typeof n[1]&&(n[1]=t-n[0]),n[1]=Math.min(n[1],t-n[0]),n;case"sort":case"reverse":return null;case"pop":return t?[t-1,1]:[0,0];case"push":return[t,0].concat(n);case"shift":return[0,t?1:0];case"unshift":return[0,0].concat(n)}}function Xt(t){function e(t){for(var e=[],i=arguments.length-1;i-- >0;)e[i]=arguments[i+1];return n(this.viewmodel.joinAll(H(t)),e)}function n(e,n){var i=e.get();if(!u(i)){if(void 0===i){i=[];var r=Ns[t].apply(i,n),o=Jo.start(this,!0).then(function(){return r});return e.set(i),Jo.end(),o}throw new Error("shuffle array method "+t+" called on non-array at "+e.getKeypath())}var s=Zt(i.length,t,n),a=Ns[t].apply(i,n),h=Jo.start(this,!0).then(function(){return a});return h.result=a,s?e.shuffle(s):e.set(a),Jo.end(),h}return{path:e,model:n}}function te(t){if(!t)return null;if(t===!0)return JSON.stringify;if("function"==typeof t)return t;if("string"==typeof t)return Ss[t]||(Ss[t]=function(e){return e[t]});throw new Error("If supplied, options.compare must be a string, function, or `true`")}function ee(t,e,n,i){var r=Jo.start(t,!0),o=e.get();if(!u(o)||!u(n))throw new Error("You cannot merge an array with a non-array");var s=te(i&&i.compare);return e.merge(n,s),Jo.end(),r}function ne(t,e,n){return ee(this,this.viewmodel.joinAll(H(t)),e,n)}function ie(t,e){e.parent&&e.parent.wrapper&&e.parent.adapt();var n=Jo.start(t,!0);if(e.mark(),e.registerChange(e.getKeypath(),e.get()),!e.isRoot)for(var i=e.parent,r=e.key;i&&!i.isRoot;)i.clearUnresolveds&&i.clearUnresolveds(r),r=i.key,i=i.parent;return e.notifyUpstream(),Jo.end(),Vs.fire(t,e),n}function re(t){return t&&(t=H(t)),ie(this,t?this.viewmodel.joinAll(t):this.viewmodel)}function oe(t,e,n){var i=[];if(c(e))for(var r in e)e.hasOwnProperty(r)&&i.push([he(t,r).model,e[r]]);else i.push([he(t,e).model,n]);return i}function se(t){if(!t)return this._element.parentFragment.findContext().get(!0);var e=$t(this._element.parentFragment,t);return e?e.get(!0):void 0}function ae(t,e){var n=he(this,t),i=n.model,r=n.instance;return i?i.getKeypath(e||r):t}function he(t,e){var n=t._element.parentFragment;return"string"!=typeof e?{model:n.findContext(),instance:e}:{model:$t(n,e),instance:n.ractive}}function ue(t,e){if(void 0===e&&(e=1),!l(e))throw new Error("Bad arguments");return z(this.ractive,oe(this,t,e).map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error("Cannot add non-numeric value");return[e,i+n]}))}function pe(t,e,n){var i=he(this,t).model;return X(this.ractive,i,e,n)}function le(t,e){var n=he(this,t).model,i=he(this,e).model,r=Jo.start(this.ractive,!0);return i.link(n,t),Jo.end(),r}function ce(t,e,n){return ee(this.ractive,he(this,t).model,e,n)}function de(t){return Ks(he(this,t).model,[])}function fe(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return Bs(he(this,t).model,e)}function me(t){return Ls(he(this,t).model,[])}function ve(t,e){return z(this.ractive,oe(this,t,e))}function ge(t){return Ps(he(this,t).model,[])}function ye(t,e,n){for(var i=[],r=arguments.length-3;r-- >0;)i[r]=arguments[r+3];return i.unshift(e,n),Rs(he(this,t).model,i)}function be(t){return Is(he(this,t).model,[])}function we(t,e){if(void 0===e&&(e=1),!l(e))throw new Error("Bad arguments");return z(this.ractive,oe(this,t,e).map(function(t){var e=t[0],n=t[1],i=e.get();if(!l(n)||!l(i))throw new Error("Cannot add non-numeric value");return[e,i-n]}))}function ke(t){var e=he(this,t),n=e.model;return z(this.ractive,[[n,!n.get()]])}function Ee(t){var e=he(this,t).model,n=Jo.start(this.ractive,!0);return e.owner&&e.owner._link&&e.owner.unlink(),Jo.end(),n}function _e(t){for(var e=[],n=arguments.length-1;n-- >0;)e[n]=arguments[n+1];return Ms(he(this,t).model,e)}function xe(t){return ie(this.ractive,he(this,t).model)}function Oe(t,e){var n=he(this,t),i=n.model,r=Jo.start(this.ractive,!0);return i.updateFromBindings(e),Jo.end(),r}function Ce(){var t=Fe(this),e=t.model;return!!e}function je(t){var e=Fe(this),n=e.model,i=e.instance;if(n)return n.getKeypath(t||i)}function Ae(){var t=Fe(this),e=t.model;if(e)return e.get(!0)}function Fe(t){var e=t._element;return{model:e.binding&&e.binding.model,instance:e.parentFragment.ractive}}function Te(t){var e=Fe(this),n=e.model;return z(this.ractive,[[n,t]])}function Ne(){return w("Object property keypath is deprecated, please use resolve() instead."),this.resolve()}function Se(){return w("Object property rootpath is deprecated, please use resolve( ractive.root ) instead."),this.resolve(this.ractive.root)}function Ve(){return w("Object property context is deprecated, please use get() instead."),this.get()}function Be(){return w('Object property index is deprecated, you can use get( "indexName" ) instead.'),Yt(this._element.parentFragment).index}function Ke(){return w('Object property key is deprecated, you can use get( "keyName" ) instead.'),Yt(this._element.parentFragment).key}function Pe(t,e){return jo(t,{_element:{value:e},ractive:{value:e.parentFragment.ractive},resolve:{value:ae},get:{value:se},add:{value:ue},animate:{value:pe},link:{value:le},merge:{value:ce},pop:{value:de},push:{value:fe},reverse:{value:me},set:{value:ve},shift:{value:ge},sort:{value:be},splice:{value:ye},subtract:{value:we},toggle:{value:ke},unlink:{value:Ee},unshift:{value:_e},update:{value:xe},updateModel:{value:Oe},isBound:{value:Ce},getBindingPath:{value:je},getBinding:{value:Ae},setBinding:{value:Te},keypath:{get:Ne},rootpath:{get:Se},context:{get:Ve},index:{get:Be},key:{get:Ke}}),t}function Me(t){if("string"==typeof t&&Ds&&(t=Ds.call(document,t)),!t||!t._ractive)return{};var e=t._ractive;return Pe({},e.proxy)}function Ie(t){return"string"==typeof t&&(t=this.find(t)),Me(t)}function Re(t,n){if(!this.fragment.rendered)throw new Error("The API has changed - you must call `ractive.render(target[, anchor])` to render your Ractive instance. Once rendered you can use `ractive.insert()`.");if(t=e(t),n=e(n)||null,!t)throw new Error("You must specify a valid target to insert into");t.insertBefore(this.detach(),n),this.el=t,(t.__ractive_instances__||(t.__ractive_instances__=[])).push(this),this.isDetached=!1,Le(this)}function Le(t){Us.fire(t),t.findAllComponents("*").forEach(function(t){Le(t.instance)})}function De(t,e){if(e===t||0===(t+".").indexOf(e+".")||0===(e+".").indexOf(t+"."))throw new Error("A keypath cannot be linked to itself.");var n,i=Jo.start(),r=H(t);return!this.viewmodel.has(r[0])&&this.component&&(n=$t(this.component.parentFragment,r[0]),n=n.joinAll(r.slice(1))),this.viewmodel.joinAll(H(e)).link(n||this.viewmodel.joinAll(r),t),Jo.end(),i}function Ue(t,e,n){var i,r=this,o=[];if(c(t))i=t,n=e||{},Object.keys(i).forEach(function(t){var e=i[t],s=t.split(" ");s.length>1&&(s=s.filter(function(t){return t})),s.forEach(function(t){o.push(qe(r,t,e,n))})});else{var s;"function"==typeof t?(n=e,e=t,s=[""]):s=t.split(" "),s.length>1&&(s=s.filter(function(t){return t})),s.forEach(function(t){o.push(qe(r,t,e,n||{}))})}return this._observers.push.apply(this._observers,o),{cancel:function(){o.forEach(function(t){T(r._observers,t),t.cancel()})}}}function qe(t,e,n,i){var r=t.viewmodel,o=H(e),s=o.indexOf("*");if(i.keypath=e,!~s){var a,h=o[0];return""===h||r.has(h)?a=r.joinAll(o):t.component&&!t.isolated&&(a=$t(t.component.parentFragment,h),a&&(r.map(h,a),a=r.joinAll(o))),new Hs(t,a,n,i)}var u=0===s?r:r.joinAll(o.slice(0,s));return new Ws(t,u,o.splice(s),n,i)}function He(t,e,n){if("string"!=typeof t)throw new Error("ractive.observeList() must be passed a string as its first argument");var i=this.viewmodel.joinAll(H(t)),r=new Qs(this,i,e,n||{});return this._observers.push(r),{cancel:function(){r.cancel()}}}function We(){return-1}function Qe(t,e,n){return c(t)||"function"==typeof t?(n=a(e||{},zs),this.observe(t,n)):(n=a(n||{},zs),this.observe(t,e,n))}function ze(t){return t.trim()}function $e(t){return""!==t}function Ge(t,e){var n=this;if(t){var i=t.split(" ").map(ze).filter($e);i.forEach(function(t){var i=n._subs[t];if(i)if(e){e.off=!0;var r=i.indexOf(e);r!==-1&&i.splice(r,1)}else n._subs[t]=[]})}else for(t in this._subs)delete this._subs[t];return this}function Ye(t,e){var n=this;if("object"==typeof t){var i,r=[];for(i in t)t.hasOwnProperty(i)&&r.push(this.on(i,t[i]));return{cancel:function(){for(var t;t=r.pop();)t.cancel()}}}var o=t.split(" ").map(ze).filter($e);return o.forEach(function(t){(n._subs[t]||(n._subs[t]=[])).push(e)}),{cancel:function(){return n.off(t,e)}}}function Ze(t,e){var n=this.on(t,function(){e.apply(this,arguments),n.cancel()});return n}function Je(t){Zs.push(t),Js=!0}function Xe(){io&&Js&&(ta?Xs.styleSheet.cssText=tn(null):Xs.innerHTML=tn(null),Js=!1)}function tn(t){var e=t?Zs.filter(function(e){return~t.indexOf(e.id)}):Zs;return e.reduce(function(t,e){return""+t+"\n\n/* {"+e.id+"} */\n"+e.styles},Ys)}function en(t,n,i,r){var o=t.transitionsEnabled;t.noIntro&&(t.transitionsEnabled=!1);var s=Jo.start(t,!0);if(Jo.scheduleTask(function(){return ea.fire(t)},!0),t.fragment.rendered)throw new Error("You cannot call ractive.render() on an already rendered instance! Call ractive.unrender() first");if(i=e(i)||t.anchor,t.el=n,t.anchor=i,t.cssId&&Xe(),n)if((n.__ractive_instances__||(n.__ractive_instances__=[])).push(t),i){var a=io.createDocumentFragment();t.fragment.render(a),n.insertBefore(a,i)}else t.fragment.render(n,r);return Jo.end(),t.transitionsEnabled=o,s.then(function(){return na.fire(t)})}function nn(t,n){if(this.torndown)return b("ractive.render() was called on a Ractive instance that was already torn down"),Promise.resolve();if(t=e(t)||this.el,!this.append&&t){var i=t.__ractive_instances__;i&&i.forEach(Vt),this.enhance||(t.innerHTML="")}var r=this.enhance?N(t.childNodes):null,o=en(this,t,n,r);if(r)for(;r.length;)t.removeChild(r.pop());return o}function rn(t,e){for(var n=t.slice(),i=e.length;i--;)~n.indexOf(e[i])||n.push(e[i]);return n}function on(t){return t.trim()}function sn(t){return t.str}function an(t,e){for(var n,i=[];n=sa.exec(t);)i.push({str:n[0],base:n[1],modifiers:n[2]});for(var r=i.map(sn),o=[],s=i.length;s--;){var a=r.slice(),h=i[s];a[s]=h.base+e+h.modifiers||"";var u=r.slice();u[s]=e+" "+u[s],o.push(a.join(" "),u.join(" "))}return o.join(", ")}function hn(t,e){var n,i='[data-ractive-css~="{'+e+'}"]';return n=ha.test(t)?t.replace(ha,i):t.replace(oa,"").replace(ra,function(t,e){if(aa.test(e))return t;var n=e.split(",").map(on),r=n.map(function(t){return an(t,i)}).join(", ")+" ";return t.replace(e,r)})}function un(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function pn(){return un()+un()+"-"+un()+"-"+un()+"-"+un()+"-"+un()+un()+un()}function ln(t){t&&t.constructor!==Object&&("function"==typeof t||("object"!=typeof t?m("data option must be an object or a function, `"+t+"` is not valid"):b("If supplied, options.data should be a plain JavaScript object - using a non-POJO as the root object may work, but is discouraged")))}function cn(t,e){ln(e);var n="function"==typeof t,i="function"==typeof e;return e||n||(e={}),n||i?function(){var r=i?dn(e,this):e,o=n?dn(t,this):t;return fn(r,o)}:fn(e,t)}function dn(t,e){var n=t.call(e);if(n)return"object"!=typeof n&&m("Data function must return an object"),n.constructor!==Object&&w("Data function returned something other than a plain JavaScript object. This might work, but is strongly discouraged"),n}function fn(t,e){if(t&&e){for(var n in e)n in t||(t[n]=e[n]);return t}return t||e}function mn(t,e){void 0===e&&(e=0);for(var n=new Array(e);e--;)n[e]="_"+e;return new Function([],"return function ("+n.join(",")+"){return("+t+");};")()}function vn(t,e){var n,i="return ("+t.replace(ca,function(t,e){return n=!0,'__ractive.get("'+e+'")'})+");";n&&(i="var __ractive = this; "+i);var r=new Function(i);return n?r.bind(e):r}function gn(t,e){return da[t]?da[t]:da[t]=wn(t,e)}function yn(t){if(t){var e=t.e;e&&Object.keys(e).forEach(function(t){da[t]||(da[t]=e[t])})}}function bn(t,e,n){t||m("Missing Ractive.parse - cannot parse "+e+". "+n)}function wn(t,e){return bn(mn,"new expression function",va),mn(t,e)}function kn(t,e){return bn(vn,'compution string "${str}"',ga),vn(t,e)}function En(t){var e=t._config.template;if(e&&e.fn){var n=_n(t,e.fn);return n!==e.result?(e.result=n,n):void 0}}function _n(t,e){return e.call(t,{fromId:ya.fromId,isParsed:ya.isParsed,parse:function(e,n){return void 0===n&&(n=ya.getParseOptions(t)),ya.parse(e,n)}})}function xn(t,e){return"string"==typeof t?t=On(t,e):(Cn(t),yn(t)),t}function On(t,e){return"#"===t[0]&&(t=ya.fromId(t)),ya.parseFor(t,e)}function Cn(t){if(void 0==t)throw new Error("The template cannot be "+t+".");if("number"!=typeof t.v)throw new Error("The template parser was passed a non-string template, but the template doesn't have a version.  Make sure you're passing in the template you think you are.");if(t.v!==la)throw new Error("Mismatched template version (expected "+la+", got "+t.v+") Please ensure you are using the latest version of Ractive.js in your build process as well as in your app")}function jn(t,e,n){if(e)for(var i in e)!n&&t.hasOwnProperty(i)||(t[i]=e[i])}function An(t,e,n){function i(){var t=Fn(i._parent,e),r="_super"in this,o=this._super;this._super=t;var s=n.apply(this,arguments);return r?this._super=o:delete this._super,s}return/_super/.test(n)?(i._parent=t,i._method=n,i):n}function Fn(t,e){if(e in t){var n=t[e];return"function"==typeof n?n:function(){return n}}return d}function Tn(t,e,n){return"options."+t+" has been deprecated in favour of options."+e+"."+(n?" You cannot specify both options, please use options."+e+".":"")}function Nn(t,e,n){if(e in t){if(n in t)throw new Error(Tn(e,n,!0));b(Tn(e,n)),t[n]=t[e]}}function Sn(t){Nn(t,"beforeInit","onconstruct"),Nn(t,"init","onrender"),Nn(t,"complete","oncomplete"),Nn(t,"eventDefinitions","events"),u(t.adaptors)&&Nn(t,"adaptors","adapt")}function Vn(t,e,n,i){Sn(i);for(var r in i)if(Oa.hasOwnProperty(r)){var o=i[r];"el"!==r&&"function"==typeof o?b(""+r+" is a Ractive option that does not expect a function and will be ignored","init"===t?n:null):n[r]=o}if(i.append&&i.enhance)throw new Error("Cannot use append and enhance at the same time");Ea.forEach(function(r){r[t](e,n,i)}),ia[t](e,n,i),ba[t](e,n,i),ua[t](e,n,i),Bn(e.prototype,n,i)}function Bn(t,e,n){for(var i in n)if(!Ca[i]&&n.hasOwnProperty(i)){var r=n[i];"function"==typeof r&&(r=An(t,i,r)),e[i]=r}}function Kn(t){var e={};return t.forEach(function(t){return e[t]=!0}),e}function Pn(t){if(t=t||{},"object"!=typeof t)throw new Error("The reset method takes either no arguments, or an object containing new data");t=pa.init(this.constructor,this,{data:t});var e=Jo.start(this,!0),n=this.viewmodel.wrapper;n&&n.reset?n.reset(t)===!1&&this.viewmodel.set(t):this.viewmodel.set(t);for(var i,r=Aa.reset(this),o=r.length;o--;)if(Fa.indexOf(r[o])>-1){i=!0;break}return i&&(Va.fire(this),this.fragment.resetTemplate(this.template),Sa.fire(this),Ta.fire(this)),Jo.end(),Na.fire(this,t),e}function Mn(t,e,n,i){t.forEach(function(t){if(t.type===Ra&&(t.refName===e||t.name===e))return t.inAttribute=n,void i.push(t);if(t.fragment)Mn(t.fragment.iterations||t.fragment.items,e,n,i);else if(u(t.items))Mn(t.items,e,n,i);else if(t.type===Da&&t.instance){if(t.instance.partials[e])return;Mn(t.instance.fragment.items,e,n,i)}t.type===Ia&&u(t.attributes)&&Mn(t.attributes,e,!0,i)})}function In(t){t.forceResetTemplate()}function Rn(t,e){var n=[];Mn(this.fragment.items,t,!1,n);var i=Jo.start(this,!0);return this.partials[t]=e,n.forEach(In),Jo.end(),i}function Ln(t,e,n){var i=t.fragment.resolve(e,function(e){T(t.resolvers,i),t.models[n]=e,t.bubble()});t.resolvers.push(i)}function Dn(t,e){return e.r?$t(t,e.r):e.x?new oh(t,e.x):e.rx?new ah(t,e.rx):void 0}function Un(t){if(t.template.z){t.aliases={};for(var e=t.template.z,n=0;n<e.length;n++)t.aliases[e[n].n]=Dn(t.parentFragment,e[n].x)}}function qn(t,e,n){for(void 0===e&&(e=!0);t&&(t.type!==Ia||n&&t.name!==n)&&(!e||t.type!==Da);)t=t.owner?t.owner:t.component?t.containerFragment||t.component.parentFragment:t.parent?t.parent:t.parentFragment?t.parentFragment:void 0;return t}function Hn(t){var e=[];return"string"!=typeof t?{}:t.replace(lh,function(t){return"\0"+(e.push(t)-1)}).replace(ph,"").split(";").filter(function(t){return!!t.trim()}).map(function(t){return t.replace(ch,function(t,n){return e[n]})}).reduce(function(t,e){var n=e.indexOf(":"),i=e.substr(0,n).trim();return t[i]=e.substr(n+1).trim(),t},{})}function Wn(t){for(var e=t.split(uh),n=e.length;n--;)e[n]||e.splice(n,1);return e}function Qn(t){var e=t.element,n=t.name;if("id"===n)return zn;if("value"===n){if(t.interpolator&&(t.interpolator.bound=!0),"select"===e.name&&"value"===n)return e.getAttribute("multiple")?$n:Gn;if("textarea"===e.name)return Xn;if(null!=e.getAttribute("contenteditable"))return Yn;if("input"===e.name){var i=e.getAttribute("type");if("file"===i)return d;if("radio"===i&&e.binding&&"name"===e.binding.attribute.name)return Zn;if(~dh.indexOf(i))return Xn}return Jn}var r=e.node;if(t.isTwoway&&"name"===n){if("radio"===r.type)return ti;if("checkbox"===r.type)return ei}if("style"===n)return ni;if(0===n.indexOf("style-"))return ii;if("class"===n&&(!r.namespaceURI||r.namespaceURI===yo))return ri;if(0===n.indexOf("class-"))return oi;if(t.isBoolean){var o=e.getAttribute("type");return!t.interpolator||"checked"!==n||"checkbox"!==o&&"radio"!==o||(t.interpolator.bound=!0),si}return t.namespace&&t.namespace!==t.node.namespaceURI?hi:ai}function zn(t){var e=this,n=e.node,i=this.getValue();return this.ractive.nodes[n.id]===n&&delete this.ractive.nodes[n.id],t?n.removeAttribute("id"):(this.ractive.nodes[i]=n,
+void(n.id=i))}function $n(t){var e=this.getValue();u(e)||(e=[e]);var n=this.node.options,i=n.length;if(t)for(;i--;)n[i].selected=!1;else for(;i--;){var r=n[i],o=r._ractive?r._ractive.value:r.value;r.selected=C(e,o)}}function Gn(t){var e=this.getValue();if(!this.locked){this.node._ractive.value=e;var n=this.node.options,i=n.length,r=!1;if(t)for(;i--;)n[i].selected=!1;else for(;i--;){var o=n[i],s=o._ractive?o._ractive.value:o.value;if(o.disabled&&o.selected&&(r=!0),s==e)return void(o.selected=!0)}r||(this.node.selectedIndex=-1)}}function Yn(t){var e=this.getValue();this.locked||(t?this.node.innerHTML="":this.node.innerHTML=void 0===e?"":e)}function Zn(t){var e=this.node,n=e.checked,i=this.getValue();return t?e.checked=!1:(e.value=this.node._ractive.value=i,e.checked=i===this.element.getAttribute("name"),void(n&&!e.checked&&this.element.binding&&this.element.binding.rendered&&this.element.binding.group.model.set(this.element.binding.group.getValue())))}function Jn(t){if(!this.locked){if(t)return this.node.removeAttribute("value"),void(this.node.value=this.node._ractive.value=null);var e=this.getValue();this.node.value=this.node._ractive.value=e,this.node.setAttribute("value",e)}}function Xn(t){if(!this.locked){if(t)return this.node._ractive.value="",void this.node.removeAttribute("value");var e=this.getValue();this.node._ractive.value=e,this.node.value=i(e),this.node.setAttribute("value",i(e))}}function ti(t){t?this.node.checked=!1:this.node.checked=this.getValue()==this.node._ractive.value}function ei(t){var e=this,n=e.element,i=e.node,r=n.binding,o=this.getValue(),s=n.getAttribute("value");if(u(o)){for(var a=o.length;a--;)if(s==o[a])return void(r.isChecked=i.checked=!0);r.isChecked=i.checked=!1}else r.isChecked=i.checked=o==s}function ni(t){for(var e=t?{}:Hn(this.getValue()||""),n=this.node.style,i=Object.keys(e),r=this.previous||[],o=0;o<i.length;){if(i[o]in n){var s=e[i[o]].replace("!important","");n.setProperty(i[o],s,s.length!==e[i[o]].length?"important":"")}o++}for(o=r.length;o--;)!~i.indexOf(r[o])&&r[o]in n&&(n[r[o]]="");this.previous=i}function ii(t){this.styleName||(this.styleName=o(this.name.substr(6))),this.node.style[this.styleName]=t?"":this.getValue()}function ri(t){for(var e=t?[]:Wn(i(this.getValue())),n=Wn(this.node.className),r=this.previous||n.slice(0),o=0;o<e.length;)~n.indexOf(e[o])||n.push(e[o]),o++;for(o=r.length;o--;)if(!~e.indexOf(r[o])){var s=n.indexOf(r[o]);~s&&n.splice(s,1)}var a=n.join(" ");a!==this.node.className&&(this.node.className=a),this.previous=e}function oi(t){var e=this.name.substr(6),n=Wn(this.node.className),i=!t&&this.getValue();this.inlineClass||(this.inlineClass=e),i&&!~n.indexOf(e)?n.push(e):!i&&~n.indexOf(e)&&n.splice(n.indexOf(e),1),this.node.className=n.join(" ")}function si(t){if(!this.locked){if(t)return this.useProperty&&(this.node[this.propertyName]=!1),void this.node.removeAttribute(this.propertyName);this.useProperty?this.node[this.propertyName]=this.getValue():this.getValue()?this.node.setAttribute(this.propertyName,""):this.node.removeAttribute(this.propertyName)}}function ai(t){t?this.node.removeAttribute(this.name):this.node.setAttribute(this.name,i(this.getString()))}function hi(t){t?this.node.removeAttributeNS(this.namespace,this.name.slice(this.name.indexOf(":")+1)):this.node.setAttributeNS(this.namespace,this.name.slice(this.name.indexOf(":")+1),i(this.getString()))}function ui(t){return t.replace(bh,function(t,e){var n;return n="#"!==e[0]?gh[e]:"x"===e[1]?parseInt(e.substring(2),16):parseInt(e.substring(1),10),n?kh(li(n)):t})}function pi(t){return t.replace(xh,"&amp;").replace(Eh,"&lt;").replace(_h,"&gt;")}function li(t){return t?10===t?32:t<128?t:t<=159?yh[t-128]:t<55296?t:t<=57343?Oh:t<=65535?t:wh?t>=65536&&t<=131071?t:t>=131072&&t<=196607?t:Oh:Oh:Oh}function ci(t,e){for(var n="xmlns:"+e;t;){if(t.hasAttribute&&t.hasAttribute(n))return t.getAttribute(n);t=t.parentNode}return xo[e]}function di(t,e,n){0===e?t.value=!0:"true"===e?t.value=!0:"false"===e||"0"===e?t.value=!1:t.value=e;var i=t.element[t.flag];return t.element[t.flag]=t.value,n&&!t.element.attributes.binding&&i!==t.value&&t.element.recreateTwowayBinding(),t.value}function fi(){return Fh}function mi(t){Fh=!0,t(),Fh=!1}function vi(t,e){var n=e?"svg":"div";return t?(Ah.innerHTML="<"+n+" "+t+"></"+n+">")&&N(Ah.childNodes[0].attributes):[]}function gi(t,e){for(var n=t.length;n--;)if(t[n].name===e.name)return!1;return!0}function yi(t,e,n,i){var r=t.__model;i&&r.shuffle(i)}function bi(t,e,n,i){if(t.set&&t.set.__magic)return t.set.__magic.dependants.push({ractive:e,keypath:n}),t;var r,o=[{ractive:e,keypath:n}],s={get:function(){return"value"in t?t.value:t.get.call(this)},set:function(e){r||("value"in t?t.value=e:t.set.call(this,e),i.locked||(r=!0,o.forEach(function(t){var n=t.ractive,i=t.keypath;n.set(i,e)}),r=!1))},enumerable:!0};return s.set.__magic={dependants:o,originalDescriptor:t},s}function wi(t,e,n){if(!t.set||!t.set.__magic)return!0;for(var i=t.set.__magic,r=i.length;r--;){var o=i[r];if(o.ractive===e&&o.keypath===n)return i.splice(r,1),!1}}function ki(t){var e=t.replace(/^\t+/gm,function(t){return t.split("\t").join("  ")}).split("\n"),n=e.length<2?0:e.slice(1).reduce(function(t,e){return Math.min(t,/^\s*/.exec(e)[0].length)},1/0);return e.map(function(t,e){return"    "+(e?t.substring(n):t)}).join("\n")}function Ei(t){if(!t)return"";for(var e=t.split("\n"),n=Hh.name+".getValue",i=[],r=e.length,o=1;o<r;o+=1){var s=e[o];if(~s.indexOf(n))return i.join("\n");i.push(s)}}function _i(t,e,n){var i,r,o,s,a;return"function"==typeof n&&(i=Q(n,t),o=n.toString(),s=!0),"string"==typeof n&&(i=kn(n,t),o=n),"object"==typeof n&&("string"==typeof n.get?(i=kn(n.get,t),o=n.get):"function"==typeof n.get?(i=Q(n.get,t),o=n.get.toString(),s=!0):m("`%s` computation must have a `get()` method",e),"function"==typeof n.set&&(r=Q(n.set,t),a=n.set.toString())),{getter:i,setter:r,getterString:o,setterString:a,getterUseStack:s}}function xi(t,e){Zr.DEBUG&&So(),ji(t),Co(t,"data",{get:Ai}),$h.fire(t,e),Gh.forEach(function(n){t[n]=a(Oo(t.constructor[n]||null),e[n])});var n=new zh({adapt:Ci(t,t.adapt,e),data:pa.init(t.constructor,t,e),ractive:t});t.viewmodel=n;var i=a(Oo(t.constructor.prototype.computed),e.computed);for(var r in i){var o=_i(t,r,i[r]);n.compute(r,o)}}function Oi(t){for(var e=[],n=e.concat.apply(e,t),i=n.length;i--;)~e.indexOf(n[i])||e.unshift(n[i]);return e}function Ci(t,e,n){function i(e){return"string"==typeof e&&(e=k("adaptors",t,e),e||m(Lo(e,"adaptor"))),e}e=e.map(i);var r=A(n.adapt).map(i),o=[],s=[e,r];t.parent&&!t.isolated&&s.push(t.parent.viewmodel.adaptors),s.push(o);var a="magic"in n?n.magic:t.magic,h="modifyArrays"in n?n.modifyArrays:t.modifyArrays;if(a){if(!Jr)throw new Error("Getters and setters (magic mode) are not supported in this browser");h&&o.push(qh),o.push(Lh)}return h&&o.push(Mh),Oi(s)}function ji(t){t._guid="r-"+Yh++,t._subs=Oo(null),t._config={},t.nodes={},t.event=null,t._eventQueue=[],t._liveQueries=[],t._liveComponentQueries=[],t._observers=[],t.component||(t.root=t,t.parent=t.container=null)}function Ai(){throw new Error("Using `ractive.data` is no longer supported - you must use the `ractive.get()` API instead")}function Fi(t,e){return t[e._guid]||(t[e._guid]=[])}function Ti(t,e){var n=Fi(t.queue,e);for(t.hook.fire(e);n.length;)Ti(t,n.shift());delete t.queue[e._guid]}function Ni(t,n,i){Object.keys(t.viewmodel.computations).forEach(function(e){var n=t.viewmodel.computations[e];t.viewmodel.value.hasOwnProperty(e)&&n.set(t.viewmodel.value[e])}),Aa.init(t.constructor,t,n),Jh.fire(t),Xh.begin(t);var r;if(t.template){var o;(i.cssIds||t.cssId)&&(o=i.cssIds?i.cssIds.slice():[],t.cssId&&o.push(t.cssId)),t.fragment=r=new Ip({owner:t,template:t.template,cssIds:o}).bind(t.viewmodel)}if(Xh.end(t),r){var s=e(t.el);if(s){var a=t.render(s,t.append);Zr.DEBUG_PROMISES&&a.catch(function(e){throw w("Promise debugging is enabled, to help solve errors that happen asynchronously. Some browsers will log unhandled promise rejections, in which case you can safely disable promise debugging:\n  Ractive.DEBUG_PROMISES = false;"),b("An error happened during rendering",{ractive:t}),v(e),e})}}}function Si(t){var e=t.ractive;do for(var n=e._liveComponentQueries,i=n.length;i--;){var r=n[i],o=n["_"+r];o.test(t)&&(o.add(t.instance),t.liveQueries.push(o))}while(e=e.parent)}function Vi(t){for(var e=t.ractive;e;){var n=e._liveComponentQueries["_"+t.name];n&&n.remove(t),e=e.parent}}function Bi(t){t.makeDirty()}function Ki(t){var e=t.node,n=t.ractive;do for(var i=n._liveQueries,r=i.length;r--;){var o=i[r],s=i["_"+o];s.test(e)&&(s.add(e),t.liveQueries.push(s))}while(n=n.parent)}function Pi(t,e){w("The "+t+" being used for two-way binding is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",{ractive:e})}function Mi(){this._ractive.binding.handleChange()}function Ii(t,e,n){var i=""+t+"-bindingGroup";return e[i]||(e[i]=new du(i,e,n))}function Ri(){var t=this.bindings.filter(function(t){return t.node&&t.node.checked}).map(function(t){return t.element.getAttribute("value")}),e=[];return t.forEach(function(t){C(e,t)||e.push(t)}),e}function Li(){Mi.call(this);var t=this._ractive.binding.model.get();this.value=void 0==t?"":t}function Di(t){var e;return function(){var n=this;e&&clearTimeout(e),e=setTimeout(function(){var t=n._ractive.binding;t.rendered&&Mi.call(n),e=null},t)}}function Ui(t){return t.selectedOptions?N(t.selectedOptions):t.options?N(t.options).filter(function(t){return t.selected}):[]}function qi(t){return _u[t]||(_u[t]=[])}function Hi(){var t=this.bindings.filter(function(t){return t.node.checked});if(t.length>0)return t[0].element.getAttribute("value")}function Wi(t){return t&&t.template.f&&1===t.template.f.length&&t.template.f[0].t===Ka&&!t.template.f[0].s}function Qi(t){var e=t.attributeByName;if(t.getAttribute("contenteditable")||Wi(e.contenteditable))return Wi(e.value)?yu:null;if("input"===t.name){var n=t.getAttribute("type");if("radio"===n||"checkbox"===n){var i=Wi(e.name),r=Wi(e.checked);if(i&&r){if("radio"!==n)return cu;b("A radio input can have two-way binding on its name attribute, or its checked attribute - not both",{ractive:t.root})}if(i)return"radio"===n?Ou:gu;if(r)return"radio"===n?xu:cu}return"file"===n&&Wi(e.value)?wu:Wi(e.value)?"number"===n||"range"===n?Eu:bu:null}return"select"===t.name&&Wi(e.value)?t.getAttribute("multiple")?ku:Cu:"textarea"===t.name&&Wi(e.value)?bu:void 0}function zi(t){t.makeDirty()}function $i(t){var e=t.attributeByName,n=e.type,i=e.value,r=e.name;if(n&&"radio"===n.value&&i&&r.interpolator)return i.getValue()===r.interpolator.model.get()||void 0}function Gi(t){var e=t.toString();return e?" "+e:""}function Yi(t){for(var e=t.liveQueries.length;e--;){var n=t.liveQueries[e];n.remove(t.node)}}function Zi(t){var e=t.getAttribute("xmlns");if(e)return e;if("svg"===t.name)return wo;var n=t.parent;return n?"foreignobject"===n.name?yo:n.node.namespaceURI:t.ractive.el.namespaceURI}function Ji(){var t=this._ractive.proxy;Jo.start(),t.formBindings.forEach(Xi),Jo.end()}function Xi(t){t.model.set(t.resetValue)}function tr(t){return function(e){for(var n,i='"',r=!1;!r;)n=e.matchPattern(Bu)||e.matchPattern(Ku)||e.matchString(t),n?i+='"'===n?'\\"':"\\'"===n?"'":n:(n=e.matchPattern(Pu),n?i+="\\u"+("000"+n.charCodeAt(1).toString(16)).slice(-4):r=!0);return i+='"',JSON.parse(i)}}function er(t){var e,n;return e=t.pos,t.matchString('"')?(n=Ru(t),t.matchString('"')?{t:Qa,v:n}:(t.pos=e,null)):t.matchString("'")?(n=Iu(t),t.matchString("'")?{t:Qa,v:n}:(t.pos=e,null)):null}function nr(t){var e;return(e=t.matchPattern(Lu))?{t:Wa,v:e}:null}function ir(t){var e;return(e=er(t))?Uu.test(e.v)?e.v:'"'+e.v.replace(/"/g,'\\"')+'"':(e=nr(t))?e.v:(e=t.matchPattern(Du))?e:null}function rr(t){t.allowWhitespace();var e=ir(t);if(!e)return null;var n={key:e};if(t.allowWhitespace(),!t.matchString(":"))return null;t.allowWhitespace();var i=t.read();return i?(n.value=i.v,n):null}function or(t,e){var n=new Gu(t,{values:e});return n.result}function sr(t){var e=t.template.f,n=t.element.instance.viewmodel,i=n.value;1===e.length&&e[0].t===Ka?(t.model=Dn(t.parentFragment,e[0]),t.model||(w("The "+t.name+"='{{"+e[0].r+"}}' mapping is ambiguous, and may cause unexpected results. Consider initialising your data to eliminate the ambiguity",{ractive:t.element.instance}),t.parentFragment.ractive.get(t.name),t.model=t.parentFragment.findContext().joinKey(t.name)),t.link=n.createLink(t.name,t.model,e[0].r),void 0===t.model.get()&&t.name in i&&t.model.set(i[t.name])):(t.boundFragment=new Ip({owner:t,template:e}).bind(),t.model=n.joinKey(t.name),t.model.set(t.boundFragment.valueOf()),t.boundFragment.bubble=function(){Ip.prototype.bubble.call(t.boundFragment),Jo.scheduleTask(function(){t.boundFragment.update(),t.model.set(t.boundFragment.valueOf())})})}function ar(t,e,n){var i=hr(t,e,n||{});if(i)return i;if(i=ya.fromId(e,{noThrow:!0})){var r=ya.parseFor(i,t);return r.p&&h(t.partials,r.p),t.partials[e]=r.t}}function hr(t,e,n){var i=lr(e,n.owner);if(i)return i;var r=E("partials",t,e);if(r){i=r.partials[e];var o;if("function"==typeof i&&(o=i.bind(r),o.isOwner=r.partials.hasOwnProperty(e),i=o.call(t,ya)),!i&&""!==i)return void b(Ro,e,"partial","partial",{ractive:t});if(!ya.isParsed(i)){var s=ya.parseFor(i,r);s.p&&b("Partials ({{>%s}}) cannot contain nested inline partials",e,{ractive:t});var a=o?r:ur(r,e);a.partials[e]=i=s.t}return o&&(i._fn=o),i.v?i.t:i}}function ur(t,e){return t.partials.hasOwnProperty(e)?t:pr(t.constructor,e)}function pr(t,e){if(t)return t.partials.hasOwnProperty(e)?t:pr(t._Parent,e)}function lr(t,e){if(e){if(e.template&&e.template.p&&e.template.p[t])return e.template.p[t];if(e.parentFragment&&e.parentFragment.owner)return lr(t,e.parentFragment.owner)}}function cr(t,e,n){var i;try{i=ya.parse(e,ya.getParseOptions(n))}catch(e){b("Could not parse partial from expression '"+t+"'\n"+e.message)}return i||{t:[]}}function dr(t){return!t||u(t)&&0===t.length||c(t)&&0===Object.keys(t).length}function fr(t,e){return e||u(t)?Ya:c(t)||"function"==typeof t?Ja:void 0===t?null:$a}function mr(t,e){for(var n=t.length;n--;)if(t[n]==e)return!0}function vr(t){return t.replace(/-([a-zA-Z])/g,function(t,e){return e.toUpperCase()})}function gr(){ap=!io[up]}function yr(){ap=!1}function br(){ap=!0}function wr(t){return t.replace(fp,"")}function kr(t){return t?(mp.test(t)&&(t="-"+t),t.replace(/[A-Z]/g,function(t){return"-"+t.toLowerCase()})):""}function Er(t,e){e?t.setAttribute("style",e):(t.getAttribute("style"),t.removeAttribute("style"))}function _r(t,e,n){var i=[];if(null==t||""===t)return i;var r,o,s;Np&&(o=Sp[e.tagName])?(r=xr("DIV"),r.innerHTML=o[0]+t+o[1],r=r.querySelector(".x"),"SELECT"===r.tagName&&(s=r.options[r.selectedIndex])):e.namespaceURI===wo?(r=xr("DIV"),r.innerHTML='<svg class="x">'+t+"</svg>",r=r.querySelector(".x")):"TEXTAREA"===e.tagName?(r=so("div"),"undefined"!=typeof r.textContent?r.textContent=t:r.innerHTML=t):(r=xr(e.tagName),r.innerHTML=t,"SELECT"===r.tagName&&(s=r.options[r.selectedIndex]));for(var a;a=r.firstChild;)i.push(a),n.appendChild(a);var h;if("SELECT"===e.tagName)for(h=i.length;h--;)i[h]!==s&&(i[h].selected=!1);return i}function xr(t){return Vp[t]||(Vp[t]=so(t))}function Or(t,e){var n,i=E("components",t,e);if(i&&(n=i.components[e],!n._Parent)){var r=n.bind(i);if(r.isOwner=i.components.hasOwnProperty(e),n=r(),!n)return void b(Ro,e,"component","component",{ractive:t});"string"==typeof n&&(n=Or(t,n)),n._fn=r,i.components[e]=n}return n}function Cr(t){if("string"==typeof t.template)return new rp(t);if(t.template.t===Ia){var e=Or(t.parentFragment.ractive,t.template.e);if(e)return new au(t,e);var n=t.template.e.toLowerCase(),i=Mp[n]||Au;return new i(t)}var r;if(t.template.t===La){var o=t.owner;(!o||o.type!==Da&&o.type!==Ia)&&(o=qn(t.parentFragment)),t.element=o,r=o.type===Da?Yu:Ch}else r=Pp[t.template.t];if(!r)throw new Error("Unrecognised item type "+t.template.t);return new r(t)}function jr(t,e,n,i){return void 0===i&&(i=0),t.map(function(t){if(t.type===Ba)return t.template;if(t.fragment)return t.fragment.iterations?t.fragment.iterations.map(function(t){return jr(t.items,e,n,i)}).join(""):jr(t.fragment.items,e,n,i);var r=""+n+"-"+i++,o=t.model||t.newModel;return e[r]=o?o.wrapper?o.wrapperValue:o.get():void 0,"${"+r+"}"}).join("")}function Ar(t){t.unrender(!0)}function Fr(e){ba.init(null,this,{template:e});var n=this.transitionsEnabled;this.transitionsEnabled=!1;var i=this.component;i&&(i.shouldDestroy=!0),this.unrender(),i&&(i.shouldDestroy=!1),this.fragment.unbind().unrender(!0),this.fragment=new Ip({template:this.template,root:this,owner:this});var r=t();this.fragment.bind(this.viewmodel).render(r),i?this.fragment.findParentNode().insertBefore(r,i.findNextNode()):this.el.insertBefore(r,this.anchor),this.transitionsEnabled=n}function Tr(t,e){var n=this;return z(n,G(n,t,e))}function Nr(t,e){return Y(this,t,void 0===e?-1:-e)}function Sr(){if(this.torndown)return b("ractive.teardown() was called on a Ractive instance that was already torn down"),$o.resolve();this.torndown=!0,this.fragment.unbind(),this.viewmodel.teardown(),this._observers.forEach(jt),this.fragment.rendered&&this.el.__ractive_instances__&&T(this.el.__ractive_instances__,this),this.shouldDestroy=!0;var t=this.fragment.rendered?this.unrender():$o.resolve();return qp.fire(this),t}function Vr(t){if("string"!=typeof t)throw new TypeError(Io);return z(this,$(this,t).map(function(t){return[t,!t.get()]}))}function Br(){var t=[this.cssId].concat(this.findAllComponents().map(function(t){return t.cssId})),e=Object.keys(t.reduce(function(t,e){return t[e]=!0,t},{}));return tn(e)}function Kr(){return this.fragment.toString(!0)}function Pr(){return this.fragment.toString(!1)}function Mr(t,e,n){e instanceof HTMLElement||c(e)&&(n=e),e=e||this.event.node,e&&e._ractive||m("No node was supplied for transition "+t),n=n||{};var i=e._ractive.proxy,r=new Tp({owner:i,parentFragment:i.parentFragment,name:t,params:n});r.bind();var o=Jo.start(this,!0);return Jo.registerTransition(r),Jo.end(),o.then(function(){return r.unbind()}),o}function Ir(t){var e=Jo.start();return this.viewmodel.joinAll(H(t),{lastLink:!1}).unlink(),Jo.end(),e}function Rr(){if(!this.fragment.rendered)return b("ractive.unrender() was called on a Ractive instance that was not rendered"),$o.resolve();var t=Jo.start(this,!0),e=!this.component||this.component.shouldDestroy||this.shouldDestroy;return this.fragment.unrender(e),T(this.el.__ractive_instances__,this),Hp.fire(this),Jo.end(),t}function Lr(t,e){var n=Jo.start(this,!0);return t?this.viewmodel.joinAll(H(t)).updateFromBindings(e!==!1):this.viewmodel.updateFromBindings(!0),Jo.end(),n}function Dr(t,e,n){return n||Ur(t,e)?function(){var n,i="_super"in this,r=this._super;return this._super=e,n=t.apply(this,arguments),i&&(this._super=r),n}:t}function Ur(t,e){return"function"==typeof e&&/_super/.test(t)}function qr(t){for(var e={};t;)Hr(t,e),Qr(t,e),t=t._Parent!==Zr&&t._Parent;return e}function Hr(t,e){Ea.forEach(function(n){Wr(n.useDefaults?t.prototype:t,e,n.name)})}function Wr(t,e,n){var i,r=Object.keys(t[n]);r.length&&((i=e[n])||(i=e[n]={}),r.filter(function(t){return!(t in i)}).forEach(function(e){return i[e]=t[n][e]}))}function Qr(t,e){Object.keys(t.prototype).forEach(function(n){if("computed"!==n){var i=t.prototype[n];if(n in e){if("function"==typeof e[n]&&"function"==typeof i&&e[n]._method){var r,o=i._method;o&&(i=i._method),r=Dr(e[n]._method,i),o&&(r._method=r),e[n]=r}}else e[n]=i._method?i._method:i}})}function zr(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.length?t.reduce($r,this):$r(this)}function $r(t,e){void 0===e&&(e={});var n,i;return e.prototype instanceof Zr&&(e=qr(e)),n=function(t){return this instanceof n?(xi(this,t||{}),void Ni(this,t||{},{})):new n(t)},i=Oo(t.prototype),i.constructor=n,jo(n,{defaults:{value:i},extend:{value:zr,writable:!0,configurable:!0},_Parent:{value:t}}),Aa.extend(t,i,e),pa.extend(t,i,e),e.computed&&(i.computed=a(Oo(t.prototype.computed),e.computed)),n.prototype=i,n}function Gr(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return t.map(U).join(".")}function Yr(t){return H(t).map(W)}function Zr(t){return this instanceof Zr?(xi(this,t||{}),void Ni(this,t||{},{})):new Zr(t)}var Jr,Xr={el:void 0,append:!1,template:null,delimiters:["{{","}}"],tripleDelimiters:["{{{","}}}"],staticDelimiters:["[[","]]"],staticTripleDelimiters:["[[[","]]]"],csp:!0,interpolate:!1,preserveWhitespace:!1,sanitize:!1,stripComments:!0,contextLines:0,data:{},computed:{},magic:!1,modifyArrays:!1,adapt:[],isolated:!1,twoway:!0,lazy:!1,noIntro:!1,transitionsEnabled:!0,complete:void 0,css:null,noCssTransform:!1},to={linear:function(t){return t},easeIn:function(t){return Math.pow(t,3)},easeOut:function(t){return Math.pow(t-1,3)+1},easeInOut:function(t){return(t/=.5)<1?.5*Math.pow(t,3):.5*(Math.pow(t-2,3)+2)}},eo=null,no="undefined"!=typeof window?window:null,io=no?document:null,ro=!!io,oo=("undefined"!=typeof navigator&&/jsDom/.test(navigator.appName),"undefined"!=typeof console&&"function"==typeof console.warn&&"function"==typeof console.warn.apply);try{Object.defineProperty({},"test",{value:0}),Jr=!0}catch(t){Jr=!1}var so,ao,ho,uo,po,lo,co,fo,mo,vo=!!io&&io.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),go=["o","ms","moz","webkit"],yo="http://www.w3.org/1999/xhtml",bo="http://www.w3.org/1998/Math/MathML",wo="http://www.w3.org/2000/svg",ko="http://www.w3.org/1999/xlink",Eo="http://www.w3.org/XML/1998/namespace",_o="http://www.w3.org/2000/xmlns",xo={html:yo,mathml:bo,svg:wo,xlink:ko,xml:Eo,xmlns:_o};if(so=vo?function(t,e,n){return e&&e!==yo?n?io.createElementNS(e,t,n):io.createElementNS(e,t):n?io.createElement(t,n):io.createElement(t)}:function(t,e,n){if(e&&e!==yo)throw"This browser does not support namespaces other than http://www.w3.org/1999/xhtml. The most likely cause of this error is that you're trying to render SVG in an older browser. See http://docs.ractivejs.org/latest/svg-and-older-browsers for more information";return n?io.createElement(t,n):io.createElement(t)},ro){for(ho=so("div"),uo=["matches","matchesSelector"],mo=function(t){return function(e,n){return e[t](n)}},co=uo.length;co--&&!ao;)if(po=uo[co],ho[po])ao=mo(po);else for(fo=go.length;fo--;)if(lo=go[co]+po.substr(0,1).toUpperCase()+po.substring(1),ho[lo]){ao=mo(lo);break}ao||(ao=function(t,e){var n,i,r;for(i=t.parentNode,i||(ho.innerHTML="",i=ho,t=t.cloneNode(),ho.appendChild(t)),n=i.querySelectorAll(e),r=n.length;r--;)if(n[r]===t)return!0;return!1})}else ao=null;var Oo,Co,jo,Ao=/(-.)/g,Fo=/[A-Z]/g;try{Object.defineProperty({},"test",{get:function(){},set:function(){}}),io&&Object.defineProperty(so("div"),"test",{value:0}),Co=Object.defineProperty}catch(t){Co=function(t,e,n){n.get?t[e]=n.get():t[e]=n.value}}try{try{Object.defineProperties({},{test:{value:0}})}catch(t){throw t}io&&Object.defineProperties(so("div"),{test:{value:0}}),jo=Object.defineProperties}catch(t){jo=function(t,e){var n;for(n in e)e.hasOwnProperty(n)&&Co(t,n,e[n])}}try{Object.create(null),Oo=Object.create}catch(t){Oo=function(){var t=function(){};return function(e,n){var i;return null===e?{}:(t.prototype=e,i=new t,n&&Object.defineProperties(i,n),i)}}()}var To,No,So,Vo=Object.prototype.hasOwnProperty,Bo=Object.prototype.toString,Ko={};if(oo){var Po=["%cRactive.js %c0.8.7 %cin debug mode, %cmore...","color: rgb(114, 157, 52); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(85, 85, 85); font-weight: normal;","color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;"],Mo="You're running Ractive 0.8.7 in debug mode - messages will be printed to the console to help you fix problems and optimise your application.\n\nTo disable debug mode, add this line at the start of your app:\n  Ractive.DEBUG = false;\n\nTo disable debug mode when your app is minified, add this snippet:\n  Ractive.DEBUG = /unminified/.test(function(){/*unminified*/});\n\nGet help and support:\n  http://docs.ractivejs.org\n  http://stackoverflow.com/questions/tagged/ractivejs\n  http://groups.google.com/forum/#!forum/ractive-js\n  http://twitter.com/ractivejs\n\nFound a bug? Raise an issue:\n  https://github.com/ractivejs/ractive/issues\n\n";So=function(){if(Zr.WELCOME_MESSAGE===!1)return void(So=d);var t="WELCOME_MESSAGE"in Zr?Zr.WELCOME_MESSAGE:Mo,e=!!console.groupCollapsed;e&&console.groupCollapsed.apply(console,Po),console.log(t),e&&console.groupEnd(Po),So=d},No=function(t,e){if(So(),"object"==typeof e[e.length-1]){var n=e.pop(),i=n?n.ractive:null;if(i){var r;i.component&&(r=i.component.name)&&(t="<"+r+"> "+t);var o;(o=n.node||i.fragment&&i.fragment.rendered&&i.find("*"))&&e.push(o)}}console.warn.apply(console,["%cRactive.js: %c"+t,"color: rgb(114, 157, 52);","color: rgb(85, 85, 85);"].concat(e))},To=function(){console.log.apply(console,arguments)}}else No=To=So=d;var Io="Bad arguments",Ro='A function was specified for "%s" %s, but no %s was returned',Lo=function(t,e){return'Missing "'+t+'" '+e+" plugin. You may need to download a plugin via http://docs.ractivejs.org/latest/plugins#"+e+"s"},Do={number:function(t,e){var n;return l(t)&&l(e)?(t=+t,e=+e,n=e-t,n?function(e){return t+e*n}:function(){return t}):null},array:function(t,e){var n,i,r,o;if(!u(t)||!u(e))return null;for(n=[],i=[],o=r=Math.min(t.length,e.length);o--;)i[o]=_(t[o],e[o]);for(o=r;o<t.length;o+=1)n[o]=t[o];for(o=r;o<e.length;o+=1)n[o]=e[o];return function(t){for(var e=r;e--;)n[e]=i[e](t);return n}},object:function(t,e){var n,i,r,o,s;if(!c(t)||!c(e))return null;n=[],o={},r={};for(s in t)Vo.call(t,s)&&(Vo.call(e,s)?(n.push(s),r[s]=_(t[s],e[s])||x(e[s])):o[s]=t[s]);for(s in e)Vo.call(e,s)&&!Vo.call(t,s)&&(o[s]=e[s]);return i=n.length,function(t){for(var e,s=i;s--;)e=n[s],o[e]=r[e](t);return o}}},Uo={construct:{deprecated:"beforeInit",replacement:"onconstruct"},render:{deprecated:"init",message:'The "init" method has been deprecated and will likely be removed in a future release. You can either use the "oninit" method which will fire only once prior to, and regardless of, any eventual ractive instance being rendered, or if you need to access the rendered DOM, use "onrender" instead. See http://docs.ractivejs.org/latest/migrating for more information.'},complete:{deprecated:"complete",replacement:"oncomplete"}},qo=function(t){this.event=t,this.method="on"+t,this.deprecate=Uo[t]};qo.prototype.call=function(t,e,n){if(e[t])return n?e[t](n):e[t](),!0},qo.prototype.fire=function(t,e){this.call(this.method,t,e),!t[this.method]&&this.deprecate&&this.call(this.deprecate.deprecated,t,e)&&(this.deprecate.message?b(this.deprecate.message):b('The method "%s" has been deprecated in favor of "%s" and will likely be removed in a future release. See http://docs.ractivejs.org/latest/migrating for more information.',this.deprecate.deprecated,this.deprecate.replacement)),e?t.fire(this.event,e):t.fire(this.event)};var Ho,Wo={},Qo={},zo={};"function"==typeof Promise?Ho=Promise:(Ho=function(t){var e,n,i,r,o,s,a=[],h=[],u=Wo;i=function(t){return function(i){u===Wo&&(e=i,u=t,n=V(u===Qo?a:h,e),S(n))}},r=i(Qo),o=i(zo);try{t(r,o)}catch(t){o(t)}return s={then:function(t,e){var i=new Ho(function(r,o){var s=function(t,e,n){"function"==typeof t?e.push(function(e){var n;try{n=t(e),B(i,n,r,o)}catch(t){o(t)}}):e.push(n)};s(t,a,r),s(e,h,o),u!==Wo&&S(n)});return i}},s.catch=function(t){return this.then(null,t)},s},Ho.all=function(t){return new Ho(function(e,n){var i,r,o,s=[];if(!t.length)return void e(s);for(o=function(t,r){t&&"function"==typeof t.then?t.then(function(t){s[r]=t,--i||e(s)},n):(s[r]=t,--i||e(s))},i=r=t.length;r--;)o(t[r],r)})},Ho.resolve=function(t){return new Ho(function(e){e(t)})},Ho.reject=function(t){return new Ho(function(e,n){n(t)})});var $o=Ho,Go=function(t,e){this.callback=t,this.parent=e,this.intros=[],this.outros=[],this.children=[],this.totalChildren=this.outroChildren=0,this.detachQueue=[],this.outrosComplete=!1,e&&e.addChild(this)};Go.prototype.add=function(t){var e=t.isIntro?this.intros:this.outros;e.push(t)},Go.prototype.addChild=function(t){this.children.push(t),this.totalChildren+=1,this.outroChildren+=1},Go.prototype.decrementOutros=function(){this.outroChildren-=1,M(this)},Go.prototype.decrementTotal=function(){this.totalChildren-=1,M(this)},Go.prototype.detachNodes=function(){this.detachQueue.forEach(K),this.children.forEach(P)},Go.prototype.ready=function(){I(this)},Go.prototype.remove=function(t){var e=t.isIntro?this.intros:this.outros;T(e,t),M(this)},Go.prototype.start=function(){this.children.forEach(function(t){return t.start()}),this.intros.concat(this.outros).forEach(function(t){return t.start()}),this.ready=!0,M(this)};var Yo,Zo=new qo("change"),Jo={start:function(t,e){var n,i;return e&&(n=new $o(function(t){return i=t})),Yo={previousBatch:Yo,transitionManager:new Go(i,Yo&&Yo.transitionManager),fragments:[],tasks:[],immediateObservers:[],deferredObservers:[],ractives:[],instance:t},n},end:function(){D(),Yo.previousBatch||Yo.transitionManager.start(),Yo=Yo.previousBatch},addFragment:function(t){O(Yo.fragments,t)},addFragmentToRoot:function(t){if(Yo){for(var e=Yo;e.previousBatch;)e=e.previousBatch;O(e.fragments,t)}},addInstance:function(t){Yo&&O(Yo.ractives,t)},addObserver:function(t,e){O(e?Yo.deferredObservers:Yo.immediateObservers,t)},registerTransition:function(t){t._manager=Yo.transitionManager,Yo.transitionManager.add(t)},detachWhenReady:function(t){Yo.transitionManager.detachQueue.push(t)},scheduleTask:function(t,e){var n;if(Yo){for(n=Yo;e&&n.previousBatch;)n=n.previousBatch;n.tasks.push(t)}else t()}},Xo=/\[\s*(\*|[0-9]|[1-9][0-9]+)\s*\]/g,ts=/([^\\](?:\\\\)*)\./,es=/\\|\./g,ns=/((?:\\)+)\1|\\(\.)/g,is=/\*/,rs="Cannot add to a non-numeric value",os=$o.resolve();Co(os,"stop",{value:d});var ss=to.linear,as=new qo("detach"),hs=function(t,e,n,i){this.ractive=t,this.selector=e,this.live=n,this.isComponentQuery=i,this.result=[],this.dirty=!0};hs.prototype.add=function(t){this.result.push(t),this.makeDirty()},hs.prototype.cancel=function(){var t=this._root[this.isComponentQuery?"liveComponentQueries":"liveQueries"],e=this.selector,n=t.indexOf(e);n!==-1&&(t.splice(n,1),t[e]=null)},hs.prototype.init=function(){this.dirty=!1},hs.prototype.makeDirty=function(){var t=this;this.dirty||(this.dirty=!0,Jo.scheduleTask(function(){return t.update()}))},hs.prototype.remove=function(t){var e=this.result.indexOf(this.isComponentQuery?t.instance:t);e!==-1&&this.result.splice(e,1)},hs.prototype.update=function(){this.result.sort(this.isComponentQuery?rt:it),this.dirty=!1},hs.prototype.test=function(t){return this.isComponentQuery?!this.selector||t.name===this.selector:t?ao(t,this.selector):null};var us,ps={},ls={},cs=[],ds=function(t,e){this.value=t,this.isReadonly=this.isKey=!0,this.deps=[],this.links=[],this.parent=e};ds.prototype.get=function(t){return t&&Ot(this),W(this.value)},ds.prototype.getKeypath=function(){return W(this.value)},ds.prototype.rebinding=function(t,e){for(var n=this,i=this.deps.length;i--;)n.deps[i].rebinding(t,e,!1);for(i=this.links.length;i--;)n.links[i].rebinding(t,e,!1)},ds.prototype.register=function(t){this.deps.push(t)},ds.prototype.registerLink=function(t){O(this.links,t)},ds.prototype.unregister=function(t){T(this.deps,t)},ds.prototype.unregisterLink=function(t){T(this.links,t)};var fs=function(t,e){this.parent=t,this.ractive=e,this.value=e?t.getKeypath(e):t.getKeypath(),this.deps=[],this.children={},this.isReadonly=this.isKeypath=!0};fs.prototype.get=function(t){return t&&Ot(this),this.value},fs.prototype.getChild=function(t){if(!(t._guid in this.children)){var e=new fs(this.parent,t);this.children[t._guid]=e,e.owner=this}return this.children[t._guid]},fs.prototype.getKeypath=function(){return this.value},fs.prototype.handleChange=function(){for(var t=this,e=Object.keys(this.children),n=e.length;n--;)t.children[e[n]].handleChange();this.deps.forEach(At)},fs.prototype.rebindChildren=function(t){for(var e=this,n=Object.keys(this.children),i=n.length;i--;){var r=e.children[n[i]];r.value=t.getKeypath(r.ractive),
+r.handleChange()}},fs.prototype.rebinding=function(t,e){for(var n=this,i=t?t.getKeypathModel(this.ractive):void 0,r=Object.keys(this.children),o=r.length;o--;)n.children[r[o]].rebinding(t,e,!1);for(o=this.deps.length;o--;)n.deps[o].rebinding(i,n,!1)},fs.prototype.register=function(t){this.deps.push(t)},fs.prototype.removeChild=function(t){t.ractive&&delete this.children[t.ractive._guid]},fs.prototype.teardown=function(){var t=this;this.owner&&this.owner.removeChild(this);for(var e=Object.keys(this.children),n=e.length;n--;)t.children[e[n]].teardown()},fs.prototype.unregister=function(t){T(this.deps,t),this.deps.length||this.teardown()};var ms=Object.prototype.hasOwnProperty,vs={early:[],mark:[]},gs={early:[],mark:[]},ys=function(t){this.deps=[],this.children=[],this.childByKey={},this.links=[],this.keyModels={},this.unresolved=[],this.unresolvedByKey={},this.bindings=[],this.patternObservers=[],t&&(this.parent=t,this.root=t.root)};ys.prototype.addUnresolved=function(t,e){this.unresolvedByKey[t]||(this.unresolved.push(t),this.unresolvedByKey[t]=[]),this.unresolvedByKey[t].push(e)},ys.prototype.addShuffleTask=function(t,e){void 0===e&&(e="early"),vs[e].push(t)},ys.prototype.addShuffleRegister=function(t,e){void 0===e&&(e="early"),gs[e].push({model:this,item:t})},ys.prototype.clearUnresolveds=function(t){for(var e=this,n=this.unresolved.length;n--;){var i=e.unresolved[n];if(!t||i===t){for(var r=e.unresolvedByKey[i],o=e.has(i),s=r.length;s--;)o&&r[s].attemptResolution(),r[s].resolved&&r.splice(s,1);r.length||(e.unresolved.splice(n,1),e.unresolvedByKey[i]=null)}}},ys.prototype.findMatches=function(t){var e,n,i=t.length,r=[this],o=function(){var i=t[n];"*"===i?(e=[],r.forEach(function(t){e.push.apply(e,t.getValueChildren(t.get()))})):e=r.map(function(t){return t.joinKey(i)}),r=e};for(n=0;n<i;n+=1)o();return e},ys.prototype.getKeyModel=function(t,e){return void 0===t||e?(t in this.keyModels||(this.keyModels[t]=new ds(U(t),this)),this.keyModels[t]):this.parent.getKeyModel(t,!0)},ys.prototype.getKeypath=function(t){return t!==this.ractive&&this._link?this._link.target.getKeypath(t):(this.keypath||(this.keypath=this.parent.isRoot?this.key:""+this.parent.getKeypath(t)+"."+U(this.key)),this.keypath)},ys.prototype.getValueChildren=function(t){var e,n=this;if(u(t))e=[],"length"in this&&this.length!==t.length&&e.push(this.joinKey("length")),t.forEach(function(t,i){e.push(n.joinKey(i))});else if(c(t)||"function"==typeof t)e=Object.keys(t).map(function(t){return n.joinKey(t)});else if(null!=t)return[];return e},ys.prototype.getVirtual=function(t){var e=this,n=this.get(t,{virtual:!1});if(c(n)){for(var i=u(n)?[]:{},r=Object.keys(n),o=r.length;o--;){var s=e.childByKey[r[o]];s?s._link?i[r[o]]=s._link.getVirtual():i[r[o]]=s.getVirtual():i[r[o]]=n[r[o]]}for(o=this.children.length;o--;){var a=e.children[o];a.key in i||!a._link||(i[a.key]=a._link.getVirtual())}return i}return n},ys.prototype.has=function(t){if(this._link)return this._link.has(t);var e=this.get();if(!e)return!1;if(t=W(t),ms.call(e,t))return!0;for(var n=e.constructor;n!==Function&&n!==Array&&n!==Object;){if(ms.call(n.prototype,t))return!0;n=n.constructor}return!1},ys.prototype.joinAll=function(t,e){for(var n=this,i=0;i<t.length;i+=1){if(e&&e.lastLink===!1&&i+1===t.length&&n.childByKey[t[i]]&&n.childByKey[t[i]]._link)return n.childByKey[t[i]];n=n.joinKey(t[i],e)}return n},ys.prototype.notifyUpstream=function(){for(var t=this.parent,e=[this.key];t;)t.patternObservers.length&&t.patternObservers.forEach(function(t){return t.notify(e.slice())}),e.unshift(t.key),t.links.forEach(Nt),t.deps.forEach(At),t=t.parent},ys.prototype.rebinding=function(t,e,n){for(var i=this,r=this.deps.length;r--;)i.deps[r].rebinding&&i.deps[r].rebinding(t,e,n);for(r=this.links.length;r--;){var o=i.links[r];o.owner._link&&o.relinking(t,!0,n)}for(r=this.children.length;r--;){var s=i.children[r];s.rebinding(t?t.joinKey(s.key):void 0,s,n)}for(r=this.unresolved.length;r--;)for(var a=i.unresolvedByKey[i.unresolved[r]],h=a.length;h--;)a[h].rebinding(t,e);for(this.keypathModel&&this.keypathModel.rebinding(t,e,!1),r=this.bindings.length;r--;)i.bindings[r].rebinding(t,e,n)},ys.prototype.register=function(t){this.deps.push(t)},ys.prototype.registerChange=function(t,e){this.isRoot?(this.changes[t]=e,Jo.addInstance(this.root.ractive)):this.root.registerChange(t,e)},ys.prototype.registerLink=function(t){O(this.links,t)},ys.prototype.registerPatternObserver=function(t){this.patternObservers.push(t),this.register(t)},ys.prototype.registerTwowayBinding=function(t){this.bindings.push(t)},ys.prototype.removeUnresolved=function(t,e){var n=this.unresolvedByKey[t];n&&T(n,e)},ys.prototype.shuffled=function(){for(var t=this,e=this.children.length;e--;)t.children[e].shuffled();this.wrapper&&(this.wrapper.teardown(),this.wrapper=null,this.rewrap=!0)},ys.prototype.unregister=function(t){T(this.deps,t)},ys.prototype.unregisterLink=function(t){T(this.links,t)},ys.prototype.unregisterPatternObserver=function(t){T(this.patternObservers,t),this.unregister(t)},ys.prototype.unregisterTwowayBinding=function(t){T(this.bindings,t)},ys.prototype.updateFromBindings=function(t){for(var e=this,n=this.bindings.length;n--;){var i=e.bindings[n].getValue();i!==e.value&&e.set(i)}if(!this.bindings.length){var r=Dt(this.deps);r&&r.value!==this.value&&this.set(r.value)}t&&(this.children.forEach(Lt),this.links.forEach(Lt),this._link&&this._link.updateFromBindings(t))},ds.prototype.addShuffleTask=ys.prototype.addShuffleTask,ds.prototype.addShuffleRegister=ys.prototype.addShuffleRegister,fs.prototype.addShuffleTask=ys.prototype.addShuffleTask,fs.prototype.addShuffleRegister=ys.prototype.addShuffleRegister;var bs=function(t){function e(e,n,i,r){t.call(this,e),this.owner=n,this.target=i,this.key=void 0===r?n.key:r,n.isLink&&(this.sourcePath=""+n.sourcePath+"."+this.key),i.registerLink(this),this.isReadonly=e.isReadonly,this.isLink=!0}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.animate=function(t,e,n,i){return this.target.animate(t,e,n,i)},e.prototype.applyValue=function(t){this.target.applyValue(t)},e.prototype.get=function(t,e){return t&&(Ot(this),e=e||{},e.unwrap=!0),this.target.get(!1,e)},e.prototype.getKeypath=function(e){return e&&e!==this.root.ractive?this.target.getKeypath(e):t.prototype.getKeypath.call(this,e)},e.prototype.getKeypathModel=function(t){return this.keypathModel||(this.keypathModel=new fs(this)),t&&t!==this.root.ractive?this.keypathModel.getChild(t):this.keypathModel},e.prototype.handleChange=function(){this.deps.forEach(At),this.links.forEach(At),this.notifyUpstream()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,this,this.target.joinKey(t),t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e.prototype.mark=function(){this.target.mark()},e.prototype.marked=function(){this.links.forEach(Tt),this.deps.forEach(At),this.clearUnresolveds()},e.prototype.notifiedUpstream=function(){this.links.forEach(Nt),this.deps.forEach(At)},e.prototype.relinked=function(){this.target.registerLink(this),this.children.forEach(function(t){return t.relinked()})},e.prototype.relinking=function(t,e,n){var i=this;e&&this.sourcePath&&(t=qt(this.sourcePath,t,this.target)),t&&this.target!==t&&(this.target.unregisterLink(this),this.keypathModel&&this.keypathModel.rebindChildren(t),this.target=t,this.children.forEach(function(e){e.relinking(t.joinKey(e.key),!1,n)}),e&&this.addShuffleTask(function(){i.relinked(),n||i.notifyUpstream()}))},e.prototype.set=function(t){this.target.set(t)},e.prototype.shuffle=function(t){var e=this;if(!this.shuffling)if(this.target.shuffling){this.shuffling=!0;for(var n=t.length;n--;){var i=t[n];n!==i&&(n in e.childByKey&&e.childByKey[n].rebinding(~i?e.joinKey(i):void 0,e.childByKey[n],!0),!~i&&e.keyModels[n]?e.keyModels[n].rebinding(void 0,e.keyModels[n],!1):~i&&e.keyModels[n]&&(e.keyModels[i]||e.childByKey[i].getKeyModel(i),e.keyModels[n].rebinding(e.keyModels[i],e.keyModels[n],!1)))}var r=this.source().length!==this.source().value.length;for(this.links.forEach(function(e){return e.shuffle(t)}),n=this.deps.length;n--;)e.deps[n].shuffle&&e.deps[n].shuffle(t);this.marked(),r&&this.notifyUpstream(),this.shuffling=!1}else this.target.shuffle(t)},e.prototype.source=function(){return this.target.source?this.target.source():this.target},e.prototype.teardown=function(){this._link&&this._link.teardown(),this.children.forEach(Vt)},e}(ys);ys.prototype.link=function(t,e){var n=this._link||new bs(this.parent,this,t,this.key);n.sourcePath=e,this._link&&this._link.relinking(t,!0,!1),this.rebinding(n,this,!1),Ut();var i=!this._link;return this._link=n,i&&this.parent.clearUnresolveds(),n.marked(),n},ys.prototype.unlink=function(){if(this._link){var t=this._link;this._link=void 0,t.rebinding(this,this._link),Ut(),t.teardown()}};var ws;no?(!function(t,e,n){var i,r;if(!n.requestAnimationFrame){for(i=0;i<t.length&&!n.requestAnimationFrame;++i)n.requestAnimationFrame=n[t[i]+"RequestAnimationFrame"];n.requestAnimationFrame||(r=n.setTimeout,n.requestAnimationFrame=function(t){var n,i,o;return n=Date.now(),i=Math.max(0,16-(n-e)),o=r(function(){t(n+i)},i),e=n+i,o})}}(go,0,no),ws=no.requestAnimationFrame):ws=null;var ks=ws,Es=no&&no.performance&&"function"==typeof no.performance.now?function(){return no.performance.now()}:function(){return Date.now()},_s=[],xs=!1,Os=function(t){this.duration=t.duration,this.step=t.step,this.complete=t.complete,this.easing=t.easing,this.start=Es(),this.end=this.start+this.duration,this.running=!0,_s.push(this),xs||ks(Ht)};Os.prototype.tick=function(t){if(!this.running)return!1;if(t>this.end)return this.step&&this.step(1),this.complete&&this.complete(1),!1;var e=t-this.start,n=this.easing(e/this.duration);return this.step&&this.step(n),!0},Os.prototype.stop=function(){this.abort&&this.abort(),this.running=!1};var Cs={},js=function(t){function e(e,n){t.call(this,e),this.ticker=null,e&&(this.key=W(n),this.isReadonly=e.isReadonly,e.value&&(this.value=e.value[this.key],u(this.value)&&(this.length=this.value.length),this.adapt()))}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.adapt=function(){var t=this,e=this.root.adaptors,n=e.length;if(this.rewrap=!1,0!==n){var i=this.wrapper?"newWrapperValue"in this?this.newWrapperValue:this.wrapperValue:this.value,r=this.root.ractive,o=this.getKeypath();if(this.wrapper){var s=this.wrapperValue!==i&&(!this.wrapper.reset||this.wrapper.reset(i)===!1);if(!s)return delete this.newWrapperValue,this.wrapperValue=i,void(this.value=this.wrapper.get());if(this.wrapper.teardown(),this.wrapper=null,void 0!==this.value){var a=this.parent.value||this.parent.createBranch(this.key);a[this.key]!==i&&(a[this.key]=i)}}var h;for(h=0;h<n;h+=1){var u=e[h];if(u.filter(i,o,r)){t.wrapper=u.wrap(r,i,o,Qt(o)),t.wrapperValue=i,t.wrapper.__model=t,t.value=t.wrapper.get();break}}}},e.prototype.animate=function(t,e,n,i){var r=this;this.ticker&&this.ticker.stop();var o,s=new $o(function(t){return o=t});return this.ticker=new Os({duration:n.duration,easing:n.easing,step:function(t){var e=i(t);r.applyValue(e),n.step&&n.step(t,e)},complete:function(){r.applyValue(e),n.complete&&n.complete(e),r.ticker=null,o()}}),s.stop=this.ticker.stop,s},e.prototype.applyValue=function(t){if(!p(t,this.value)){if(this.registerChange(this.getKeypath(),t),this.parent.wrapper&&this.parent.wrapper.set)this.parent.wrapper.set(this.key,t),this.parent.value=this.parent.wrapper.get(),this.value=this.parent.value[this.key],this.wrapper&&(this.newWrapperValue=this.value),this.adapt();else if(this.wrapper)this.newWrapperValue=t,this.adapt();else{var e=this.parent.value||this.parent.createBranch(this.key);e[this.key]=t,this.value=t,this.adapt()}this.parent.clearUnresolveds(),this.clearUnresolveds(),u(t)&&(this.length=t.length),this.links.forEach(At),this.children.forEach(Ft),this.deps.forEach(At),this.notifyUpstream(),"length"===this.key&&u(this.parent.value)&&(this.parent.length=this.parent.value.length)}},e.prototype.createBranch=function(t){var e=l(t)?[]:{};return this.set(e),e},e.prototype.get=function(t,e){return this._link?this._link.get(t,e):(t&&Ot(this),e&&e.virtual?this.getVirtual(!1):(t||e&&e.unwrap)&&this.wrapper?this.wrapperValue:this.value)},e.prototype.getKeypathModel=function(t){return this.keypathModel||(this.keypathModel=new fs(this)),this.keypathModel},e.prototype.joinKey=function(t,n){if(this._link)return!n||!n.lastLink!=!1||void 0!==t&&""!==t?this._link.joinKey(t):this;if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var i=new e(this,t);this.children.push(i),this.childByKey[t]=i}return this.childByKey[t]._link?this.childByKey[t]._link:this.childByKey[t]},e.prototype.mark=function(){if(this._link)return this._link.mark();var t=this.retrieve();if(!p(t,this.value)){var e=this.value;this.value=t,(e!==t||this.rewrap)&&(this.wrapper&&(this.newWrapperValue=t),this.adapt()),u(t)&&(this.length=t.length),this.children.forEach(Ft),this.links.forEach(Tt),this.deps.forEach(At),this.clearUnresolveds()}},e.prototype.merge=function(t,e){var n=this.value,i=t;n===i&&(n=zt(this)),e&&(n=n.map(e),i=i.map(e));var r=n.length,o={},s=0,a=n.map(function(t){var e,n=s;do{if(e=i.indexOf(t,n),e===-1)return-1;n=e+1}while(o[e]===!0&&n<r);return e===s&&(s+=1),o[e]=!0,e});this.parent.value[this.key]=t,this.shuffle(a)},e.prototype.retrieve=function(){return this.parent.value?this.parent.value[this.key]:void 0},e.prototype.set=function(t){this.ticker&&this.ticker.stop(),this.applyValue(t)},e.prototype.shuffle=function(t){var e=this;this.shuffling=!0;for(var n=t.length;n--;){var i=t[n];n!==i&&(n in e.childByKey&&e.childByKey[n].rebinding(~i?e.joinKey(i):void 0,e.childByKey[n],!0),!~i&&e.keyModels[n]?e.keyModels[n].rebinding(void 0,e.keyModels[n],!1):~i&&e.keyModels[n]&&(e.keyModels[i]||e.childByKey[i].getKeyModel(i),e.keyModels[n].rebinding(e.keyModels[i],e.keyModels[n],!1)))}var r=this.length!==this.value.length;for(this.links.forEach(function(e){return e.shuffle(t)}),Ut("early"),n=this.deps.length;n--;)e.deps[n].shuffle&&e.deps[n].shuffle(t);this.mark(),Ut("mark"),r&&this.notifyUpstream(),this.shuffling=!1},e.prototype.teardown=function(){this._link&&this._link.teardown(),this.children.forEach(Vt),this.wrapper&&this.wrapper.teardown(),this.keypathModel&&this.keypathModel.teardown()},e}(ys),As=function(t){function e(){t.call(this,null,"@global"),this.value="undefined"!=typeof global?global:window,this.isRoot=!0,this.root=this,this.adaptors=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeypath=function(){return"@global"},e.prototype.registerChange=function(){},e}(js),Fs=new As,Ts=/^@[^\(]+\(([^\)]+)\)/,Ns=Array.prototype,Ss={},Vs=new qo("update"),Bs=Xt("push").model,Ks=Xt("pop").model,Ps=Xt("shift").model,Ms=Xt("unshift").model,Is=Xt("sort").model,Rs=Xt("splice").model,Ls=Xt("reverse").model,Ds=io&&io.querySelector,Us=new qo("insert"),qs=function(t,e,n){var i=this;for(this.fragment=t,this.reference=q(e),this.callback=n,this.keys=H(e),this.resolved=!1,this.contexts=[];t;)t.context&&(t.context.addUnresolved(i.keys[0],i),i.contexts.push(t.context)),t=t.componentParent||t.parent};qs.prototype.attemptResolution=function(){if(!this.resolved){var t=Et(this.fragment,this.reference);t&&(this.resolved=!0,this.callback(t))}},qs.prototype.forceResolution=function(){if(!this.resolved){var t=this.fragment.findContext().joinAll(this.keys);this.callback(t),this.resolved=!0}},qs.prototype.rebinding=function(t,e){var n=this;e&&e.removeUnresolved(this.keys[0],this),t&&Jo.scheduleTask(function(){return t.addUnresolved(n.keys[0],n)})},qs.prototype.unbind=function(){var t=this;this.fragment&&T(this.fragment.unresolved,this),this.resolved||this.contexts.forEach(function(e){return e.removeUnresolved(t.keys[0],t)})};var Hs=function(t,e,n,i){var r=this;this.context=i.context||t,this.callback=n,this.ractive=t,e?this.resolved(e):(this.keypath=i.keypath,this.resolver=new qs(t.fragment,i.keypath,function(t){r.resolved(t)})),i.init!==!1?(this.dirty=!0,this.dispatch()):this.oldValue=this.newValue,this.defer=i.defer,this.once=i.once,this.strict=i.strict,this.dirty=!1};Hs.prototype.cancel=function(){this.cancelled=!0,this.model?this.model.unregister(this):this.resolver.unbind()},Hs.prototype.dispatch=function(){this.cancelled||(this.callback.call(this.context,this.newValue,this.oldValue,this.keypath),this.oldValue=this.model?this.model.get():this.newValue,this.dirty=!1)},Hs.prototype.handleChange=function(){var t=this;if(!this.dirty){var e=this.model.get();if(p(e,this.oldValue))return;if(this.newValue=e,this.strict&&this.newValue===this.oldValue)return;Jo.addObserver(this,this.defer),this.dirty=!0,this.once&&Jo.scheduleTask(function(){return t.cancel()})}},Hs.prototype.rebinding=function(t,e){var n=this;return t=qt(this.keypath,t,e),t!==this.model&&(this.model&&this.model.unregister(this),void(t&&t.addShuffleTask(function(){return n.resolved(t)})))},Hs.prototype.resolved=function(t){this.model=t,this.keypath=t.getKeypath(this.ractive),this.oldValue=void 0,this.newValue=t.get(),t.register(this)};var Ws=function(t,e,n,i,r){var o=this;this.context=r.context||t,this.ractive=t,this.baseModel=e,this.keys=n,this.callback=i;var s=n.join("\\.").replace(/\*/g,"(.+)"),a=e.getKeypath(t);this.pattern=new RegExp("^"+(a?a+"\\.":"")+s+"$"),this.oldValues={},this.newValues={},this.defer=r.defer,this.once=r.once,this.strict=r.strict,this.dirty=!1,this.changed=[],this.partial=!1;var h=e.findMatches(this.keys);h.forEach(function(t){o.newValues[t.getKeypath(o.ractive)]=t.get()}),r.init!==!1?this.dispatch():this.oldValues=this.newValues,e.registerPatternObserver(this)};Ws.prototype.cancel=function(){this.baseModel.unregisterPatternObserver(this)},Ws.prototype.dispatch=function(){var t=this;if(Object.keys(this.newValues).forEach(function(e){if(!t.newKeys||t.newKeys[e]){var n=t.newValues[e],i=t.oldValues[e];if(!(t.strict&&n===i||p(n,i))){var r=[n,i,e];if(e){var o=t.pattern.exec(e);o&&(r=r.concat(o.slice(1)))}t.callback.apply(t.context,r)}}}),this.partial)for(var e in this.newValues)this.oldValues[e]=this.newValues[e];else this.oldValues=this.newValues;this.newKeys=null,this.dirty=!1},Ws.prototype.notify=function(t){this.changed.push(t)},Ws.prototype.shuffle=function(t){var e=this;if(u(this.baseModel.value)){var n=this.baseModel.getKeypath(this.ractive),i=this.baseModel.value.length,r=this.keys.length>1?"."+this.keys.slice(1).join("."):"";this.newKeys={};for(var o=0;o<t.length;o++)t[o]!==-1&&t[o]!==o&&(e.newKeys[""+n+"."+o+r]=!0);for(var s=t.touchedFrom;s<i;s++)e.newKeys[""+n+"."+s+r]=!0}},Ws.prototype.handleChange=function(){var t=this;if(!this.dirty||this.changed.length){if(this.dirty||(this.newValues={}),this.changed.length){var e=0,n=this.baseModel.isRoot?this.changed.map(function(t){return t.map(U).join(".")}):this.changed.map(function(e){return t.baseModel.getKeypath(t.ractive)+"."+e.map(U).join(".")});if(this.baseModel.findMatches(this.keys).forEach(function(i){var r=i.getKeypath(t.ractive);n.filter(function(t){return 0===r.indexOf(t)||0===t.indexOf(r)}).length&&(e++,t.newValues[r]=i.get())}),!e)return;this.partial=!0}else this.baseModel.findMatches(this.keys).forEach(function(e){var n=e.getKeypath(t.ractive);t.newValues[n]=e.get()}),this.partial=!1;Jo.addObserver(this,this.defer),this.dirty=!0,this.changed.length=0,this.once&&this.cancel()}};var Qs=function(t,e,n,i){this.context=t,this.model=e,this.keypath=e.getKeypath(),this.callback=n,this.pending=null,e.register(this),i.init!==!1?(this.sliced=[],this.shuffle([]),this.handleChange()):this.sliced=this.slice()};Qs.prototype.handleChange=function(){this.pending?(this.callback(this.pending),this.pending=null):(this.shuffle(this.sliced.map(We)),this.handleChange())},Qs.prototype.shuffle=function(t){var e,n=this,i=this.slice(),r=[],o=[],s={};t.forEach(function(t,i){s[t]=!0,t!==i&&void 0===e&&(e=i),t===-1&&o.push(n.sliced[i])}),void 0===e&&(e=t.length);for(var a=i.length,h=0;h<a;h+=1)s[h]||r.push(i[h]);this.pending={inserted:r,deleted:o,start:e},this.sliced=i},Qs.prototype.slice=function(){var t=this.model.get();return u(t)?t.slice():[]};var zs={init:!1,once:!0},$s=Xt("pop").path,Gs=Xt("push").path,Ys="/* Ractive.js component styles */",Zs=[],Js=!1,Xs=null,ta=null;!io||Xs&&Xs.parentNode||(Xs=io.createElement("style"),Xs.type="text/css",io.getElementsByTagName("head")[0].appendChild(Xs),ta=!!Xs.styleSheet);var ea=new qo("render"),na=new qo("complete"),ia={extend:function(t,e,n){e.adapt=rn(e.adapt,A(n.adapt))},init:function(){}},ra=/(?:^|\})?\s*([^\{\}]+)\s*\{/g,oa=/\/\*[\s\S]*?\*\//g,sa=/((?:(?:\[[^\]+]\])|(?:[^\s\+\>~:]))+)((?:::?[^\s\+\>\~\(:]+(?:\([^\)]+\))?)*\s*[\s\+\>\~]?)\s*/g,aa=/^(?:@|\d+%)/,ha=/\[data-ractive-css~="\{[a-z0-9-]+\}"]/g,ua={name:"css",extend:function(t,e,n){if(n.css){var i=pn(),r=n.noCssTransform?n.css:hn(n.css,i);e.cssId=i,Je({id:i,styles:r})}},init:function(t,e,n){n.css&&b("\nThe css option is currently not supported on a per-instance basis and will be discarded. Instead, we recommend instantiating from a component definition with a css option.\n\nconst Component = Ractive.extend({\n\t...\n\tcss: '/* your css */',\n\t...\n});\n\nconst componentInstance = new Component({ ... })\n\t\t")}},pa={name:"data",extend:function(t,e,n){var i,r;if(n.data&&c(n.data))for(i in n.data)r=n.data[i],r&&"object"==typeof r&&(c(r)||u(r))&&b("Passing a `data` option with object and array properties to Ractive.extend() is discouraged, as mutating them is likely to cause bugs. Consider using a data function instead:\n\n  // this...\n  data: function () {\n    return {\n      myObject: {}\n    };\n  })\n\n  // instead of this:\n  data: {\n    myObject: {}\n  }");e.data=cn(e.data,n.data)},init:function(t,e,n){var i=cn(t.prototype.data,n.data);if("function"==typeof i&&(i=i.call(e)),i&&i.constructor===Object)for(var r in i)"function"==typeof i[r]&&(i[r]=Q(i[r],e));return i||{}},reset:function(t){var e=this.init(t.constructor,t,t.viewmodel);return t.viewmodel.root.set(e),!0}},la=4,ca=/\$\{([^\}]+)\}/g,da=Oo(null),fa=null,ma=["delimiters","tripleDelimiters","staticDelimiters","staticTripleDelimiters","csp","interpolate","preserveWhitespace","sanitize","stripComments","contextLines"],va="Either preparse or use a ractive runtime source that includes the parser. ",ga="Either use:\n\n\tRactive.parse.computedStrings( component.computed )\n\nat build time to pre-convert the strings to functions, or use functions instead of strings in computed properties.",ya={fromId:function(t,e){if(!io){if(e&&e.noThrow)return;throw new Error("Cannot retrieve template #"+t+" as Ractive is not running in a browser.")}t&&(t=t.replace(/^#/,""));var n;if(!(n=io.getElementById(t))){if(e&&e.noThrow)return;throw new Error("Could not find template element with id #"+t)}if("SCRIPT"!==n.tagName.toUpperCase()){if(e&&e.noThrow)return;throw new Error("Template element with id #"+t+", must be a <script> element")}return"textContent"in n?n.textContent:n.innerHTML},isParsed:function(t){return!("string"==typeof t)},getParseOptions:function(t){return t.defaults&&(t=t.defaults),ma.reduce(function(e,n){return e[n]=t[n],e},{})},parse:function(t,e){bn(fa,"template",va);var n=fa(t,e);return yn(n),n},parseFor:function(t,e){return this.parse(t,this.getParseOptions(e))}},ba={name:"template",extend:function(t,e,n){if("template"in n){var i=n.template;"function"==typeof i?e.template=i:e.template=xn(i,e)}},init:function(t,e,n){var i="template"in n?n.template:t.prototype.template;if(i=i||{v:la,t:[]},"function"==typeof i){var r=i;i=_n(e,r),e._config.template={fn:r,result:i}}i=xn(i,e),e.template=i.t,i.p&&jn(e.partials,i.p)},reset:function(t){var e=En(t);if(e){var n=xn(e,t);return t.template=n.t,jn(t.partials,n.p,!0),!0}}},wa=["adaptors","components","computed","decorators","easing","events","interpolators","partials","transitions"],ka=function(t,e){this.name=t,this.useDefaults=e};ka.prototype.extend=function(t,e,n){this.configure(this.useDefaults?t.defaults:t,this.useDefaults?e:e.constructor,n)},ka.prototype.init=function(){},ka.prototype.configure=function(t,e,n){var i=this.name,r=n[i],o=Oo(t[i]);for(var s in r)o[s]=r[s];e[i]=o},ka.prototype.reset=function(t){var e=t[this.name],n=!1;return Object.keys(e).forEach(function(t){var i=e[t];i._fn&&(i._fn.isOwner?e[t]=i._fn:delete e[t],n=!0)}),n};var Ea=wa.map(function(t){return new ka(t,"computed"===t)}),_a={adapt:ia,css:ua,data:pa,template:ba},xa=Object.keys(Xr),Oa=Kn(xa.filter(function(t){return!_a[t]})),Ca=Kn(xa.concat(Ea.map(function(t){return t.name}))),ja=[].concat(xa.filter(function(t){return!Ea[t]&&!_a[t]}),Ea,_a.template,_a.css),Aa={extend:function(t,e,n){return Vn("extend",t,e,n)},init:function(t,e,n){return Vn("init",t,e,n)},reset:function(t){return ja.filter(function(e){return e.reset&&e.reset(t)}).map(function(t){return t.name})},order:ja},Fa=["template","partials","components","decorators","events"],Ta=new qo("complete"),Na=new qo("reset"),Sa=new qo("render"),Va=new qo("unrender"),Ba=1,Ka=2,Pa=3,Ma=4,Ia=7,Ra=8,La=13,Da=15,Ua=16,qa=18,Ha=19,Wa=20,Qa=21,za=30,$a=50,Ga=51,Ya=52,Za=53,Ja=54,Xa=70,th=71,eh=72,nh=73,ih=function(t){this.parentFragment=t.parentFragment,this.ractive=t.parentFragment.ractive,this.template=t.template,this.index=t.index,this.type=t.template.t,this.dirty=!1};ih.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.parentFragment.bubble())},ih.prototype.destroyed=function(){this.fragment&&this.fragment.destroyed()},ih.prototype.find=function(){return null},ih.prototype.findAll=function(){},ih.prototype.findComponent=function(){return null},ih.prototype.findAllComponents=function(){},ih.prototype.findNextNode=function(){return this.parentFragment.findNextNode(this)},ih.prototype.shuffled=function(){this.fragment&&this.fragment.shuffled()},ih.prototype.valueOf=function(){return this.toString()};var rh=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){t&&Ot(this);var e=this.parent.get();return e?e[this.key]:void 0},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e}(js),oh=function(t){function e(e,n){var i=this;t.call(this,e.ractive.viewmodel,null),this.fragment=e,this.template=n,this.isReadonly=!0,this.dirty=!0,this.fn=gn(n.s,n.r.length),this.resolvers=[],this.models=this.template.r.map(function(t,e){var n=$t(i.fragment,t);return n||Ln(i,t,e),n}),this.dependencies=[],this.shuffle=void 0,this.bubble()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(t){void 0===t&&(t=!0),this.registered&&delete this.root.expressions[this.keypath],this.keypath=void 0,t&&(this.dirty=!0,this.handleChange())},e.prototype.get=function(t){return t&&Ot(this),this.dirty&&(this.dirty=!1,this.value=this.getValue(),this.wrapper&&(this.newWrapperValue=this.value),this.adapt()),t&&this.wrapper?this.wrapperValue:this.value},e.prototype.getKeypath=function(){var t=this;return this.template?(this.keypath||(this.keypath="@"+this.template.s.replace(/_(\d+)/g,function(e,n){if(n>=t.models.length)return e;var i=t.models[n];return i?i.getKeypath():"@undefined"}),this.root.expressions[this.keypath]=this,this.registered=!0),this.keypath):"@undefined"},e.prototype.getValue=function(){var t=this;_t();var e;try{var n=this.models.map(function(t){return t?t.get(!0):void 0});e=this.fn.apply(this.fragment.ractive,n)}catch(t){b("Failed to compute "+this.getKeypath()+": "+(t.message||t))}var i=xt();return this.dependencies.filter(function(t){return!~i.indexOf(t)}).forEach(function(e){e.unregister(t),T(t.dependencies,e)}),i.filter(function(e){return!~t.dependencies.indexOf(e)}).forEach(function(e){e.register(t),t.dependencies.push(e)}),e},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var e=new rh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.handleChange()},e.prototype.rebinding=function(t,e,n){var i=this.models.indexOf(e);~i&&(t=qt(this.template.r[i],t,e),t!==e&&(e.unregister(this),this.models.splice(i,1,t),t&&t.addShuffleRegister(this,"mark"))),this.bubble(!n)},e.prototype.retrieve=function(){return this.get()},e.prototype.teardown=function(){var e=this;this.unbind(),this.fragment=void 0,this.dependencies&&this.dependencies.forEach(function(t){return t.unregister(e)}),t.prototype.teardown.call(this)},e.prototype.unregister=function(e){t.prototype.unregister.call(this,e),this.deps.length||this.teardown()},e.prototype.unbind=function(){this.resolvers.forEach(Bt)},e}(js),sh=function(t){function e(e,n){t.call(this,e,n)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyValue=function(t){if(!p(t,this.value))for(var e=this.parent,n=[this.key];e;){if(e.base){var i=e.model.joinAll(n);i.applyValue(t);break}n.unshift(e.key),e=e.parent}},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var n=new e(this,t);this.children.push(n),this.childByKey[t]=n}return this.childByKey[t]},e.prototype.retrieve=function(){var t=this.parent.get();return t&&this.key in t?t[this.key]:void 0},e}(js),ah=function(t){function e(e,n){var i=this;t.call(this,null,null),this.dirty=!0,this.root=e.ractive.viewmodel,this.template=n,this.resolvers=[],this.base=Dn(e,n);var r;this.base||(r=e.resolve(n.r,function(t){i.base=t,i.bubble(),T(i.resolvers,r)}),this.resolvers.push(r));var o=this.intermediary={handleChange:function(){return i.handleChange()},rebinding:function(t,e){if(e===i.base)t=qt(n,t,e),t!==i.base&&(i.base.unregister(o),i.base=t);else{var r=i.members.indexOf(e);~r&&(t=qt(n.m[r].n,t,e),t!==i.members[r]&&i.members.splice(r,1,t))}t!==e&&e.unregister(o),t&&t.addShuffleTask(function(){return t.register(o)}),i.bubble()}};this.members=n.m.map(function(t,n){if("string"==typeof t)return{get:function(){return t}};var r,s;return t.t===za?(r=$t(e,t.n),r?r.register(o):(s=e.resolve(t.n,function(t){i.members[n]=t,t.register(o),i.handleChange(),T(i.resolvers,s)}),i.resolvers.push(s)),r):(r=new oh(e,t),r.register(o),r)}),this.isUnresolved=!0,this.bubble()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){this.base&&(this.dirty||this.handleChange())},e.prototype.forceResolution=function(){this.resolvers.forEach(function(t){return t.forceResolution()}),this.dirty=!0,this.bubble()},e.prototype.get=function(t){var e=this;if(this.dirty){this.bubble();for(var n=this.members.length,i=!0;i&&n--;)e.members[n]||(i=!1);if(this.base&&i){var r=this.members.map(function(t){return U(String(t.get()))}),o=this.base.joinAll(r);o!==this.model&&(this.model&&(this.model.unregister(this),this.model.unregisterTwowayBinding(this)),this.model=o,this.parent=o.parent,this.model.register(this),this.model.registerTwowayBinding(this),this.keypathModel&&this.keypathModel.handleChange())}return this.value=this.model?this.model.get(t):void 0,this.dirty=!1,this.mark(),this.value}return this.model?this.model.get(t):void 0},e.prototype.getValue=function(){var t=this;this.value=this.model?this.model.get():void 0;for(var e=this.bindings.length;e--;){var n=t.bindings[e].getValue();if(n!==t.value)return n}var i=Dt(this.deps);return i?i.value:this.value},e.prototype.getKeypath=function(){return this.model?this.model.getKeypath():"@undefined"},e.prototype.handleChange=function(){this.dirty=!0,this.mark()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;
+if(!this.childByKey.hasOwnProperty(t)){var e=new sh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.dirty&&this.deps.forEach(At),this.links.forEach(Tt),this.children.forEach(Ft),this.clearUnresolveds()},e.prototype.retrieve=function(){return this.value},e.prototype.rebinding=function(){},e.prototype.set=function(t){if(!this.model)throw new Error("Unresolved reference expression. This should not happen!");this.model.set(t)},e.prototype.unbind=function(){this.resolvers.forEach(Bt),this.model&&(this.model.unregister(this),this.model.unregisterTwowayBinding(this))},e}(js),hh=function(e){function n(t){e.call(this,t),this.fragment=null}return n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.bind=function(){Un(this),this.fragment=new Ip({owner:this,template:this.template.f}).bind()},n.prototype.detach=function(){return this.fragment?this.fragment.detach():t()},n.prototype.find=function(t){if(this.fragment)return this.fragment.find(t)},n.prototype.findAll=function(t,e){this.fragment&&this.fragment.findAll(t,e)},n.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},n.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},n.prototype.firstNode=function(t){return this.fragment&&this.fragment.firstNode(t)},n.prototype.rebinding=function(){var t=this;this.locked||(this.locked=!0,Jo.scheduleTask(function(){t.locked=!1,Un(t)}))},n.prototype.render=function(t){this.rendered=!0,this.fragment&&this.fragment.render(t)},n.prototype.toString=function(t){return this.fragment?this.fragment.toString(t):""},n.prototype.unbind=function(){this.aliases={},this.fragment&&this.fragment.unbind()},n.prototype.unrender=function(t){this.rendered&&this.fragment&&this.fragment.unrender(t),this.rendered=!1},n.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment.update())},n}(ih),uh=/\s+/,ph=/\/\*(?:[\s\S]*?)\*\//g,lh=/url\(\s*(['"])(?:\\[\s\S]|(?!\1).)*\1\s*\)|url\((?:\\[\s\S]|[^)])*\)|(['"])(?:\\[\s\S]|(?!\1).)*\2/gi,ch=/\0(\d+)/g,dh=[void 0,"text","search","url","email","hidden","password","search","reset","submit"],fh={"accept-charset":"acceptCharset",accesskey:"accessKey",bgcolor:"bgColor",class:"className",codebase:"codeBase",colspan:"colSpan",contenteditable:"contentEditable",datetime:"dateTime",dirname:"dirName",for:"htmlFor","http-equiv":"httpEquiv",ismap:"isMap",maxlength:"maxLength",novalidate:"noValidate",pubdate:"pubDate",readonly:"readOnly",rowspan:"rowSpan",tabindex:"tabIndex",usemap:"useMap"},mh=/^(allowFullscreen|async|autofocus|autoplay|checked|compact|controls|declare|default|defaultChecked|defaultMuted|defaultSelected|defer|disabled|enabled|formNoValidate|hidden|indeterminate|inert|isMap|itemScope|loop|multiple|muted|noHref|noResize|noShade|noValidate|noWrap|open|pauseOnExit|readOnly|required|reversed|scoped|seamless|selected|sortable|translate|trueSpeed|typeMustMatch|visible)$/i,vh=/^(?:area|base|br|col|command|doctype|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/i,gh={quot:34,amp:38,apos:39,lt:60,gt:62,nbsp:160,iexcl:161,cent:162,pound:163,curren:164,yen:165,brvbar:166,sect:167,uml:168,copy:169,ordf:170,laquo:171,not:172,shy:173,reg:174,macr:175,deg:176,plusmn:177,sup2:178,sup3:179,acute:180,micro:181,para:182,middot:183,cedil:184,sup1:185,ordm:186,raquo:187,frac14:188,frac12:189,frac34:190,iquest:191,Agrave:192,Aacute:193,Acirc:194,Atilde:195,Auml:196,Aring:197,AElig:198,Ccedil:199,Egrave:200,Eacute:201,Ecirc:202,Euml:203,Igrave:204,Iacute:205,Icirc:206,Iuml:207,ETH:208,Ntilde:209,Ograve:210,Oacute:211,Ocirc:212,Otilde:213,Ouml:214,times:215,Oslash:216,Ugrave:217,Uacute:218,Ucirc:219,Uuml:220,Yacute:221,THORN:222,szlig:223,agrave:224,aacute:225,acirc:226,atilde:227,auml:228,aring:229,aelig:230,ccedil:231,egrave:232,eacute:233,ecirc:234,euml:235,igrave:236,iacute:237,icirc:238,iuml:239,eth:240,ntilde:241,ograve:242,oacute:243,ocirc:244,otilde:245,ouml:246,divide:247,oslash:248,ugrave:249,uacute:250,ucirc:251,uuml:252,yacute:253,thorn:254,yuml:255,OElig:338,oelig:339,Scaron:352,scaron:353,Yuml:376,fnof:402,circ:710,tilde:732,Alpha:913,Beta:914,Gamma:915,Delta:916,Epsilon:917,Zeta:918,Eta:919,Theta:920,Iota:921,Kappa:922,Lambda:923,Mu:924,Nu:925,Xi:926,Omicron:927,Pi:928,Rho:929,Sigma:931,Tau:932,Upsilon:933,Phi:934,Chi:935,Psi:936,Omega:937,alpha:945,beta:946,gamma:947,delta:948,epsilon:949,zeta:950,eta:951,theta:952,iota:953,kappa:954,lambda:955,mu:956,nu:957,xi:958,omicron:959,pi:960,rho:961,sigmaf:962,sigma:963,tau:964,upsilon:965,phi:966,chi:967,psi:968,omega:969,thetasym:977,upsih:978,piv:982,ensp:8194,emsp:8195,thinsp:8201,zwnj:8204,zwj:8205,lrm:8206,rlm:8207,ndash:8211,mdash:8212,lsquo:8216,rsquo:8217,sbquo:8218,ldquo:8220,rdquo:8221,bdquo:8222,dagger:8224,Dagger:8225,bull:8226,hellip:8230,permil:8240,prime:8242,Prime:8243,lsaquo:8249,rsaquo:8250,oline:8254,frasl:8260,euro:8364,image:8465,weierp:8472,real:8476,trade:8482,alefsym:8501,larr:8592,uarr:8593,rarr:8594,darr:8595,harr:8596,crarr:8629,lArr:8656,uArr:8657,rArr:8658,dArr:8659,hArr:8660,forall:8704,part:8706,exist:8707,empty:8709,nabla:8711,isin:8712,notin:8713,ni:8715,prod:8719,sum:8721,minus:8722,lowast:8727,radic:8730,prop:8733,infin:8734,ang:8736,and:8743,or:8744,cap:8745,cup:8746,int:8747,there4:8756,sim:8764,cong:8773,asymp:8776,ne:8800,equiv:8801,le:8804,ge:8805,sub:8834,sup:8835,nsub:8836,sube:8838,supe:8839,oplus:8853,otimes:8855,perp:8869,sdot:8901,lceil:8968,rceil:8969,lfloor:8970,rfloor:8971,lang:9001,rang:9002,loz:9674,spades:9824,clubs:9827,hearts:9829,diams:9830},yh=[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376],bh=new RegExp("&(#?(?:x[\\w\\d]+|\\d+|"+Object.keys(gh).join("|")+"));?","g"),wh="function"==typeof String.fromCodePoint,kh=wh?String.fromCodePoint:String.fromCharCode,Eh=/</g,_h=/>/g,xh=/&/g,Oh=65533,Ch=function(t){function e(e){t.call(this,e),this.name=e.template.n,this.namespace=null,this.owner=e.owner||e.parentFragment.owner||e.element||qn(e.parentFragment),this.element=e.element||(this.owner.attributeByName?this.owner:qn(e.parentFragment)),this.parentFragment=e.parentFragment,this.ractive=this.parentFragment.ractive,this.rendered=!1,this.updateDelegate=null,this.fragment=null,this.element.attributeByName[this.name]=this,u(e.template.f)?this.fragment=new Ip({owner:this,template:e.template.f}):(this.value=e.template.f,0===this.value&&(this.value="")),this.interpolator=this.fragment&&1===this.fragment.items.length&&this.fragment.items[0].type===Ka&&this.fragment.items[0],this.interpolator&&(this.interpolator.owner=this)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind()},e.prototype.bubble=function(){this.dirty||(this.parentFragment.bubble(),this.element.bubble(),this.dirty=!0)},e.prototype.destroyed=function(){this.updateDelegate(!0)},e.prototype.getString=function(){return this.fragment?this.fragment.toString():null!=this.value?""+this.value:""},e.prototype.getValue=function(){return this.fragment?this.fragment.valueOf():!!mh.test(this.name)||this.value},e.prototype.render=function(){var t=this.element.node;if(this.node=t,t.namespaceURI&&t.namespaceURI!==xo.html||(this.propertyName=fh[this.name]||this.name,void 0!==t[this.propertyName]&&(this.useProperty=!0),(mh.test(this.name)||this.isTwoway)&&(this.isBoolean=!0),"value"===this.propertyName&&(t._ractive.value=this.value)),t.namespaceURI){var e=this.name.indexOf(":");e!==-1?this.namespace=ci(t,this.name.slice(0,e)):this.namespace=t.namespaceURI}this.rendered=!0,this.updateDelegate=Qn(this),this.updateDelegate()},e.prototype.toString=function(){var t=this.getValue();if("value"!==this.name||void 0===this.element.getAttribute("contenteditable")&&"select"!==this.element.name&&"textarea"!==this.element.name){if("name"===this.name&&"input"===this.element.name&&this.interpolator&&"radio"===this.element.getAttribute("type"))return'name="{{'+this.interpolator.model.getKeypath()+'}}"';if(this.owner!==this.element||"style"!==this.name&&"class"!==this.name&&!this.styleName&&!this.inlineClass){if(!(this.rendered||this.owner!==this.element||this.name.indexOf("style-")&&this.name.indexOf("class-")))return void(this.name.indexOf("style-")?this.inlineClass=this.name.substr(6):this.styleName=o(this.name.substr(6)));if(mh.test(this.name))return t?this.name:"";if(null==t)return"";var e=r(this.getString());return e?""+this.name+'="'+e+'"':this.name}}},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind()},e.prototype.unrender=function(){this.updateDelegate(!0),this.rendered=!1},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment&&this.fragment.update(),this.rendered&&this.updateDelegate(),this.isTwoway&&!this.locked&&this.interpolator.twowayBinding.lastVal(!0,this.interpolator.model.get()))},e}(ih),jh=function(t){function e(e){t.call(this,e),this.owner=e.owner||e.parentFragment.owner||qn(e.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(e.parentFragment),this.flag="l"===e.template.v?"lazy":"twoway",this.element.type===Ia&&(u(e.template.f)&&(this.fragment=new Ip({owner:this,template:e.template.f})),this.interpolator=this.fragment&&1===this.fragment.items.length&&this.fragment.items[0].type===Ka&&this.fragment.items[0])}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind(),di(this,this.getValue(),!0)},e.prototype.bubble=function(){this.dirty||(this.element.bubble(),this.dirty=!0)},e.prototype.getValue=function(){return this.fragment?this.fragment.valueOf():"value"in this?this.value:!("f"in this.template)||this.template.f},e.prototype.render=function(){di(this,this.getValue(),!0)},e.prototype.toString=function(){return""},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind(),delete this.element[this.flag]},e.prototype.unrender=function(){this.element.rendered&&this.element.recreateTwowayBinding()},e.prototype.update=function(){this.dirty&&(this.fragment&&this.fragment.update(),di(this,this.getValue(),!0))},e}(ih),Ah=io?so("div"):null,Fh=!1,Th=function(t){function e(e){t.call(this,e),this.attributes=[],this.owner=e.owner,this.fragment=new Ip({ractive:this.ractive,owner:this,template:this.template}),this.fragment.findNextNode=d,this.dirty=!1}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment.bind()},e.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},e.prototype.render=function(){this.node=this.owner.node,this.node&&(this.isSvg=this.node.namespaceURI===wo),Fh=!0,this.rendered||this.fragment.render(),Fh=!1,this.rendered=!0,this.dirty=!0,this.update()},e.prototype.toString=function(){return this.fragment.toString()},e.prototype.unbind=function(){this.fragment.unbind()},e.prototype.unrender=function(){this.rendered=!1,this.fragment.unrender()},e.prototype.update=function(){var t,e,n=this;this.dirty&&(this.dirty=!1,Fh=!0,this.fragment.update(),Fh=!1,this.rendered&&this.node&&(t=this.fragment.toString(),e=vi(t,this.isSvg),this.attributes.filter(function(t){return gi(e,t)}).forEach(function(t){n.node.removeAttribute(t.name)}),e.forEach(function(t){n.node.setAttribute(t.name,t.value)}),this.attributes=e))},e}(ih),Nh=["pop","push","reverse","shift","sort","splice","unshift"],Sh=[];Nh.forEach(function(t){var e=function(){for(var e=this,n=[],i=arguments.length;i--;)n[i]=arguments[i];var r=Zt(this.length,t,n);this._ractive.wrappers.forEach(function(t){t.magic&&(t.magic.locked=!0)});var o=Array.prototype[t].apply(this,arguments);Jo.start(),this._ractive.setting=!0;for(var s=this._ractive.wrappers.length;s--;)yi(e._ractive.wrappers[s],e,t,r);return Jo.end(),this._ractive.setting=!1,this._ractive.wrappers.forEach(function(t){t.magic&&(t.magic.locked=!1)}),o};Co(Sh,t,{value:e,configurable:!0})});var Vh,Bh;({}).__proto__?(Vh=function(t){return t.__proto__=Sh},Bh=function(t){return t.__proto__=Array.prototype}):(Vh=function(t){for(var e=Nh.length;e--;){var n=Nh[e];Co(t,n,{value:Sh[n],configurable:!0})}},Bh=function(t){for(var e=Nh.length;e--;)delete t[Nh[e]]}),Vh.unpatch=Bh;var Kh=Vh,Ph="Something went wrong in a rather interesting way",Mh={filter:function(t){return u(t)&&(!t._ractive||!t._ractive.setting)},wrap:function(t,e,n){return new Ih(t,e,n)}},Ih=function(t,e){this.root=t,this.value=e,this.__model=null,e._ractive||(Co(e,"_ractive",{value:{wrappers:[],instances:[],setting:!1},configurable:!0}),Kh(e)),e._ractive.instances[t._guid]||(e._ractive.instances[t._guid]=0,e._ractive.instances.push(t)),e._ractive.instances[t._guid]+=1,e._ractive.wrappers.push(this)};Ih.prototype.get=function(){return this.value},Ih.prototype.reset=function(t){return this.value===t},Ih.prototype.teardown=function(){var t,e,n,i,r;if(t=this.value,e=t._ractive,n=e.wrappers,i=e.instances,e.setting)return!1;if(r=n.indexOf(this),r===-1)throw new Error(Ph);if(n.splice(r,1),n.length){if(i[this.root._guid]-=1,!i[this.root._guid]){if(r=i.indexOf(this.root),r===-1)throw new Error(Ph);i.splice(r,1)}}else delete t._ractive,Kh.unpatch(this.value)};var Rh;try{Object.defineProperty({},"test",{get:function(){},set:function(){}}),Rh={filter:function(t){return t&&"object"==typeof t},wrap:function(t,e,n){return new Dh(t,e,n)}}}catch(t){Rh=!1}var Lh=Rh,Dh=function(t,e,n){var i=this;this.ractive=t,this.value=e,this.keypath=n,this.originalDescriptors={},Object.keys(e).forEach(function(e){var r=Object.getOwnPropertyDescriptor(i.value,e);i.originalDescriptors[e]=r;var o=n?""+n+"."+U(e):U(e),s=bi(r,t,o,i);Object.defineProperty(i.value,e,s)})};Dh.prototype.get=function(){return this.value},Dh.prototype.reset=function(t){return this.value===t},Dh.prototype.set=function(t,e){this.value[t]=e},Dh.prototype.teardown=function(){var t=this;Object.keys(this.value).forEach(function(e){var n=Object.getOwnPropertyDescriptor(t.value,e);n.set&&n.set.__magic&&(wi(n),1===n.set.__magic.dependants.length&&Object.defineProperty(t.value,e,n.set.__magic.originalDescriptor))})};var Uh=function(t,e,n){this.value=e,this.magic=!0,this.magicWrapper=Lh.wrap(t,e,n),this.arrayWrapper=Mh.wrap(t,e,n),this.arrayWrapper.magic=this.magicWrapper,Object.defineProperty(this,"__model",{get:function(){return this.arrayWrapper.__model},set:function(t){this.arrayWrapper.__model=t}})};Uh.prototype.get=function(){return this.value},Uh.prototype.teardown=function(){this.arrayWrapper.teardown(),this.magicWrapper.teardown()},Uh.prototype.reset=function(t){return this.arrayWrapper.reset(t)&&this.magicWrapper.reset(t)};var qh={filter:function(t,e,n){return Lh.filter(t,e,n)&&Mh.filter(t)},wrap:function(t,e,n){return new Uh(t,e,n)}},Hh=function(t){function e(e,n,i){t.call(this,null,null),this.root=this.parent=e,this.signature=n,this.key=i,this.isExpression=i&&"@"===i[0],this.isReadonly=!this.signature.setter,this.context=e.computationContext,this.dependencies=[],this.children=[],this.childByKey={},this.deps=[],this.dirty=!0,this.shuffle=void 0}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(t){return t&&Ot(this),this.dirty&&(this.dirty=!1,this.value=this.getValue(),this.wrapper&&(this.newWrapperValue=this.value),this.adapt()),t&&this.wrapper?this.wrapperValue:this.value},e.prototype.getValue=function(){_t();var t;try{t=this.signature.getter.call(this.context)}catch(t){if(b("Failed to compute "+this.getKeypath()+": "+(t.message||t)),oo){console.groupCollapsed&&console.groupCollapsed("%cshow details","color: rgb(82, 140, 224); font-weight: normal; text-decoration: underline;");var e=ki(this.signature.getterString),n=this.signature.getterUseStack?"\n\n"+Ei(t.stack):"";console.error(""+t.name+": "+t.message+"\n\n"+e+n),console.groupCollapsed&&console.groupEnd()}}var i=xt();return this.setDependencies(i),"value"in this&&t!==this.value&&this.registerChange(this.getKeypath(),t),t},e.prototype.handleChange=function(){this.dirty=!0,this.links.forEach(Tt),this.deps.forEach(At),this.children.forEach(At),this.clearUnresolveds()},e.prototype.joinKey=function(t){if(void 0===t||""===t)return this;if(!this.childByKey.hasOwnProperty(t)){var e=new rh(this,t);this.children.push(e),this.childByKey[t]=e}return this.childByKey[t]},e.prototype.mark=function(){this.handleChange()},e.prototype.rebinding=function(t,e){t!==e&&this.handleChange()},e.prototype.set=function(t){if(!this.signature.setter)throw new Error("Cannot set read-only computed value '"+this.key+"'");this.signature.setter(t),this.mark()},e.prototype.setDependencies=function(t){for(var e=this,n=this.dependencies.length;n--;){var i=e.dependencies[n];~t.indexOf(i)||i.unregister(e)}for(n=t.length;n--;){var r=t[n];~e.dependencies.indexOf(r)||r.register(e)}this.dependencies=t},e.prototype.teardown=function(){for(var e=this,n=this.dependencies.length;n--;)e.dependencies[n]&&e.dependencies[n].unregister(e);this.root.computations[this.key]===this&&delete this.root.computations[this.key],t.prototype.teardown.call(this)},e.prototype.unregister=function(e){t.prototype.unregister.call(this,e),this.isExpression&&0===this.deps.length&&this.teardown()},e}(js),Wh=function(t){function e(e){t.call(this,null,""),this.value=e,this.isRoot=!0,this.root=this,this.adaptors=[],this.ractive=e,this.changes={}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getKeypath=function(){return"@this"},e}(js),Qh=Object.prototype.hasOwnProperty,zh=function(t){function e(e){t.call(this,null,null),this.changes={},this.isRoot=!0,this.root=this,this.ractive=e.ractive,this.value=e.data,this.adaptors=e.adapt,this.adapt(),this.computationContext=e.ractive,this.computations={},this.expressions={}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.applyChanges=function(){return this._changeHash={},this.flush(),this._changeHash},e.prototype.compute=function(t,e){var n=new Hh(this,e,t);return this.computations[t]=n,n},e.prototype.createLink=function(t,e,n){for(var i=this,r=H(t),o=this;r.length;){var s=r.shift();o=i.childByKey[s]||i.joinKey(s)}return o.link(e,n)},e.prototype.get=function(t,e){var n=this;if(t&&Ot(this),e&&e.virtual===!1)return this.value;for(var i=this.getVirtual(),r=Object.keys(this.computations),o=r.length;o--;){var s=n.computations[r[o]];s.isExpression||(i[r[o]]=s.get())}return i},e.prototype.getKeypath=function(){return""},e.prototype.getRactiveModel=function(){return this.ractiveModel||(this.ractiveModel=new Wh(this.ractive))},e.prototype.getValueChildren=function(){var e=t.prototype.getValueChildren.call(this,this.value);this.children.forEach(function(t){if(t._link){var n=e.indexOf(t);~n?e.splice(n,1,t._link):e.push(t._link)}});for(var n in this.computations)e.push(this.computations[n]);return e},e.prototype.handleChange=function(){this.deps.forEach(At)},e.prototype.has=function(t){var e=this.value;if(t=W(t),Qh.call(e,t))return!0;if(t in this.computations||this.childByKey[t]&&this.childByKey[t]._link)return!0;if(t in this.expressions)return!0;for(var n=e.constructor;n!==Function&&n!==Array&&n!==Object;){if(Qh.call(n.prototype,t))return!0;n=n.constructor}return!1},e.prototype.joinKey=function(e,n){return"@global"===e?Fs:"@this"===e?this.getRactiveModel():this.expressions.hasOwnProperty(e)?(b("Accessing expression keypaths ("+e.substr(1)+") from the instance is deprecated. You can used a getNodeInfo or event object to access keypaths with expression context."),this.expressions[e]):this.computations.hasOwnProperty(e)?this.computations[e]:t.prototype.joinKey.call(this,e,n)},e.prototype.map=function(t,e){var n=this.joinKey(t);n.link(e)},e.prototype.rebinding=function(){},e.prototype.set=function(t){var e=this.wrapper;if(e){var n=!e.reset||e.reset(t)===!1;n&&(e.teardown(),this.wrapper=null,this.value=t,this.adapt())}else this.value=t,this.adapt();this.deps.forEach(At),this.children.forEach(Ft),this.clearUnresolveds()},e.prototype.retrieve=function(){return this.wrapper?this.wrapper.get():this.value},e.prototype.update=function(){},e}(js),$h=new qo("construct"),Gh=["adaptors","components","decorators","easing","events","interpolators","partials","transitions"],Yh=0,Zh=function(t){this.hook=new qo(t),this.inProcess={},this.queue={}};Zh.prototype.begin=function(t){this.inProcess[t._guid]=!0},Zh.prototype.end=function(t){var e=t.parent;e&&this.inProcess[e._guid]?Fi(this.queue,e).push(t):Ti(this,t),delete this.inProcess[t._guid]};var Jh=new qo("config"),Xh=new Zh("init"),tu=function(t,e){t.indexOf("*")!==-1&&m('Only component proxy-events may contain "*" wildcards, <'+e.name+" on-"+t+'="..."/> is not valid'),this.name=t,this.owner=e,this.node=null,this.handler=null};tu.prototype.listen=function(t){var e=this.node=this.owner.node,n=this.name;"on"+n in e||y(Lo(n,"events")),e.addEventListener(n,this.handler=function(n){t.fire({node:e,original:n})},!1)},tu.prototype.unlisten=function(){this.node.removeEventListener(this.name,this.handler,!1)};var eu=function(t,e){this.eventPlugin=t,this.owner=e,this.handler=null};eu.prototype.listen=function(t){var e=this.owner.node;this.handler=this.eventPlugin(e,function(n){void 0===n&&(n={}),n.node=n.node||e,t.fire(n)})},eu.prototype.unlisten=function(){this.handler.teardown()};var nu=function(t,e){this.ractive=t,this.name=e,this.handler=null};nu.prototype.listen=function(t){var e=this.ractive;this.handler=e.on(this.name,function(){var n;arguments.length&&arguments[0]&&arguments[0].node&&(n=Array.prototype.shift.call(arguments),n.component=e);var i=Array.prototype.slice.call(arguments);return t.fire(n,i),!1})},nu.prototype.unlisten=function(){this.handler.cancel()};var iu=/^(event|arguments)(\..+)?$/,ru=/^\$(\d+)(\..+)?$/,ou=function(t){var e=this;this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.template=t.template,this.parentFragment=t.parentFragment,this.ractive=t.parentFragment.ractive,this.events=[],this.element.type===Da?this.template.n.split("-").forEach(function(t){e.events.push(new nu(e.element.instance,t))}):this.template.n.split("-").forEach(function(t){var n=k("events",e.ractive,t);e.events.push(n?new eu(n,e.element):new tu(t,e.element))}),this.context=null,this.resolvers=null,this.models=null,this.action=null,this.args=null};ou.prototype.bind=function(){var t=this;this.context=this.parentFragment.findContext();var e=this.template.f;e.x?(this.fn=gn(e.x.s,e.x.r.length),this.resolvers=[],this.models=e.x.r.map(function(e,n){var i=iu.exec(e);if(i)return{special:i[1],keys:i[2]?H(i[2].substr(1)):[]};var r=ru.exec(e);if(r)return{special:"arguments",keys:[r[1]-1].concat(r[2]?H(r[2].substr(1)):[])};var o,s=$t(t.parentFragment,e);return s?s.register(t):(o=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,o),e.register(t)}),t.resolvers.push(o)),s})):(this.action="string"==typeof e?e:"string"==typeof e.n?e.n:new Ip({owner:this,template:e.n}),this.args=e.a?"string"==typeof e.a?[e.a]:e.a:e.d?new Ip({owner:this,template:e.d}):[]),this.action&&"string"!=typeof this.action&&this.action.bind(),this.args&&e.d&&this.args.bind()},ou.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},ou.prototype.destroyed=function(){this.events.forEach(function(t){return t.unlisten()})},ou.prototype.fire=function(t,e){if(void 0===e&&(e=[]),t&&!t.hasOwnProperty("_element")&&Pe(t,this.owner),this.fn){var n=[];t&&e.unshift(t),this.models&&this.models.forEach(function(i){if(!i)return n.push(void 0);if(i.special){for(var r="event"===i.special?t:e,o=i.keys.slice();o.length;)r=r[o.shift()];return n.push(r)}return i.wrapper?n.push(i.wrapperValue):void n.push(i.get())});var i=this.ractive,r=i.event;i.event=t;var o=this.fn.apply(i,n).pop();if(o===!1){var s=t?t.original:void 0;s?(s.preventDefault&&s.preventDefault(),s.stopPropagation&&s.stopPropagation()):w("handler '"+this.template.n+"' returned false, but there is no event available to cancel")}i.event=r}else{var a=this.action.toString(),h=this.template.f.d?this.args.getArgsList():this.args;e.length&&(h=h.concat(e)),t&&(t.name=a),vt(this.ractive,a,{event:t,args:h})}},ou.prototype.handleChange=function(){},ou.prototype.rebinding=function(t,e){var n=this;if(this.models){var i=this.models.indexOf(e);~i&&(this.models.splice(i,1,t),e.unregister(this),t&&t.addShuffleTask(function(){return t.register(n)}))}},ou.prototype.render=function(){var t=this;Jo.scheduleTask(function(){return t.events.forEach(function(e){return e.listen(t)},!0)})},ou.prototype.toString=function(){return""},ou.prototype.unbind=function(){var t=this,e=this.template.f;e.m?(this.resolvers&&this.resolvers.forEach(Bt),this.resolvers=[],this.models&&this.models.forEach(function(e){e.unregister&&e.unregister(t)}),this.models=null):(this.action&&this.action.unbind&&this.action.unbind(),this.args&&this.args.unbind&&this.args.unbind())},ou.prototype.unrender=function(){this.events.forEach(function(t){return t.unlisten()})},ou.prototype.update=function(){!this.method&&this.dirty&&(this.dirty=!1,this.action&&this.action.update&&this.action.update(),this.args&&this.args.update&&this.args.update())};var su=new qo("teardown"),au=function(t){function e(e,n){var i=this;t.call(this,e),this.type=Da;var r=Oo(n.prototype);this.instance=r,this.name=e.template.e,this.parentFragment=e.parentFragment,this.liveQueries=[],r.el&&b("The <"+this.name+"> component has a default 'el' property; it has been disregarded");var o=e.template.p||{};"content"in o||(o.content=e.template.f||[]),this._partials=o,this.yielders={};for(var s,a=e.parentFragment;a;){if(a.owner.type===Ua){s=a.owner.container;break}a=a.parent}r.parent=this.parentFragment.ractive,r.container=s||null,r.root=r.parent.root,r.component=this,xi(this.instance,{partials:o}),r._inlinePartials=o,this.attributeByName={},this.attributes=[];var h=[];(this.template.m||[]).forEach(function(t){switch(t.t){case La:case Xa:case eh:i.attributes.push(Cr({owner:i,parentFragment:i.parentFragment,template:t}));break;case nh:case th:break;default:h.push(t)}}),this.attributes.push(new Th({owner:this,parentFragment:this.parentFragment,template:h})),this.eventHandlers=[],this.template.v&&this.setupEvents()}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.attributes.forEach(Ct),Ni(this.instance,{partials:this._partials},{cssIds:this.parentFragment.cssIds}),this.eventHandlers.forEach(Ct),this.bound=!0},e.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.parentFragment.bubble())},e.prototype.checkYielders=function(){var t=this;Object.keys(this.yielders).forEach(function(e){if(t.yielders[e].length>1)throw Jo.end(),new Error("A component template can only have one {{yield"+(e?" "+e:"")+"}} declaration at a time")})},e.prototype.destroyed=function(){this.instance.fragment&&this.instance.fragment.destroyed()},e.prototype.detach=function(){return this.instance.fragment.detach()},e.prototype.find=function(t){return this.instance.fragment.find(t)},e.prototype.findAll=function(t,e){this.instance.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return t&&this.name!==t?this.instance.fragment?this.instance.fragment.findComponent(t):void 0:this.instance},e.prototype.findAllComponents=function(t,e){e.test(this)&&(e.add(this.instance),e.live&&this.liveQueries.push(e)),this.instance.fragment.findAllComponents(t,e)},e.prototype.firstNode=function(t){return this.instance.fragment.firstNode(t)},e.prototype.render=function(t,e){en(this.instance,t,null,e),this.checkYielders(),this.attributes.forEach(St),this.eventHandlers.forEach(St),Si(this),this.rendered=!0},e.prototype.setupEvents=function(){var t=this,e=this.eventHandlers;Object.keys(this.template.v).forEach(function(n){var i=n.split("-"),r=t.template.v[n];i.forEach(function(n){var i=new nu(t.instance,n);e.push(new ou(t,i,r))})})},e.prototype.shuffled=function(){this.liveQueries.forEach(Bi),t.prototype.shuffled.call(this)},e.prototype.toString=function(){return this.instance.toHTML()},e.prototype.unbind=function(){this.bound=!1,this.attributes.forEach(Bt);var t=this.instance;t.viewmodel.teardown(),t.fragment.unbind(),t._observers.forEach(jt),Vi(this),t.fragment.rendered&&t.el.__ractive_instances__&&T(t.el.__ractive_instances__,t),su.fire(t)},e.prototype.unrender=function(t){var e=this;this.rendered=!1,this.shouldDestroy=t,this.instance.unrender(),this.attributes.forEach(Kt),this.eventHandlers.forEach(Kt),this.liveQueries.forEach(function(t){return t.remove(e.instance)})},e.prototype.update=function(){this.dirty=!1,this.instance.fragment.update(),this.checkYielders(),this.attributes.forEach(Mt),this.eventHandlers.forEach(Mt)},e}(ih),hu={update:d,teardown:d},uu=function(t){this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.parentFragment=this.owner.parentFragment,this.ractive=this.owner.ractive;var e=this.template=t.template;this.dynamicName="object"==typeof e.f.n,this.dynamicArgs=!!e.f.d,this.dynamicName?this.nameFragment=new Ip({owner:this,template:e.f.n}):this.name=e.f.n||e.f,this.dynamicArgs?this.argsFragment=new Ip({owner:this,template:e.f.d}):e.f.a&&e.f.a.s?this.args=[]:this.args=e.f.a||[],this.node=null,this.intermediary=null,this.element.decorators.push(this)};uu.prototype.bind=function(){var t=this;this.dynamicName&&(this.nameFragment.bind(),this.name=this.nameFragment.toString()),this.dynamicArgs&&this.argsFragment.bind(),this.template.f.a&&this.template.f.a.s&&(this.resolvers=[],this.models=this.template.f.a.r.map(function(e,n){var i,r=$t(t.parentFragment,e);return r?r.register(t):(i=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,i),e.register(t)}),t.resolvers.push(i)),r}),this.argsFn=gn(this.template.f.a.s,this.template.f.a.r.length))},uu.prototype.bubble=function(){this.dirty||(this.dirty=!0,this.owner.bubble())},uu.prototype.destroyed=function(){this.intermediary&&this.intermediary.teardown(),this.shouldDestroy=!0},uu.prototype.handleChange=function(){this.bubble()},uu.prototype.rebinding=function(t,e,n){var i=this.models.indexOf(e);~i&&(t=qt(this.template.f.a.r[i],t,e),t!==e&&(e.unregister(this),this.models.splice(i,1,t),t&&t.addShuffleRegister(this,"mark"),n||this.bubble()))},uu.prototype.render=function(){var t=this;Jo.scheduleTask(function(){var e=k("decorators",t.ractive,t.name);if(!e)return y(Lo(t.name,"decorator")),void(t.intermediary=hu);t.node=t.element.node;var n;if(t.argsFn?(n=t.models.map(function(t){if(t)return t.get()}),n=t.argsFn.apply(t.ractive,n)):n=t.dynamicArgs?t.argsFragment.getArgsList():t.args,t.intermediary=e.apply(t.ractive,[t.node].concat(n)),!t.intermediary||!t.intermediary.teardown)throw new Error("The '"+t.name+"' decorator must return an object with a teardown method");t.shouldDestroy&&t.destroyed()},!0),this.rendered=!0},uu.prototype.toString=function(){return""},uu.prototype.unbind=function(){var t=this;this.dynamicName&&this.nameFragment.unbind(),this.dynamicArgs&&this.argsFragment.unbind(),this.resolvers&&this.resolvers.forEach(Bt),this.models&&this.models.forEach(function(e){e&&e.unregister(t)})},uu.prototype.unrender=function(t){t&&!this.element.rendered||!this.intermediary||this.intermediary.teardown(),this.rendered=!1},uu.prototype.update=function(){if(this.dirty){this.dirty=!1;var t=!1;if(this.dynamicName&&this.nameFragment.dirty){var e=this.nameFragment.toString();t=e!==this.name,this.name=e}if(this.intermediary)if(t||!this.intermediary.update)this.unrender(),this.render();else if(this.dynamicArgs){if(this.argsFragment.dirty){var n=this.argsFragment.getArgsList();this.intermediary.update.apply(this.ractive,n)}}else if(this.argsFn){var i=this.models.map(function(t){if(t)return t.get()});this.intermediary.update.apply(this.ractive,this.argsFn.apply(this.ractive,i))}else this.intermediary.update.apply(this.ractive,this.args);
+this.dynamicName&&this.nameFragment.dirty&&this.nameFragment.update(),this.dynamicArgs&&this.argsFragment.dirty&&this.argsFragment.update()}};var pu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){},e.prototype.render=function(){},e.prototype.teardown=function(){},e.prototype.toString=function(){return"<!DOCTYPE"+this.template.a+">"},e.prototype.unbind=function(){},e.prototype.unrender=function(){},e.prototype.update=function(){},e}(ih),lu=function(t,e){void 0===e&&(e="value"),this.element=t,this.ractive=t.ractive,this.attribute=t.attributeByName[e];var n=this.attribute.interpolator;n.twowayBinding=this;var i=n.model;if(i){if(i.isUnresolved)i.forceResolution(),Pi("expression",this.ractive);else if(i.isReadonly){var r=i.getKeypath().replace(/^@/,"");return w("Cannot use two-way binding on <"+t.name+"> element: "+r+" is read-only. To suppress this warning use <"+t.name+" twoway='false'...>",{ractive:this.ractive}),!1}}else n.resolver.forceResolution(),i=n.model,Pi("'"+n.template.r+"' reference",this.ractive);this.attribute.isTwoway=!0,this.model=i;var o=i.get();this.wasUndefined=void 0===o,void 0===o&&this.getInitialValue&&(o=this.getInitialValue(),i.set(o)),this.lastVal(!0,o);var s=qn(this.element,!1,"form");s&&(this.resetValue=o,s.formBindings.push(this))};lu.prototype.bind=function(){this.model.registerTwowayBinding(this)},lu.prototype.handleChange=function(){var t=this,e=this.getValue();this.lastVal()!==e&&(Jo.start(this.root),this.attribute.locked=!0,this.model.set(e),this.lastVal(!0,e),this.model.get()!==e?this.attribute.locked=!1:Jo.scheduleTask(function(){return t.attribute.locked=!1}),Jo.end())},lu.prototype.lastVal=function(t,e){return t?void(this.lastValue=e):this.lastValue},lu.prototype.rebinding=function(t,e){var n=this;this.model&&this.model===e&&e.unregisterTwowayBinding(this),t&&(this.model=t,Jo.scheduleTask(function(){return t.registerTwowayBinding(n)}))},lu.prototype.render=function(){this.node=this.element.node,this.node._ractive.binding=this,this.rendered=!0},lu.prototype.setFromNode=function(t){this.model.set(t.value)},lu.prototype.unbind=function(){this.model.unregisterTwowayBinding(this)},lu.prototype.unrender=function(){};var cu=function(t){function e(e){t.call(this,e,"checked")}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),this.node.attachEvent&&this.node.addEventListener("click",Mi,!1)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1),this.node.removeEventListener("click",Mi,!1)},e.prototype.getInitialValue=function(){return!!this.element.getAttribute("checked")},e.prototype.getValue=function(){return this.node.checked},e.prototype.setFromNode=function(t){this.model.set(t.checked)},e}(lu),du=function(t,e,n){var i=this;this.model=e,this.hash=t,this.getValue=function(){return i.value=n.call(i),i.value},this.bindings=[]};du.prototype.add=function(t){this.bindings.push(t)},du.prototype.bind=function(){this.value=this.model.get(),this.model.registerTwowayBinding(this),this.bound=!0},du.prototype.remove=function(t){T(this.bindings,t),this.bindings.length||this.unbind()},du.prototype.unbind=function(){this.model.unregisterTwowayBinding(this),this.bound=!1,delete this.model[this.hash]};var fu,mu,vu=[].push,gu=function(t){function e(e){if(t.call(this,e,"name"),this.checkboxName=!0,this.group=Ii("checkboxes",this.model,Ri),this.group.add(this),this.noInitialValue&&(this.group.noInitialValue=!0),this.group.noInitialValue&&this.element.getAttribute("checked")){var n=this.model.get(),i=this.element.getAttribute("value");C(n,i)||vu.call(n,i)}}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.group.bound||this.group.bind()},e.prototype.changed=function(){var t=!!this.isChecked;return this.isChecked=this.node.checked,this.isChecked===t},e.prototype.getInitialValue=function(){return this.noInitialValue=!0,[]},e.prototype.getValue=function(){return this.group.value},e.prototype.handleChange=function(){this.isChecked=this.element.node.checked,this.group.value=this.model.get();var e=this.element.getAttribute("value");this.isChecked&&!C(this.group.value,e)?this.group.value.push(e):!this.isChecked&&C(this.group.value,e)&&T(this.group.value,e),this.lastValue=null,t.prototype.handleChange.call(this)},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node,n=this.model.get(),i=this.element.getAttribute("value");u(n)?this.isChecked=C(n,i):this.isChecked=n==i,e.name="{{"+this.model.getKeypath()+"}}",e.checked=this.isChecked,e.addEventListener("change",Mi,!1),e.attachEvent&&e.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){if(this.group.bindings.forEach(function(t){return t.wasUndefined=!0}),t.checked){var e=this.group.getValue();e.push(this.element.getAttribute("value")),this.group.model.set(e)}},e.prototype.unbind=function(){this.group.remove(this)},e.prototype.unrender=function(){var t=this.element.node;t.removeEventListener("change",Mi,!1),t.removeEventListener("click",Mi,!1)},e}(lu),yu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){return this.element.fragment?this.element.fragment.toString():""},e.prototype.getValue=function(){return this.element.node.innerHTML},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node;e.addEventListener("change",Mi,!1),e.addEventListener("blur",Mi,!1),this.ractive.lazy||(e.addEventListener("input",Mi,!1),e.attachEvent&&e.addEventListener("keyup",Mi,!1))},e.prototype.setFromNode=function(t){this.model.set(t.innerHTML)},e.prototype.unrender=function(){var t=this.node;t.removeEventListener("blur",Mi,!1),t.removeEventListener("change",Mi,!1),t.removeEventListener("input",Mi,!1),t.removeEventListener("keyup",Mi,!1)},e}(lu),bu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){return""},e.prototype.getValue=function(){return this.node.value},e.prototype.render=function(){t.prototype.render.call(this);var e=this.ractive.lazy,n=!1;"lazy"in this.element&&(e=this.element.lazy),l(e)&&(n=+e,e=!1),this.handler=n?Di(n):Mi;var i=this.node;i.addEventListener("change",Mi,!1),e||(i.addEventListener("input",this.handler,!1),i.attachEvent&&i.addEventListener("keyup",this.handler,!1)),i.addEventListener("blur",Li,!1)},e.prototype.unrender=function(){var t=this.element.node;this.rendered=!1,t.removeEventListener("change",Mi,!1),t.removeEventListener("input",this.handler,!1),t.removeEventListener("keyup",this.handler,!1),t.removeEventListener("blur",Li,!1)},e}(lu),wu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){},e.prototype.getValue=function(){return this.node.files},e.prototype.render=function(){this.element.lazy=!1,t.prototype.render.call(this)},e.prototype.setFromNode=function(t){this.model.set(t.files)},e}(bu),ku=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.forceUpdate=function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,Jo.scheduleTask(function(){return t.attribute.locked=!1}),this.model.set(e))},e.prototype.getInitialValue=function(){return this.element.options.filter(function(t){return t.getAttribute("selected")}).map(function(t){return t.getAttribute("value")})},e.prototype.getValue=function(){for(var t=this.element.node.options,e=t.length,n=[],i=0;i<e;i+=1){var r=t[i];if(r.selected){var o=r._ractive?r._ractive.value:r.value;n.push(o)}}return n},e.prototype.handleChange=function(){var e=this.attribute,n=e.getValue(),i=this.getValue();return void 0!==n&&j(i,n)||t.prototype.handleChange.call(this),this},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),void 0===this.model.get()&&this.handleChange()},e.prototype.setFromNode=function(t){for(var e=Ui(t),n=e.length,i=new Array(n);n--;){var r=e[n];i[n]=r._ractive?r._ractive.value:r.value}this.model.set(i)},e.prototype.setValue=function(){throw new Error("TODO not implemented yet")},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1)},e.prototype.updateModel=function(){void 0!==this.attribute.value&&this.attribute.value.length||this.keypath.set(this.initialValue)},e}(lu),Eu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getInitialValue=function(){},e.prototype.getValue=function(){var t=parseFloat(this.node.value);return isNaN(t)?void 0:t},e.prototype.setFromNode=function(t){var e=parseFloat(t.value);isNaN(e)||this.model.set(e)},e}(bu),_u={},xu=function(t){function e(e){t.call(this,e,"checked"),this.siblings=qi(this.ractive._guid+this.element.getAttribute("name")),this.siblings.push(this)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getValue=function(){return this.node.checked},e.prototype.handleChange=function(){Jo.start(this.root),this.siblings.forEach(function(t){t.model.set(t.getValue())}),Jo.end()},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1),this.node.attachEvent&&this.node.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){this.model.set(t.checked)},e.prototype.unbind=function(){T(this.siblings,this)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1),this.node.removeEventListener("click",Mi,!1)},e}(lu),Ou=function(t){function e(e){t.call(this,e,"name"),this.group=Ii("radioname",this.model,Hi),this.group.add(this),e.checked&&(this.group.value=this.getValue())}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this;this.group.bound||this.group.bind(),this.nameAttributeBinding={handleChange:function(){return t.node.name="{{"+t.model.getKeypath()+"}}"}},this.model.getKeypathModel().register(this.nameAttributeBinding)},e.prototype.getInitialValue=function(){if(this.element.getAttribute("checked"))return this.element.getAttribute("value")},e.prototype.getValue=function(){return this.element.getAttribute("value")},e.prototype.handleChange=function(){this.node.checked&&(this.group.value=this.getValue(),t.prototype.handleChange.call(this))},e.prototype.lastVal=function(t,e){if(this.group)return t?void(this.group.lastValue=e):this.group.lastValue},e.prototype.render=function(){t.prototype.render.call(this);var e=this.node;e.name="{{"+this.model.getKeypath()+"}}",e.checked=this.model.get()==this.element.getAttribute("value"),e.addEventListener("change",Mi,!1),e.attachEvent&&e.addEventListener("click",Mi,!1)},e.prototype.setFromNode=function(t){t.checked&&this.group.model.set(this.element.getAttribute("value"))},e.prototype.unbind=function(){this.group.remove(this),this.model.getKeypathModel().unregister(this.nameAttributeBinding)},e.prototype.unrender=function(){var t=this.node;t.removeEventListener("change",Mi,!1),t.removeEventListener("click",Mi,!1)},e}(lu),Cu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.forceUpdate=function(){var t=this,e=this.getValue();void 0!==e&&(this.attribute.locked=!0,Jo.scheduleTask(function(){return t.attribute.locked=!1}),this.model.set(e))},e.prototype.getInitialValue=function(){if(void 0===this.element.getAttribute("value")){var t=this.element.options,e=t.length;if(e){for(var n,i,r=e;r--;){var o=t[r];if(o.getAttribute("selected")){o.getAttribute("disabled")||(n=o.getAttribute("value")),i=!0;break}}if(!i)for(;++r<e;)if(!t[r].getAttribute("disabled")){n=t[r].getAttribute("value");break}return void 0!==n&&(this.element.attributeByName.value.value=n),n}}},e.prototype.getValue=function(){var t,e=this.node.options,n=e.length;for(t=0;t<n;t+=1){var i=e[t];if(e[t].selected&&!e[t].disabled)return i._ractive?i._ractive.value:i.value}},e.prototype.render=function(){t.prototype.render.call(this),this.node.addEventListener("change",Mi,!1)},e.prototype.setFromNode=function(t){var e=Ui(t)[0];this.model.set(e._ractive?e._ractive.value:e.value)},e.prototype.setValue=function(t){this.model.set(t)},e.prototype.unrender=function(){this.node.removeEventListener("change",Mi,!1)},e}(lu),ju=/;\s*$/,Au=function(t){function e(e){var n=this;if(t.call(this,e),this.liveQueries=[],this.name=e.template.e.toLowerCase(),this.isVoid=vh.test(this.name),this.parent=qn(this.parentFragment,!1),this.parent&&"option"===this.parent.name)throw new Error("An <option> element cannot contain other elements (encountered <"+this.name+">)");this.decorators=[],this.attributeByName={},this.attributes=[];var i=[];(this.template.m||[]).forEach(function(t){switch(t.t){case La:case nh:case th:case Xa:case eh:n.attributes.push(Cr({owner:n,parentFragment:n.parentFragment,template:t}));break;default:i.push(t)}}),i.length&&this.attributes.push(new Th({owner:this,parentFragment:this.parentFragment,template:i}));for(var r=this.attributes.length;r--;){var o=n.attributes[r];"type"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"max"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"min"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"class"===o.name?n.attributes.unshift(n.attributes.splice(r,1)[0]):"value"===o.name&&n.attributes.push(n.attributes.splice(r,1)[0])}e.template.f&&!e.deferContent&&(this.fragment=new Ip({template:e.template.f,owner:this,cssIds:null})),this.binding=null}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.attributes.binding=!0,this.attributes.forEach(Ct),this.attributes.binding=!1,this.fragment&&this.fragment.bind(),this.binding||this.recreateTwowayBinding()},e.prototype.createTwowayBinding=function(){var t="twoway"in this?this.twoway:this.ractive.twoway;if(!t)return null;var e=Qi(this);if(!e)return null;var n=new e(this);return n&&n.model?n:null},e.prototype.destroyed=function(){this.attributes.forEach(function(t){return t.destroyed()}),this.fragment&&this.fragment.destroyed()},e.prototype.detach=function(){return this.rendered||this.destroyed(),n(this.node)},e.prototype.find=function(t){return this.node&&ao(this.node,t)?this.node:this.fragment?this.fragment.find(t):void 0},e.prototype.findAll=function(t,e){var n=e.test(this.node);n&&(e.add(this.node),e.live&&this.liveQueries.push(e)),this.fragment&&this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},e.prototype.findNextNode=function(){return null},e.prototype.firstNode=function(){return this.node},e.prototype.getAttribute=function(t){var e=this.attributeByName[t];return e?e.getValue():void 0},e.prototype.recreateTwowayBinding=function(){this.binding&&(this.binding.unbind(),this.binding.unrender()),(this.binding=this.createTwowayBinding())&&(this.binding.bind(),this.rendered&&this.binding.render())},e.prototype.render=function(t,e){var i=this;this.namespace=Zi(this);var r,o=!1;if(e)for(var s;s=e.shift();){if(s.nodeName.toUpperCase()===i.template.e.toUpperCase()&&s.namespaceURI===i.namespace){i.node=r=s,o=!0;break}n(s)}if(r||(r=so(this.template.e,this.namespace,this.getAttribute("is")),this.node=r),Co(r,"_ractive",{value:{proxy:this}}),this.parentFragment.cssIds&&r.setAttribute("data-ractive-css",this.parentFragment.cssIds.map(function(t){return"{"+t+"}"}).join(" ")),o&&this.foundNode&&this.foundNode(r),this.fragment){var a=o?N(r.childNodes):void 0;this.fragment.render(r,a),a&&a.forEach(n)}if(o){this.binding&&this.binding.wasUndefined&&this.binding.setFromNode(r);for(var h=r.attributes.length;h--;){var u=r.attributes[h].name;u in i.attributeByName||r.removeAttribute(u)}}this.attributes.forEach(St),this.binding&&this.binding.render(),Ki(this),this._introTransition&&this.ractive.transitionsEnabled&&(this._introTransition.isIntro=!0,Jo.registerTransition(this._introTransition)),o||t.appendChild(r),this.rendered=!0},e.prototype.shuffled=function(){this.liveQueries.forEach(zi),t.prototype.shuffled.call(this)},e.prototype.toString=function(){var t=this.template.e,e=this.attributes.map(Gi).join("");"option"===this.name&&this.isSelected()&&(e+=" selected"),"input"===this.name&&$i(this)&&(e+=" checked");var n,i;this.attributes.forEach(function(t){"class"===t.name?i=(i||"")+(i?" ":"")+r(t.getString()):"style"===t.name?(n=(n||"")+(n?" ":"")+r(t.getString()),n&&!ju.test(n)&&(n+=";")):t.styleName?n=(n||"")+(n?" ":"")+s(t.styleName)+": "+r(t.getString())+";":t.inlineClass&&t.getValue()&&(i=(i||"")+(i?" ":"")+t.inlineClass)}),void 0!==n&&(e=" style"+(n?'="'+n+'"':"")+e),void 0!==i&&(e=" class"+(i?'="'+i+'"':"")+e);var o="<"+t+e+">";return this.isVoid?o:("textarea"===this.name&&void 0!==this.getAttribute("value")?o+=pi(this.getAttribute("value")):void 0!==this.getAttribute("contenteditable")&&(o+=this.getAttribute("value")||""),this.fragment&&(o+=this.fragment.toString(!/^(?:script|style)$/i.test(this.template.e))),o+="</"+t+">")},e.prototype.unbind=function(){this.attributes.forEach(Bt),this.binding&&this.binding.unbind(),this.fragment&&this.fragment.unbind()},e.prototype.unrender=function(t){if(this.rendered){this.rendered=!1;var e=this._introTransition;e&&e.complete&&e.complete(),"option"===this.name?this.detach():t&&Jo.detachWhenReady(this),this.fragment&&this.fragment.unrender(),this.binding&&this.binding.unrender(),this._outroTransition&&this.ractive.transitionsEnabled&&(this._outroTransition.isIntro=!1,Jo.registerTransition(this._outroTransition)),Yi(this)}},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.attributes.forEach(Mt),this.fragment&&this.fragment.update())},e}(ih),Fu=function(t){function e(e){t.call(this,e),this.formBindings=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.node.addEventListener("reset",Ji,!1)},e.prototype.unrender=function(e){this.node.removeEventListener("reset",Ji,!1),t.prototype.unrender.call(this,e)},e}(Au),Tu=function(t){function e(e){t.call(this,e),this.parentFragment=e.parentFragment,this.template=e.template,this.index=e.index,e.owner&&(this.parent=e.owner),this.isStatic=!!e.template.s,this.model=null,this.dirty=!1}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this,e=Dn(this.parentFragment,this.template),n=e?e.get():void 0;return this.isStatic?void(this.model={get:function(){return n}}):void(e?(e.register(this),this.model=e):this.resolver=this.parentFragment.resolve(this.template.r,function(e){t.model=e,e.register(t),t.handleChange(),t.resolver=null}))},e.prototype.handleChange=function(){this.bubble()},e.prototype.rebinding=function(t,e,n){return t=qt(this.template,t,e),!this.static&&(t!==this.model&&(this.model&&this.model.unregister(this),t&&t.addShuffleRegister(this,"mark"),this.model=t,n||this.handleChange(),!0))},e.prototype.unbind=function(){this.isStatic||(this.model&&this.model.unregister(this),this.model=void 0,this.resolver&&this.resolver.unbind())},e}(ih),Nu=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){this.owner&&this.owner.bubble(),t.prototype.bubble.call(this)},e.prototype.detach=function(){return n(this.node)},e.prototype.firstNode=function(){return this.node},e.prototype.getString=function(){return this.model?i(this.model.get()):""},e.prototype.render=function(t,e){if(!fi()){var n=this.getString();if(this.rendered=!0,e){var i=e[0];i&&3===i.nodeType?(e.shift(),i.nodeValue!==n&&(i.nodeValue=n)):(i=this.node=io.createTextNode(n),e[0]?t.insertBefore(i,e[0]):t.appendChild(i)),this.node=i}else this.node=io.createTextNode(n),t.appendChild(this.node)}},e.prototype.toString=function(t){var e=this.getString();return t?pi(e):e},e.prototype.unrender=function(t){t&&this.detach(),this.rendered=!1},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.rendered&&(this.node.data=this.getString()))},e.prototype.valueOf=function(){return this.model?this.model.get():void 0},e}(Tu),Su=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.node.defaultValue=this.node.value},e}(Au),Vu=/^\s+/;mu=function(t){this.name="ParseError",this.message=t;try{throw new Error(t)}catch(t){this.stack=t.stack}},mu.prototype=Error.prototype,fu=function(t,e){var n,i,r=this,o=0;for(this.str=t,this.options=e||{},this.pos=0,this.lines=this.str.split("\n"),this.lineEnds=this.lines.map(function(t){var e=o+t.length+1;return o=e,e},0),this.init&&this.init(t,e),n=[];r.pos<r.str.length&&(i=r.read());)n.push(i);this.leftover=this.remaining(),this.result=this.postProcess?this.postProcess(n,e):n},fu.prototype={read:function(t){var e,n,i,r,o=this;for(t||(t=this.converters),e=this.pos,i=t.length,n=0;n<i;n+=1)if(o.pos=e,r=t[n](o))return r;return null},getContextMessage:function(t,e){var n=this.getLinePos(t),i=n[0],r=n[1];if(this.options.contextLines===-1)return[i,r,""+e+" at line "+i+" character "+r];var o=this.lines[i-1],s="",a="";if(this.options.contextLines){var h=i-1-this.options.contextLines<0?0:i-1-this.options.contextLines;s=this.lines.slice(h,i-1-h).join("\n").replace(/\t/g,"  "),a=this.lines.slice(i,i+this.options.contextLines).join("\n").replace(/\t/g,"  "),s&&(s+="\n"),a&&(a="\n"+a)}var u=0,p=s+o.replace(/\t/g,function(t,e){return e<r&&(u+=1),"  "})+"\n"+new Array(r+u).join(" ")+"^----"+a;return[i,r,""+e+" at line "+i+" character "+r+":\n"+p]},getLinePos:function(t){for(var e,n=this,i=0,r=0;t>=n.lineEnds[i];)r=n.lineEnds[i],i+=1;return e=t-r,[i+1,e+1,t]},error:function(t){var e=this.getContextMessage(this.pos,t),n=e[0],i=e[1],r=e[2],o=new mu(r);throw o.line=n,o.character=i,o.shortMessage=t,o},matchString:function(t){if(this.str.substr(this.pos,t.length)===t)return this.pos+=t.length,t},matchPattern:function(t){var e;if(e=t.exec(this.remaining()))return this.pos+=e[0].length,e[1]||e[0]},allowWhitespace:function(){this.matchPattern(Vu)},remaining:function(){return this.str.substring(this.pos)},nextChar:function(){return this.str.charAt(this.pos)}},fu.extend=function(t){var e,n,i=this;e=function(t,e){fu.call(this,t,e)},e.prototype=Oo(i.prototype);for(n in t)Vo.call(t,n)&&(e.prototype[n]=t[n]);return e.extend=fu.extend,e};var Bu,Ku,Pu,Mu=fu;Bu=/^(?=.)[^"'\\]+?(?:(?!.)|(?=["'\\]))/,Ku=/^\\(?:['"\\bfnrt]|0(?![0-9])|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|(?=.)[^ux0-9])/,Pu=/^\\(?:\r\n|[\u000A\u000D\u2028\u2029])/;var Iu=tr('"'),Ru=tr("'"),Lu=/^(?:[+-]?)0*(?:(?:(?:[1-9]\d*)?\.\d+)|(?:(?:0|[1-9]\d*)\.)|(?:0|[1-9]\d*))(?:[eE][+-]?\d+)?/,Du=/^[a-zA-Z_$][a-zA-Z_$0-9]*/,Uu=/^[a-zA-Z_$][a-zA-Z_$0-9]*$/,qu={true:!0,false:!1,null:null,undefined:void 0},Hu=new RegExp("^(?:"+Object.keys(qu).join("|")+")"),Wu=/^(?:[+-]?)(?:(?:(?:0|[1-9]\d*)?\.\d+)|(?:(?:0|[1-9]\d*)\.)|(?:0|[1-9]\d*))(?:[eE][+-]?\d+)?/,Qu=/\$\{([^\}]+)\}/g,zu=/^\$\{([^\}]+)\}/,$u=/^\s*$/,Gu=Mu.extend({init:function(t,e){this.values=e.values,this.allowWhitespace()},postProcess:function(t){return 1===t.length&&$u.test(this.leftover)?{value:t[0].v}:null},converters:[function(t){if(!t.values)return null;var e=t.matchPattern(zu);return e&&t.values.hasOwnProperty(e)?{v:t.values[e]}:void 0},function(t){var e=t.matchPattern(Hu);if(e)return{v:qu[e]}},function(t){var e=t.matchPattern(Wu);if(e)return{v:+e}},function(t){var e=er(t),n=t.values;return e&&n?{v:e.v.replace(Qu,function(t,e){return e in n?n[e]:e})}:e},function(t){if(!t.matchString("{"))return null;var e={};if(t.allowWhitespace(),t.matchString("}"))return{v:e};for(var n;n=rr(t);){if(e[n.key]=n.value,t.allowWhitespace(),t.matchString("}"))return{v:e};if(!t.matchString(","))return null}return null},function(t){if(!t.matchString("["))return null;var e=[];if(t.allowWhitespace(),t.matchString("]"))return{v:e};for(var n;n=t.read();){if(e.push(n.v),t.allowWhitespace(),t.matchString("]"))return{v:e};if(!t.matchString(","))return null;t.allowWhitespace()}return null}]}),Yu=function(t){function e(e){t.call(this,e),this.name=e.template.n,this.owner=e.owner||e.parentFragment.owner||e.element||qn(e.parentFragment),this.element=e.element||(this.owner.attributeByName?this.owner:qn(e.parentFragment)),this.parentFragment=this.element.parentFragment,this.ractive=this.parentFragment.ractive,this.fragment=null,this.element.attributeByName[this.name]=this,this.value=e.template.f}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.fragment&&this.fragment.bind();var t=this.template.f,e=this.element.instance.viewmodel;if(0===t)e.joinKey(this.name).set(!0);else if("string"==typeof t){var n=or(t);e.joinKey(this.name).set(n?n.value:t)}else u(t)&&sr(this,!0)},e.prototype.render=function(){},e.prototype.unbind=function(){this.fragment&&this.fragment.unbind(),this.boundFragment&&this.boundFragment.unbind(),this.element.bound&&this.link.target===this.model&&this.link.owner.unlink()},e.prototype.unrender=function(){},e.prototype.update=function(){this.dirty&&(this.dirty=!1,this.fragment&&this.fragment.update(),this.boundFragment&&this.boundFragment.update(),this.rendered&&this.updateDelegate())},e}(ih),Zu=function(t){function e(e){var n=e.template;n.a||(n.a={}),void 0!==n.a.value||"disabled"in n.a||(n.a.value=n.f||""),t.call(this,e),this.select=qn(this.parent||this.parentFragment,!1,"select")}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){if(!this.select)return void t.prototype.bind.call(this);var e=this.attributeByName.selected;if(e&&void 0!==this.select.getAttribute("value")){var n=this.attributes.indexOf(e);this.attributes.splice(n,1),delete this.attributeByName.selected}t.prototype.bind.call(this),this.select.options.push(this)},e.prototype.bubble=function(){var e=this.getAttribute("value");this.node&&this.node.value!==e&&(this.node._ractive.value=e),t.prototype.bubble.call(this)},e.prototype.getAttribute=function(t){var e=this.attributeByName[t];return e?e.getValue():"value"===t&&this.fragment?this.fragment.valueOf():void 0},e.prototype.isSelected=function(){var t=this.getAttribute("value");if(void 0===t||!this.select)return!1;var e=this.select.getAttribute("value");if(e==t)return!0;if(this.select.getAttribute("multiple")&&u(e))for(var n=e.length;n--;)if(e[n]==t)return!0},e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.attributeByName.value||(this.node._ractive.value=this.getAttribute("value"))},e.prototype.unbind=function(){t.prototype.unbind.call(this),this.select&&T(this.select.options,this)},e}(Au),Ju=function(t){function e(){t.apply(this,arguments)}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){this.refName=this.template.r;var e,n=this.refName?ar(this.ractive,this.refName,this.parentFragment)||null:null;n&&(this.named=!0,this.setTemplate(this.template.r,n)),n||(t.prototype.bind.call(this),this.model&&(e=this.model.get())&&"object"==typeof e&&("string"==typeof e.template||u(e.t))?(e.template?(this.source=e.template,e=cr(this.template.r,e.template,this.ractive)):this.source=e.t,this.setTemplate(this.template.r,e.t)):this.model&&"string"==typeof this.model.get()||!this.refName?this.setTemplate(this.model.get()):this.setTemplate(this.refName,n)),this.fragment=new Ip({owner:this,template:this.partialTemplate}).bind()},e.prototype.detach=function(){return this.fragment.detach()},e.prototype.find=function(t){return this.fragment.find(t)},e.prototype.findAll=function(t,e){this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment.findAllComponents(t,e)},e.prototype.firstNode=function(t){return this.fragment.firstNode(t)},e.prototype.forceResetTemplate=function(){var t=this;this.partialTemplate=void 0,this.refName&&(this.partialTemplate=ar(this.ractive,this.refName,this.parentFragment)),this.partialTemplate||(this.partialTemplate=ar(this.ractive,this.name,this.parentFragment)),this.partialTemplate||(w("Could not find template for partial '"+this.name+"'"),this.partialTemplate=[]),this.inAttribute?mi(function(){return t.fragment.resetTemplate(t.partialTemplate)}):this.fragment.resetTemplate(this.partialTemplate),this.bubble()},e.prototype.render=function(t,e){this.fragment.render(t,e)},e.prototype.setTemplate=function(t,e){this.name=t,e||null===e||(e=ar(this.ractive,t,this.parentFragment)),e||w("Could not find template for partial '"+t+"'"),this.partialTemplate=e||[]},e.prototype.toString=function(t){return this.fragment.toString(t)},e.prototype.unbind=function(){t.prototype.unbind.call(this),this.fragment.unbind()},e.prototype.unrender=function(t){this.fragment.unrender(t)},e.prototype.update=function(){var t;this.dirty&&(this.dirty=!1,this.named||(this.model&&(t=this.model.get()),t&&"string"==typeof t&&t!==this.name?(this.setTemplate(t),this.fragment.resetTemplate(this.partialTemplate)):t&&"object"==typeof t&&("string"==typeof t.template||u(t.t))&&t.t!==this.source&&t.template!==this.source&&(t.template?(this.source=t.template,t=cr(this.name,t.template,this.ractive)):this.source=t.t,this.setTemplate(this.name,t.t),this.fragment.resetTemplate(this.partialTemplate))),this.fragment.update())},e}(Tu),Xu=function(t){this.parent=t.owner.parentFragment,this.parentFragment=this,this.owner=t.owner,this.ractive=this.parent.ractive,this.cssIds="cssIds"in t?t.cssIds:this.parent?this.parent.cssIds:null,this.context=null,this.rendered=!1,this.iterations=[],this.template=t.template,this.indexRef=t.indexRef,this.keyRef=t.keyRef,this.pendingNewIndices=null,this.previousIterations=null,this.isArray=!1};Xu.prototype.bind=function(t){var e=this;this.context=t;var n=t.get();if(this.isArray=u(n)){this.iterations=[];for(var i=n.length,r=0;r<i;r+=1)e.iterations[r]=e.createIteration(r,r)}else if(c(n)){if(this.isArray=!1,this.indexRef){var o=this.indexRef.split(",");this.keyRef=o[0],this.indexRef=o[1]}this.iterations=Object.keys(n).map(function(t,n){return e.createIteration(t,n)})}return this},Xu.prototype.bubble=function(){this.owner.bubble()},Xu.prototype.createIteration=function(t,e){var n=new Ip({owner:this,template:this.template});n.key=t,n.index=e,n.isIteration=!0;var i=this.context.joinKey(t);return this.owner.template.z&&(n.aliases={},n.aliases[this.owner.template.z[0].n]=i),n.bind(i)},Xu.prototype.destroyed=function(){this.iterations.forEach(function(t){return t.destroyed()})},Xu.prototype.detach=function(){var e=t();return this.iterations.forEach(function(t){return e.appendChild(t.detach())}),e},Xu.prototype.find=function(t){var e,n=this,i=this.iterations.length;for(e=0;e<i;e+=1){var r=n.iterations[e].find(t);if(r)return r}},Xu.prototype.findAll=function(t,e){var n,i=this,r=this.iterations.length;for(n=0;n<r;n+=1)i.iterations[n].findAll(t,e)},Xu.prototype.findComponent=function(t){var e,n=this,i=this.iterations.length;for(e=0;e<i;e+=1){var r=n.iterations[e].findComponent(t);if(r)return r}},Xu.prototype.findAllComponents=function(t,e){var n,i=this,r=this.iterations.length;for(n=0;n<r;n+=1)i.iterations[n].findAllComponents(t,e)},Xu.prototype.findNextNode=function(t){var e=this;if(t.index<this.iterations.length-1)for(var n=t.index+1;n<e.iterations.length;n++){var i=e.iterations[n].firstNode(!0);if(i)return i}return this.owner.findNextNode()},Xu.prototype.firstNode=function(t){return this.iterations[0]?this.iterations[0].firstNode(t):null;
+},Xu.prototype.rebinding=function(t){var e=this;this.context=t,this.iterations.forEach(function(n){var i=t?t.joinKey(n.key||n.index):void 0;n.context=i,e.owner.template.z&&(n.aliases={},n.aliases[e.owner.template.z[0].n]=i)})},Xu.prototype.render=function(t,e){this.iterations&&this.iterations.forEach(function(n){return n.render(t,e)}),this.rendered=!0},Xu.prototype.shuffle=function(t){var e=this;this.pendingNewIndices||(this.previousIterations=this.iterations.slice()),this.pendingNewIndices||(this.pendingNewIndices=[]),this.pendingNewIndices.push(t);var n=[];t.forEach(function(t,i){if(t!==-1){var r=e.iterations[i];n[t]=r,t!==i&&r&&(r.dirty=!0)}}),this.iterations=n,this.bubble()},Xu.prototype.shuffled=function(){this.iterations.forEach(function(t){return t.shuffled()})},Xu.prototype.toString=function(t){return this.iterations?this.iterations.map(t?Rt:It).join(""):""},Xu.prototype.unbind=function(){return this.iterations.forEach(Bt),this},Xu.prototype.unrender=function(t){this.iterations.forEach(t?Pt:Kt),this.pendingNewIndices&&this.previousIterations&&this.previousIterations.forEach(function(e){e.rendered&&(t?Pt(e):Kt(e))}),this.rendered=!1},Xu.prototype.update=function(){var e=this;if(this.pendingNewIndices)return void this.updatePostShuffle();if(!this.updating){this.updating=!0;var n,i,r,o=this.context.get(),s=this.isArray,a=!0;if(this.isArray=u(o))s&&(a=!1,this.iterations.length>o.length&&(n=this.iterations.splice(o.length)));else if(c(o)&&!s)for(a=!1,n=[],i={},r=this.iterations.length;r--;){var h=e.iterations[r];h.key in o?i[h.key]=!0:(e.iterations.splice(r,1),n.push(h))}a&&(n=this.iterations,this.iterations=[]),n&&n.forEach(function(t){t.unbind(),t.unrender(!0)}),this.iterations.forEach(Mt);var p,l,d=u(o)?o.length:c(o)?Object.keys(o).length:0;if(d>this.iterations.length){if(p=this.rendered?t():null,r=this.iterations.length,u(o))for(;r<o.length;)l=e.createIteration(r,r),e.iterations.push(l),e.rendered&&l.render(p),r+=1;else if(c(o)){if(this.indexRef&&!this.keyRef){var f=this.indexRef.split(",");this.keyRef=f[0],this.indexRef=f[1]}Object.keys(o).forEach(function(t){i&&t in i||(l=e.createIteration(t,r),e.iterations.push(l),e.rendered&&l.render(p),r+=1)})}if(this.rendered){var m=this.parent.findParentNode(),v=this.parent.findNextNode(this.owner);m.insertBefore(p,v)}}this.updating=!1}},Xu.prototype.updatePostShuffle=function(){var e=this,n=this.pendingNewIndices[0];this.pendingNewIndices.slice(1).forEach(function(t){n.forEach(function(e,i){n[i]=t[e]})});var i,r=this.context.get().length,o=this.previousIterations.length,s={};n.forEach(function(t,n){var i=e.previousIterations[n];if(e.previousIterations[n]=null,t===-1)s[n]=i;else if(i.index!==t){var r=e.context.joinKey(t);i.index=t,i.context=r,e.owner.template.z&&(i.aliases={},i.aliases[e.owner.template.z[0].n]=r)}}),this.previousIterations.forEach(function(t,e){t&&(s[e]=t)});var a=this.rendered?t():null,h=this.rendered?this.parent.findParentNode():null,u="startIndex"in n;for(i=u?n.startIndex:0;i<r;i++){var p=e.iterations[i];p&&u?e.rendered&&(s[i]&&a.appendChild(s[i].detach()),a.childNodes.length&&h.insertBefore(a,p.firstNode())):(p||(e.iterations[i]=e.createIteration(i,i)),e.rendered&&(s[i]&&a.appendChild(s[i].detach()),p?a.appendChild(p.detach()):e.iterations[i].render(a)))}if(this.rendered){for(i=r;i<o;i++)s[i]&&a.appendChild(s[i].detach());a.childNodes.length&&h.insertBefore(a,this.owner.findNextNode())}Object.keys(s).forEach(function(t){return s[t].unbind().unrender(!0)}),this.iterations.forEach(Mt),this.pendingNewIndices=null,this.shuffled()};var tp,ep=function(e){function n(t){e.call(this,t),this.sectionType=t.template.n||null,this.templateSectionType=this.sectionType,this.subordinate=1===t.template.l,this.fragment=null}return n.prototype=Object.create(e&&e.prototype),n.prototype.constructor=n,n.prototype.bind=function(){e.prototype.bind.call(this),this.subordinate&&(this.sibling=this.parentFragment.items[this.parentFragment.items.indexOf(this)-1],this.sibling.nextSibling=this),this.model?(this.dirty=!0,this.update()):!this.sectionType||this.sectionType!==Ga||this.sibling&&this.sibling.isTruthy()||(this.fragment=new Ip({owner:this,template:this.template.f}).bind())},n.prototype.detach=function(){return this.fragment?this.fragment.detach():t()},n.prototype.find=function(t){if(this.fragment)return this.fragment.find(t)},n.prototype.findAll=function(t,e){this.fragment&&this.fragment.findAll(t,e)},n.prototype.findComponent=function(t){if(this.fragment)return this.fragment.findComponent(t)},n.prototype.findAllComponents=function(t,e){this.fragment&&this.fragment.findAllComponents(t,e)},n.prototype.firstNode=function(t){return this.fragment&&this.fragment.firstNode(t)},n.prototype.isTruthy=function(){if(this.subordinate&&this.sibling.isTruthy())return!0;var t=this.model?this.model.isRoot?this.model.value:this.model.get():void 0;return!(!t||this.templateSectionType!==Ja&&dr(t))},n.prototype.rebinding=function(t,n,i){e.prototype.rebinding.call(this,t,n,i)&&this.fragment&&this.sectionType!==$a&&this.sectionType!==Ga&&this.fragment.rebinding(t,n)},n.prototype.render=function(t,e){this.rendered=!0,this.fragment&&this.fragment.render(t,e)},n.prototype.shuffle=function(t){this.fragment&&this.sectionType===Ya&&this.fragment.shuffle(t)},n.prototype.toString=function(t){return this.fragment?this.fragment.toString(t):""},n.prototype.unbind=function(){e.prototype.unbind.call(this),this.fragment&&this.fragment.unbind()},n.prototype.unrender=function(t){this.rendered&&this.fragment&&this.fragment.unrender(t),this.rendered=!1},n.prototype.update=function(){if(this.dirty&&(this.fragment&&this.sectionType!==$a&&this.sectionType!==Ga&&(this.fragment.context=this.model),this.model||this.sectionType===Ga)){this.dirty=!1;var e=this.model?this.model.isRoot?this.model.value:this.model.get():void 0,n=!this.subordinate||!this.sibling.isTruthy(),i=this.sectionType;null!==this.sectionType&&null!==this.templateSectionType||(this.sectionType=fr(e,this.template.i)),i&&i!==this.sectionType&&this.fragment&&(this.rendered&&this.fragment.unbind().unrender(!0),this.fragment=null);var r,o=this.sectionType===Ya||this.sectionType===Za||n&&(this.sectionType===Ga?!this.isTruthy():this.isTruthy());if(o)if(this.fragment)this.fragment.update();else if(this.sectionType===Ya)r=new Xu({owner:this,template:this.template.f,indexRef:this.template.i}).bind(this.model);else{var s=this.sectionType!==$a&&this.sectionType!==Ga?this.model:null;r=new Ip({owner:this,template:this.template.f}).bind(s)}else this.fragment&&this.rendered&&this.fragment.unbind().unrender(!0),this.fragment=null;if(r){if(this.rendered){var a=this.parentFragment.findParentNode(),h=this.parentFragment.findNextNode(this);if(h){var u=t();r.render(u),h.parentNode.insertBefore(u,h)}else r.render(a)}this.fragment=r}this.nextSibling&&(this.nextSibling.dirty=!0,this.nextSibling.update())}},n}(Tu),np=function(t){function e(e){t.call(this,e),this.options=[]}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.foundNode=function(t){if(this.binding){var e=Ui(t);e.length>0&&(this.selectedOptions=e)}},e.prototype.render=function(e,n){t.prototype.render.call(this,e,n),this.sync();for(var i=this.node,r=i.options.length;r--;)i.options[r].defaultSelected=i.options[r].selected;this.rendered=!0},e.prototype.sync=function(){var t=this,e=this.node;if(e){var n=N(e.options);if(this.selectedOptions)return n.forEach(function(e){t.selectedOptions.indexOf(e)>=0?e.selected=!0:e.selected=!1}),this.binding.setFromNode(e),void delete this.selectedOptions;var i=this.getAttribute("value"),r=this.getAttribute("multiple");if(void 0!==i){var o;n.forEach(function(t){var e=t._ractive?t._ractive.value:t.value,n=r?mr(i,e):i==e;n&&(o=!0),t.selected=n}),o||r||this.binding&&this.binding.forceUpdate()}else this.binding&&this.binding.forceUpdate()}},e.prototype.update=function(){t.prototype.update.call(this),this.sync()},e}(Au),ip=function(t){function e(e){var n=e.template;e.deferContent=!0,t.call(this,e),this.attributeByName.value||(n.f&&Wi({template:n})?this.attributes.push(Cr({owner:this,template:{t:La,f:n.f,n:"value"},parentFragment:this.parentFragment})):this.fragment=new Ip({owner:this,cssIds:null,template:n.f}))}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bubble=function(){var t=this;this.dirty||(this.dirty=!0,this.rendered&&!this.binding&&this.fragment&&Jo.scheduleTask(function(){t.dirty=!1,t.node.value=t.fragment.toString()}),this.parentFragment.bubble())},e}(Su),rp=function(t){function e(e){t.call(this,e),this.type=Ba}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){},e.prototype.detach=function(){return n(this.node)},e.prototype.firstNode=function(){return this.node},e.prototype.render=function(t,e){if(!fi())if(this.rendered=!0,e){var n=e[0];n&&3===n.nodeType?(e.shift(),n.nodeValue!==this.template&&(n.nodeValue=this.template)):(n=this.node=io.createTextNode(this.template),e[0]?t.insertBefore(n,e[0]):t.appendChild(n)),this.node=n}else this.node=io.createTextNode(this.template),t.appendChild(this.node)},e.prototype.toString=function(t){return t?pi(this.template):this.template},e.prototype.unbind=function(){},e.prototype.unrender=function(t){this.rendered&&t&&this.detach(),this.rendered=!1},e.prototype.update=function(){},e.prototype.valueOf=function(){return this.template},e}(ih);if(ro){var op={},sp=so("div").style;tp=function(t){if(t=vr(t),!op[t])if(void 0!==sp[t])op[t]=t;else for(var e=t.charAt(0).toUpperCase()+t.substring(1),n=go.length;n--;){var i=go[n];if(void 0!==sp[i+e]){op[t]=i+e;break}}return op[t]}}else tp=null;var ap,hp=tp,up="hidden";if(io){var pp;if(up in io)pp="";else for(var lp=go.length;lp--;){var cp=go[lp];if(up=cp+"Hidden",up in io){pp=cp;break}}void 0!==pp?(io.addEventListener(pp+"visibilitychange",gr),gr()):("onfocusout"in io?(io.addEventListener("focusout",yr),io.addEventListener("focusin",br)):(no.addEventListener("pagehide",yr),no.addEventListener("blur",yr),no.addEventListener("pageshow",br),no.addEventListener("focus",br)),ap=!0)}var dp,fp=new RegExp("^-(?:"+go.join("|")+")-"),mp=new RegExp("^(?:"+go.join("|")+")([A-Z])");if(ro){var vp,gp,yp,bp,wp,kp,Ep=so("div").style,_p=function(t){return t},xp={},Op={};void 0!==Ep.transition?(vp="transition",gp="transitionend",yp=!0):void 0!==Ep.webkitTransition?(vp="webkitTransition",gp="webkitTransitionEnd",yp=!0):yp=!1,vp&&(bp=vp+"Duration",wp=vp+"Property",kp=vp+"TimingFunction"),dp=function(t,e,n,i,r){setTimeout(function(){function o(){clearTimeout(l)}function s(){u&&p&&(t.unregisterCompleteHandler(o),t.ractive.fire(t.name+":end",t.node,t.isIntro),r())}function a(t){var e=i.indexOf(vr(wr(t.propertyName)));e!==-1&&i.splice(e,1),i.length||(clearTimeout(l),h())}function h(){d[wp]=f.property,d[kp]=f.duration,d[bp]=f.timing,t.node.removeEventListener(gp,a,!1),p=!0,s()}var u,p,l,c=(t.node.namespaceURI||"")+t.node.tagName,d=t.node.style,f={property:d[wp],timing:d[kp],duration:d[bp]};d[wp]=i.map(hp).map(kr).join(","),d[kp]=kr(n.easing||"linear"),d[bp]=n.duration/1e3+"s",t.node.addEventListener(gp,a,!1),l=setTimeout(function(){i=[],h()},n.duration+(n.delay||0)+50),t.registerCompleteHandler(o),setTimeout(function(){for(var r,o,h,l,f,m,v=i.length,g=[];v--;)l=i[v],r=c+l,yp&&!Op[r]&&(d[hp(l)]=e[l],xp[r]||(o=t.getStyle(l),xp[r]=t.getStyle(l)!=e[l],Op[r]=!xp[r],Op[r]&&(d[hp(l)]=o))),yp&&!Op[r]||(void 0===o&&(o=t.getStyle(l)),h=i.indexOf(l),h===-1?b("Something very strange happened with transitions. Please raise an issue at https://github.com/ractivejs/ractive/issues - thanks!",{node:t.node}):i.splice(h,1),f=/[^\d]*$/.exec(e[l])[0],m=_(parseFloat(o),parseFloat(e[l]))||function(){return e[l]},g.push({name:hp(l),interpolator:m,suffix:f}));if(g.length){var y;"string"==typeof n.easing?(y=t.ractive.easing[n.easing],y||(w(Lo(n.easing,"easing")),y=_p)):y="function"==typeof n.easing?n.easing:_p,new Os({duration:n.duration,easing:y,step:function(e){for(var n=g.length;n--;){var i=g[n];t.node.style[i.name]=i.interpolator(e)+i.suffix}},complete:function(){u=!0,s()}})}else u=!0;i.length||(t.node.removeEventListener(gp,a,!1),p=!0,s())},0)},n.delay||0)}}else dp=null;var Cp=dp,jp=no&&(no.getComputedStyle||eo.getComputedStyle),Ap=$o.resolve(),Fp={t0:"intro-outro",t1:"intro",t2:"outro"},Tp=function(t){this.owner=t.owner||t.parentFragment.owner||qn(t.parentFragment),this.element=this.owner.attributeByName?this.owner:qn(t.parentFragment),this.ractive=this.owner.ractive,this.template=t.template,this.parentFragment=t.parentFragment,this.options=t,this.onComplete=[]};Tp.prototype.animateStyle=function(t,e,n){var i=this;if(4===arguments.length)throw new Error("t.animateStyle() returns a promise - use .then() instead of passing a callback");if(!ap)return this.setStyle(t,e),Ap;var r;return"string"==typeof t?(r={},r[t]=e):(r=t,n=e),n||(w('The "%s" transition does not supply an options object to `t.animateStyle()`. This will break in a future version of Ractive. For more info see https://github.com/RactiveJS/Ractive/issues/340',this.name),n=this),new $o(function(t){if(!n.duration)return i.setStyle(r),void t();for(var e=Object.keys(r),o=[],s=jp(i.owner.node),a=e.length;a--;){var h=e[a],u=s[hp(h)];"0px"===u&&(u=0),u!=r[h]&&(o.push(h),i.owner.node.style[hp(h)]=u)}return o.length?void Cp(i,r,n,o,t):void t()})},Tp.prototype.bind=function(){var t=this,e=this.options;e.template&&("t0"!==e.template.v&&"t1"!=e.template.v||(this.element._introTransition=this),"t0"!==e.template.v&&"t2"!=e.template.v||(this.element._outroTransition=this),this.eventName=Fp[e.template.v]);var n=this.owner.ractive;if(e.name)this.name=e.name;else{var i=e.template.f;if("string"==typeof i.n&&(i=i.n),"string"!=typeof i){var r=new Ip({owner:this.owner,template:i.n}).bind();if(i=r.toString(),r.unbind(),""===i)return}this.name=i}if(e.params)this.params=e.params;else if(e.template.f.a&&!e.template.f.a.s)this.params=e.template.f.a;else if(e.template.f.d){var o=new Ip({owner:this.owner,template:e.template.f.d}).bind();this.params=o.getArgsList(),o.unbind()}"function"==typeof this.name?(this._fn=this.name,this.name=this._fn.name):this._fn=k("transitions",n,this.name),this._fn||w(Lo(this.name,"transition"),{ractive:n}),e.template&&this.template.f.a&&this.template.f.a.s&&(this.resolvers=[],this.models=this.template.f.a.r.map(function(e,n){var i,r=$t(t.parentFragment,e);return r?r.register(t):(i=t.parentFragment.resolve(e,function(e){t.models[n]=e,T(t.resolvers,i),e.register(t)}),t.resolvers.push(i)),r}),this.argsFn=gn(this.template.f.a.s,this.template.f.a.r.length))},Tp.prototype.destroyed=function(){},Tp.prototype.getStyle=function(t){var e=jp(this.owner.node);if("string"==typeof t){var n=e[hp(t)];return"0px"===n?0:n}if(!u(t))throw new Error("Transition$getStyle must be passed a string, or an array of strings representing CSS properties");for(var i={},r=t.length;r--;){var o=t[r],s=e[hp(o)];"0px"===s&&(s=0),i[o]=s}return i},Tp.prototype.processParams=function(t,e){return"number"==typeof t?t={duration:t}:"string"==typeof t?t="slow"===t?{duration:600}:"fast"===t?{duration:200}:{duration:400}:t||(t={}),a({},e,t)},Tp.prototype.rebinding=function(t,e){var n=this.models.indexOf(e);~n&&(t=qt(this.template.f.a.r[n],t,e),t!==e&&(e.unregister(this),this.models.splice(n,1,t),t&&t.addShuffleRegister(this,"mark")))},Tp.prototype.registerCompleteHandler=function(t){O(this.onComplete,t)},Tp.prototype.render=function(){},Tp.prototype.setStyle=function(t,e){if("string"==typeof t)this.owner.node.style[hp(t)]=e;else{var n;for(n in t)t.hasOwnProperty(n)&&(this.owner.node.style[hp(n)]=t[n])}return this},Tp.prototype.start=function(){var t,e=this,n=this.node=this.element.node,i=n.getAttribute("style"),r=this.params;if(this.complete=function(r){t||(e.onComplete.forEach(function(t){return t()}),!r&&e.isIntro&&Er(n,i),e._manager.remove(e),t=!0)},!this._fn)return void this.complete();if(this.argsFn){var o=this.models.map(function(t){if(t)return t.get()});r=this.argsFn.apply(this.ractive,o)}var s=this._fn.apply(this.ractive,[this].concat(r));s&&s.then(this.complete)},Tp.prototype.toString=function(){return""},Tp.prototype.unbind=function(){this.resolvers&&this.resolvers.forEach(Bt)},Tp.prototype.unregisterCompleteHandler=function(t){T(this.onComplete,t)},Tp.prototype.unrender=function(){},Tp.prototype.update=function(){};var Np,Sp,Vp={};try{so("table").innerHTML="foo"}catch(t){Np=!0,Sp={TABLE:['<table class="x">',"</table>"],THEAD:['<table><thead class="x">',"</thead></table>"],TBODY:['<table><tbody class="x">',"</tbody></table>"],TR:['<table><tr class="x">',"</tr></table>"],SELECT:['<select class="x">',"</select>"]}}var Bp=function(e){function i(t){e.call(this,t)}return i.prototype=Object.create(e&&e.prototype),i.prototype.constructor=i,i.prototype.detach=function(){var e=t();return this.nodes.forEach(function(t){return e.appendChild(t)}),e},i.prototype.find=function(t){var e,n=this,i=this.nodes.length;for(e=0;e<i;e+=1){var r=n.nodes[e];if(1===r.nodeType){if(ao(r,t))return r;var o=r.querySelector(t);if(o)return o}}return null},i.prototype.findAll=function(t,e){var n,i=this,r=this.nodes.length;for(n=0;n<r;n+=1){var o=i.nodes[n];if(1===o.nodeType){e.test(o)&&e.add(o);var s=o.querySelectorAll(t);if(s){var a,h=s.length;for(a=0;a<h;a+=1)e.add(s[a])}}}},i.prototype.findComponent=function(){return null},i.prototype.firstNode=function(){return this.nodes[0]},i.prototype.render=function(t){var e=this.model?this.model.get():"";this.nodes=_r(e,this.parentFragment.findParentNode(),t),this.rendered=!0},i.prototype.toString=function(){return this.model&&null!=this.model.get()?ui(""+this.model.get()):""},i.prototype.unrender=function(){this.nodes&&this.nodes.forEach(function(t){return n(t)}),this.rendered=!1},i.prototype.update=function(){if(this.rendered&&this.dirty){this.dirty=!1,this.unrender();var e=t();this.render(e);var n=this.parentFragment.findParentNode(),i=this.parentFragment.findNextNode(this);n.insertBefore(e,i)}else this.dirty=!1},i}(Tu),Kp=function(t){function e(e){t.call(this,e),this.container=e.parentFragment.ractive,this.component=this.container.component,this.containerFragment=e.parentFragment,this.parentFragment=this.component.parentFragment,this.name=e.template.n||""}return e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.bind=function(){var t=this.name;(this.component.yielders[t]||(this.component.yielders[t]=[])).push(this);var e=this.container._inlinePartials[t||"content"];"string"==typeof e&&(e=fa(e).t),e||(b('Could not find template for partial "'+t+'"',{ractive:this.ractive}),e=[]),this.fragment=new Ip({owner:this,ractive:this.container.parent,template:e}).bind()},e.prototype.bubble=function(){this.dirty||(this.containerFragment.bubble(),this.dirty=!0)},e.prototype.detach=function(){return this.fragment.detach()},e.prototype.find=function(t){return this.fragment.find(t)},e.prototype.findAll=function(t,e){this.fragment.findAll(t,e)},e.prototype.findComponent=function(t){return this.fragment.findComponent(t)},e.prototype.findAllComponents=function(t,e){this.fragment.findAllComponents(t,e)},e.prototype.findNextNode=function(){return this.containerFragment.findNextNode(this)},e.prototype.firstNode=function(t){return this.fragment.firstNode(t)},e.prototype.render=function(t,e){return this.fragment.render(t,e)},e.prototype.setTemplate=function(t){var e=this.parentFragment.ractive.partials[t];"string"==typeof e&&(e=fa(e).t),this.partialTemplate=e||[]},e.prototype.toString=function(t){return this.fragment.toString(t)},e.prototype.unbind=function(){this.fragment.unbind(),T(this.component.yielders[this.name],this)},e.prototype.unrender=function(t){this.fragment.unrender(t)},e.prototype.update=function(){this.dirty=!1,this.fragment.update()},e}(ih),Pp={};Pp[Ha]=hh,Pp[qa]=pu,Pp[Ka]=Nu,Pp[Ra]=Ju,Pp[Ma]=ep,Pp[Pa]=Bp,Pp[Ua]=Kp,Pp[La]=Ch,Pp[nh]=jh,Pp[th]=uu,Pp[Xa]=ou,Pp[eh]=Tp;var Mp={doctype:pu,form:Fu,input:Su,option:Zu,select:np,textarea:ip},Ip=function(t){this.owner=t.owner,this.isRoot=!t.owner.parentFragment,this.parent=this.isRoot?null:this.owner.parentFragment,this.ractive=t.ractive||(this.isRoot?t.owner:this.parent.ractive),this.componentParent=this.isRoot&&this.ractive.component?this.ractive.component.parentFragment:null,this.context=null,this.rendered=!1,this.cssIds="cssIds"in t?t.cssIds:this.parent?this.parent.cssIds:null,this.resolvers=[],this.dirty=!1,this.dirtyArgs=this.dirtyValue=!0,this.template=t.template||[],this.createItems()};Ip.prototype.bind=function(t){return this.context=t,this.items.forEach(Ct),this.bound=!0,this.dirty&&this.update(),this},Ip.prototype.bubble=function(){this.dirtyArgs=this.dirtyValue=!0,this.dirty||(this.dirty=!0,this.isRoot?this.ractive.component?this.ractive.component.bubble():this.bound&&Jo.addFragment(this):this.owner.bubble())},Ip.prototype.createItems=function(){var t=this,e=this.template.length;this.items=[];for(var n=0;n<e;n++)t.items[n]=Cr({parentFragment:t,template:t.template[n],index:n})},Ip.prototype.destroyed=function(){this.items.forEach(function(t){return t.destroyed()})},Ip.prototype.detach=function(){var e=t();return this.items.forEach(function(t){return e.appendChild(t.detach())}),e},Ip.prototype.find=function(t){var e,n=this,i=this.items.length;for(e=0;e<i;e+=1){var r=n.items[e].find(t);if(r)return r}},Ip.prototype.findAll=function(t,e){var n=this;if(this.items){var i,r=this.items.length;for(i=0;i<r;i+=1){var o=n.items[i];o.findAll&&o.findAll(t,e)}}return e},Ip.prototype.findComponent=function(t){var e,n=this,i=this.items.length;for(e=0;e<i;e+=1){var r=n.items[e].findComponent(t);if(r)return r}},Ip.prototype.findAllComponents=function(t,e){var n=this;if(this.items){var i,r=this.items.length;for(i=0;i<r;i+=1){var o=n.items[i];o.findAllComponents&&o.findAllComponents(t,e)}}return e},Ip.prototype.findContext=function(){for(var t=this;t&&!t.context;)t=t.parent;return t?t.context:this.ractive.viewmodel},Ip.prototype.findNextNode=function(t){var e=this;if(t)for(var n=t.index+1;n<e.items.length;n++)if(e.items[n]){var i=e.items[n].firstNode(!0);if(i)return i}return this.isRoot?this.ractive.component?this.ractive.component.parentFragment.findNextNode(this.ractive.component):null:this.parent?this.owner.findNextNode(this):void 0},Ip.prototype.findParentNode=function(){var t=this;do{if(t.owner.type===Ia)return t.owner.node;if(t.isRoot&&!t.ractive.component)return t.ractive.el;t=t.owner.type===Ua?t.owner.containerFragment:t.componentParent||t.parent}while(t);throw new Error("Could not find parent node")},Ip.prototype.findRepeatingFragment=function(){for(var t=this;(t.parent||t.componentParent)&&!t.isIteration;)t=t.parent||t.componentParent;return t},Ip.prototype.firstNode=function(t){for(var e,n=this,i=0;i<n.items.length;i++)if(e=n.items[i].firstNode(!0))return e;return t?null:this.parent.findNextNode(this.owner)},Ip.prototype.getArgsList=function(){if(this.dirtyArgs){var t={},e=jr(this.items,t,this.ractive._guid),n=or("["+e+"]",t);this.argsList=n?n.value:[this.toString()],this.dirtyArgs=!1}return this.argsList},Ip.prototype.rebinding=function(t){this.context=t},Ip.prototype.render=function(t,e){if(this.rendered)throw new Error("Fragment is already rendered!");this.rendered=!0,this.items.forEach(function(n){return n.render(t,e)})},Ip.prototype.resetTemplate=function(e){var n=this.bound,i=this.rendered;if(n&&(i&&this.unrender(!0),this.unbind()),this.template=e,this.createItems(),n&&(this.bind(this.context),i)){var r=this.findParentNode(),o=this.findNextNode();if(o){var s=t();this.render(s),r.insertBefore(s,o)}else this.render(r)}},Ip.prototype.resolve=function(t,e){if(!this.context&&this.parent.resolve)return this.parent.resolve(t,e);var n=new qs(this,t,e);return this.resolvers.push(n),n},Ip.prototype.shuffled=function(){this.items.forEach(function(t){return t.shuffled()})},Ip.prototype.toHtml=function(){return this.toString()},Ip.prototype.toString=function(t){return this.items.map(t?Rt:It).join("")},Ip.prototype.unbind=function(){return this.items.forEach(Bt),this.bound=!1,this},Ip.prototype.unrender=function(t){this.items.forEach(t?Ar:Kt),this.rendered=!1},Ip.prototype.update=function(){this.dirty&&(this.updating?this.isRoot&&Jo.addFragmentToRoot(this):(this.dirty=!1,this.updating=!0,this.items.forEach(Mt),this.updating=!1))},Ip.prototype.valueOf=function(){if(1===this.items.length)return this.items[0].valueOf();if(this.dirtyValue){var t={},e=jr(this.items,t,this.ractive._guid),n=or(e,t);this.value=n?n.value:this.toString(),this.dirtyValue=!1}return this.value};var Rp=Xt("reverse").path,Lp=Xt("shift").path,Dp=Xt("sort").path,Up=Xt("splice").path,qp=new qo("teardown"),Hp=new qo("unrender"),Wp=Xt("unshift").path,Qp={add:Z,animate:tt,detach:et,find:nt,findAll:at,findAllComponents:ht,findComponent:ut,findContainer:pt,findParent:lt,fire:wt,get:Gt,getNodeInfo:Ie,insert:Re,link:De,merge:ne,observe:Ue,observeList:He,observeOnce:Qe,off:Ge,on:Ye,once:Ze,pop:$s,push:Gs,render:nn,reset:Pn,resetPartial:Rn,resetTemplate:Fr,reverse:Rp,set:Tr,shift:Lp,sort:Dp,splice:Up,subtract:Nr,teardown:Sr,toggle:Vr,toCSS:Br,toCss:Br,toHTML:Kr,toHtml:Kr,toText:Pr,transition:Mr,unlink:Ir,unrender:Rr,unshift:Wp,update:re,updateModel:Lr},zp="function";if(typeof Date.now!==zp||typeof String.prototype.trim!==zp||typeof Object.keys!==zp||typeof Array.prototype.indexOf!==zp||typeof Array.prototype.forEach!==zp||typeof Array.prototype.map!==zp||typeof Array.prototype.filter!==zp||no&&typeof no.addEventListener!==zp)throw new Error("It looks like you're attempting to use Ractive.js in an older browser. You'll need to use one of the 'legacy builds' in order to continue - see http://docs.ractivejs.org/latest/legacy-builds for more information.");return a(Zr.prototype,Qp,Xr),Zr.prototype.constructor=Zr,Zr.defaults=Zr.prototype,jo(Zr,{DEBUG:{writable:!0,value:!0},DEBUG_PROMISES:{writable:!0,value:!0},extend:{value:zr},escapeKey:{value:U},getNodeInfo:{value:Me},joinKeys:{value:Gr},parse:{value:fa},splitKeypath:{value:Yr},unescapeKey:{value:W},getCSS:{value:tn},Promise:{value:$o},enhance:{writable:!0,value:!1},svg:{value:vo},magic:{value:Jr},VERSION:{value:"0.8.7"},adaptors:{writable:!0,value:{}},components:{writable:!0,value:{}},decorators:{writable:!0,value:{}},easing:{writable:!0,value:to},events:{writable:!0,value:{}},interpolators:{writable:!0,value:Do},partials:{writable:!0,value:{}},transitions:{writable:!0,value:{}}}),Zr});
+//# sourceMappingURL=ractive.runtime.min.js.map