aboutsummaryrefslogtreecommitdiffhomepage
path: root/public/bower_components/inputmask
diff options
context:
space:
mode:
authorMarvin Borner2018-07-13 19:06:45 +0200
committerMarvin Borner2018-07-13 19:06:45 +0200
commit6fcfb7c04d32e1c8b26a312295bf7ac3ec2d2ad7 (patch)
treedbc87ef16fa01d5d99116de283592b8fe5e02944 /public/bower_components/inputmask
parentdfd839f27146df0ad0494e11734fc7d310c70ebf (diff)
Fixed many permissions and began admin interface
Diffstat (limited to 'public/bower_components/inputmask')
-rw-r--r--public/bower_components/inputmask/.bower.json58
-rw-r--r--public/bower_components/inputmask/bower.json40
-rw-r--r--public/bower_components/inputmask/dist/inputmask/bindings/inputmask.binding.js21
-rw-r--r--public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js62
-rw-r--r--public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js13
-rw-r--r--public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js133
-rw-r--r--public/bower_components/inputmask/dist/inputmask/global/document.js11
-rw-r--r--public/bower_components/inputmask/dist/inputmask/global/window.js11
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.date.extensions.js480
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.extensions.js97
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.js1625
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.numeric.extensions.js339
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.phone.extensions.js59
-rw-r--r--public/bower_components/inputmask/dist/inputmask/inputmask.regex.extensions.js110
-rw-r--r--public/bower_components/inputmask/dist/inputmask/jquery.inputmask.js62
-rw-r--r--public/bower_components/inputmask/dist/inputmask/phone-codes/phone-be.js244
-rw-r--r--public/bower_components/inputmask/dist/inputmask/phone-codes/phone-nl.js924
-rw-r--r--public/bower_components/inputmask/dist/inputmask/phone-codes/phone-ru.js19240
-rw-r--r--public/bower_components/inputmask/dist/inputmask/phone-codes/phone-uk.js1009
-rw-r--r--public/bower_components/inputmask/dist/inputmask/phone-codes/phone.js2111
-rw-r--r--public/bower_components/inputmask/dist/jquery.inputmask.bundle.js3055
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.date.extensions.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.extensions.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/inputmask/jquery.inputmask.min.js9
-rw-r--r--public/bower_components/inputmask/dist/min/jquery.inputmask.bundle.min.js9
29 files changed, 29776 insertions, 0 deletions
diff --git a/public/bower_components/inputmask/.bower.json b/public/bower_components/inputmask/.bower.json
new file mode 100644
index 0000000..93849cc
--- /dev/null
+++ b/public/bower_components/inputmask/.bower.json
@@ -0,0 +1,58 @@
+{
+ "name": "inputmask",
+ "version": "3.3.11",
+ "main": [
+ "./dist/inputmask/inputmask.js",
+ "./dist/inputmask/inputmask.extensions.js",
+ "./dist/inputmask/inputmask.date.extensions.js",
+ "./dist/inputmask/inputmask.numeric.extensions.js",
+ "./dist/inputmask/inputmask.phone.extensions.js",
+ "./dist/inputmask/jquery.inputmask.js",
+ "./dist/inputmask/global/document.js",
+ "./dist/inputmask/global/window.js",
+ "./dist/inputmask/phone-codes/phone.js",
+ "./dist/inputmask/phone-codes/phone-be.js",
+ "./dist/inputmask/phone-codes/phone-nl.js",
+ "./dist/inputmask/phone-codes/phone-ru.js",
+ "./dist/inputmask/phone-codes/phone-uk.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js",
+ "./dist/inputmask/bindings/inputmask.binding.js"
+ ],
+ "keywords": [
+ "jquery",
+ "plugins",
+ "input",
+ "form",
+ "inputmask",
+ "mask"
+ ],
+ "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.",
+ "license": "http://opensource.org/licenses/mit-license.php",
+ "ignore": [
+ "**/*",
+ "!dist/*",
+ "!dist/inputmask/*",
+ "!dist/min/*",
+ "!dist/min/inputmask/*"
+ ],
+ "dependencies": {
+ "jquery": ">=1.7"
+ },
+ "authors": [
+ {
+ "name": "Robin Herbots"
+ }
+ ],
+ "homepage": "http://robinherbots.github.io/Inputmask",
+ "_release": "3.3.11",
+ "_resolution": {
+ "type": "version",
+ "tag": "3.3.11",
+ "commit": "506b28902803e0aa983089658d4a74e8727d816b"
+ },
+ "_source": "https://github.com/RobinHerbots/jquery.inputmask.git",
+ "_target": "^3.3.7",
+ "_originalSource": "jquery.inputmask"
+} \ No newline at end of file
diff --git a/public/bower_components/inputmask/bower.json b/public/bower_components/inputmask/bower.json
new file mode 100644
index 0000000..2d9d1d4
--- /dev/null
+++ b/public/bower_components/inputmask/bower.json
@@ -0,0 +1,40 @@
+{
+ "name": "inputmask",
+ "version": "3.3.11",
+ "main": [
+ "./dist/inputmask/inputmask.js",
+ "./dist/inputmask/inputmask.extensions.js",
+ "./dist/inputmask/inputmask.date.extensions.js",
+ "./dist/inputmask/inputmask.numeric.extensions.js",
+ "./dist/inputmask/inputmask.phone.extensions.js",
+ "./dist/inputmask/jquery.inputmask.js",
+ "./dist/inputmask/global/document.js",
+ "./dist/inputmask/global/window.js",
+ "./dist/inputmask/phone-codes/phone.js",
+ "./dist/inputmask/phone-codes/phone-be.js",
+ "./dist/inputmask/phone-codes/phone-nl.js",
+ "./dist/inputmask/phone-codes/phone-ru.js",
+ "./dist/inputmask/phone-codes/phone-uk.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js",
+ "./dist/inputmask/dependencyLibs/inputmask.dependencyLib.js",
+ "./dist/inputmask/bindings/inputmask.binding.js"
+ ],
+ "keywords": ["jquery", "plugins", "input", "form", "inputmask", "mask"],
+ "description": "Inputmask is a javascript library which creates an input mask. Inputmask can run against vanilla javascript, jQuery and jqlite.",
+ "license": "http://opensource.org/licenses/mit-license.php",
+ "ignore": [
+ "**/*",
+ "!dist/*",
+ "!dist/inputmask/*",
+ "!dist/min/*",
+ "!dist/min/inputmask/*"
+ ],
+ "dependencies": {
+ "jquery": ">=1.7"
+ },
+ "authors": [{
+ "name": "Robin Herbots"
+ }],
+ "homepage": "http://robinherbots.github.io/Inputmask"
+}
diff --git a/public/bower_components/inputmask/dist/inputmask/bindings/inputmask.binding.js b/public/bower_components/inputmask/dist/inputmask/bindings/inputmask.binding.js
new file mode 100644
index 0000000..04844ff
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/bindings/inputmask.binding.js
@@ -0,0 +1,21 @@
+/*!
+* bindings/inputmask.binding.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "jquery", "../inputmask", "../global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("../inputmask"), require("../global/document")) : factory(jQuery, window.Inputmask, document);
+}(function($, Inputmask, document) {
+ $(document).ajaxComplete(function(event, xmlHttpRequest, ajaxOptions) {
+ -1 !== $.inArray("html", ajaxOptions.dataTypes) && $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias]").each(function(ndx, lmnt) {
+ void 0 === lmnt.inputmask && Inputmask().mask(lmnt);
+ });
+ }).ready(function() {
+ $(".inputmask, [data-inputmask], [data-inputmask-mask], [data-inputmask-alias]").each(function(ndx, lmnt) {
+ void 0 === lmnt.inputmask && Inputmask().mask(lmnt);
+ });
+ });
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
new file mode 100644
index 0000000..67c8512
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jqlite.js
@@ -0,0 +1,62 @@
+/*!
+* dependencyLibs/inputmask.dependencyLib.jqlite.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "jqlite", "../global/window", "../global/document]" ], factory) : "object" == typeof exports ? module.exports = factory(require("jqlite"), require("../global/window"), require("../global/document")) : window.dependencyLib = factory(jqlite, window, document);
+}(function($, window, document) {
+ function indexOf(list, elem) {
+ for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;
+ return -1;
+ }
+ function type(obj) {
+ return null == obj ? obj + "" : "object" == typeof obj || "function" == typeof obj ? class2type[class2type.toString.call(obj)] || "object" : typeof obj;
+ }
+ function isWindow(obj) {
+ return null != obj && obj === obj.window;
+ }
+ function isArraylike(obj) {
+ var length = "length" in obj && obj.length, ltype = type(obj);
+ return "function" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || ("array" === ltype || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj));
+ }
+ for (var class2type = {}, classTypes = "Boolean Number String Function Array Date RegExp Object Error".split(" "), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type["[object " + classTypes[nameNdx] + "]"] = classTypes[nameNdx].toLowerCase();
+ return $.inArray = function(elem, arr, i) {
+ return null == arr ? -1 : indexOf(arr, elem);
+ }, $.isFunction = function(obj) {
+ return "function" === type(obj);
+ }, $.isArray = Array.isArray, $.isPlainObject = function(obj) {
+ return "object" === type(obj) && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf"));
+ }, $.extend = function() {
+ var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
+ for ("boolean" == typeof target && (deep = target, target = arguments[i] || {},
+ i++), "object" == typeof target || $.isFunction(target) || (target = {}), i === length && (target = this,
+ i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name],
+ target !== (copy = options[name]) && (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1,
+ clone = src && $.isArray(src) ? src : []) : clone = src && $.isPlainObject(src) ? src : {},
+ target[name] = $.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
+ return target;
+ }, $.each = function(obj, callback) {
+ var i = 0;
+ if (isArraylike(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;
+ return obj;
+ }, $.map = function(elems, callback) {
+ var value, i = 0, length = elems.length, ret = [];
+ if (isArraylike(elems)) for (;i < length; i++) null != (value = callback(elems[i], i)) && ret.push(value); else for (i in elems) null != (value = callback(elems[i], i)) && ret.push(value);
+ return [].concat(ret);
+ }, $.data = function(elem, name, data) {
+ return $(elem).data(name, data);
+ }, $.Event = $.Event || function(event, params) {
+ params = params || {
+ bubbles: !1,
+ cancelable: !1,
+ detail: void 0
+ };
+ var evt = document.createEvent("CustomEvent");
+ return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail),
+ evt;
+ }, $.Event.prototype = window.Event.prototype, $;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js
new file mode 100644
index 0000000..a9534dc
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.jquery.js
@@ -0,0 +1,13 @@
+/*!
+* dependencyLibs/inputmask.dependencyLib.jquery.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "jquery" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery")) : window.dependencyLib = factory(jQuery);
+}(function($) {
+ return $;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js
new file mode 100644
index 0000000..3916874
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/dependencyLibs/inputmask.dependencyLib.js
@@ -0,0 +1,133 @@
+/*!
+* dependencyLibs/inputmask.dependencyLib.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../global/window", "../global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("../global/window"), require("../global/document")) : window.dependencyLib = factory(window, document);
+}(function(window, document) {
+ function indexOf(list, elem) {
+ for (var i = 0, len = list.length; i < len; i++) if (list[i] === elem) return i;
+ return -1;
+ }
+ function type(obj) {
+ return null == obj ? obj + "" : "object" == typeof obj || "function" == typeof obj ? class2type[class2type.toString.call(obj)] || "object" : typeof obj;
+ }
+ function isWindow(obj) {
+ return null != obj && obj === obj.window;
+ }
+ function isArraylike(obj) {
+ var length = "length" in obj && obj.length, ltype = type(obj);
+ return "function" !== ltype && !isWindow(obj) && (!(1 !== obj.nodeType || !length) || ("array" === ltype || 0 === length || "number" == typeof length && length > 0 && length - 1 in obj));
+ }
+ function isValidElement(elem) {
+ return elem instanceof Element;
+ }
+ function DependencyLib(elem) {
+ return elem instanceof DependencyLib ? elem : this instanceof DependencyLib ? void (void 0 !== elem && null !== elem && elem !== window && (this[0] = elem.nodeName ? elem : void 0 !== elem[0] && elem[0].nodeName ? elem[0] : document.querySelector(elem),
+ void 0 !== this[0] && null !== this[0] && (this[0].eventRegistry = this[0].eventRegistry || {}))) : new DependencyLib(elem);
+ }
+ for (var class2type = {}, classTypes = "Boolean Number String Function Array Date RegExp Object Error".split(" "), nameNdx = 0; nameNdx < classTypes.length; nameNdx++) class2type["[object " + classTypes[nameNdx] + "]"] = classTypes[nameNdx].toLowerCase();
+ return DependencyLib.prototype = {
+ on: function(events, handler) {
+ if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) {
+ var nsEvent = _events[endx].split(".");
+ !function(ev, namespace) {
+ elem.addEventListener ? elem.addEventListener(ev, handler, !1) : elem.attachEvent && elem.attachEvent("on" + ev, handler),
+ eventRegistry[ev] = eventRegistry[ev] || {}, eventRegistry[ev][namespace] = eventRegistry[ev][namespace] || [],
+ eventRegistry[ev][namespace].push(handler);
+ }(nsEvent[0], nsEvent[1] || "global");
+ }
+ return this;
+ },
+ off: function(events, handler) {
+ if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = events.split(" "), endx = 0; endx < _events.length; endx++) for (var nsEvent = _events[endx].split("."), offEvents = function(ev, namespace) {
+ var hndx, hndL, evts = [];
+ if (ev.length > 0) if (void 0 === handler) for (hndx = 0, hndL = eventRegistry[ev][namespace].length; hndx < hndL; hndx++) evts.push({
+ ev: ev,
+ namespace: namespace && namespace.length > 0 ? namespace : "global",
+ handler: eventRegistry[ev][namespace][hndx]
+ }); else evts.push({
+ ev: ev,
+ namespace: namespace && namespace.length > 0 ? namespace : "global",
+ handler: handler
+ }); else if (namespace.length > 0) for (var evNdx in eventRegistry) for (var nmsp in eventRegistry[evNdx]) if (nmsp === namespace) if (void 0 === handler) for (hndx = 0,
+ hndL = eventRegistry[evNdx][nmsp].length; hndx < hndL; hndx++) evts.push({
+ ev: evNdx,
+ namespace: nmsp,
+ handler: eventRegistry[evNdx][nmsp][hndx]
+ }); else evts.push({
+ ev: evNdx,
+ namespace: nmsp,
+ handler: handler
+ });
+ return evts;
+ }(nsEvent[0], nsEvent[1]), i = 0, offEventsL = offEvents.length; i < offEventsL; i++) !function(ev, namespace, handler) {
+ if (ev in eventRegistry == 1) if (elem.removeEventListener ? elem.removeEventListener(ev, handler, !1) : elem.detachEvent && elem.detachEvent("on" + ev, handler),
+ "global" === namespace) for (var nmsp in eventRegistry[ev]) eventRegistry[ev][nmsp].splice(eventRegistry[ev][nmsp].indexOf(handler), 1); else eventRegistry[ev][namespace].splice(eventRegistry[ev][namespace].indexOf(handler), 1);
+ }(offEvents[i].ev, offEvents[i].namespace, offEvents[i].handler);
+ return this;
+ },
+ trigger: function(events) {
+ if (isValidElement(this[0])) for (var eventRegistry = this[0].eventRegistry, elem = this[0], _events = "string" == typeof events ? events.split(" ") : [ events.type ], endx = 0; endx < _events.length; endx++) {
+ var nsEvent = _events[endx].split("."), ev = nsEvent[0], namespace = nsEvent[1] || "global";
+ if (void 0 !== document && "global" === namespace) {
+ var evnt, i, params = {
+ bubbles: !0,
+ cancelable: !0,
+ detail: Array.prototype.slice.call(arguments, 1)
+ };
+ if (document.createEvent) {
+ try {
+ evnt = new CustomEvent(ev, params);
+ } catch (e) {
+ (evnt = document.createEvent("CustomEvent")).initCustomEvent(ev, params.bubbles, params.cancelable, params.detail);
+ }
+ events.type && DependencyLib.extend(evnt, events), elem.dispatchEvent(evnt);
+ } else (evnt = document.createEventObject()).eventType = ev, events.type && DependencyLib.extend(evnt, events),
+ elem.fireEvent("on" + evnt.eventType, evnt);
+ } else if (void 0 !== eventRegistry[ev]) if (arguments[0] = arguments[0].type ? arguments[0] : DependencyLib.Event(arguments[0]),
+ "global" === namespace) for (var nmsp in eventRegistry[ev]) for (i = 0; i < eventRegistry[ev][nmsp].length; i++) eventRegistry[ev][nmsp][i].apply(elem, arguments); else for (i = 0; i < eventRegistry[ev][namespace].length; i++) eventRegistry[ev][namespace][i].apply(elem, arguments);
+ }
+ return this;
+ }
+ }, DependencyLib.isFunction = function(obj) {
+ return "function" === type(obj);
+ }, DependencyLib.noop = function() {}, DependencyLib.isArray = Array.isArray, DependencyLib.inArray = function(elem, arr, i) {
+ return null == arr ? -1 : indexOf(arr, elem);
+ }, DependencyLib.valHooks = void 0, DependencyLib.isPlainObject = function(obj) {
+ return "object" === type(obj) && !obj.nodeType && !isWindow(obj) && !(obj.constructor && !class2type.hasOwnProperty.call(obj.constructor.prototype, "isPrototypeOf"));
+ }, DependencyLib.extend = function() {
+ var options, name, src, copy, copyIsArray, clone, target = arguments[0] || {}, i = 1, length = arguments.length, deep = !1;
+ for ("boolean" == typeof target && (deep = target, target = arguments[i] || {},
+ i++), "object" == typeof target || DependencyLib.isFunction(target) || (target = {}),
+ i === length && (target = this, i--); i < length; i++) if (null != (options = arguments[i])) for (name in options) src = target[name],
+ target !== (copy = options[name]) && (deep && copy && (DependencyLib.isPlainObject(copy) || (copyIsArray = DependencyLib.isArray(copy))) ? (copyIsArray ? (copyIsArray = !1,
+ clone = src && DependencyLib.isArray(src) ? src : []) : clone = src && DependencyLib.isPlainObject(src) ? src : {},
+ target[name] = DependencyLib.extend(deep, clone, copy)) : void 0 !== copy && (target[name] = copy));
+ return target;
+ }, DependencyLib.each = function(obj, callback) {
+ var i = 0;
+ if (isArraylike(obj)) for (var length = obj.length; i < length && !1 !== callback.call(obj[i], i, obj[i]); i++) ; else for (i in obj) if (!1 === callback.call(obj[i], i, obj[i])) break;
+ return obj;
+ }, DependencyLib.map = function(elems, callback) {
+ var value, i = 0, length = elems.length, ret = [];
+ if (isArraylike(elems)) for (;i < length; i++) null != (value = callback(elems[i], i)) && ret.push(value); else for (i in elems) null != (value = callback(elems[i], i)) && ret.push(value);
+ return [].concat(ret);
+ }, DependencyLib.data = function(owner, key, value) {
+ if (void 0 === value) return owner.__data ? owner.__data[key] : null;
+ owner.__data = owner.__data || {}, owner.__data[key] = value;
+ }, "function" == typeof window.CustomEvent ? DependencyLib.Event = window.CustomEvent : (DependencyLib.Event = function(event, params) {
+ params = params || {
+ bubbles: !1,
+ cancelable: !1,
+ detail: void 0
+ };
+ var evt = document.createEvent("CustomEvent");
+ return evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail),
+ evt;
+ }, DependencyLib.Event.prototype = window.Event.prototype), DependencyLib;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/global/document.js b/public/bower_components/inputmask/dist/inputmask/global/document.js
new file mode 100644
index 0000000..be2c3f0
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/global/document.js
@@ -0,0 +1,11 @@
+/*!
+* global/document.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+"function" == typeof define && define.amd ? define(function() {
+ return document;
+}) : "object" == typeof exports && (module.exports = document); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/global/window.js b/public/bower_components/inputmask/dist/inputmask/global/window.js
new file mode 100644
index 0000000..e9d2733
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/global/window.js
@@ -0,0 +1,11 @@
+/*!
+* global/window.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+"function" == typeof define && define.amd ? define(function() {
+ return window;
+}) : "object" == typeof exports && (module.exports = window); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.date.extensions.js b/public/bower_components/inputmask/dist/inputmask/inputmask.date.extensions.js
new file mode 100644
index 0000000..6dcd117
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.date.extensions.js
@@ -0,0 +1,480 @@
+/*!
+* inputmask.date.extensions.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
+}(function($, Inputmask) {
+ function isLeapYear(year) {
+ return isNaN(year) || 29 === new Date(year, 2, 0).getDate();
+ }
+ return Inputmask.extendAliases({
+ "dd/mm/yyyy": {
+ mask: "1/2/y",
+ placeholder: "dd/mm/yyyy",
+ regex: {
+ val1pre: new RegExp("[0-3]"),
+ val1: new RegExp("0[1-9]|[12][0-9]|3[01]"),
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))");
+ }
+ },
+ leapday: "29/02/",
+ separator: "/",
+ yearrange: {
+ minyear: 1900,
+ maxyear: 2099
+ },
+ isInYearRange: function(chrs, minyear, maxyear) {
+ if (isNaN(chrs)) return !1;
+ var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));
+ return !isNaN(enteredyear) && (minyear <= enteredyear && enteredyear <= maxyear) || !isNaN(enteredyear2) && (minyear <= enteredyear2 && enteredyear2 <= maxyear);
+ },
+ determinebaseyear: function(minyear, maxyear, hint) {
+ var currentyear = new Date().getFullYear();
+ if (minyear > currentyear) return minyear;
+ if (maxyear < currentyear) {
+ for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxyear < maxYearPrefix + hint; ) maxYearPrefix--;
+ var maxxYear = maxYearPrefix + maxYearPostfix;
+ return minyear > maxxYear ? minyear : maxxYear;
+ }
+ if (minyear <= currentyear && currentyear <= maxyear) {
+ for (var currentYearPrefix = currentyear.toString().slice(0, 2); maxyear < currentYearPrefix + hint; ) currentYearPrefix--;
+ var currentYearAndHint = currentYearPrefix + hint;
+ return currentYearAndHint < minyear ? minyear : currentYearAndHint;
+ }
+ return currentyear;
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ },
+ getFrontValue: function(mask, buffer, opts) {
+ for (var start = 0, length = 0, i = 0; i < mask.length && "2" !== mask.charAt(i); i++) {
+ var definition = opts.definitions[mask.charAt(i)];
+ definition ? (start += length, length = definition.cardinality) : length++;
+ }
+ return buffer.join("").substr(start, length);
+ },
+ postValidation: function(buffer, currentResult, opts) {
+ var dayMonthValue, year, bufferStr = buffer.join("");
+ return 0 === opts.mask.indexOf("y") ? (year = bufferStr.substr(0, 4), dayMonthValue = bufferStr.substring(4, 10)) : (year = bufferStr.substring(6, 10),
+ dayMonthValue = bufferStr.substr(0, 6)), currentResult && (dayMonthValue !== opts.leapday || isLeapYear(year));
+ },
+ definitions: {
+ "1": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.val1.test(chrs);
+ return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
+ {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ pos: pos,
+ c: chrs.charAt(0)
+ });
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var pchrs = chrs;
+ isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);
+ var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);
+ if (isValid && maskset.validPositions[pos] && (opts.regex.val2(opts.separator).test(chrs + maskset.validPositions[pos].input) || (maskset.validPositions[pos].input = "0" === chrs ? "1" : "0")),
+ !strict && !isValid) {
+ if (isValid = opts.regex.val1.test(chrs + "0")) return maskset.buffer[pos] = chrs,
+ maskset.buffer[++pos] = "0", {
+ pos: pos,
+ c: "0"
+ };
+ if (isValid = opts.regex.val1.test("0" + chrs)) return maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 1
+ } ]
+ },
+ "2": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
+ -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator);
+ var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);
+ return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
+ {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ pos: pos,
+ c: chrs.charAt(0)
+ });
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);
+ var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
+ -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator);
+ var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);
+ return isValid && maskset.validPositions[pos] && (opts.regex.val2(opts.separator).test(chrs + maskset.validPositions[pos].input) || (maskset.validPositions[pos].input = "0" === chrs ? "1" : "0")),
+ strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ y: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ },
+ cardinality: 4,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ if (!strict && !isValid) {
+ var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1);
+ if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
+ {
+ pos: pos
+ };
+ if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2),
+ isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
+ maskset.buffer[pos++] = yearPrefix.charAt(1), {
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 1
+ }, {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ if (!strict && !isValid) {
+ var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);
+ if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1),
+ {
+ pos: pos
+ };
+ if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2),
+ isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos - 1] = yearPrefix.charAt(0),
+ maskset.buffer[pos++] = yearPrefix.charAt(1), maskset.buffer[pos++] = chrs.charAt(0),
+ {
+ refreshFromBuffer: {
+ start: pos - 3,
+ end: pos
+ },
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 2
+ }, {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ },
+ cardinality: 3
+ } ]
+ }
+ },
+ insertMode: !1,
+ autoUnmask: !1
+ },
+ "mm/dd/yyyy": {
+ placeholder: "mm/dd/yyyy",
+ alias: "dd/mm/yyyy",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ leapday: "02/29/",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "yyyy/mm/dd": {
+ mask: "y/1/2",
+ placeholder: "yyyy/mm/dd",
+ alias: "mm/dd/yyyy",
+ leapday: "/02/29",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "dd.mm.yyyy": {
+ mask: "1.2.y",
+ placeholder: "dd.mm.yyyy",
+ leapday: "29.02.",
+ separator: ".",
+ alias: "dd/mm/yyyy"
+ },
+ "dd-mm-yyyy": {
+ mask: "1-2-y",
+ placeholder: "dd-mm-yyyy",
+ leapday: "29-02-",
+ separator: "-",
+ alias: "dd/mm/yyyy"
+ },
+ "mm.dd.yyyy": {
+ mask: "1.2.y",
+ placeholder: "mm.dd.yyyy",
+ leapday: "02.29.",
+ separator: ".",
+ alias: "mm/dd/yyyy"
+ },
+ "mm-dd-yyyy": {
+ mask: "1-2-y",
+ placeholder: "mm-dd-yyyy",
+ leapday: "02-29-",
+ separator: "-",
+ alias: "mm/dd/yyyy"
+ },
+ "yyyy.mm.dd": {
+ mask: "y.1.2",
+ placeholder: "yyyy.mm.dd",
+ leapday: ".02.29",
+ separator: ".",
+ alias: "yyyy/mm/dd"
+ },
+ "yyyy-mm-dd": {
+ mask: "y-1-2",
+ placeholder: "yyyy-mm-dd",
+ leapday: "-02-29",
+ separator: "-",
+ alias: "yyyy/mm/dd"
+ },
+ datetime: {
+ mask: "1/2/y h:s",
+ placeholder: "dd/mm/yyyy hh:mm",
+ alias: "dd/mm/yyyy",
+ regex: {
+ hrspre: new RegExp("[012]"),
+ hrs24: new RegExp("2[0-4]|1[3-9]"),
+ hrs: new RegExp("[01][0-9]|2[0-4]"),
+ ampm: new RegExp("^[a|p|A|P][m|M]"),
+ mspre: new RegExp("[0-5]"),
+ ms: new RegExp("[0-5][0-9]")
+ },
+ timeseparator: ":",
+ hourFormat: "24",
+ definitions: {
+ h: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ if ("24" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = "0",
+ maskset.buffer[pos] = "0", {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ c: "0"
+ };
+ var isValid = opts.regex.hrs.test(chrs);
+ if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== "-.:".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0",
+ maskset.buffer[pos] = chrs.charAt(0), pos++, {
+ refreshFromBuffer: {
+ start: pos - 2,
+ end: pos
+ },
+ pos: pos,
+ c: opts.timeseparator
+ };
+ if (isValid && "24" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {
+ var tmp = parseInt(chrs, 10);
+ return 24 === tmp ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p",
+ maskset.buffer[pos + 6] = "m"), (tmp -= 12) < 10 ? (maskset.buffer[pos] = tmp.toString(),
+ maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1),
+ maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos + 6
+ },
+ c: maskset.buffer[pos]
+ };
+ }
+ return isValid;
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.hrspre.test(chrs);
+ return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ s: {
+ validator: "[0-5][0-9]",
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.mspre.test(chrs);
+ return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ t: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.regex.ampm.test(chrs + "m");
+ },
+ casing: "lower",
+ cardinality: 1
+ }
+ },
+ insertMode: !1,
+ autoUnmask: !1
+ },
+ datetime12: {
+ mask: "1/2/y h:s t\\m",
+ placeholder: "dd/mm/yyyy hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "mm/dd/yyyy hh:mm xm": {
+ mask: "1/2/y h:s t\\m",
+ placeholder: "mm/dd/yyyy hh:mm xm",
+ alias: "datetime12",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ leapday: "02/29/",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "hh:mm t": {
+ mask: "h:s t\\m",
+ placeholder: "hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "h:s t": {
+ mask: "h:s t\\m",
+ placeholder: "hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "hh:mm:ss": {
+ mask: "h:s:s",
+ placeholder: "hh:mm:ss",
+ alias: "datetime",
+ autoUnmask: !1
+ },
+ "hh:mm": {
+ mask: "h:s",
+ placeholder: "hh:mm",
+ alias: "datetime",
+ autoUnmask: !1
+ },
+ date: {
+ alias: "dd/mm/yyyy"
+ },
+ "mm/yyyy": {
+ mask: "1/y",
+ placeholder: "mm/yyyy",
+ leapday: "donotuse",
+ separator: "/",
+ alias: "mm/dd/yyyy"
+ },
+ shamsi: {
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "[0-3])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[1-9]|1[012])" + escapedSeparator + "30)|((0[1-6])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ yearrange: {
+ minyear: 1300,
+ maxyear: 1499
+ },
+ mask: "y/1/2",
+ leapday: "/12/30",
+ placeholder: "yyyy/mm/dd",
+ alias: "mm/dd/yyyy",
+ clearIncomplete: !0
+ },
+ "yyyy-mm-dd hh:mm:ss": {
+ mask: "y-1-2 h:s:s",
+ placeholder: "yyyy-mm-dd hh:mm:ss",
+ alias: "datetime",
+ separator: "-",
+ leapday: "-02-29",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {}
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.extensions.js b/public/bower_components/inputmask/dist/inputmask/inputmask.extensions.js
new file mode 100644
index 0000000..fc37c2b
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.extensions.js
@@ -0,0 +1,97 @@
+/*!
+* inputmask.extensions.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
+}(function($, Inputmask) {
+ return Inputmask.extendDefinitions({
+ A: {
+ validator: "[A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ casing: "upper"
+ },
+ "&": {
+ validator: "[0-9A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ casing: "upper"
+ },
+ "#": {
+ validator: "[0-9A-Fa-f]",
+ cardinality: 1,
+ casing: "upper"
+ }
+ }), Inputmask.extendAliases({
+ url: {
+ definitions: {
+ i: {
+ validator: ".",
+ cardinality: 1
+ }
+ },
+ mask: "(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",
+ insertMode: !1,
+ autoUnmask: !1,
+ inputmode: "url"
+ },
+ ip: {
+ mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]",
+ definitions: {
+ i: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return pos - 1 > -1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs,
+ chrs = pos - 2 > -1 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs,
+ new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
+ },
+ cardinality: 1
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue;
+ },
+ inputmode: "numeric"
+ },
+ email: {
+ mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",
+ greedy: !1,
+ onBeforePaste: function(pastedValue, opts) {
+ return (pastedValue = pastedValue.toLowerCase()).replace("mailto:", "");
+ },
+ definitions: {
+ "*": {
+ validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",
+ cardinality: 1,
+ casing: "lower"
+ },
+ "-": {
+ validator: "[0-9A-Za-z-]",
+ cardinality: 1,
+ casing: "lower"
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue;
+ },
+ inputmode: "email"
+ },
+ mac: {
+ mask: "##:##:##:##:##:##"
+ },
+ vin: {
+ mask: "V{13}9{4}",
+ definitions: {
+ V: {
+ validator: "[A-HJ-NPR-Za-hj-npr-z\\d]",
+ cardinality: 1,
+ casing: "upper"
+ }
+ },
+ clearIncomplete: !0,
+ autoUnmask: !0
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.js b/public/bower_components/inputmask/dist/inputmask/inputmask.js
new file mode 100644
index 0000000..c6836be
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.js
@@ -0,0 +1,1625 @@
+/*!
+* inputmask.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./global/window", "./global/document" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./global/window"), require("./global/document")) : window.Inputmask = factory(window.dependencyLib || jQuery, window, document);
+}(function($, window, document, undefined) {
+ function Inputmask(alias, options, internal) {
+ if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);
+ this.el = undefined, this.events = {}, this.maskset = undefined, this.refreshValue = !1,
+ !0 !== internal && ($.isPlainObject(alias) ? options = alias : (options = options || {}).alias = alias,
+ this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && options.definitions !== undefined,
+ this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts));
+ }
+ function resolveAlias(aliasStr, options, opts) {
+ var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
+ return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, undefined, opts),
+ $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr),
+ !1);
+ }
+ function generateMaskSet(opts, nocache) {
+ function generateMask(mask, metadata, opts) {
+ var regexMask = !1;
+ if (null !== mask && "" !== mask || ((regexMask = null !== opts.regex) ? mask = (mask = opts.regex).replace(/^(\^)(.*)(\$)$/, "$2") : (regexMask = !0,
+ mask = ".*")), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = ""),
+ opts.repeat > 0 || "*" === opts.repeat || "+" === opts.repeat) {
+ var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat;
+ mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + "," + opts.repeat + opts.quantifiermarker.end;
+ }
+ var masksetDefinition, maskdefKey = regexMask ? "regex_" + opts.regex : opts.numericInput ? mask.split("").reverse().join("") : mask;
+ return Inputmask.prototype.masksCache[maskdefKey] === undefined || !0 === nocache ? (masksetDefinition = {
+ mask: mask,
+ maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),
+ validPositions: {},
+ _buffer: undefined,
+ buffer: undefined,
+ tests: {},
+ metadata: metadata,
+ maskLength: undefined
+ }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition,
+ masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]),
+ masksetDefinition;
+ }
+ if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {
+ if (opts.mask.length > 1) {
+ opts.keepStatic = null === opts.keepStatic || opts.keepStatic;
+ var altMask = opts.groupmarker.start;
+ return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {
+ altMask.length > 1 && (altMask += opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start),
+ msk.mask === undefined || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask;
+ }), altMask += opts.groupmarker.end, generateMask(altMask, opts.mask, opts);
+ }
+ opts.mask = opts.mask.pop();
+ }
+ return opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts);
+ }
+ function maskScope(actionObj, maskset, opts) {
+ function getMaskTemplate(baseOnInput, minimalPos, includeMode) {
+ minimalPos = minimalPos || 0;
+ var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition();
+ do {
+ !0 === baseOnInput && getMaskSet().validPositions[pos] ? (test = (testPos = getMaskSet().validPositions[pos]).match,
+ ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))) : (test = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).match,
+ ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || "number" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))),
+ pos++;
+ } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || minimalPos > pos);
+ return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), getMaskSet().maskLength = pos + 1,
+ maskTemplate;
+ }
+ function getMaskSet() {
+ return maskset;
+ }
+ function resetMaskSet(soft) {
+ var maskset = getMaskSet();
+ maskset.buffer = undefined, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);
+ }
+ function getLastValidPosition(closestTo, strict, validPositions) {
+ var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;
+ closestTo === undefined && (closestTo = -1);
+ for (var posNdx in valids) {
+ var psNdx = parseInt(posNdx);
+ valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx),
+ psNdx >= closestTo && (after = psNdx));
+ }
+ return -1 !== before && closestTo - before > 1 || after < closestTo ? before : after;
+ }
+ function stripValidPositions(start, end, nocheck, strict) {
+ var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;
+ for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) getMaskSet().validPositions[i] !== undefined && (!0 !== nocheck && (!getMaskSet().validPositions[i].match.optionality && function(pos) {
+ var posMatch = getMaskSet().validPositions[pos];
+ if (posMatch !== undefined && null === posMatch.match.fn) {
+ var prevMatch = getMaskSet().validPositions[pos - 1], nextMatch = getMaskSet().validPositions[pos + 1];
+ return prevMatch !== undefined && nextMatch !== undefined;
+ }
+ return !1;
+ }(i) || !1 === opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts)) || delete getMaskSet().validPositions[i]);
+ for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
+ for (;getMaskSet().validPositions[startPos] !== undefined; ) startPos++;
+ if (i < startPos && (i = startPos + 1), getMaskSet().validPositions[i] === undefined && isMask(i)) i++; else {
+ var t = getTestTemplate(i);
+ !1 === needsValidation && positionsClone[startPos] && positionsClone[startPos].match.def === t.match.def ? (getMaskSet().validPositions[startPos] = $.extend(!0, {}, positionsClone[startPos]),
+ getMaskSet().validPositions[startPos].input = t.input, delete getMaskSet().validPositions[i],
+ i++) : positionCanMatchDefinition(startPos, t.match.def) ? !1 !== isValid(startPos, t.input || getPlaceholder(i), !0) && (delete getMaskSet().validPositions[i],
+ i++, needsValidation = !0) : isMask(i) || (i++, startPos--), startPos++;
+ }
+ }
+ resetMaskSet(!0);
+ }
+ function determineTestTemplate(tests, guessNextBest) {
+ for (var testPos, testPositions = tests, lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation].toString().split(",") : [], ndx = 0; ndx < testPositions.length && (!((testPos = testPositions[ndx]).match && (opts.greedy && !0 !== testPos.match.optionalQuantifier || (!1 === testPos.match.optionality || !1 === testPos.match.newBlockMarker) && !0 !== testPos.match.optionalQuantifier) && (lvTest.alternation === undefined || lvTest.alternation !== testPos.alternation || testPos.locator[lvTest.alternation] !== undefined && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr))) || !0 === guessNextBest && (null !== testPos.match.fn || /[0-9a-bA-Z]/.test(testPos.match.def))); ndx++) ;
+ return testPos;
+ }
+ function getTestTemplate(pos, ndxIntlzr, tstPs) {
+ return getMaskSet().validPositions[pos] || determineTestTemplate(getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));
+ }
+ function getTest(pos) {
+ return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos] : getTests(pos)[0];
+ }
+ function positionCanMatchDefinition(pos, def) {
+ for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) {
+ valid = !0;
+ break;
+ }
+ return valid;
+ }
+ function getTests(pos, ndxIntlzr, tstPs) {
+ function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {
+ function handleMatch(match, loopNdx, quantifierRecurse) {
+ function isFirstMatch(latestMatch, tokenGroup) {
+ var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);
+ return firstMatch || $.each(tokenGroup.matches, function(ndx, match) {
+ if (!0 === match.isQuantifier && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]))) return !1;
+ }), firstMatch;
+ }
+ function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {
+ var bestMatch, indexPos;
+ if (getMaskSet().validPositions[pos - 1] && targetAlternation && getMaskSet().tests[pos]) for (var vpAlternation = getMaskSet().validPositions[pos - 1].locator, tpAlternation = getMaskSet().tests[pos][0].locator, i = 0; i < targetAlternation; i++) if (vpAlternation[i] !== tpAlternation[i]) return vpAlternation.slice(targetAlternation + 1);
+ return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {
+ var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;
+ (indexPos === undefined || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt,
+ indexPos = ndxPos);
+ }), bestMatch ? bestMatch.locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1) : targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;
+ }
+ if (testPos > 1e4) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet().mask;
+ if (testPos === pos && match.matches === undefined) return matches.push({
+ match: match,
+ locator: loopNdx.reverse(),
+ cd: cacheDependency
+ }), !0;
+ if (match.matches !== undefined) {
+ if (match.isGroup && quantifierRecurse !== match) {
+ if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0;
+ } else if (match.isOptional) {
+ var optionalToken = match;
+ if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) {
+ if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0;
+ insertStop = !0, testPos = pos;
+ }
+ } else if (match.isAlternator) {
+ var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;
+ if (-1 === altIndex || "string" == typeof altIndex) {
+ var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [];
+ if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx);
+ for (var ndx = 0; ndx < altIndexArr.length; ndx++) {
+ if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(),
+ !0 !== (match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match) && match !== undefined && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) {
+ var ntndx = $.inArray(match, maskToken.matches) + 1;
+ maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse)) && (altIndexArr.push(ntndx.toString()),
+ $.each(matches, function(ndx, lmnt) {
+ lmnt.alternation = loopNdx.length - 1;
+ }));
+ }
+ maltMatches = matches.slice(), testPos = currentPos, matches = [];
+ for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {
+ var altMatch = maltMatches[ndx1], dropMatch = !1;
+ altMatch.alternation = altMatch.alternation || loopNdxCnt;
+ for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {
+ var altMatch2 = malternateMatches[ndx2];
+ if ("string" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) {
+ if (function(source, target) {
+ return source.match.nativeDef === target.match.nativeDef || source.match.def === target.match.nativeDef || source.match.nativeDef === target.match.def;
+ }(altMatch, altMatch2)) {
+ dropMatch = !0, altMatch.alternation === altMatch2.alternation && -1 === altMatch2.locator[altMatch2.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch2.alternation] = altMatch2.locator[altMatch2.alternation] + "," + altMatch.locator[altMatch.alternation],
+ altMatch2.alternation = altMatch.alternation), altMatch.match.nativeDef === altMatch2.match.def && (altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation],
+ malternateMatches.splice(malternateMatches.indexOf(altMatch2), 1, altMatch));
+ break;
+ }
+ if (altMatch.match.def === altMatch2.match.def) {
+ dropMatch = !1;
+ break;
+ }
+ if (function(source, target) {
+ return null === source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def, getMaskSet(), pos, !1, opts, !1);
+ }(altMatch, altMatch2) || function(source, target) {
+ return null !== source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def.replace(/[\[\]]/g, ""), getMaskSet(), pos, !1, opts, !1);
+ }(altMatch, altMatch2)) {
+ altMatch.alternation === altMatch2.alternation && -1 === altMatch.locator[altMatch.alternation].toString().indexOf(altMatch2.locator[altMatch2.alternation].toString().split("")[0]) && (altMatch.na = altMatch.na || altMatch.locator[altMatch.alternation].toString(),
+ -1 === altMatch.na.indexOf(altMatch.locator[altMatch.alternation].toString().split("")[0]) && (altMatch.na = altMatch.na + "," + altMatch.locator[altMatch2.alternation].toString().split("")[0]),
+ dropMatch = !0, altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation].toString().split("")[0] + "," + altMatch.locator[altMatch.alternation],
+ malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));
+ break;
+ }
+ }
+ }
+ dropMatch || malternateMatches.push(altMatch);
+ }
+ }
+ "string" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) {
+ if (isFinite(ndx)) {
+ var alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(",");
+ lmnt.locator[alternation] = undefined, lmnt.alternation = undefined;
+ for (var alndx = 0; alndx < altLocArr.length; alndx++) -1 !== $.inArray(altLocArr[alndx], altIndexArr) && (lmnt.locator[alternation] !== undefined ? (lmnt.locator[alternation] += ",",
+ lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]),
+ lmnt.alternation = alternation);
+ if (lmnt.locator[alternation] !== undefined) return lmnt;
+ }
+ })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0,
+ match = malternateMatches.length > 0, ndxInitializer = ndxInitializerClone.slice();
+ } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);
+ if (match) return !0;
+ } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {
+ var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];
+ if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) {
+ if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1,
+ isFirstMatch(latestMatch, tokenGroup)) {
+ if (qndx > qt.quantifier.min - 1) {
+ insertStop = !0, testPos = pos;
+ break;
+ }
+ return !0;
+ }
+ return !0;
+ }
+ } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0;
+ } else testPos++;
+ }
+ for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {
+ var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);
+ if (match && testPos === pos) return match;
+ if (testPos > pos) break;
+ }
+ }
+ function filterTests(tests) {
+ if (opts.keepStatic && pos > 0 && tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0) && !0 !== tests[0].match.optionality && !0 !== tests[0].match.optionalQuantifier && null === tests[0].match.fn && !/[0-9a-bA-Z]/.test(tests[0].match.def)) {
+ if (getMaskSet().validPositions[pos - 1] === undefined) return [ determineTestTemplate(tests) ];
+ if (getMaskSet().validPositions[pos - 1].alternation === tests[0].alternation) return [ determineTestTemplate(tests) ];
+ if (getMaskSet().validPositions[pos - 1]) return [ determineTestTemplate(tests) ];
+ }
+ return tests;
+ }
+ var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : "";
+ if (pos > -1) {
+ if (ndxIntlzr === undefined) {
+ for (var test, previousPos = pos - 1; (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1; ) previousPos--;
+ test !== undefined && previousPos > -1 && (ndxInitializer = function(tests) {
+ var locator = [];
+ return $.isArray(tests) || (tests = [ tests ]), tests.length > 0 && (tests[0].alternation === undefined ? 0 === (locator = determineTestTemplate(tests.slice()).locator.slice()).length && (locator = tests[0].locator.slice()) : $.each(tests, function(ndx, tst) {
+ if ("" !== tst.def) if (0 === locator.length) locator = tst.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += "," + tst.locator[i]);
+ })), locator;
+ }(test), cacheDependency = ndxInitializer.join(""), testPos = previousPos);
+ }
+ if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return filterTests(getMaskSet().tests[pos]);
+ for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length && !(resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]) && testPos === pos || testPos > pos); mtndx++) ;
+ }
+ return (0 === matches.length || insertStop) && matches.push({
+ match: {
+ fn: null,
+ cardinality: 0,
+ optionality: !0,
+ casing: null,
+ def: "",
+ placeholder: ""
+ },
+ locator: [],
+ cd: cacheDependency
+ }), ndxIntlzr !== undefined && getMaskSet().tests[pos] ? filterTests($.extend(!0, [], matches)) : (getMaskSet().tests[pos] = $.extend(!0, [], matches),
+ filterTests(getMaskSet().tests[pos]));
+ }
+ function getBufferTemplate() {
+ return getMaskSet()._buffer === undefined && (getMaskSet()._buffer = getMaskTemplate(!1, 1),
+ getMaskSet().buffer === undefined && (getMaskSet().buffer = getMaskSet()._buffer.slice())),
+ getMaskSet()._buffer;
+ }
+ function getBuffer(noCache) {
+ return getMaskSet().buffer !== undefined && !0 !== noCache || (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)),
+ getMaskSet().buffer;
+ }
+ function refreshFromBuffer(start, end, buffer) {
+ var i, p;
+ if (!0 === start) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; i < end; i++) delete getMaskSet().validPositions[i];
+ for (p = start, i = start; i < end; i++) if (resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter) {
+ var valResult = isValid(p, buffer[i], !0, !0);
+ !1 !== valResult && (resetMaskSet(!0), p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1);
+ }
+ }
+ function casing(elem, test, pos) {
+ switch (opts.casing || test.casing) {
+ case "upper":
+ elem = elem.toUpperCase();
+ break;
+
+ case "lower":
+ elem = elem.toLowerCase();
+ break;
+
+ case "title":
+ var posBefore = getMaskSet().validPositions[pos - 1];
+ elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase();
+ break;
+
+ default:
+ if ($.isFunction(opts.casing)) {
+ var args = Array.prototype.slice.call(arguments);
+ args.push(getMaskSet().validPositions), elem = opts.casing.apply(this, args);
+ }
+ }
+ return elem;
+ }
+ function checkAlternationMatch(altArr1, altArr2, na) {
+ for (var naNdx, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = na !== undefined ? na.split(",") : [], i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);
+ for (var alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {
+ isMatch = !0;
+ break;
+ }
+ return isMatch;
+ }
+ function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) {
+ function isSelection(posObj) {
+ var selection = isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1;
+ return selection && 0 === posObj.begin && posObj.end === getMaskSet().maskLength ? "full" : selection;
+ }
+ function _isValid(position, c, strict) {
+ var rslt = !1;
+ return $.each(getTests(position), function(ndx, tst) {
+ for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));
+ if (c && (chrs += c), getBuffer(!0), !1 !== (rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && "" !== test.def && {
+ c: getPlaceholder(position, test, !0) || test.def,
+ pos: position
+ })) {
+ var elem = rslt.c !== undefined ? rslt.c : c;
+ elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? getPlaceholder(position, test, !0) || test.def : elem;
+ var validatedPos = position, possibleModifiedBuffer = getBuffer();
+ if (rslt.remove !== undefined && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]),
+ $.each(rslt.remove.sort(function(a, b) {
+ return b - a;
+ }), function(ndx, lmnt) {
+ stripValidPositions(lmnt, lmnt + 1, !0);
+ })), rslt.insert !== undefined && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]),
+ $.each(rslt.insert.sort(function(a, b) {
+ return a - b;
+ }), function(ndx, lmnt) {
+ isValid(lmnt.pos, lmnt.c, !0, fromSetValid);
+ })), rslt.refreshFromBuffer) {
+ var refresh = rslt.refreshFromBuffer;
+ if (refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, possibleModifiedBuffer),
+ rslt.pos === undefined && rslt.c === undefined) return rslt.pos = getLastValidPosition(),
+ !1;
+ if ((validatedPos = rslt.pos !== undefined ? rslt.pos : position) !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)),
+ !1;
+ } else if (!0 !== rslt && rslt.pos !== undefined && rslt.pos !== position && (validatedPos = rslt.pos,
+ refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)),
+ !1;
+ return (!0 === rslt || rslt.pos !== undefined || rslt.c !== undefined) && (ndx > 0 && resetMaskSet(!0),
+ setValidPosition(validatedPos, $.extend({}, tst, {
+ input: casing(elem, test, validatedPos)
+ }), fromSetValid, isSelection(pos)) || (rslt = !1), !1);
+ }
+ }), rslt;
+ }
+ function setValidPosition(pos, validTest, fromSetValid, isSelection) {
+ if (isSelection || opts.insertMode && getMaskSet().validPositions[pos] !== undefined && fromSetValid === undefined) {
+ var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, !0);
+ for (i = pos; i <= lvp; i++) delete getMaskSet().validPositions[i];
+ getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
+ var j, valid = !0, vps = getMaskSet().validPositions, needsValidation = !1, initialLength = getMaskSet().maskLength;
+ for (i = j = pos; i <= lvp; i++) {
+ var t = positionsClone[i];
+ if (t !== undefined) for (var posMatch = j; posMatch < getMaskSet().maskLength && (null === t.match.fn && vps[i] && (!0 === vps[i].match.optionalQuantifier || !0 === vps[i].match.optionality) || null != t.match.fn); ) {
+ if (posMatch++, !1 === needsValidation && positionsClone[posMatch] && positionsClone[posMatch].match.def === t.match.def) getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]),
+ getMaskSet().validPositions[posMatch].input = t.input, fillMissingNonMask(posMatch),
+ j = posMatch, valid = !0; else if (positionCanMatchDefinition(posMatch, t.match.def)) {
+ var result = isValid(posMatch, t.input, !0, !0);
+ valid = !1 !== result, j = result.caret || result.insert ? getLastValidPosition() : posMatch,
+ needsValidation = !0;
+ } else if (!(valid = !0 === t.generatedInput) && posMatch >= getMaskSet().maskLength - 1) break;
+ if (getMaskSet().maskLength < initialLength && (getMaskSet().maskLength = initialLength),
+ valid) break;
+ }
+ if (!valid) break;
+ }
+ if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone),
+ resetMaskSet(!0), !1;
+ } else getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
+ return resetMaskSet(!0), !0;
+ }
+ function fillMissingNonMask(maskPos) {
+ for (var pndx = maskPos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;
+ var testTemplate, testsFromPos;
+ for (pndx++; pndx < maskPos; pndx++) getMaskSet().validPositions[pndx] === undefined && (!1 === opts.jitMasking || opts.jitMasking > pndx) && ("" === (testsFromPos = getTests(pndx, getTestTemplate(pndx - 1).locator, pndx - 1).slice())[testsFromPos.length - 1].match.def && testsFromPos.pop(),
+ (testTemplate = determineTestTemplate(testsFromPos)) && (testTemplate.match.def === opts.radixPointDefinitionSymbol || !isMask(pndx, !0) || $.inArray(opts.radixPoint, getBuffer()) < pndx && testTemplate.match.fn && testTemplate.match.fn.test(getPlaceholder(pndx), getMaskSet(), pndx, !1, opts)) && !1 !== (result = _isValid(pndx, getPlaceholder(pndx, testTemplate.match, !0) || (null == testTemplate.match.fn ? testTemplate.match.def : "" !== getPlaceholder(pndx) ? getPlaceholder(pndx) : getBuffer()[pndx]), !0)) && (getMaskSet().validPositions[result.pos || pndx].generatedInput = !0));
+ }
+ strict = !0 === strict;
+ var maskPos = pos;
+ pos.begin !== undefined && (maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin);
+ var result = !0, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);
+ if ($.isFunction(opts.preValidation) && !strict && !0 !== fromSetValid && !0 !== validateOnly && (result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts)),
+ !0 === result) {
+ if (fillMissingNonMask(maskPos), isSelection(pos) && (handleRemove(undefined, Inputmask.keyCode.DELETE, pos, !0, !0),
+ maskPos = getMaskSet().p), maskPos < getMaskSet().maskLength && (maxLength === undefined || maskPos < maxLength) && (result = _isValid(maskPos, c, strict),
+ (!strict || !0 === fromSetValid) && !1 === result && !0 !== validateOnly)) {
+ var currentPosValid = getMaskSet().validPositions[maskPos];
+ if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {
+ if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (!1 !== (result = _isValid(nPos, c, strict))) {
+ !function(originalPos, newPos) {
+ var vp = getMaskSet().validPositions[newPos];
+ if (vp) for (var targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; ps < newPos; ps++) if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, !0)) {
+ var tests = getTests(ps).slice(), bestMatch = determineTestTemplate(tests, !0), equality = -1;
+ "" === tests[tests.length - 1].match.def && tests.pop(), $.each(tests, function(ndx, tst) {
+ for (var i = 0; i < tll; i++) {
+ if (tst.locator[i] === undefined || !checkAlternationMatch(tst.locator[i].toString().split(","), targetLocator[i].toString().split(","), tst.na)) {
+ var targetAI = targetLocator[i], bestMatchAI = bestMatch.locator[i], tstAI = tst.locator[i];
+ targetAI - bestMatchAI > Math.abs(targetAI - tstAI) && (bestMatch = tst);
+ break;
+ }
+ equality < i && (equality = i, bestMatch = tst);
+ }
+ }), (bestMatch = $.extend({}, bestMatch, {
+ input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def
+ })).generatedInput = !0, setValidPosition(ps, bestMatch, !0), getMaskSet().validPositions[newPos] = undefined,
+ _isValid(newPos, vp.input, !0);
+ }
+ }(maskPos, result.pos !== undefined ? result.pos : nPos), maskPos = nPos;
+ break;
+ }
+ } else result = {
+ caret: seekNext(maskPos)
+ };
+ }
+ !1 === result && opts.keepStatic && !strict && !0 !== fromAlternate && (result = function(pos, c, strict) {
+ var lastAlt, alternation, altPos, prevAltPos, i, validPos, altNdxs, decisionPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), isValidRslt = !1, lAltPos = getLastValidPosition();
+ for (prevAltPos = getMaskSet().validPositions[lAltPos]; lAltPos >= 0; lAltPos--) if ((altPos = getMaskSet().validPositions[lAltPos]) && altPos.alternation !== undefined) {
+ if (lastAlt = lAltPos, alternation = getMaskSet().validPositions[lastAlt].alternation,
+ prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;
+ prevAltPos = altPos;
+ }
+ if (alternation !== undefined) {
+ decisionPos = parseInt(lastAlt);
+ var decisionTaker = prevAltPos.locator[prevAltPos.alternation || alternation] !== undefined ? prevAltPos.locator[prevAltPos.alternation || alternation] : altNdxs[0];
+ decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]);
+ var possibilityPos = getMaskSet().validPositions[decisionPos], prevPos = getMaskSet().validPositions[decisionPos - 1];
+ $.each(getTests(decisionPos, prevPos ? prevPos.locator : undefined, decisionPos - 1), function(ndx, test) {
+ altNdxs = test.locator[alternation] ? test.locator[alternation].toString().split(",") : [];
+ for (var mndx = 0; mndx < altNdxs.length; mndx++) {
+ var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0, verifyValidInput = !1;
+ if (decisionTaker < altNdxs[mndx] && (test.na === undefined || -1 === $.inArray(altNdxs[mndx], test.na.split(",")) || -1 === $.inArray(decisionTaker.toString(), altNdxs))) {
+ getMaskSet().validPositions[decisionPos] = $.extend(!0, {}, test);
+ var possibilities = getMaskSet().validPositions[decisionPos].locator;
+ for (getMaskSet().validPositions[decisionPos].locator[alternation] = parseInt(altNdxs[mndx]),
+ null == test.match.fn ? (possibilityPos.input !== test.match.def && (verifyValidInput = !0,
+ !0 !== possibilityPos.generatedInput && validInputs.push(possibilityPos.input)),
+ staticInputsBeforePosAlternate++, getMaskSet().validPositions[decisionPos].generatedInput = !/[0-9a-bA-Z]/.test(test.match.def),
+ getMaskSet().validPositions[decisionPos].input = test.match.def) : getMaskSet().validPositions[decisionPos].input = possibilityPos.input,
+ i = decisionPos + 1; i < getLastValidPosition(undefined, !0) + 1; i++) (validPos = getMaskSet().validPositions[i]) && !0 !== validPos.generatedInput && /[0-9a-bA-Z]/.test(validPos.input) ? validInputs.push(validPos.input) : i < pos && staticInputsBeforePos++,
+ delete getMaskSet().validPositions[i];
+ for (verifyValidInput && validInputs[0] === test.match.def && validInputs.shift(),
+ resetMaskSet(!0), isValidRslt = !0; validInputs.length > 0; ) {
+ var input = validInputs.shift();
+ if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(undefined, !0) + 1, input, !1, fromSetValid, !0))) break;
+ }
+ if (isValidRslt) {
+ getMaskSet().validPositions[decisionPos].locator = possibilities;
+ var targetLvp = getLastValidPosition(pos) + 1;
+ for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) ((validPos = getMaskSet().validPositions[i]) === undefined || null == validPos.match.fn) && i < pos + (staticInputsBeforePosAlternate - staticInputsBeforePos) && staticInputsBeforePosAlternate++;
+ isValidRslt = isValid((pos += staticInputsBeforePosAlternate - staticInputsBeforePos) > targetLvp ? targetLvp : pos, c, strict, fromSetValid, !0);
+ }
+ if (isValidRslt) return !1;
+ resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone);
+ }
+ }
+ });
+ }
+ return isValidRslt;
+ }(maskPos, c, strict)), !0 === result && (result = {
+ pos: maskPos
+ });
+ }
+ if ($.isFunction(opts.postValidation) && !1 !== result && !strict && !0 !== fromSetValid && !0 !== validateOnly) {
+ var postResult = opts.postValidation(getBuffer(!0), result, opts);
+ if (postResult.refreshFromBuffer && postResult.buffer) {
+ var refresh = postResult.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, postResult.buffer);
+ }
+ result = !0 === postResult ? result : postResult;
+ }
+ return result && result.pos === undefined && (result.pos = maskPos), !1 !== result && !0 !== validateOnly || (resetMaskSet(!0),
+ getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result;
+ }
+ function isMask(pos, strict) {
+ var test = getTestTemplate(pos).match;
+ if ("" === test.def && (test = getTest(pos).match), null != test.fn) return test.fn;
+ if (!0 !== strict && pos > -1) {
+ var tests = getTests(pos);
+ return tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0);
+ }
+ return !1;
+ }
+ function seekNext(pos, newBlock) {
+ var maskL = getMaskSet().maskLength;
+ if (pos >= maskL) return maskL;
+ var position = pos;
+ for (getTests(maskL + 1).length > 1 && (getMaskTemplate(!0, maskL + 1, !0), maskL = getMaskSet().maskLength); ++position < maskL && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position)) || !0 !== newBlock && !isMask(position)); ) ;
+ return position;
+ }
+ function seekPrevious(pos, newBlock) {
+ var tests, position = pos;
+ if (position <= 0) return 0;
+ for (;--position > 0 && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position) && ((tests = getTests(position)).length < 2 || 2 === tests.length && "" === tests[1].match.def)); ) ;
+ return position;
+ }
+ function getBufferElement(position) {
+ return getMaskSet().validPositions[position] === undefined ? getPlaceholder(position) : getMaskSet().validPositions[position].input;
+ }
+ function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
+ if (event && $.isFunction(opts.onBeforeWrite)) {
+ var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);
+ if (result) {
+ if (result.refreshFromBuffer) {
+ var refresh = result.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer),
+ buffer = getBuffer(!0);
+ }
+ caretPos !== undefined && (caretPos = result.caret !== undefined ? result.caret : caretPos);
+ }
+ }
+ input !== undefined && (input.inputmask._valueSet(buffer.join("")), caretPos === undefined || event !== undefined && "blur" === event.type ? renderColorMask(input, caretPos, 0 === buffer.length) : android && event && "input" === event.type ? setTimeout(function() {
+ caret(input, caretPos);
+ }, 0) : caret(input, caretPos), !0 === triggerInputEvent && (skipInputEvent = !0,
+ $(input).trigger("input")));
+ }
+ function getPlaceholder(pos, test, returnPL) {
+ if ((test = test || getTest(pos).match).placeholder !== undefined || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;
+ if (null === test.fn) {
+ if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {
+ var prevTest, tests = getTests(pos), staticAlternations = [];
+ if (tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (!0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (null === tests[i].match.fn || prevTest === undefined || !1 !== tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts)) && (staticAlternations.push(tests[i]),
+ null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1 && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);
+ }
+ return test.def;
+ }
+ return opts.placeholder.charAt(pos % opts.placeholder.length);
+ }
+ function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {
+ function isTemplateMatch(ndx, charCodes) {
+ return -1 !== getBufferTemplate().slice(ndx, seekNext(ndx)).join("").indexOf(charCodes) && !isMask(ndx) && getTest(ndx).match.nativeDef === charCodes.charAt(charCodes.length - 1);
+ }
+ var inputValue = nptvl.slice(), charCodes = "", initialNdx = -1, result = undefined;
+ if (resetMaskSet(), strict || !0 === opts.autoUnmask) initialNdx = seekNext(initialNdx); else {
+ var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g"));
+ matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length),
+ initialNdx = seekNext(initialNdx));
+ }
+ if (-1 === initialNdx ? (getMaskSet().p = seekNext(initialNdx), initialNdx = 0) : getMaskSet().p = initialNdx,
+ $.each(inputValue, function(ndx, charCode) {
+ if (charCode !== undefined) if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, !0) && !1 === isValid(ndx, inputValue[ndx], !0, undefined, undefined, !0)) getMaskSet().p++; else {
+ var keypress = new $.Event("_checkval");
+ keypress.which = charCode.charCodeAt(0), charCodes += charCode;
+ var lvp = getLastValidPosition(undefined, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : undefined, lvp);
+ if (!isTemplateMatch(initialNdx, charCodes) || strict || opts.autoUnmask) {
+ var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p;
+ result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, pos),
+ initialNdx = pos + 1, charCodes = "";
+ } else result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1);
+ if (!1 !== result && !strict && $.isFunction(opts.onBeforeWrite)) {
+ var origResult = result;
+ if (result = opts.onBeforeWrite.call(inputmask, keypress, getBuffer(), result.forwardPosition, opts),
+ (result = $.extend(origResult, result)) && result.refreshFromBuffer) {
+ var refresh = result.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer),
+ resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret, result.forwardPosition = result.caret);
+ }
+ }
+ }
+ }), writeOut) {
+ var caretPos = undefined;
+ document.activeElement === input && result && (caretPos = opts.numericInput ? seekPrevious(result.forwardPosition) : result.forwardPosition),
+ writeBuffer(input, getBuffer(), caretPos, initiatingEvent || new $.Event("checkval"), initiatingEvent && "input" === initiatingEvent.type);
+ }
+ }
+ function unmaskedvalue(input) {
+ if (input) {
+ if (input.inputmask === undefined) return input.value;
+ input.inputmask && input.inputmask.refreshValue && EventHandlers.setValueEvent.call(input);
+ }
+ var umValue = [], vps = getMaskSet().validPositions;
+ for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input);
+ var unmaskedValue = 0 === umValue.length ? "" : (isRTL ? umValue.reverse() : umValue).join("");
+ if ($.isFunction(opts.onUnMask)) {
+ var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
+ unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);
+ }
+ return unmaskedValue;
+ }
+ function caret(input, begin, end, notranslate) {
+ function translatePosition(pos) {
+ return !0 === notranslate || !isRTL || "number" != typeof pos || opts.greedy && "" === opts.placeholder || (pos = getBuffer().join("").length - pos),
+ pos;
+ }
+ var range;
+ if (begin === undefined) return input.setSelectionRange ? (begin = input.selectionStart,
+ end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset,
+ end = range.endOffset) : document.selection && document.selection.createRange && (end = (begin = 0 - (range = document.selection.createRange()).duplicate().moveStart("character", -input.inputmask._valueGet().length)) + range.text.length),
+ {
+ begin: translatePosition(begin),
+ end: translatePosition(end)
+ };
+ if (begin.begin !== undefined && (end = begin.end, begin = begin.begin), "number" == typeof begin) {
+ begin = translatePosition(begin), end = "number" == typeof (end = translatePosition(end)) ? end : begin;
+ var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;
+ if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || !1 !== opts.insertMode || begin !== end || end++,
+ input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) {
+ if (range = document.createRange(), input.firstChild === undefined || null === input.firstChild) {
+ var textNode = document.createTextNode("");
+ input.appendChild(textNode);
+ }
+ range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length),
+ range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length),
+ range.collapse(!0);
+ var sel = window.getSelection();
+ sel.removeAllRanges(), sel.addRange(range);
+ } else input.createTextRange && ((range = input.createTextRange()).collapse(!0),
+ range.moveEnd("character", end), range.moveStart("character", begin), range.select());
+ renderColorMask(input, {
+ begin: begin,
+ end: end
+ });
+ }
+ }
+ function determineLastRequiredPosition(returnDefinition) {
+ var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined;
+ for (pos = lvp + 1; pos < buffer.length; pos++) ndxIntlzr = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).locator.slice(),
+ positions[pos] = $.extend(!0, {}, testPos);
+ var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;
+ for (pos = bl - 1; pos > lvp && (((testPos = positions[pos]).match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && "" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;
+ return returnDefinition ? {
+ l: bl,
+ def: positions[bl] ? positions[bl].match : undefined
+ } : bl;
+ }
+ function clearOptionalTail(buffer) {
+ for (var validPos, rl = determineLastRequiredPosition(), bl = buffer.length, lv = getMaskSet().validPositions[getLastValidPosition()]; rl < bl && !isMask(rl, !0) && (validPos = lv !== undefined ? getTestTemplate(rl, lv.locator.slice(""), lv) : getTest(rl)) && !0 !== validPos.match.optionality && (!0 !== validPos.match.optionalQuantifier && !0 !== validPos.match.newBlockMarker || rl + 1 === bl && "" === (lv !== undefined ? getTestTemplate(rl + 1, lv.locator.slice(""), lv) : getTest(rl + 1)).match.def); ) rl++;
+ for (;(validPos = getMaskSet().validPositions[rl - 1]) && validPos && validPos.match.optionality && validPos.input === opts.skipOptionalPartCharacter; ) rl--;
+ return buffer.splice(rl), buffer;
+ }
+ function isComplete(buffer) {
+ if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
+ if ("*" === opts.repeat) return undefined;
+ var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);
+ if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {
+ complete = !0;
+ for (var i = 0; i <= aml; i++) {
+ var test = getTestTemplate(i).match;
+ if (null !== test.fn && getMaskSet().validPositions[i] === undefined && !0 !== test.optionality && !0 !== test.optionalQuantifier || null === test.fn && buffer[i] !== getPlaceholder(i, test)) {
+ complete = !1;
+ break;
+ }
+ }
+ }
+ return complete;
+ }
+ function handleRemove(input, k, pos, strict, fromIsValid) {
+ if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE),
+ isRTL)) {
+ var pend = pos.end;
+ pos.end = pos.begin, pos.begin = pend;
+ }
+ k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || !1 === opts.insertMode) ? (pos.begin = seekPrevious(pos.begin),
+ getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0) && getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint ? pos.end + 1 : seekNext(pos.end) + 1,
+ getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.end++),
+ stripValidPositions(pos.begin, pos.end, !1, strict), !0 !== strict && function() {
+ if (opts.keepStatic) {
+ for (var validInputs = [], lastAlt = getLastValidPosition(-1, !0), positionsClone = $.extend(!0, {}, getMaskSet().validPositions), prevAltPos = getMaskSet().validPositions[lastAlt]; lastAlt >= 0; lastAlt--) {
+ var altPos = getMaskSet().validPositions[lastAlt];
+ if (altPos) {
+ if (!0 !== altPos.generatedInput && /[0-9a-bA-Z]/.test(altPos.input) && validInputs.push(altPos.input),
+ delete getMaskSet().validPositions[lastAlt], altPos.alternation !== undefined && altPos.locator[altPos.alternation] !== prevAltPos.locator[altPos.alternation]) break;
+ prevAltPos = altPos;
+ }
+ }
+ if (lastAlt > -1) for (getMaskSet().p = seekNext(getLastValidPosition(-1, !0)); validInputs.length > 0; ) {
+ var keypress = new $.Event("keypress");
+ keypress.which = validInputs.pop().charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);
+ } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone);
+ }
+ }();
+ var lvp = getLastValidPosition(pos.begin, !0);
+ if (lvp < pos.begin) getMaskSet().p = seekNext(lvp); else if (!0 !== strict && (getMaskSet().p = pos.begin,
+ !0 !== fromIsValid)) for (;getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined; ) getMaskSet().p++;
+ }
+ function initializeColorMask(input) {
+ function findCaretPos(clientx) {
+ var caretPos, e = document.createElement("span");
+ for (var style in computedStyle) isNaN(style) && -1 !== style.indexOf("font") && (e.style[style] = computedStyle[style]);
+ e.style.textTransform = computedStyle.textTransform, e.style.letterSpacing = computedStyle.letterSpacing,
+ e.style.position = "absolute", e.style.height = "auto", e.style.width = "auto",
+ e.style.visibility = "hidden", e.style.whiteSpace = "nowrap", document.body.appendChild(e);
+ var itl, inputText = input.inputmask._valueGet(), previousWidth = 0;
+ for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {
+ if (e.innerHTML += inputText.charAt(caretPos) || "_", e.offsetWidth >= clientx) {
+ var offset1 = clientx - previousWidth, offset2 = e.offsetWidth - clientx;
+ e.innerHTML = inputText.charAt(caretPos), caretPos = (offset1 -= e.offsetWidth / 3) < offset2 ? caretPos - 1 : caretPos;
+ break;
+ }
+ previousWidth = e.offsetWidth;
+ }
+ return document.body.removeChild(e), caretPos;
+ }
+ var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null), template = document.createElement("div");
+ template.style.width = computedStyle.width, template.style.textAlign = computedStyle.textAlign,
+ (colorMask = document.createElement("div")).className = "im-colormask", input.parentNode.insertBefore(colorMask, input),
+ input.parentNode.removeChild(input), colorMask.appendChild(template), colorMask.appendChild(input),
+ input.style.left = template.offsetLeft + "px", $(input).on("click", function(e) {
+ return caret(input, findCaretPos(e.clientX)), EventHandlers.clickEvent.call(input, [ e ]);
+ }), $(input).on("keydown", function(e) {
+ e.shiftKey || !1 === opts.insertMode || setTimeout(function() {
+ renderColorMask(input);
+ }, 0);
+ });
+ }
+ function renderColorMask(input, caretPos, clear) {
+ function handleStatic() {
+ isStatic || null !== test.fn && testPos.input !== undefined ? isStatic && (null !== test.fn && testPos.input !== undefined || "" === test.def) && (isStatic = !1,
+ maskTemplate += "</span>") : (isStatic = !0, maskTemplate += "<span class='im-static'>");
+ }
+ function handleCaret(force) {
+ !0 !== force && pos !== caretPos.begin || document.activeElement !== input || (maskTemplate += "<span class='im-caret' style='border-right-width: 1px;border-right-style: solid;'></span>");
+ }
+ var test, testPos, ndxIntlzr, maskTemplate = "", isStatic = !1, pos = 0;
+ if (colorMask !== undefined) {
+ var buffer = getBuffer();
+ if (caretPos === undefined ? caretPos = caret(input) : caretPos.begin === undefined && (caretPos = {
+ begin: caretPos,
+ end: caretPos
+ }), !0 !== clear) {
+ var lvp = getLastValidPosition();
+ do {
+ handleCaret(), getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos],
+ test = testPos.match, ndxIntlzr = testPos.locator.slice(), handleStatic(), maskTemplate += buffer[pos]) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1),
+ test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || "number" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && (handleStatic(),
+ maskTemplate += getPlaceholder(pos, test))), pos++;
+ } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || lvp > pos || isStatic);
+ -1 === maskTemplate.indexOf("im-caret") && handleCaret(!0), isStatic && handleStatic();
+ }
+ var template = colorMask.getElementsByTagName("div")[0];
+ template.innerHTML = maskTemplate, input.inputmask.positionColorMask(input, template);
+ }
+ }
+ maskset = maskset || this.maskset, opts = opts || this.opts;
+ var undoValue, $el, maxLength, colorMask, inputmask = this, el = this.el, isRTL = this.isRTL, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !1, EventRuler = {
+ on: function(input, eventName, eventHandler) {
+ var ev = function(e) {
+ if (this.inputmask === undefined && "FORM" !== this.nodeName) {
+ var imOpts = $.data(this, "_inputmask_opts");
+ imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this);
+ } else {
+ if ("setvalue" === e.type || "FORM" === this.nodeName || !(this.disabled || this.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === Inputmask.keyCode.TAB))) {
+ switch (e.type) {
+ case "input":
+ if (!0 === skipInputEvent) return skipInputEvent = !1, e.preventDefault();
+ break;
+
+ case "keydown":
+ skipKeyPressEvent = !1, skipInputEvent = !1;
+ break;
+
+ case "keypress":
+ if (!0 === skipKeyPressEvent) return e.preventDefault();
+ skipKeyPressEvent = !0;
+ break;
+
+ case "click":
+ if (iemobile || iphone) {
+ var that = this, args = arguments;
+ return setTimeout(function() {
+ eventHandler.apply(that, args);
+ }, 0), !1;
+ }
+ }
+ var returnVal = eventHandler.apply(this, arguments);
+ return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;
+ }
+ e.preventDefault();
+ }
+ };
+ input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev),
+ -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev);
+ },
+ off: function(input, event) {
+ if (input.inputmask && input.inputmask.events) {
+ var events;
+ event ? (events = [])[event] = input.inputmask.events[event] : events = input.inputmask.events,
+ $.each(events, function(eventName, evArr) {
+ for (;evArr.length > 0; ) {
+ var ev = evArr.pop();
+ -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);
+ }
+ delete input.inputmask.events[eventName];
+ });
+ }
+ }
+ }, EventHandlers = {
+ keydownEvent: function(e) {
+ var input = this, $input = $(input), k = e.keyCode, pos = caret(input);
+ if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !function(eventName) {
+ var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el;
+ return isSupported || (el.setAttribute(evName, "return;"), isSupported = "function" == typeof el[evName]),
+ el = null, isSupported;
+ }("cut")) e.preventDefault(), handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join("")),
+ input.inputmask._valueGet() === getBufferTemplate().join("") ? $input.trigger("cleared") : !0 === isComplete(getBuffer()) && $input.trigger("complete"); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {
+ e.preventDefault();
+ var caretPos = seekNext(getLastValidPosition());
+ opts.insertMode || caretPos !== getMaskSet().maskLength || e.shiftKey || caretPos--,
+ caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);
+ } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(),
+ caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, undoValue.split("")),
+ $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB ? (!0 === e.shiftKey ? (null === getTest(pos.begin).match.fn && (pos.begin = seekNext(pos.begin)),
+ pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0),
+ pos.end = seekNext(pos.begin, !0), pos.end < getMaskSet().maskLength && pos.end--),
+ pos.begin < getMaskSet().maskLength && (e.preventDefault(), caret(input, pos.begin, pos.end))) : e.shiftKey || !1 === opts.insertMode && (k === Inputmask.keyCode.RIGHT ? setTimeout(function() {
+ var caretPos = caret(input);
+ caret(input, caretPos.begin);
+ }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() {
+ var caretPos = caret(input);
+ caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
+ }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskSet().maskLength ? pos.begin : pos.begin - 1));
+ opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables);
+ },
+ keypressEvent: function(e, checkval, writeOut, strict, ndx) {
+ var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
+ if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""),
+ setTimeout(function() {
+ $input.trigger("change");
+ }, 0)), !0;
+ if (k) {
+ 46 === k && !1 === e.shiftKey && "" !== opts.radixPoint && (k = opts.radixPoint.charCodeAt(0));
+ var forwardPosition, pos = checkval ? {
+ begin: ndx,
+ end: ndx
+ } : caret(input), c = String.fromCharCode(k);
+ getMaskSet().writeOutBuffer = !0;
+ var valResult = isValid(pos, c, strict);
+ if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = valResult.caret !== undefined ? valResult.caret : checkval ? valResult.pos + 1 : seekNext(valResult.pos),
+ getMaskSet().p = forwardPosition), !1 !== writeOut && (setTimeout(function() {
+ opts.onKeyValidation.call(input, k, valResult, opts);
+ }, 0), getMaskSet().writeOutBuffer && !1 !== valResult)) {
+ var buffer = getBuffer();
+ writeBuffer(input, buffer, opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition, e, !0 !== checkval),
+ !0 !== checkval && setTimeout(function() {
+ !0 === isComplete(buffer) && $input.trigger("complete");
+ }, 0);
+ }
+ if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition),
+ valResult;
+ }
+ },
+ pasteEvent: function(e) {
+ var tempValue, input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input);
+ isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);
+ var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);
+ if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""),
+ valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join("") && (valueAfterCaret = ""),
+ isRTL && (tempValue = valueBeforeCaret, valueBeforeCaret = valueAfterCaret, valueAfterCaret = tempValue),
+ window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret; else {
+ if (!ev.clipboardData || !ev.clipboardData.getData) return !0;
+ inputValue = valueBeforeCaret + ev.clipboardData.getData("text/plain") + valueAfterCaret;
+ }
+ var pasteValue = inputValue;
+ if ($.isFunction(opts.onBeforePaste)) {
+ if (!1 === (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts))) return e.preventDefault();
+ pasteValue || (pasteValue = inputValue);
+ }
+ return checkVal(input, !1, !1, isRTL ? pasteValue.split("").reverse() : pasteValue.toString().split("")),
+ writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join("")),
+ !0 === isComplete(getBuffer()) && $input.trigger("complete"), e.preventDefault();
+ },
+ inputFallBackEvent: function(e) {
+ var input = this, inputValue = input.inputmask._valueGet();
+ if (getBuffer().join("") !== inputValue) {
+ var caretPos = caret(input);
+ if (!1 === function(input, inputValue, caretPos) {
+ if ("." === inputValue.charAt(caretPos.begin - 1) && "" !== opts.radixPoint && ((inputValue = inputValue.split(""))[caretPos.begin - 1] = opts.radixPoint.charAt(0),
+ inputValue = inputValue.join("")), inputValue.charAt(caretPos.begin - 1) === opts.radixPoint && inputValue.length > getBuffer().length) {
+ var keypress = new $.Event("keypress");
+ return keypress.which = opts.radixPoint.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, caretPos.begin - 1),
+ !1;
+ }
+ }(input, inputValue, caretPos)) return !1;
+ if (inputValue = inputValue.replace(new RegExp("(" + Inputmask.escapeRegex(getBufferTemplate().join("")) + ")*"), ""),
+ !1 === function(input, inputValue, caretPos) {
+ if (iemobile) {
+ var inputChar = inputValue.replace(getBuffer().join(""), "");
+ if (1 === inputChar.length) {
+ var keypress = new $.Event("keypress");
+ return keypress.which = inputChar.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1),
+ !1;
+ }
+ }
+ }(input, inputValue, caretPos)) return !1;
+ caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input));
+ var buffer = getBuffer().join(""), frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin), backBufferPart = buffer.substr(caretPos.begin), selection = caretPos, entries = "", isEntry = !1;
+ if (frontPart !== frontBufferPart) {
+ selection.begin = 0;
+ for (var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) selection.begin++;
+ isEntry && (entries += frontPart.slice(selection.begin, selection.end));
+ }
+ backPart !== backBufferPart && (backPart.length > backBufferPart.length ? isEntry && (selection.end = selection.begin) : backPart.length < backBufferPart.length ? selection.end += backBufferPart.length - backPart.length : backPart.charAt(0) !== backBufferPart.charAt(0) && selection.end++),
+ writeBuffer(input, getBuffer(), selection), entries.length > 0 ? $.each(entries.split(""), function(ndx, entry) {
+ var keypress = new $.Event("keypress");
+ keypress.which = entry.charCodeAt(0), ignorable = !1, EventHandlers.keypressEvent.call(input, keypress);
+ }) : (selection.begin === selection.end - 1 && caret(input, seekPrevious(selection.begin + 1), selection.end),
+ e.keyCode = Inputmask.keyCode.DELETE, EventHandlers.keydownEvent.call(input, e)),
+ e.preventDefault();
+ }
+ },
+ setValueEvent: function(e) {
+ this.inputmask.refreshValue = !1;
+ var input = this, value = input.inputmask._valueGet(!0);
+ $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask.call(inputmask, value, opts) || value),
+ value = value.split(""), checkVal(input, !0, !1, isRTL ? value.reverse() : value),
+ undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet("");
+ },
+ focusEvent: function(e) {
+ var input = this, nptValue = input.inputmask._valueGet();
+ opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && "" === nptValue) && (input.inputmask._valueGet() !== getBuffer().join("") ? writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : !1 === mouseEnter && caret(input, seekNext(getLastValidPosition()))),
+ !0 === opts.positionCaretOnTab && !1 === mouseEnter && "" !== nptValue && (writeBuffer(input, getBuffer(), caret(input)),
+ EventHandlers.clickEvent.apply(input, [ e, !0 ])), undoValue = getBuffer().join("");
+ },
+ mouseleaveEvent: function(e) {
+ var input = this;
+ if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) {
+ var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet();
+ nptValue !== input.getAttribute("placeholder") && "" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer),
+ writeBuffer(input, buffer));
+ }
+ },
+ clickEvent: function(e, tabbed) {
+ function doRadixFocus(clickPos) {
+ if ("" !== opts.radixPoint) {
+ var vps = getMaskSet().validPositions;
+ if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {
+ if (clickPos < seekNext(-1)) return !0;
+ var radixPos = $.inArray(opts.radixPoint, getBuffer());
+ if (-1 !== radixPos) {
+ for (var vp in vps) if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1;
+ return !0;
+ }
+ }
+ }
+ return !1;
+ }
+ var input = this;
+ setTimeout(function() {
+ if (document.activeElement === input) {
+ var selectedCaret = caret(input);
+ if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end),
+ selectedCaret.begin === selectedCaret.end) switch (opts.positionCaretOnClick) {
+ case "none":
+ break;
+
+ case "radixFocus":
+ if (doRadixFocus(selectedCaret.begin)) {
+ var radixPos = getBuffer().join("").indexOf(opts.radixPoint);
+ caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);
+ break;
+ }
+
+ default:
+ var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);
+ if (clickPosition < lastPosition) caret(input, isMask(clickPosition, !0) || isMask(clickPosition - 1, !0) ? clickPosition : seekNext(clickPosition)); else {
+ var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match);
+ if ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask(lastPosition, !0) && tt.match.def === placeholder) {
+ var newPos = seekNext(lastPosition);
+ (clickPosition >= newPos || clickPosition === lastPosition) && (lastPosition = newPos);
+ }
+ caret(input, lastPosition);
+ }
+ }
+ }
+ }, 0);
+ },
+ dblclickEvent: function(e) {
+ var input = this;
+ setTimeout(function() {
+ caret(input, 0, seekNext(getLastValidPosition()));
+ }, 0);
+ },
+ cutEvent: function(e) {
+ var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);
+ clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")),
+ document.execCommand && document.execCommand("copy"), handleRemove(input, Inputmask.keyCode.DELETE, pos),
+ writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")),
+ input.inputmask._valueGet() === getBufferTemplate().join("") && $input.trigger("cleared");
+ },
+ blurEvent: function(e) {
+ var $input = $(this), input = this;
+ if (input.inputmask) {
+ var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();
+ "" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)),
+ !1 === isComplete(buffer) && (setTimeout(function() {
+ $input.trigger("incomplete");
+ }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())),
+ writeBuffer(input, buffer, undefined, e)), undoValue !== getBuffer().join("") && (undoValue = buffer.join(""),
+ $input.trigger("change"));
+ }
+ },
+ mouseenterEvent: function(e) {
+ var input = this;
+ mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer());
+ },
+ submitEvent: function(e) {
+ undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""),
+ opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0),
+ setTimeout(function() {
+ writeBuffer(el, getBuffer());
+ }, 0));
+ },
+ resetEvent: function(e) {
+ el.inputmask.refreshValue = !0, setTimeout(function() {
+ $el.trigger("setvalue");
+ }, 0);
+ }
+ };
+ Inputmask.prototype.positionColorMask = function(input, template) {
+ input.style.left = template.offsetLeft + "px";
+ };
+ var valueBuffer;
+ if (actionObj !== undefined) switch (actionObj.action) {
+ case "isComplete":
+ return el = actionObj.el, isComplete(getBuffer());
+
+ case "unmaskedvalue":
+ return el !== undefined && actionObj.value === undefined || (valueBuffer = actionObj.value,
+ valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer : valueBuffer).split(""),
+ checkVal(undefined, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts)),
+ unmaskedvalue(el);
+
+ case "mask":
+ !function(elem) {
+ EventRuler.off(elem);
+ var isSupported = function(input, opts) {
+ var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "TEXTAREA" === input.tagName;
+ if (!isSupported) if ("INPUT" === input.tagName) {
+ var el = document.createElement("input");
+ el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null;
+ } else isSupported = "partial";
+ return !1 !== isSupported ? function(npt) {
+ function getter() {
+ return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
+ }
+ function setter(value) {
+ valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
+ }
+ var valueGet, valueSet;
+ if (!npt.inputmask.__valueGet) {
+ if (!0 !== opts.noValuePatching) {
+ if (Object.getOwnPropertyDescriptor) {
+ "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" == typeof "test".__proto__ ? function(object) {
+ return object.__proto__;
+ } : function(object) {
+ return object.constructor.prototype;
+ });
+ var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : undefined;
+ valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get,
+ valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
+ get: getter,
+ set: setter,
+ configurable: !0
+ })) : "INPUT" !== npt.tagName && (valueGet = function() {
+ return this.textContent;
+ }, valueSet = function(value) {
+ this.textContent = value;
+ }, Object.defineProperty(npt, "value", {
+ get: getter,
+ set: setter,
+ configurable: !0
+ }));
+ } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"),
+ valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter),
+ npt.__defineSetter__("value", setter));
+ npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
+ }
+ npt.inputmask._valueGet = function(overruleRTL) {
+ return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
+ }, npt.inputmask._valueSet = function(value, overruleRTL) {
+ valueSet.call(this.el, null === value || value === undefined ? "" : !0 !== overruleRTL && isRTL ? value.split("").reverse().join("") : value);
+ }, valueGet === undefined && (valueGet = function() {
+ return this.value;
+ }, valueSet = function(value) {
+ this.value = value;
+ }, function(type) {
+ if ($.valHooks && ($.valHooks[type] === undefined || !0 !== $.valHooks[type].inputmaskpatch)) {
+ var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
+ return elem.value;
+ }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
+ return elem.value = value, elem;
+ };
+ $.valHooks[type] = {
+ get: function(elem) {
+ if (elem.inputmask) {
+ if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
+ var result = valhookGet(elem);
+ return -1 !== getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : "";
+ }
+ return valhookGet(elem);
+ },
+ set: function(elem, value) {
+ var result, $elem = $(elem);
+ return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"),
+ result;
+ },
+ inputmaskpatch: !0
+ };
+ }
+ }(npt.type), function(npt) {
+ EventRuler.on(npt, "mouseenter", function(event) {
+ var $input = $(this);
+ this.inputmask._valueGet() !== getBuffer().join("") && $input.trigger("setvalue");
+ });
+ }(npt));
+ }
+ }(input) : input.inputmask = undefined, isSupported;
+ }(elem, opts);
+ if (!1 !== isSupported && (el = elem, $el = $(el), -1 === (maxLength = el !== undefined ? el.maxLength : undefined) && (maxLength = undefined),
+ !0 === opts.colorMask && initializeColorMask(el), android && (el.hasOwnProperty("inputmode") && (el.inputmode = opts.inputmode,
+ el.setAttribute("inputmode", opts.inputmode)), "rtfm" === opts.androidHack && (!0 !== opts.colorMask && initializeColorMask(el),
+ el.type = "password")), !0 === isSupported && (EventRuler.on(el, "submit", EventHandlers.submitEvent),
+ EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent),
+ EventRuler.on(el, "blur", EventHandlers.blurEvent), EventRuler.on(el, "focus", EventHandlers.focusEvent),
+ EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent), !0 !== opts.colorMask && EventRuler.on(el, "click", EventHandlers.clickEvent),
+ EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent), EventRuler.on(el, "paste", EventHandlers.pasteEvent),
+ EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent), EventRuler.on(el, "drop", EventHandlers.pasteEvent),
+ EventRuler.on(el, "cut", EventHandlers.cutEvent), EventRuler.on(el, "complete", opts.oncomplete),
+ EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared),
+ android || !0 === opts.inputEventOnly ? el.removeAttribute("maxLength") : (EventRuler.on(el, "keydown", EventHandlers.keydownEvent),
+ EventRuler.on(el, "keypress", EventHandlers.keypressEvent)), EventRuler.on(el, "compositionstart", $.noop),
+ EventRuler.on(el, "compositionupdate", $.noop), EventRuler.on(el, "compositionend", $.noop),
+ EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent),
+ EventRuler.on(el, "beforeinput", $.noop)), EventRuler.on(el, "setvalue", EventHandlers.setValueEvent),
+ undoValue = getBufferTemplate().join(""), "" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || document.activeElement === el)) {
+ var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(!0), opts) || el.inputmask._valueGet(!0) : el.inputmask._valueGet(!0);
+ "" !== initialValue && checkVal(el, !0, !1, isRTL ? initialValue.split("").reverse() : initialValue.split(""));
+ var buffer = getBuffer().slice();
+ undoValue = buffer.join(""), !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(),
+ opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)),
+ writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition()));
+ }
+ }(el);
+ break;
+
+ case "format":
+ return valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value : actionObj.value).split(""),
+ checkVal(undefined, !0, !1, isRTL ? valueBuffer.reverse() : valueBuffer), actionObj.metadata ? {
+ value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""),
+ metadata: maskScope.call(this, {
+ action: "getmetadata"
+ }, maskset, opts)
+ } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join("");
+
+ case "isValid":
+ actionObj.value ? (valueBuffer = actionObj.value.split(""), checkVal(undefined, !0, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join("");
+ for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;
+ return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join("");
+
+ case "getemptymask":
+ return getBufferTemplate().join("");
+
+ case "remove":
+ if (el && el.inputmask) {
+ $el = $(el), el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)),
+ EventRuler.off(el);
+ Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), "value") && el.inputmask.__valueGet && Object.defineProperty(el, "value", {
+ get: el.inputmask.__valueGet,
+ set: el.inputmask.__valueSet,
+ configurable: !0
+ }) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet),
+ el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = undefined;
+ }
+ return el;
+
+ case "getmetadata":
+ if ($.isArray(maskset.metadata)) {
+ var maskTarget = getMaskTemplate(!0, 0, !1).join("");
+ return $.each(maskset.metadata, function(ndx, mtdt) {
+ if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1;
+ }), maskTarget;
+ }
+ return maskset.metadata;
+ }
+ }
+ var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;
+ return Inputmask.prototype = {
+ dataAttribute: "data-inputmask",
+ defaults: {
+ placeholder: "_",
+ optionalmarker: {
+ start: "[",
+ end: "]"
+ },
+ quantifiermarker: {
+ start: "{",
+ end: "}"
+ },
+ groupmarker: {
+ start: "(",
+ end: ")"
+ },
+ alternatormarker: "|",
+ escapeChar: "\\",
+ mask: null,
+ regex: null,
+ oncomplete: $.noop,
+ onincomplete: $.noop,
+ oncleared: $.noop,
+ repeat: 0,
+ greedy: !0,
+ autoUnmask: !1,
+ removeMaskOnSubmit: !1,
+ clearMaskOnLostFocus: !0,
+ insertMode: !0,
+ clearIncomplete: !1,
+ alias: null,
+ onKeyDown: $.noop,
+ onBeforeMask: null,
+ onBeforePaste: function(pastedValue, opts) {
+ return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;
+ },
+ onBeforeWrite: null,
+ onUnMask: null,
+ showMaskOnFocus: !0,
+ showMaskOnHover: !0,
+ onKeyValidation: $.noop,
+ skipOptionalPartCharacter: " ",
+ numericInput: !1,
+ rightAlign: !1,
+ undoOnEscape: !0,
+ radixPoint: "",
+ radixPointDefinitionSymbol: undefined,
+ groupSeparator: "",
+ keepStatic: null,
+ positionCaretOnTab: !0,
+ tabThrough: !1,
+ supportsInputType: [ "text", "tel", "password" ],
+ ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],
+ isComplete: null,
+ canClearPosition: $.noop,
+ preValidation: null,
+ postValidation: null,
+ staticDefinitionSymbol: undefined,
+ jitMasking: !1,
+ nullable: !0,
+ inputEventOnly: !1,
+ noValuePatching: !1,
+ positionCaretOnClick: "lvp",
+ casing: null,
+ inputmode: "verbatim",
+ colorMask: !1,
+ androidHack: !1,
+ importDataAttributes: !0
+ },
+ definitions: {
+ "9": {
+ validator: "[0-91-9]",
+ cardinality: 1,
+ definitionSymbol: "*"
+ },
+ a: {
+ validator: "[A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ definitionSymbol: "*"
+ },
+ "*": {
+ validator: "[0-91-9A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1
+ }
+ },
+ aliases: {},
+ masksCache: {},
+ mask: function(elems) {
+ function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
+ function importOption(option, optionData) {
+ null !== (optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + "-" + option)) && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)),
+ userOptions[option] = optionData);
+ }
+ if (!0 === opts.importDataAttributes) {
+ var option, dataoptions, optionData, p, attrOptions = npt.getAttribute(dataAttribute);
+ if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'),
+ dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) {
+ optionData = undefined;
+ for (p in dataoptions) if ("alias" === p.toLowerCase()) {
+ optionData = dataoptions[p];
+ break;
+ }
+ }
+ importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);
+ for (option in opts) {
+ if (dataoptions) {
+ optionData = undefined;
+ for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
+ optionData = dataoptions[p];
+ break;
+ }
+ }
+ importOption(option, optionData);
+ }
+ }
+ return $.extend(!0, opts, userOptions), ("rtl" === npt.dir || opts.rightAlign) && (npt.style.textAlign = "right"),
+ ("rtl" === npt.dir || opts.numericInput) && (npt.dir = "ltr", npt.removeAttribute("dir"),
+ opts.isRTL = !0), opts;
+ }
+ var that = this;
+ return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)),
+ elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {
+ var scopedOpts = $.extend(!0, {}, that.opts);
+ importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);
+ var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
+ maskset !== undefined && (el.inputmask !== undefined && (el.inputmask.opts.autoUnmask = !0,
+ el.inputmask.remove()), el.inputmask = new Inputmask(undefined, undefined, !0),
+ el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions),
+ el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput, el.inputmask.el = el,
+ el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", scopedOpts), maskScope.call(el.inputmask, {
+ action: "mask"
+ }));
+ }), elems && elems[0] ? elems[0].inputmask || this : this;
+ },
+ option: function(options, noremask) {
+ return "string" == typeof options ? this.opts[options] : "object" == typeof options ? ($.extend(this.userOptions, options),
+ this.el && !0 !== noremask && this.mask(this.el), this) : void 0;
+ },
+ unmaskedvalue: function(value) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "unmaskedvalue",
+ value: value
+ });
+ },
+ remove: function() {
+ return maskScope.call(this, {
+ action: "remove"
+ });
+ },
+ getemptymask: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "getemptymask"
+ });
+ },
+ hasMaskedValue: function() {
+ return !this.opts.autoUnmask;
+ },
+ isComplete: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "isComplete"
+ });
+ },
+ getmetadata: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "getmetadata"
+ });
+ },
+ isValid: function(value) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "isValid",
+ value: value
+ });
+ },
+ format: function(value, metadata) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "format",
+ value: value,
+ metadata: metadata
+ });
+ },
+ analyseMask: function(mask, regexMask, opts) {
+ function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {
+ this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1,
+ this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1,
+ this.quantifier = {
+ min: 1,
+ max: 1
+ };
+ }
+ function insertTestDefinition(mtoken, element, position) {
+ position = position !== undefined ? position : mtoken.matches.length;
+ var prevMatch = mtoken.matches[position - 1];
+ if (regexMask) 0 === element.indexOf("[") || escaped && /\\d|\\s|\\w]/i.test(element) || "." === element ? mtoken.matches.splice(position++, 0, {
+ fn: new RegExp(element, opts.casing ? "i" : ""),
+ cardinality: 1,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== element,
+ casing: null,
+ def: element,
+ placeholder: undefined,
+ nativeDef: element
+ }) : (escaped && (element = element[element.length - 1]), $.each(element.split(""), function(ndx, lmnt) {
+ prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {
+ fn: null,
+ cardinality: 0,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== lmnt && null !== prevMatch.fn,
+ casing: null,
+ def: opts.staticDefinitionSymbol || lmnt,
+ placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,
+ nativeDef: lmnt
+ });
+ })), escaped = !1; else {
+ var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];
+ if (maskdef && !escaped) {
+ for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
+ var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
+ mtoken.matches.splice(position++, 0, {
+ fn: validator ? "string" == typeof validator ? new RegExp(validator, opts.casing ? "i" : "") : new function() {
+ this.test = validator;
+ }() : new RegExp("."),
+ cardinality: cardinality || 1,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),
+ casing: maskdef.casing,
+ def: maskdef.definitionSymbol || element,
+ placeholder: maskdef.placeholder,
+ nativeDef: element
+ }), prevMatch = mtoken.matches[position - 1];
+ }
+ mtoken.matches.splice(position++, 0, {
+ fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? "i" : "") : new function() {
+ this.test = maskdef.validator;
+ }() : new RegExp("."),
+ cardinality: maskdef.cardinality,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),
+ casing: maskdef.casing,
+ def: maskdef.definitionSymbol || element,
+ placeholder: maskdef.placeholder,
+ nativeDef: element
+ });
+ } else mtoken.matches.splice(position++, 0, {
+ fn: null,
+ cardinality: 0,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== element && null !== prevMatch.fn,
+ casing: null,
+ def: opts.staticDefinitionSymbol || element,
+ placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,
+ nativeDef: element
+ }), escaped = !1;
+ }
+ }
+ function verifyGroupMarker(maskToken) {
+ maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) {
+ var nextToken = maskToken.matches[ndx + 1];
+ (nextToken === undefined || nextToken.matches === undefined || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1,
+ regexMask || (insertTestDefinition(token, opts.groupmarker.start, 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker.end))),
+ verifyGroupMarker(token);
+ });
+ }
+ function defaultCase() {
+ if (openenings.length > 0) {
+ if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m),
+ currentOpeningToken.isAlternator) {
+ alternator = openenings.pop();
+ for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;
+ openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator);
+ }
+ } else insertTestDefinition(currentToken, m);
+ }
+ function reverseTokens(maskToken) {
+ maskToken.matches = maskToken.matches.reverse();
+ for (var match in maskToken.matches) if (maskToken.matches.hasOwnProperty(match)) {
+ var intMatch = parseInt(match);
+ if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {
+ var qt = maskToken.matches[match];
+ maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);
+ }
+ maskToken.matches[match].matches !== undefined ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = function(st) {
+ return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start),
+ st;
+ }(maskToken.matches[match]);
+ }
+ return maskToken;
+ }
+ var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, regexTokenizer = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = [];
+ for (regexMask && (opts.optionalmarker.start = undefined, opts.optionalmarker.end = undefined); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {
+ if (m = match[0], regexMask) switch (m.charAt(0)) {
+ case "?":
+ m = "{0,1}";
+ break;
+
+ case "+":
+ case "*":
+ m = "{" + m + "}";
+ }
+ if (escaped) defaultCase(); else switch (m.charAt(0)) {
+ case opts.escapeChar:
+ escaped = !0, regexMask && defaultCase();
+ break;
+
+ case opts.optionalmarker.end:
+ case opts.groupmarker.end:
+ if (openingToken = openenings.pop(), openingToken.openGroup = !1, openingToken !== undefined) if (openenings.length > 0) {
+ if ((currentOpeningToken = openenings[openenings.length - 1]).matches.push(openingToken),
+ currentOpeningToken.isAlternator) {
+ alternator = openenings.pop();
+ for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1,
+ alternator.matches[mndx].alternatorGroup = !1;
+ openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator);
+ }
+ } else currentToken.matches.push(openingToken); else defaultCase();
+ break;
+
+ case opts.optionalmarker.start:
+ openenings.push(new MaskToken(!1, !0));
+ break;
+
+ case opts.groupmarker.start:
+ openenings.push(new MaskToken(!0));
+ break;
+
+ case opts.quantifiermarker.start:
+ var quantifier = new MaskToken(!1, !1, !0), mq = (m = m.replace(/[{}]/g, "")).split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);
+ if ("*" !== mq1 && "+" !== mq1 || (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = {
+ min: mq0,
+ max: mq1
+ }, openenings.length > 0) {
+ var matches = openenings[openenings.length - 1].matches;
+ (match = matches.pop()).isGroup || ((groupToken = new MaskToken(!0)).matches.push(match),
+ match = groupToken), matches.push(match), matches.push(quantifier);
+ } else (match = currentToken.matches.pop()).isGroup || (regexMask && null === match.fn && "." === match.def && (match.fn = new RegExp(match.def, opts.casing ? "i" : "")),
+ (groupToken = new MaskToken(!0)).matches.push(match), match = groupToken), currentToken.matches.push(match),
+ currentToken.matches.push(quantifier);
+ break;
+
+ case opts.alternatormarker:
+ if (openenings.length > 0) {
+ var subToken = (currentOpeningToken = openenings[openenings.length - 1]).matches[currentOpeningToken.matches.length - 1];
+ lastMatch = currentOpeningToken.openGroup && (subToken.matches === undefined || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : currentOpeningToken.matches.pop();
+ } else lastMatch = currentToken.matches.pop();
+ if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(),
+ lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch),
+ openenings.push(alternator), lastMatch.openGroup) {
+ lastMatch.openGroup = !1;
+ var alternatorGroup = new MaskToken(!0);
+ alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);
+ }
+ break;
+
+ default:
+ defaultCase();
+ }
+ }
+ for (;openenings.length > 0; ) openingToken = openenings.pop(), currentToken.matches.push(openingToken);
+ return currentToken.matches.length > 0 && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)),
+ (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;
+ }
+ }, Inputmask.extendDefaults = function(options) {
+ $.extend(!0, Inputmask.prototype.defaults, options);
+ }, Inputmask.extendDefinitions = function(definition) {
+ $.extend(!0, Inputmask.prototype.definitions, definition);
+ }, Inputmask.extendAliases = function(alias) {
+ $.extend(!0, Inputmask.prototype.aliases, alias);
+ }, Inputmask.format = function(value, options, metadata) {
+ return Inputmask(options).format(value, metadata);
+ }, Inputmask.unmask = function(value, options) {
+ return Inputmask(options).unmaskedvalue(value);
+ }, Inputmask.isValid = function(value, options) {
+ return Inputmask(options).isValid(value);
+ }, Inputmask.remove = function(elems) {
+ $.each(elems, function(ndx, el) {
+ el.inputmask && el.inputmask.remove();
+ });
+ }, Inputmask.escapeRegex = function(str) {
+ var specials = [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ];
+ return str.replace(new RegExp("(\\" + specials.join("|\\") + ")", "gim"), "\\$1");
+ }, Inputmask.keyCode = {
+ ALT: 18,
+ BACKSPACE: 8,
+ BACKSPACE_SAFARI: 127,
+ CAPS_LOCK: 20,
+ COMMA: 188,
+ COMMAND: 91,
+ COMMAND_LEFT: 91,
+ COMMAND_RIGHT: 93,
+ CONTROL: 17,
+ DELETE: 46,
+ DOWN: 40,
+ END: 35,
+ ENTER: 13,
+ ESCAPE: 27,
+ HOME: 36,
+ INSERT: 45,
+ LEFT: 37,
+ MENU: 93,
+ NUMPAD_ADD: 107,
+ NUMPAD_DECIMAL: 110,
+ NUMPAD_DIVIDE: 111,
+ NUMPAD_ENTER: 108,
+ NUMPAD_MULTIPLY: 106,
+ NUMPAD_SUBTRACT: 109,
+ PAGE_DOWN: 34,
+ PAGE_UP: 33,
+ PERIOD: 190,
+ RIGHT: 39,
+ SHIFT: 16,
+ SPACE: 32,
+ TAB: 9,
+ UP: 38,
+ WINDOWS: 91,
+ X: 88
+ }, Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.numeric.extensions.js b/public/bower_components/inputmask/dist/inputmask/inputmask.numeric.extensions.js
new file mode 100644
index 0000000..d633a88
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.numeric.extensions.js
@@ -0,0 +1,339 @@
+/*!
+* inputmask.numeric.extensions.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
+}(function($, Inputmask, undefined) {
+ function autoEscape(txt, opts) {
+ for (var escapedTxt = "", i = 0; i < txt.length; i++) Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += "\\" + txt.charAt(i) : escapedTxt += txt.charAt(i);
+ return escapedTxt;
+ }
+ return Inputmask.extendAliases({
+ numeric: {
+ mask: function(opts) {
+ if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat),
+ opts.repeat = 0, opts.groupSeparator === opts.radixPoint && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""),
+ " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = undefined), opts.autoGroup = opts.autoGroup && "" !== opts.groupSeparator,
+ opts.autoGroup && ("string" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)),
+ isFinite(opts.integerDigits))) {
+ var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize;
+ opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps),
+ opts.integerDigits < 1 && (opts.integerDigits = "*");
+ }
+ opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)),
+ "radixFocus" === opts.positionCaretOnClick && "" === opts.placeholder && !1 === opts.integerOptional && (opts.positionCaretOnClick = "lvp"),
+ opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~",
+ !0 === opts.numericInput && (opts.positionCaretOnClick = "radixFocus" === opts.positionCaretOnClick ? "lvp" : opts.positionCaretOnClick,
+ opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts.decimalProtect = !1);
+ var mask = "[+]";
+ if (mask += autoEscape(opts.prefix, opts), !0 === opts.integerOptional ? mask += "~{1," + opts.integerDigits + "}" : mask += "~{" + opts.integerDigits + "}",
+ opts.digits !== undefined) {
+ opts.radixPointDefinitionSymbol = opts.decimalProtect ? ":" : opts.radixPoint;
+ var dq = opts.digits.toString().split(",");
+ isFinite(dq[0] && dq[1] && isFinite(dq[1])) ? mask += opts.radixPointDefinitionSymbol + ";{" + opts.digits + "}" : (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (opts.digitsOptional ? mask += "[" + opts.radixPointDefinitionSymbol + ";{1," + opts.digits + "}]" : mask += opts.radixPointDefinitionSymbol + ";{" + opts.digits + "}");
+ }
+ return mask += autoEscape(opts.suffix, opts), mask += "[-]", opts.greedy = !1, mask;
+ },
+ placeholder: "",
+ greedy: !1,
+ digits: "*",
+ digitsOptional: !0,
+ enforceDigitsOnBlur: !1,
+ radixPoint: ".",
+ positionCaretOnClick: "radixFocus",
+ groupSize: 3,
+ groupSeparator: "",
+ autoGroup: !1,
+ allowMinus: !0,
+ negationSymbol: {
+ front: "-",
+ back: ""
+ },
+ integerDigits: "+",
+ integerOptional: !0,
+ prefix: "",
+ suffix: "",
+ rightAlign: !0,
+ decimalProtect: !0,
+ min: null,
+ max: null,
+ step: 1,
+ insertMode: !0,
+ autoUnmask: !1,
+ unmaskAsNumber: !1,
+ inputmode: "numeric",
+ preValidation: function(buffer, pos, c, isSelection, opts) {
+ if ("-" === c || c === opts.negationSymbol.front) return !0 === opts.allowMinus && (opts.isNegative = opts.isNegative === undefined || !opts.isNegative,
+ "" === buffer.join("") || {
+ caret: pos,
+ dopost: !0
+ });
+ if (!1 === isSelection && c === opts.radixPoint && opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0)) {
+ var radixPos = $.inArray(opts.radixPoint, buffer);
+ if (-1 !== radixPos) return !0 === opts.numericInput ? pos === radixPos : {
+ caret: radixPos + 1
+ };
+ }
+ return !0;
+ },
+ postValidation: function(buffer, currentResult, opts) {
+ var suffix = opts.suffix.split(""), prefix = opts.prefix.split("");
+ if (currentResult.pos === undefined && currentResult.caret !== undefined && !0 !== currentResult.dopost) return currentResult;
+ var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos, maskedValue = buffer.slice();
+ opts.numericInput && (caretPos = maskedValue.length - caretPos - 1, maskedValue = maskedValue.reverse());
+ var charAtPos = maskedValue[caretPos];
+ if (charAtPos === opts.groupSeparator && (charAtPos = maskedValue[caretPos += 1]),
+ caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult;
+ charAtPos !== undefined && charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back && (maskedValue[caretPos] = "?",
+ opts.prefix.length > 0 && caretPos >= (!1 === opts.isNegative ? 1 : 0) && caretPos < opts.prefix.length - 1 + (!1 === opts.isNegative ? 1 : 0) ? prefix[caretPos - (!1 === opts.isNegative ? 1 : 0)] = "?" : opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0) && (suffix[caretPos - (maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0))] = "?")),
+ prefix = prefix.join(""), suffix = suffix.join("");
+ var processValue = maskedValue.join("").replace(prefix, "");
+ if (processValue = processValue.replace(suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), ""),
+ processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""),
+ isNaN(opts.placeholder) && (processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), "g"), "")),
+ processValue.length > 1 && 1 !== processValue.indexOf(opts.radixPoint) && ("0" === charAtPos && (processValue = processValue.replace(/^\?/g, "")),
+ processValue = processValue.replace(/^0/g, "")), processValue.charAt(0) === opts.radixPoint && "" !== opts.radixPoint && !0 !== opts.numericInput && (processValue = "0" + processValue),
+ "" !== processValue) {
+ if (processValue = processValue.split(""), (!opts.digitsOptional || opts.enforceDigitsOnBlur && "blur" === currentResult.event) && isFinite(opts.digits)) {
+ var radixPosition = $.inArray(opts.radixPoint, processValue), rpb = $.inArray(opts.radixPoint, maskedValue);
+ -1 === radixPosition && (processValue.push(opts.radixPoint), radixPosition = processValue.length - 1);
+ for (var i = 1; i <= opts.digits; i++) opts.digitsOptional && (!opts.enforceDigitsOnBlur || "blur" !== currentResult.event) || processValue[radixPosition + i] !== undefined && processValue[radixPosition + i] !== opts.placeholder.charAt(0) ? -1 !== rpb && maskedValue[rpb + i] !== undefined && (processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i]) : processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);
+ }
+ if (!0 !== opts.autoGroup || "" === opts.groupSeparator || charAtPos === opts.radixPoint && currentResult.pos === undefined && !currentResult.dopost) processValue = processValue.join(""); else {
+ var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint;
+ processValue = Inputmask(function(buffer, opts) {
+ var postMask = "";
+ if (postMask += "(" + opts.groupSeparator + "*{" + opts.groupSize + "}){*}", "" !== opts.radixPoint) {
+ var radixSplit = buffer.join("").split(opts.radixPoint);
+ radixSplit[1] && (postMask += opts.radixPoint + "*{" + radixSplit[1].match(/^\d*\??\d*/)[0].length + "}");
+ }
+ return postMask;
+ }(processValue, opts), {
+ numericInput: !0,
+ jitMasking: !0,
+ definitions: {
+ "*": {
+ validator: "[0-9?]",
+ cardinality: 1
+ }
+ }
+ }).format(processValue.join("")), addRadix && (processValue += opts.radixPoint),
+ processValue.charAt(0) === opts.groupSeparator && processValue.substr(1);
+ }
+ }
+ if (opts.isNegative && "blur" === currentResult.event && (opts.isNegative = "0" !== processValue),
+ processValue = prefix + processValue, processValue += suffix, opts.isNegative && (processValue = opts.negationSymbol.front + processValue,
+ processValue += opts.negationSymbol.back), processValue = processValue.split(""),
+ charAtPos !== undefined) if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) (caretPos = $.inArray("?", processValue)) > -1 ? processValue[caretPos] = charAtPos : caretPos = currentResult.caret || 0; else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) {
+ var newCaretPos = $.inArray(charAtPos, processValue);
+ -1 !== newCaretPos && (caretPos = newCaretPos);
+ }
+ opts.numericInput && (caretPos = processValue.length - caretPos - 1, processValue = processValue.reverse());
+ var rslt = {
+ caret: charAtPos === undefined || currentResult.pos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos,
+ buffer: processValue,
+ refreshFromBuffer: currentResult.dopost || buffer.join("") !== processValue.join("")
+ };
+ return rslt.refreshFromBuffer ? rslt : currentResult;
+ },
+ onBeforeWrite: function(e, buffer, caretPos, opts) {
+ if (e) switch (e.type) {
+ case "keydown":
+ return opts.postValidation(buffer, {
+ caret: caretPos,
+ dopost: !0
+ }, opts);
+
+ case "blur":
+ case "checkval":
+ var unmasked;
+ if (function(opts) {
+ opts.parseMinMaxOptions === undefined && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, ".")),
+ opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)),
+ null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, ".")),
+ opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)),
+ opts.parseMinMaxOptions = "done");
+ }(opts), null !== opts.min || null !== opts.max) {
+ if (unmasked = opts.onUnMask(buffer.join(""), undefined, $.extend({}, opts, {
+ unmaskAsNumber: !0
+ })), null !== opts.min && unmasked < opts.min) return opts.isNegative = opts.min < 0,
+ opts.postValidation(opts.min.toString().replace(".", opts.radixPoint).split(""), {
+ caret: caretPos,
+ dopost: !0,
+ placeholder: "0"
+ }, opts);
+ if (null !== opts.max && unmasked > opts.max) return opts.isNegative = opts.max < 0,
+ opts.postValidation(opts.max.toString().replace(".", opts.radixPoint).split(""), {
+ caret: caretPos,
+ dopost: !0,
+ placeholder: "0"
+ }, opts);
+ }
+ return opts.postValidation(buffer, {
+ caret: caretPos,
+ placeholder: "0",
+ event: "blur"
+ }, opts);
+
+ case "_checkval":
+ return {
+ caret: caretPos
+ };
+ }
+ },
+ regex: {
+ integerPart: function(opts, emptyCheck) {
+ return emptyCheck ? new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?") : new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?\\d+");
+ },
+ integerNPart: function(opts) {
+ return new RegExp("[\\d" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + "]+");
+ }
+ },
+ definitions: {
+ "~": {
+ validator: function(chrs, maskset, pos, strict, opts, isSelection) {
+ var isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs);
+ if (!0 === isValid) {
+ if (!0 !== opts.numericInput && maskset.validPositions[pos] !== undefined && "~" === maskset.validPositions[pos].match.def && !isSelection) {
+ var processValue = maskset.buffer.join(""), pvRadixSplit = (processValue = (processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), "")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "")).split(opts.radixPoint);
+ pvRadixSplit.length > 1 && (pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0))),
+ "0" === pvRadixSplit[0] && (pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0))),
+ processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || "";
+ var bufferTemplate = maskset._buffer.join("");
+ for (processValue === opts.radixPoint && (processValue = bufferTemplate); null === processValue.match(Inputmask.escapeRegex(bufferTemplate) + "$"); ) bufferTemplate = bufferTemplate.slice(1);
+ isValid = (processValue = (processValue = processValue.replace(bufferTemplate, "")).split(""))[pos] === undefined ? {
+ pos: pos,
+ remove: pos
+ } : {
+ pos: pos
+ };
+ }
+ } else strict || chrs !== opts.radixPoint || maskset.validPositions[pos - 1] !== undefined || (maskset.buffer[pos] = "0",
+ isValid = {
+ pos: pos + 1
+ });
+ return isValid;
+ },
+ cardinality: 1
+ },
+ "+": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.allowMinus && ("-" === chrs || chrs === opts.negationSymbol.front);
+ },
+ cardinality: 1,
+ placeholder: ""
+ },
+ "-": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.allowMinus && chrs === opts.negationSymbol.back;
+ },
+ cardinality: 1,
+ placeholder: ""
+ },
+ ":": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var radix = "[" + Inputmask.escapeRegex(opts.radixPoint) + "]", isValid = new RegExp(radix).test(chrs);
+ return isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = {
+ caret: pos + 1
+ }), isValid;
+ },
+ cardinality: 1,
+ placeholder: function(opts) {
+ return opts.radixPoint;
+ }
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ if ("" === unmaskedValue && !0 === opts.nullable) return unmaskedValue;
+ var processValue = maskedValue.replace(opts.prefix, "");
+ return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), "g"), "0")),
+ opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")),
+ processValue = processValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-"),
+ processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""),
+ Number(processValue)) : processValue;
+ },
+ isComplete: function(buffer, opts) {
+ var maskedValue = buffer.join("");
+ if (buffer.slice().join("") !== maskedValue) return !1;
+ var processValue = maskedValue.replace(opts.prefix, "");
+ return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")),
+ isFinite(processValue);
+ },
+ onBeforeMask: function(initialValue, opts) {
+ if (opts.isNegative = undefined, initialValue = initialValue.toString().charAt(initialValue.length - 1) === opts.radixPoint ? initialValue.toString().substr(0, initialValue.length - 1) : initialValue.toString(),
+ "" !== opts.radixPoint && isFinite(initialValue)) {
+ var vs = initialValue.split("."), groupSize = "" !== opts.groupSeparator ? parseInt(opts.groupSize) : 0;
+ 2 === vs.length && (vs[0].length > groupSize || vs[1].length > groupSize || vs[0].length <= groupSize && vs[1].length < groupSize) && (initialValue = initialValue.replace(".", opts.radixPoint));
+ }
+ var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\./g);
+ if (initialValue = dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, "")).replace(",", opts.radixPoint) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, "")).replace(".", opts.radixPoint) : initialValue.indexOf(".") < initialValue.indexOf(",") ? initialValue.replace(/\./g, "") : initialValue.replace(/,/g, "") : initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ 0 === opts.digits && (-1 !== initialValue.indexOf(".") ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : -1 !== initialValue.indexOf(",") && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))),
+ "" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) {
+ var decPart = initialValue.split(opts.radixPoint)[1].match(new RegExp("\\d*"))[0];
+ if (parseInt(opts.digits) < decPart.toString().length) {
+ var digitsFactor = Math.pow(10, parseInt(opts.digits));
+ initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."),
+ initialValue = (initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor).toString().replace(".", opts.radixPoint);
+ }
+ }
+ return initialValue;
+ },
+ canClearPosition: function(maskset, position, lvp, strict, opts) {
+ var vp = maskset.validPositions[position], canClear = vp.input !== opts.radixPoint || null !== maskset.validPositions[position].match.fn && !1 === opts.decimalProtect || vp.input === opts.radixPoint && maskset.validPositions[position + 1] && null === maskset.validPositions[position + 1].match.fn || isFinite(vp.input) || position === lvp || vp.input === opts.groupSeparator || vp.input === opts.negationSymbol.front || vp.input === opts.negationSymbol.back;
+ return !canClear || "+" !== vp.match.nativeDef && "-" !== vp.match.nativeDef || (opts.isNegative = !1),
+ canClear;
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey) switch (e.keyCode) {
+ case Inputmask.keyCode.UP:
+ $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue");
+ break;
+
+ case Inputmask.keyCode.DOWN:
+ $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue");
+ }
+ }
+ },
+ currency: {
+ prefix: "$ ",
+ groupSeparator: ",",
+ alias: "numeric",
+ placeholder: "0",
+ autoGroup: !0,
+ digits: 2,
+ digitsOptional: !1,
+ clearMaskOnLostFocus: !1
+ },
+ decimal: {
+ alias: "numeric"
+ },
+ integer: {
+ alias: "numeric",
+ digits: 0,
+ radixPoint: ""
+ },
+ percentage: {
+ alias: "numeric",
+ digits: 2,
+ digitsOptional: !0,
+ radixPoint: ".",
+ placeholder: "0",
+ autoGroup: !1,
+ min: 0,
+ max: 100,
+ suffix: " %",
+ allowMinus: !1
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.phone.extensions.js b/public/bower_components/inputmask/dist/inputmask/inputmask.phone.extensions.js
new file mode 100644
index 0000000..b83fb25
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.phone.extensions.js
@@ -0,0 +1,59 @@
+/*!
+* inputmask.phone.extensions.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
+}(function($, Inputmask) {
+ function maskSort(a, b) {
+ var maska = (a.mask || a).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskb = (b.mask || b).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskas = (a.mask || a).split("#")[0], maskbs = (b.mask || b).split("#")[0];
+ return 0 === maskbs.indexOf(maskas) ? -1 : 0 === maskas.indexOf(maskbs) ? 1 : maska.localeCompare(maskb);
+ }
+ var analyseMaskBase = Inputmask.prototype.analyseMask;
+ return Inputmask.prototype.analyseMask = function(mask, regexMask, opts) {
+ function reduceVariations(masks, previousVariation, previousmaskGroup) {
+ previousVariation = previousVariation || "", previousmaskGroup = previousmaskGroup || maskGroups,
+ "" !== previousVariation && (previousmaskGroup[previousVariation] = {});
+ for (var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup, i = masks.length - 1; i >= 0; i--) maskGroup[variation = (mask = masks[i].mask || masks[i]).substr(0, 1)] = maskGroup[variation] || [],
+ maskGroup[variation].unshift(mask.substr(1)), masks.splice(i, 1);
+ for (var ndx in maskGroup) maskGroup[ndx].length > 500 && reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup);
+ }
+ function rebuild(maskGroup) {
+ var mask = "", submasks = [];
+ for (var ndx in maskGroup) $.isArray(maskGroup[ndx]) ? 1 === maskGroup[ndx].length ? submasks.push(ndx + maskGroup[ndx]) : submasks.push(ndx + opts.groupmarker.start + maskGroup[ndx].join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end) : submasks.push(ndx + rebuild(maskGroup[ndx]));
+ return 1 === submasks.length ? mask += submasks[0] : mask += opts.groupmarker.start + submasks.join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end,
+ mask;
+ }
+ var maskGroups = {};
+ return opts.phoneCodes && (opts.phoneCodes && opts.phoneCodes.length > 1e3 && (reduceVariations((mask = mask.substr(1, mask.length - 2)).split(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start)),
+ mask = rebuild(maskGroups)), mask = mask.replace(/9/g, "\\9")), analyseMaskBase.call(this, mask, regexMask, opts);
+ }, Inputmask.extendAliases({
+ abstractphone: {
+ groupmarker: {
+ start: "<",
+ end: ">"
+ },
+ countrycode: "",
+ phoneCodes: [],
+ mask: function(opts) {
+ return opts.definitions = {
+ "#": Inputmask.prototype.definitions[9]
+ }, opts.phoneCodes.sort(maskSort);
+ },
+ keepStatic: !0,
+ onBeforeMask: function(value, opts) {
+ var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, "");
+ return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue),
+ processedValue;
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue.replace(/[()#-]/g, "");
+ },
+ inputmode: "tel"
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/inputmask.regex.extensions.js b/public/bower_components/inputmask/dist/inputmask/inputmask.regex.extensions.js
new file mode 100644
index 0000000..86a3e77
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/inputmask.regex.extensions.js
@@ -0,0 +1,110 @@
+/*!
+* inputmask.regex.extensions.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "./dependencyLibs/inputmask.dependencyLib", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("./dependencyLibs/inputmask.dependencyLib"), require("./inputmask")) : factory(window.dependencyLib || jQuery, window.Inputmask);
+}(function($, Inputmask) {
+ return Inputmask.extendAliases({
+ Regex: {
+ mask: "r",
+ greedy: !1,
+ repeat: "*",
+ regex: null,
+ regexTokens: null,
+ tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,
+ quantifierFilter: /[0-9]+[^,]/,
+ isComplete: function(buffer, opts) {
+ return new RegExp(opts.regex, opts.casing ? "i" : "").test(buffer.join(""));
+ },
+ definitions: {
+ r: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ function RegexToken(isGroup, isQuantifier) {
+ this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1,
+ this.quantifier = {
+ min: 1,
+ max: 1
+ }, this.repeaterPart = void 0;
+ }
+ function validateRegexToken(token, fromGroup) {
+ var isvalid = !1;
+ fromGroup && (regexPart += "(", openGroupCount++);
+ for (var mndx = 0; mndx < token.matches.length; mndx++) {
+ var matchToken = token.matches[mndx];
+ if (!0 === matchToken.isGroup) isvalid = validateRegexToken(matchToken, !0); else if (!0 === matchToken.isQuantifier) {
+ var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart;
+ if (isNaN(matchToken.quantifier.max)) {
+ for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ;
+ (isvalid = isvalid || validateRegexToken(matchGroup, !0)) && (matchToken.repeaterPart = regexPart),
+ regexPart = regexPartBak + matchToken.quantifier.max;
+ } else {
+ for (var i = 0, qm = matchToken.quantifier.max - 1; i < qm && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ;
+ regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}";
+ }
+ } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else {
+ var testExp;
+ if ("[" == matchToken.charAt(0)) {
+ testExp = regexPart, testExp += matchToken;
+ for (j = 0; j < openGroupCount; j++) testExp += ")";
+ isvalid = (exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "")).test(bufferStr);
+ } else for (var l = 0, tl = matchToken.length; l < tl; l++) if ("\\" !== matchToken.charAt(l)) {
+ testExp = regexPart, testExp = (testExp += matchToken.substr(0, l + 1)).replace(/\|$/, "");
+ for (var j = 0; j < openGroupCount; j++) testExp += ")";
+ var exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "");
+ if (isvalid = exp.test(bufferStr)) break;
+ }
+ regexPart += matchToken;
+ }
+ if (isvalid) break;
+ }
+ return fromGroup && (regexPart += ")", openGroupCount--), isvalid;
+ }
+ var bufferStr, groupToken, cbuffer = maskset.buffer.slice(), regexPart = "", isValid = !1, openGroupCount = 0;
+ null === opts.regexTokens && function() {
+ var match, m, currentToken = new RegexToken(), opengroups = [];
+ for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch ((m = match[0]).charAt(0)) {
+ case "(":
+ opengroups.push(new RegexToken(!0));
+ break;
+
+ case ")":
+ groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken);
+ break;
+
+ case "{":
+ case "+":
+ case "*":
+ var quantifierToken = new RegexToken(!1, !0), mq = (m = m.replace(/[{}]/g, "")).split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);
+ if (quantifierToken.quantifier = {
+ min: mq0,
+ max: mq1
+ }, opengroups.length > 0) {
+ var matches = opengroups[opengroups.length - 1].matches;
+ (match = matches.pop()).isGroup || ((groupToken = new RegexToken(!0)).matches.push(match),
+ match = groupToken), matches.push(match), matches.push(quantifierToken);
+ } else (match = currentToken.matches.pop()).isGroup || ((groupToken = new RegexToken(!0)).matches.push(match),
+ match = groupToken), currentToken.matches.push(match), currentToken.matches.push(quantifierToken);
+ break;
+
+ default:
+ opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m);
+ }
+ currentToken.matches.length > 0 && opts.regexTokens.push(currentToken);
+ }(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join("");
+ for (var i = 0; i < opts.regexTokens.length; i++) {
+ var regexToken = opts.regexTokens[i];
+ if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break;
+ }
+ return isValid;
+ },
+ cardinality: 1
+ }
+ }
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/jquery.inputmask.js b/public/bower_components/inputmask/dist/inputmask/jquery.inputmask.js
new file mode 100644
index 0000000..e264168
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/jquery.inputmask.js
@@ -0,0 +1,62 @@
+/*!
+* jquery.inputmask.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "jquery", "./inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("jquery"), require("./inputmask")) : factory(jQuery, window.Inputmask);
+}(function($, Inputmask) {
+ return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
+ var nptmask, input = this[0];
+ if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) {
+ case "unmaskedvalue":
+ return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
+
+ case "remove":
+ return this.each(function() {
+ this.inputmask && this.inputmask.remove();
+ });
+
+ case "getemptymask":
+ return input && input.inputmask ? input.inputmask.getemptymask() : "";
+
+ case "hasMaskedValue":
+ return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();
+
+ case "isComplete":
+ return !input || !input.inputmask || input.inputmask.isComplete();
+
+ case "getmetadata":
+ return input && input.inputmask ? input.inputmask.getmetadata() : void 0;
+
+ case "setvalue":
+ $(input).val(options), input && void 0 === input.inputmask && $(input).triggerHandler("setvalue");
+ break;
+
+ case "option":
+ if ("string" != typeof options) return this.each(function() {
+ if (void 0 !== this.inputmask) return this.inputmask.option(options);
+ });
+ if (input && void 0 !== input.inputmask) return input.inputmask.option(options);
+ break;
+
+ default:
+ return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {
+ nptmask.mask(this);
+ });
+ } else {
+ if ("object" == typeof fn) return nptmask = new Inputmask(fn), void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {
+ if (void 0 !== this.inputmask) return this.inputmask.option(fn);
+ nptmask.mask(this);
+ }) : this.each(function() {
+ nptmask.mask(this);
+ });
+ if (void 0 === fn) return this.each(function() {
+ (nptmask = new Inputmask(options)).mask(this);
+ });
+ }
+ }), $.fn.inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-be.js b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-be.js
new file mode 100644
index 0000000..61dbdb1
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-be.js
@@ -0,0 +1,244 @@
+/*!
+* phone-codes/phone-be.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("../inputmask")) : factory(window.Inputmask);
+}(function(Inputmask) {
+ return Inputmask.extendAliases({
+ phonebe: {
+ alias: "abstractphone",
+ countrycode: "32",
+ phoneCodes: [ {
+ mask: "+32(53)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Aalst (Alost)"
+ }, {
+ mask: "+32(3)###-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Antwerpen (Anvers)"
+ }, {
+ mask: "+32(63)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Arlon"
+ }, {
+ mask: "+32(67)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Ath"
+ }, {
+ mask: "+32(50)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Brugge (Bruges)"
+ }, {
+ mask: "+32(2)###-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Brussel/Bruxelles (Brussels)"
+ }, {
+ mask: "+32(71)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Charleroi"
+ }, {
+ mask: "+32(60)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Chimay"
+ }, {
+ mask: "+32(83)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Ciney"
+ }, {
+ mask: "+32(52)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Dendermonde"
+ }, {
+ mask: "+32(13)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Diest"
+ }, {
+ mask: "+32(82)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Dinant"
+ }, {
+ mask: "+32(86)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Durbuy"
+ }, {
+ mask: "+32(89)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Genk"
+ }, {
+ mask: "+32(9)###-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Gent (Gand)"
+ }, {
+ mask: "+32(11)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Hasselt"
+ }, {
+ mask: "+32(14)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Herentals"
+ }, {
+ mask: "+32(85)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Huy (Hoei)"
+ }, {
+ mask: "+32(64)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "La Louvière"
+ }, {
+ mask: "+32(16)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Leuven (Louvain)"
+ }, {
+ mask: "+32(61)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Libramont"
+ }, {
+ mask: "+32(4)###-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Liège (Luik)"
+ }, {
+ mask: "+32(15)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mechelen (Malines)"
+ }, {
+ mask: "+32(46#)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mobile Phones"
+ }, {
+ mask: "+32(47#)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mobile Phones"
+ }, {
+ mask: "+32(48#)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mobile Phones"
+ }, {
+ mask: "+32(49#)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mobile Phones"
+ }, {
+ mask: "+32(461)8#-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "GSM-R (NMBS)"
+ }, {
+ mask: "+32(65)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Mons (Bergen)"
+ }, {
+ mask: "+32(81)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Namur (Namen)"
+ }, {
+ mask: "+32(58)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Nieuwpoort (Nieuport)"
+ }, {
+ mask: "+32(54)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Ninove"
+ }, {
+ mask: "+32(67)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Nivelles (Nijvel)"
+ }, {
+ mask: "+32(59)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Oostende (Ostende)"
+ }, {
+ mask: "+32(51)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Roeselare (Roulers)"
+ }, {
+ mask: "+32(55)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Ronse"
+ }, {
+ mask: "+32(80)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Stavelot"
+ }, {
+ mask: "+32(12)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Tongeren (Tongres)"
+ }, {
+ mask: "+32(69)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Tounai"
+ }, {
+ mask: "+32(14)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Turnhout"
+ }, {
+ mask: "+32(87)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Verviers"
+ }, {
+ mask: "+32(58)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Veurne"
+ }, {
+ mask: "+32(19)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Wareme"
+ }, {
+ mask: "+32(10)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Wavre (Waver)"
+ }, {
+ mask: "+32(50)##-##-##",
+ cc: "BE",
+ cd: "Belgium",
+ city: "Zeebrugge"
+ } ]
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-nl.js b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-nl.js
new file mode 100644
index 0000000..30ae5a3
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-nl.js
@@ -0,0 +1,924 @@
+/*!
+* phone-codes/phone-nl.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("../inputmask")) : factory(window.Inputmask);
+}(function(Inputmask) {
+ return Inputmask.extendAliases({
+ phonenl: {
+ alias: "abstractphone",
+ countrycode: "31",
+ phoneCodes: [ {
+ mask: "+31-10-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Rotterdam"
+ }, {
+ mask: "+31-111-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zierikzee"
+ }, {
+ mask: "+31-113-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Goes"
+ }, {
+ mask: "+31-114-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hulst"
+ }, {
+ mask: "+31-115-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Terneuzen"
+ }, {
+ mask: "+31-117-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oostburg"
+ }, {
+ mask: "+31-118-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Middelburg"
+ }, {
+ mask: "+31-13-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Tilburg"
+ }, {
+ mask: "+31-14-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Intern gebruik door KPN"
+ }, {
+ mask: "+31-15-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Delft"
+ }, {
+ mask: "+31-161-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Rijen"
+ }, {
+ mask: "+31-162-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oosterhout"
+ }, {
+ mask: "+31-164-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Bergen op Zoom"
+ }, {
+ mask: "+31-165-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Roosendaal"
+ }, {
+ mask: "+31-166-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Tholen"
+ }, {
+ mask: "+31-167-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Steenbergen"
+ }, {
+ mask: "+31-168-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zevenbergen"
+ }, {
+ mask: "+31-172-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Alphen aan den Rijn"
+ }, {
+ mask: "+31-174-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Naaldwijk"
+ }, {
+ mask: "+31-180-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Krimpen aan den IJsel"
+ }, {
+ mask: "+31-181-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Spijkenisse"
+ }, {
+ mask: "+31-182-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Gouda"
+ }, {
+ mask: "+31-183-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Gorinchem"
+ }, {
+ mask: "+31-184-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Sliedrecht"
+ }, {
+ mask: "+31-186-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oud-Beijerland"
+ }, {
+ mask: "+31-187-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Middelharnis"
+ }, {
+ mask: "+31-20-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Amsterdam"
+ }, {
+ mask: "+31-222-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Den Burg"
+ }, {
+ mask: "+31-223-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Den Helder"
+ }, {
+ mask: "+31-224-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Schagen"
+ }, {
+ mask: "+31-226-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Noord-Scharwoude"
+ }, {
+ mask: "+31-227-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Middenmeer"
+ }, {
+ mask: "+31-228-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Enkhuizen"
+ }, {
+ mask: "+31-229-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hoorn"
+ }, {
+ mask: "+31-23-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Haarlem"
+ }, {
+ mask: "+31-24-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Nijmegen"
+ }, {
+ mask: "+31-251-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Beverwijk"
+ }, {
+ mask: "+31-252-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hillegom"
+ }, {
+ mask: "+31-255-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "IJmuiden"
+ }, {
+ mask: "+31-26-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Arnhem"
+ }, {
+ mask: "+31-294-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Weesp"
+ }, {
+ mask: "+31-297-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Uithoorn"
+ }, {
+ mask: "+31-299-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Purmerend"
+ }, {
+ mask: "+31-30-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Utrecht"
+ }, {
+ mask: "+31-313-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dieren"
+ }, {
+ mask: "+31-314-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Doetinchem"
+ }, {
+ mask: "+31-315-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Terborg"
+ }, {
+ mask: "+31-316-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zevenaar"
+ }, {
+ mask: "+31-317-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Wageningen"
+ }, {
+ mask: "+31-318-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Ede"
+ }, {
+ mask: "+31-320-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Lelystad"
+ }, {
+ mask: "+31-321-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dronten"
+ }, {
+ mask: "+31-33-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Amersfoort"
+ }, {
+ mask: "+31-341-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Harderwijk"
+ }, {
+ mask: "+31-342-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Barneveld"
+ }, {
+ mask: "+31-343-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Doorn"
+ }, {
+ mask: "+31-344-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Tiel"
+ }, {
+ mask: "+31-294-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Weesp"
+ }, {
+ mask: "+31-297-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Uithoorn"
+ }, {
+ mask: "+31-299-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Purmerend"
+ }, {
+ mask: "+31-30-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Utrecht"
+ }, {
+ mask: "+31-313-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dieren"
+ }, {
+ mask: "+31-314-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Doetinchem"
+ }, {
+ mask: "+31-315-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Terborg"
+ }, {
+ mask: "+31-316-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zevenaar"
+ }, {
+ mask: "+31-317-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Wageningen"
+ }, {
+ mask: "+31-318-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Ede"
+ }, {
+ mask: "+31-320-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Lelystad"
+ }, {
+ mask: "+31-321-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dronten"
+ }, {
+ mask: "+31-33-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Amersfoort"
+ }, {
+ mask: "+31-341-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Harderwijk"
+ }, {
+ mask: "+31-342-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Barneveld"
+ }, {
+ mask: "+31-343-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Doorn"
+ }, {
+ mask: "+31-344-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Tiel"
+ }, {
+ mask: "+31-345-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Culemborg"
+ }, {
+ mask: "+31-346-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Maarssen"
+ }, {
+ mask: "+31-347-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Vianen"
+ }, {
+ mask: "+31-348-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Woerden"
+ }, {
+ mask: "+31-35-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hilversum"
+ }, {
+ mask: "+31-36-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Almere"
+ }, {
+ mask: "+31-38-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zwolle"
+ }, {
+ mask: "+31-40-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Eindhoven"
+ }, {
+ mask: "+31-411-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Boxtel"
+ }, {
+ mask: "+31-412-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oss"
+ }, {
+ mask: "+31-413-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Veghel"
+ }, {
+ mask: "+31-416-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Waalwijk"
+ }, {
+ mask: "+31-418-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zaltbommel"
+ }, {
+ mask: "+31-43-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Maastricht"
+ }, {
+ mask: "+31-45-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Heerlen"
+ }, {
+ mask: "+31-46-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Sittard"
+ }, {
+ mask: "+31-475-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Roermond"
+ }, {
+ mask: "+31-478-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Venray"
+ }, {
+ mask: "+31-481-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Bemmel"
+ }, {
+ mask: "+31-485-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Cuijk"
+ }, {
+ mask: "+31-486-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Grave"
+ }, {
+ mask: "+31-487-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Druten"
+ }, {
+ mask: "+31-488-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zetten"
+ }, {
+ mask: "+31-492-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Helmond"
+ }, {
+ mask: "+31-493-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Deurne"
+ }, {
+ mask: "+31-495-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Weert"
+ }, {
+ mask: "+31-497-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Eersel"
+ }, {
+ mask: "+31-499-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Best"
+ }, {
+ mask: "+31-50-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Groningen"
+ }, {
+ mask: "+31-511-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Feanw�lden"
+ }, {
+ mask: "+31-512-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Drachten"
+ }, {
+ mask: "+31-513-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Heerenveen"
+ }, {
+ mask: "+31-514-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Balk"
+ }, {
+ mask: "+31-515-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Sneek"
+ }, {
+ mask: "+31-516-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oosterwolde"
+ }, {
+ mask: "+31-517-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Franeker"
+ }, {
+ mask: "+31-518-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "St Annaparochie"
+ }, {
+ mask: "+31-519-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dokkum"
+ }, {
+ mask: "+31-521-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Steenwijk"
+ }, {
+ mask: "+31-522-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Meppel"
+ }, {
+ mask: "+31-523-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dedemsvaart"
+ }, {
+ mask: "+31-524-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Coevorden"
+ }, {
+ mask: "+31-525-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Elburg"
+ }, {
+ mask: "+31-527-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Emmeloord"
+ }, {
+ mask: "+31-528-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hoogeveen"
+ }, {
+ mask: "+31-529-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Ommen"
+ }, {
+ mask: "+31-53-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Enschede"
+ }, {
+ mask: "+31-541-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Oldenzaal"
+ }, {
+ mask: "+31-543-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Winterswijk"
+ }, {
+ mask: "+31-544-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Groenlo"
+ }, {
+ mask: "+31-545-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Neede"
+ }, {
+ mask: "+31-546-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Almelo"
+ }, {
+ mask: "+31-547-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Goor"
+ }, {
+ mask: "+31-548-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Rijssen"
+ }, {
+ mask: "+31-55-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Apeldoorn"
+ }, {
+ mask: "+31-561-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Wolvega"
+ }, {
+ mask: "+31-562-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "West-Terschelling"
+ }, {
+ mask: "+31-566-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Jirnsum"
+ }, {
+ mask: "+31-570-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Deventer"
+ }, {
+ mask: "+31-571-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Twello"
+ }, {
+ mask: "+31-572-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Raalte"
+ }, {
+ mask: "+31-573-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Lochem"
+ }, {
+ mask: "+31-575-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zutphen"
+ }, {
+ mask: "+31-577-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Uddel"
+ }, {
+ mask: "+31-578-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Epe"
+ }, {
+ mask: "+31-58-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Leeuwarden"
+ }, {
+ mask: "+31-591-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Emmen"
+ }, {
+ mask: "+31-592-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Assen"
+ }, {
+ mask: "+31-593-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Beilen"
+ }, {
+ mask: "+31-594-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zuidhorn"
+ }, {
+ mask: "+31-595-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Warffum"
+ }, {
+ mask: "+31-596-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Appingedam"
+ }, {
+ mask: "+31-597-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Winschoten"
+ }, {
+ mask: "+31-598-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hoogezand"
+ }, {
+ mask: "+31-599-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Stadskanaal"
+ }, {
+ mask: "+31-70-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Den Haag"
+ }, {
+ mask: "+31-71-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Leiden"
+ }, {
+ mask: "+31-72-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Alkmaar"
+ }, {
+ mask: "+31-73-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "'s-Hertogenbosch"
+ }, {
+ mask: "+31-74-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Hengelo"
+ }, {
+ mask: "+31-75-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zaandam"
+ }, {
+ mask: "+31-76-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Breda"
+ }, {
+ mask: "+31-77-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Venlo"
+ }, {
+ mask: "+31-78-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Dordrecht"
+ }, {
+ mask: "+31-79-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Zoetermeer"
+ }, {
+ mask: "+31-61-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-62-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-63-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-64-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-65-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-68-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-69-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Mobiele nummers"
+ }, {
+ mask: "+31-66-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Semafonie"
+ }, {
+ mask: "+31-670-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-671-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-672-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-673-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-674-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-675-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Videotex"
+ }, {
+ mask: "+31-676-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Inbelnummers van internetproviders"
+ }, {
+ mask: "+31-800-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Gratis informatienummers"
+ }, {
+ mask: "+31-82-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Virtual Private Network"
+ }, {
+ mask: "+31-88-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Bedrijfsnummers"
+ }, {
+ mask: "+31-900-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Betaalde informatienummers"
+ }, {
+ mask: "+31-906-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Betaalde informatienummers"
+ }, {
+ mask: "+31-909-###-###",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Betaalde informatienummers"
+ }, {
+ mask: "+31-91-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ city: "Plaatsonafhankelijk netnummer, geschikt voor beeldtelefonie of lijnen met verhoogde kwaliteit"
+ } ]
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-ru.js b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-ru.js
new file mode 100644
index 0000000..18e6356
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-ru.js
@@ -0,0 +1,19240 @@
+/*!
+* phone-codes/phone-ru.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("../inputmask")) : factory(window.Inputmask);
+}(function(Inputmask) {
+ return Inputmask.extendAliases({
+ phoneru: {
+ alias: "abstractphone",
+ countrycode: "7",
+ phoneCodes: [ {
+ mask: "+7(301)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3012)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Улан-Удэ",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: [ "Нижнеангарск", "Северобайкальск" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Баргузин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Таксимо",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Бичура",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Петропавловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Сосново-Озёрское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Заиграево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Закаменск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Кабанск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Иволгинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Кижинга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Кяхта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Мухоршибирь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Турунтаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Гусиноозёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Тарбагатай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Кырен",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Хоринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Курумкан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Орлик",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Бурятия",
+ city: "Багдарин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(302)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3022)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Чита",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30230)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Красный Чикой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Акша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Балей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Борзя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Карымское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Кыра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Петровск-Забайкальский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Хилок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Улёты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30239)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Агинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30240)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Александровский Завод",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Могоча",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Нерчинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Приаргунск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Шилка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Краснокаменск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Сретенск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Газимурский Завод",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Нерчинский Завод",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Калга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30251)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Забайкальск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30252)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Нижний Цасучей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Оловянная",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Могойтуй",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30256)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Дульдурга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Горный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30261)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: [ "Калар", "Чара" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30262)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Первомайский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30264)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Верх-Усугли",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30265)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Чернышевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(30266)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Забайкальский край",
+ city: "Шелопугино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(341)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3412)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Ижевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34126)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Завьялово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Ува",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Каракулино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Киясово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Игра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Шаркан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Малая Пурга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Можга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Глазов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Воткинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Сарапул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Алнаши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Дебёсы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Сюмси",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Камбарка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Кизнер",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Вавож",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Кез",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Селты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Юкаменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Якшур-Бодья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Грахово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Красногорское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Удмуртская Республика",
+ city: "Балезино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(342)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(342)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Пермь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(342)3##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Пермь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3424)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Березники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34240)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Чердынь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Чайковский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Красновишерск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Усолье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Гайны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Юсьва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Губаха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Лысьва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34250)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Гремячинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34251)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Березовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34252)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Усть-Кишерть",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Соликамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34254)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Верещагино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Кизел",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34256)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Чусовой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Большая Соснова",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34258)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Орда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34259)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Уинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34260)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Кудымкар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34261)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Чернушка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34262)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Куеда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34263)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Звёздный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34265)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Добрянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34266)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Октябрьский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34268)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Частые",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34269)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Горнозаводск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34271)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Кунгур",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34272)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Нытва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34273)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Краснокамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34274)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Александровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34275)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Суксун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34276)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Ильинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34277)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Сива",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34278)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Очер",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34279)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Оханск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34291)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Оса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34292)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Барда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34293)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Кочёво",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34294)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Юрла",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34296)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Елово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34297)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Карагай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34298)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пермский край",
+ city: "Коса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(343)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(343)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Екатеринбург",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(343)3##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Екатеринбург",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Качканар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34342)2-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Нижняя Тура",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34342)3-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Лесной",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34342)5-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Лесной",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34342)6-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Лесной",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Красноуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Кушва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Верхняя Салда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Алапаевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Таборы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Туринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3435)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Нижний Тагил",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34350)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Полевской",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Ирбит",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Невьянск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Кировград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Шаля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34360)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Тавда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Туринская Слобода",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Байкалово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Артемовский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Реж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Асбест",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Тугулым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Верхняя Пышма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Берёзовский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34370)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Новоуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Талица",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Пышма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Сухой Лог",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Сысерть",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Камышлов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Богданович",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34377)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Белоярский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34380)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Североуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34383)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Карпинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34383)5-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Волчанск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34384)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Краснотурьинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34385)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Серов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34386)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Ивдель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34387)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Гари",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34388)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Новая Ляля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34389)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Верхотурье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3439)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Первоуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3439)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Каменск-Уральский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3439)54-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Каменск-Уральский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3439)6#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Первоуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34391)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Ачит",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34394)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Красноуфимск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34395)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Арти",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34397)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Ревда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34398)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Свердловская область",
+ city: "Нижние Серги",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(345)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3452)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Тюмень",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Ярково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Нижняя Тавда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Ялуторовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Исетское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Вагай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Упорово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Заводоуковск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Юргинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Омутинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Аромашево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Голышманово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34547)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Армизонское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34550)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Большое Сорокино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Ишим",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Казанское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Бердюжье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Сладково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Абатский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Викулово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3456)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Тобольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34561)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тюменская область",
+ city: "Уват",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(346)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3462)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Сургут",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3463)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Нефтеюганск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34634)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Пыть-Ях",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34638)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Лянтор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34643)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Мегион",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3466)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Нижневартовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34667)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Когалым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34668)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Радужный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34669)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Лангепас",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34670)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Белоярский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34672)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Нягань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34673)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Ханты-Мансийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34674)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Берёзово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34675)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Советский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34676)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Урай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34677)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Кондинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34678)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ханты-Мансийский автономный округ",
+ city: "Октябрьское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(347)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(347)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Уфа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3473)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Стерлитамак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34731)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Агидель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34739)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Стерлибашево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34740)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Красноусольский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34741)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Ермекеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34742)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Бакалы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34743)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Бижбуляк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34744)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Караидель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34745)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Толбазы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34746)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Фёдоровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34747)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Языково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34748)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Верхние Киги",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34749)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Мишкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34750)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Новобелокатай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34751)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Баймак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34752)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Зилаир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34753)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Старобалтачево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34754)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Раевский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34755)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Старосубхангулово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34756)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Бураево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34757)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Ермолаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34758)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Акъяр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34759)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Николо-Березовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34760)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Янаул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34761)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Кумертау",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34762)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Верхнеяркеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34763)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Салават",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34764)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Мелеуз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34765)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Кармаскалы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34766)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Благовещенск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34767)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Октябрьский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34768)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Давлеканово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34769)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Шаран",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34770)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Большеустьикинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34771)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Аскино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34772)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Аскарово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34773)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Буздяк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34774)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Архангельское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34775)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Сибай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34776)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Красная Горка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34777)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Малояз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34778)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Верхние Татышлы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34779)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Калтасы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34780)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Кушнаренково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34781)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Межгорье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34782)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Туймазы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34783)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Нефтекамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34784)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Бирск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34785)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Исянгулово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34786)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Белебей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34787)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Дюртюли",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34788)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Киргиз-Мияки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34789)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Мраково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34791)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Учалы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34792)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Белорецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34794)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Ишимбай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34795)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Иглино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34796)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Чекмагуш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34797)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Чишмы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34798)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Башкортостан",
+ city: "Месягутово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(349)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34922)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Салехард",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34932)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Красноселькуп",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34934)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Уренгой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34936)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Губкинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34938)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Муравленко",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3494)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Новый Уренгой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34940)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Тазовский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34948)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Харп",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34949)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Ямбург",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3496)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Ноябрьск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34992)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Лабытнанги",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34993)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Аксарка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34994)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Мужи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34995)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Надым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34996)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Яр-Сале",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(34997)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ямало-Ненецкий автономный округ",
+ city: "Тарко-Сале",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(351)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(351)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Челябинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(351)301-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Челябинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(351)7##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Челябинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(351)90#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "",
+ operator: "Ростелеком",
+ desc: "мобильные телефоны с зоновыми номерами"
+ }, {
+ mask: "+7(3513)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Миасс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3513)5#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Миасс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3513)6#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Златоуст",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3513)7#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Златоуст",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35130)2-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35130)4-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35130)6-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35130)7-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35130)9-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Аргаяш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Карталы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Южноуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Еманжелинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Копейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Агаповка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Бреды",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Варна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Верхнеуральск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Долгодеревенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Еткуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Снежинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: [ "Катав-Ивановск", "Юрюзань" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Кунашак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Касли",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Миасское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Кыштым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Коркино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Карабаш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Куса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Кизильское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Нязепетровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Фершампенуаз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Октябрьское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Аша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Пласт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Сатка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Троицк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Верхний Уфалей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Уйское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Увельский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Усть-Катав",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Чебаркуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Чесма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3519)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Магнитогорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35191)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Челябинская область",
+ city: "Трёхгорный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(352)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3522)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Курган",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35230)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Частоозерье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Кетово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Белозерское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Варгаши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Мокроусово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Петухово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Макушино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Лебяжье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Половинное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35239)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Глядянское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35240)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Звериноголовское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Целинное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Альменево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Сафакулево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Щучье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Шумиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Мишкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Юргамыш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Куртамыш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35251)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Катайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35252)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Далматово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Шадринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35256)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Каргаполье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курганская область",
+ city: "Шатрово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(353)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3532)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Оренбург",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35330)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Октябрьское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35331)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Сакмара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35332)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Тюльган",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35333)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Саракташ",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35334)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Беляевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35335)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Акбулак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35336)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Соль-Илецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35337)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Илек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35338)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Переволоцкий",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35339)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Новосергиевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Курманаевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Бузулук",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Грачёвка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Плешаново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Сорочинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Ташла",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Первомайский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Тоцкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Асекеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Бугуруслан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Северное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Абдулино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Матвеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Пономаревка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Шарлык",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35359)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Александровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Кувандык",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Гай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Новоорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Кваркено",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Адамовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Светлый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Домбаровский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Ясный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3537)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Орск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3537)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Орск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3537)4#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Орск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3537)6#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Новотроицк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(35379)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Оренбургская область",
+ city: "Медногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(381)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3812)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Омск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Азово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Усть-Ишим",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Таврическое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Нововаршавка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Черлак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Тевриз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Калачинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Русская Поляна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Горьковское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Муромцево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Одесское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Колосовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Называевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Большие Уки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Полтавка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Седельниково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Нижняя Омка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Оконешниково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Крутинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Марьяновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Большеречье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38170)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Кормиловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38171)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Тара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38172)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Павлоградка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38173)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Исилькуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38174)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Москаленки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38175)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Любинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38176)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Тюкалинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38177)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Шербакуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38178)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Саргатское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38179)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Омская область",
+ city: "Знаменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(382)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3822)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Томск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3823)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Северск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Асино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Зырянское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Кожевниково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Первомайское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Тегульдет",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Мельниково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Бакчар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38250)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Кедровый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38251)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Кривошеино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38252)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Парабель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Каргасок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38254)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Колпашево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Александровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38256)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Молчаново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Подгорное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38258)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Белый Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38259)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Томская область",
+ city: "Стрежевой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(383)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Новосибирск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38340)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Тогучин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Бердск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Искитим",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Черепаново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Сузун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Маслянино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Мошково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Болотное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38350)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Чулым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Коченево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Колывань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Баган",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Довольное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Карасук",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Кочки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Краснозерское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Купино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38359)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Ордынское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38360)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Северное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Барабинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Куйбышев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Здвинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Татарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Каргат",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Убинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Чаны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Чистоозерное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Венгерово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Кыштовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Усть-Тарка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новосибирская область",
+ city: "Обь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(384)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3842)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Кемерово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3843)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Новокузнецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Яя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Промышленная",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Мариинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Верх-Чебула",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Берёзовский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Крапивинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Тисуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38448)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Тайга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38449)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Тяжинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Юрга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Белово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Анжеро-Судженск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Топки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38455)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Яшкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38456)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Ленинск-Кузнецкий",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38459)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Ижморский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3846)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Прокопьевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38463)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Гурьевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38464)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Киселевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38471)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Осинники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38472)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Калтан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38473)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Таштагол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38474)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Мыски",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38475)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кемеровская область",
+ city: "Междуреченск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(385)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3852)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Барнаул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38530)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Зональное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Косиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Новоалтайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Солтон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38534)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Троицкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Красногорское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Смоленское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Алтайское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Верх-Суетка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Гальбштадт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3854)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Бийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38550)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Шипуново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Калманка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Топчиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Алейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Усть-Чарышская Пристань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Новичиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Поспелиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Рубцовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Шелаболиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Староалейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38560)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Новоегорьевское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38561)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Романово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38562)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Завьялово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38563)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Родино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38564)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Благовещенка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38565)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Волчиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38566)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Кулунда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38567)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Табуны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38568)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Славгород",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38569)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Хабары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38570)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Михайловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38571)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Быстрый Исток",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38572)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Бурла",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38573)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Петропавловское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38574)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Чарышское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38575)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Краснощеково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38576)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Курья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38577)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Белокуриха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38578)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Ключи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38579)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Угловское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38580)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Панкрушиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38581)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Павловск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38582)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Ребриха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38583)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Мамонтово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38584)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Камень-на-Оби",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38585)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Баево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38586)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Горняк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38587)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Змеиногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38588)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Тюменцево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38589)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Крутиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38590)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Кытманово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38591)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Тальменка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38592)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Залесово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38593)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Ельцовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38594)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Солонешное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38595)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Заринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38596)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Целинное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38597)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Тогул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38598)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Советское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38599)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Алтайский край",
+ city: "Усть-Калманка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(388)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3882)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Горно-Алтайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38840)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Чоя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38841)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Чемал",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38842)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Кош-Агач",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38843)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Турочак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38844)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Майма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38845)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Онгудай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38846)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Акташ",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38847)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Усть-Кан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38848)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Усть-Кокса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(38849)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Алтай",
+ city: "Шебалино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(390)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3902)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Абакан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39031)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Черногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39032)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Усть-Абакан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39033)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Сорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39034)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Боград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39035)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Шира",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39036)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Копьёво",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39041)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Белый Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39042)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Саяногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39044)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Бея",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39045)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Аскиз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39046)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Таштып",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39047)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хакасия",
+ city: "Абаза",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(391)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(391)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Красноярск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Сосновоборск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Минусинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Емельяново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Краснотуранск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Идринское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Курагино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Каратузское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Ермаковское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Шушенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Партизанское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Мотыгино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Агинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Кодинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Дивногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Лесосибирск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Уяр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Новоселово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Балахта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Шалинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Новобирилюссы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Ачинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Диксон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Шарыпово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Козулька",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Назарово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Ужур",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Боготол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Тюхтет",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Большой Улуй",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Северо-Енисейский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Канск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Богучаны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Абан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Тасеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Заозерный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Пировское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Дзержинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Бородино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Зеленогорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39170)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Тура",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39171)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Нижний Ингаш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39172)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Игарка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39173)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Иланский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39174)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Ирбейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39175)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Берёзовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39176)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Хатанга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39177)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Ванавара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39178)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Байкит",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39179)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Караул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3919)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Норильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3919)4#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Норильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39190)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Туруханск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39191)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Дудинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39193)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Снежногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39195)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Енисейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39196)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Казачинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39197)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Железногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39198)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Большая Мурта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39199)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Красноярский край",
+ city: "Сухобузимское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(394)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3942)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Кызыл",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39432)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Сарыг-Сеп",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Ак-Довурак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Чадан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39435)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Туран",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Шагонар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Бай-Хаак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39438)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Самагалтай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39439)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Эрзин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Кызыл-Мажалык",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Тээли",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Хандагайты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Суг-Аксы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39450)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Тоора-Хем",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Тыва",
+ city: "Мугур-Аксы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(395)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3952)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Иркутск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3953)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Братск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39530)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Тулун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Усть-Илимск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Куйтун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Баяндай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Бохан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Оса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39540)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Качуг",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Усть-Ордынский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Байкальск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Усолье-Сибирское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Слюдянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Усть-Уда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Черемхово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Балаганск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Новонукутский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(3955)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Ангарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39550)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Шелехов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Жигалово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Залари",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Саянск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Зима",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Нижнеудинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Ольхонск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Еланцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39560)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Ербогачен",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39561)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Бодайбо",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39562)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Казачинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39563)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Тайшет",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39564)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Кутулик",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39565)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Усть-Кут",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39566)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Железногорск-Илимский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39567)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Чунский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39568)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Киренск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(39569)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Иркутская область",
+ city: "Мама",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(401)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4012)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Калининград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Черняховск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Озёрск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Гусев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Нестеров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Балтийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Зеленоградск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Гурьевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Светлый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Светлогорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Пионерский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Багратионовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Правдинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Полесск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Гвардейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Советск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Неман",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Славск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(40164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калининградская область",
+ city: "Краснознаменск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(411)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4112)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Якутск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Бердигестях",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Вилюйск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Верхневилюйск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Нюрба",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Сунтар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Мирный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Ленск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Олёкминск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Солнечный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Усть-Мая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Амга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Майя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Покровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Алдан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Нерюнгри",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Хонуу",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Чурапча",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Ытык-Кюёль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Хандыга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Усть-Нера",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Зырянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Среднеколымск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Черский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Чокурдах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Белая Гора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Батагай-Алыта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Борогонцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Намцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Сангар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Жиганск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Батагай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Депутатский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Тикси",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Саскылах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Якутия",
+ city: "Оленёк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(413)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4132)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Магадан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Ола",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Палатка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Ягодное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Усть-Омчуг",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Сусуман",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Омсукчан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Сеймчан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Магаданская область",
+ city: "Эвенск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(415)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4152)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Петропавловск-Камчатский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Елизово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Усть-Большерецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Мильково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41534)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Усть-Камчатск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Вилючинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Соболево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Тигиль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Вилючинск-3",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Усть-Хайрюзово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Ключи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Эссо",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Палана",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Тиличики",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Оссора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Каменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41547)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Никольское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Камчатский край",
+ city: "Козыревск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(416)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4162)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: [ "Благовещенск", "Благовещенский район" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41631)2-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Ивановский район",
+ operator: "Транссвязьтелеком",
+ desc: ""
+ }, {
+ mask: "+7(41632)3-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Октябрьский район",
+ operator: "Транссвязьтелеком",
+ desc: ""
+ }, {
+ mask: "+7(41633)3-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Райчихинск",
+ operator: "Транссвязьтелеком",
+ desc: ""
+ }, {
+ mask: "+7(41634)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Бурейский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41637)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Михайловский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41638)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Тамбовский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41639)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Константиновский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41641)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Белогорский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41642)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Серышевский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41643)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Свободненский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41644)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Мазановский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41645)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Ромненский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41646)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Селемджинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41647)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Райчихинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41648)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Архаринский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41649)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Ивановский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41651)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Шимановский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41652)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Октябрьский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41653)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Магдагачинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41654)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Сковородинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41655)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Селемджинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41656)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Тындинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41658)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Зейский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(421)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4212)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Хабаровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Николаевск-на-Амуре",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41636)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Завитинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41636)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Завитинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(41636)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Амурская область",
+ city: "Завитинский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Ванино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Советская Гавань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Охотск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Амурск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Чумикан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "им. Полины Осипенко",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Солнечный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Аян",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Чегдомын",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Богородское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Вяземский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Переяславка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Бикин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Троицкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4217)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Хабаровский край",
+ city: "Комсомольск-на-Амуре",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(423)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Владивосток",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42331)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Славянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42334)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: [ "Вольно-Надеждинское", "Раздольное" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42335)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Большой Камень",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42337)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Артем",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42339)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Фокино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4234)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Уссурийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Покровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Пограничный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Михайловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Хороль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Камень-Рыболов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Черниговка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Спасск-Дальний",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Кировский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Лесозаводск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Дальнереченск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Лучегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42359)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Новопокровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4236)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: [ "Находка", "Порт Восточный" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Арсеньев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Анучино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Партизанск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Владимиро-Александровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Яковлевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Чугуевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Дальнегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Терней",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Кавалерово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Ольга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42377)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Приморский край",
+ city: "Лазо",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(424)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4242)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Южно-Сахалинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42431)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Поронайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42432)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Углегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Холмск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Александровск-Сахалинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42435)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Корсаков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Невельск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Оха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Анива",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Долинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Макаров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Ноглики",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Томари",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Тымовское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Смирных",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Северо-Курильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Курильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42455)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Сахалинская область",
+ city: "Южно-Курильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(426)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42622)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "Биробиджан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42632)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "Смидович",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42663)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "Ленинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42665)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "Амурзет",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42666)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Еврейская автономная область",
+ city: "Облучье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(427)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42722)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Анадырь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42732)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Угольные Копи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42733)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Беринговский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42734)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Эгвекинот",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42735)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Провидения",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42736)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Лаврентия",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42737)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Певек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42738)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Билибино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(42739)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чукотский автономный округ",
+ city: "Мыс Шмидта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(471)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4712)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Курск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Курчатов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Глушково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Горшечное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Пристень",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Поныри",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Большое Солдатское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Хомутовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Льгов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Обоянь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Прямицыно",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Суджа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Фатеж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Щигры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Медвенка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Коренево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Железногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Белая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Дмитриев-Льговский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Золотухино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Рыльск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Тим",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Солнцево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Мантурово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Конышевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Касторное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Кшенский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Курская область",
+ city: "Черемисиново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(472)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4722)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Белгород",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Короча",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Чернянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Новый Оскол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Алексеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Волоконовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Валуйки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Вейделевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Ровеньки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Губкин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Прохоровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Ивня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Строитель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Ракитное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Борисовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Красногвардейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Шебекино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4725)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Старый Оскол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47261)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Грайворон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47262)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Красное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47263)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Белгородская область",
+ city: "Красная Яруга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(473)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Воронеж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47340)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Рамонь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Новая Усмань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Каширское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Верхняя Хава",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Панино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Эртиль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Анна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Терновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Грибановский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47350)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Бобров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Таловая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Новохоперск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Борисоглебск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Верхний Мамон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Воробьёвка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Каменка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Бутурлиновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Павловск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Калач",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Нововоронеж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Петропавловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Богучар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Кантемировка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47370)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Нижнедевицк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Хохольский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: [ "Семилуки", "Семилукский район" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Репьевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Острогожск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Поворино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47391)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Лиски",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47394)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Подгоренский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47395)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Ольховатка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47396)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Воронежская область",
+ city: "Россошь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(474)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4742)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Липецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47461)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Грязи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47462)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Добринка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47463)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Доброе",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47464)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Лев Толстой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47465)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Данков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47466)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Лебедянь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47467)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Елец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47468)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Долгоруково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47469)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Красное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47471)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Задонск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47472)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Усмань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47473)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Волово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47474)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Тербуны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47475)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Чаплыгин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47476)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Становое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47477)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Хлевное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47478)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Липецкая область",
+ city: "Измалково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(475)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4752)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Тамбов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Рассказово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Сосновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Моршанск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47534)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Бондари",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Жердевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Дмитриевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Кирсанов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Котовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Мордово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Староюрьево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Петровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Мичуринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Мучкапский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Первомайский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Гавриловка Вторая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Знаменка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Инжавино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Пичаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Ржакса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Сатинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Токарёвка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Уварово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(47559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тамбовская область",
+ city: "Умёт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(481)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4812)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Смоленск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Сычевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Вязьма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Велиж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Шумячи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Рославль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Гагарин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Тёмкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Угра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Новодугино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Холм-Жирковский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Хиславичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Рудня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Сафоново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Ярцево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Дорогобуж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Красный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Ельня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Демидов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Монастырщина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Починок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Десногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Ершичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Глинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Духовщина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Смоленская область",
+ city: "Кардымово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(482)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4822)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Тверь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48230)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Пено",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Бежецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Ржев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Вышний Волочек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Кашин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Осташков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Кимры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Красный Холм",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Бологое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48239)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Фирово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Конаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Рамешки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Сонково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Калязин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48250)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Белый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48251)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Торжок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Максатиха",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Удомля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Кувшиново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48258)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Оленино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48261)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Лихославль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48262)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Зубцов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48263)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Старица",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48264)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Весьегонск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48265)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Западная Двина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48266)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Нелидово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48267)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Андреаполь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48268)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Торопец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48269)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Селижарово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48271)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Лесное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48272)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Сандово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48273)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Жарковский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48274)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Кесова Гора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48275)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Молоково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48276)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тверская область",
+ city: "Спирово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(483)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4832)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: [ "Брянск", "Сельцо", "Белые Берега" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48330)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Сураж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48331)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Рогнедино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48332)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Дубровка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48333)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: [ "Дятьково", "Фокино" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48334)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Жуковка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48335)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Карачев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48336)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Клинцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48338)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Клетня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48339)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Мглин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48340)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Гордеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Выгоничи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Навля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Новозыбков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Жирятино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Почеп",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Красная Гора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Климово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Стародуб",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Погар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Унеча",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Трубчевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Суземка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Локоть",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Комаричи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Севск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Брянская область",
+ city: "Злынка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(484)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4842)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Калуга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48431)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Малоярославец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48432)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Жуков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Медынь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Кондрово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48435)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Таруса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Юхнов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Ферзиково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48438)2-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Балабаново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48438)4-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Боровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48438)6-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Балабаново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48439)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Обнинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Перемышль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Козельск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Ульяново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Людиново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Жиздра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Мещовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Думиничи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48448)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Бабынино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48449)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Износки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Сухиничи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Мосальск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Хвастовичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Барятино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48455)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Спас-Деменск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48456)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Киров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48457)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калужская область",
+ city: "Бетлица",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(485)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4852)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Ярославль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Некрасовское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Углич",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Тутаев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48534)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Гаврилов Ям",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Переславль-Залесский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Ростов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Данилов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Борисоглебский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Большое Село",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Любим",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Мышкин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Брейтово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Пошехонье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48547)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Новый Некоуз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Пречистое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4855)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ярославская область",
+ city: "Рыбинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(486)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4862)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: [ "Орёл", "Орловский район" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48640)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Болхов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48642)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Хотынец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48643)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Кромы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48644)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Шаблыкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48645)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Змиевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48646)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Мценск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48647)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Нарышкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48648)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Залегощь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48649)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Дмитровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48661)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "",
+ operator: "МТС",
+ desc: "мобильные телефоны с зоновыми номерами"
+ }, {
+ mask: "+7(48662)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Знаменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48663)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Красная Заря",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48664)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Покровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48665)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Сосково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48666)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Тросна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48667)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Корсаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48672)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Долгое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48673)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Новосиль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48674)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Колпны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48675)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Глазуновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48676)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Верховье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48677)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Ливны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48678)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Хомутово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48679)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Орловская область",
+ city: "Малоархангельск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(487)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4872)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Тула",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48731)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Узловая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48732)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Дубна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48733)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Арсеньево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48734)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Заокский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48735)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Кимовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48736)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Одоев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48741)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Ефремов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48742)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Белев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48743)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Куркино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48744)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Архангельское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48745)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Венев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48746)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Донской",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48751)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Щекино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48752)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Плавск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48753)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Алексин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48754)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Киреевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48755)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Тёплое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48756)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Чернь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48761)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Богородицк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48762)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Новомосковск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48763)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Суворов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48766)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Ясногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48767)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Ленинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(48768)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Тульская область",
+ city: "Волово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(491)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4912)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: [ "Рязань", "Солотча" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Михайлов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Касимов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Ряжск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Сасово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Спасск-Рязанский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Шилово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Рыбное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Чучково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Кадом",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Новомичуринск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Спас-Клепики",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Кораблино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Ермишь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Пителино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Путятино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Шацк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Сараи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Старожилово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Сапожок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Захарово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Ухолово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Пронск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Скопин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Милославское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Рязанская область",
+ city: "Александро-Невский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(492)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4922)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Владимир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Суздаль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Ковров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Вязники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Муром",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Судогда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Красная Горбатка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Киржач",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Гороховец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Гусь-Хрустальный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Собинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49243)2-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Петушки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49243)6-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Покров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Александров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Кольчугино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Юрьев-Польский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Меленки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Камешково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49254)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Владимирская область",
+ city: "Радужный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(493)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4932)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Иваново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49331)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Кинешма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49333)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Заволжск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49334)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Палех",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49336)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Родники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49337)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Юрьевец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49339)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Приволжск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Фурманов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Тейково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Лух",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Пучеж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Пестяки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Южа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Верхний Ландех",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Шуя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Комсомольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Ильинское-Хованское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Вичуга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Гаврилов Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Савино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ивановская область",
+ city: "Лежнево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(494)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(4942)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Кострома",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49430)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Антропово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49431)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Нерехта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49432)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Красное-на-Волге",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Судиславль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Сусанино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49435)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Буй",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Солигалич",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Галич",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49438)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Островское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49439)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Павино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49440)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Парфеньево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Чухлома",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Кадый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Кологрив",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Нея",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Макарьев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Мантурово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Георгиевское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49448)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Поназырево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49449)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Шарья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49450)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Вохма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Боговарово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Пыщуг",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(49453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Костромская область",
+ city: "Волгореченск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(495)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(495)323-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Аэропорт Домодедово",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)323-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Аэропорт Домодедово",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)338-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Мосрентген",
+ operator: "МГТС",
+ desc: "часть номеров АТС"
+ }, {
+ mask: "+7(495)339-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Мосрентген",
+ operator: "МГТС",
+ desc: "часть номеров АТС"
+ }, {
+ mask: "+7(495)355-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Развилка",
+ operator: "ОАО «Газпромсвязь»",
+ desc: ""
+ }, {
+ mask: "+7(495)408-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Долгопрудный",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)439-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Московский",
+ operator: "ЦентрТелеком",
+ desc: "часть номеров АТС"
+ }, {
+ mask: "+7(495)50#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Люберцы",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)500-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)51#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Королёв", "Юбилейный" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)52#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Балашиха", "Железнодорожный", "Реутов" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)541-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)542-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)543-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)544-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)545-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)546-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: "Ростелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)546-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Домодедово",
+ operator: "Ростелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)546-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Видное", "Развилка" ],
+ operator: "Ростелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)546-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Домодедово",
+ operator: "Ростелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Поселок совхоза им. Ленина",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Поселок совхоза им. Ленина", "Поселок Володарского", "Горки Ленинские" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Поселок Володарского", "Горки Ленинские" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)548-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Видное",
+ operator: "ЦентрТелеком",
+ desc: "промзона"
+ }, {
+ mask: "+7(495)549-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Видное", "Московский", "пос. Ново-Дрожжино", "пос. Измайлово", "пос. Булатниково", "пос. Дубровский", "пос. Института Садоводства" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)55#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Люберцы",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)552-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Лыткарино",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)555-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Лыткарино",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)56#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Красногорск",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)57#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Королёв", "Мытищи", "Юбилейный" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)573-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Химки",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)576-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Долгопрудный",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)577-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Лобня",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)578-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Лобня", "Международный аэропорт «Шереметьево»" ],
+ operator: "Порт-Телеком",
+ desc: ""
+ }, {
+ mask: "+7(495)579-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: [ "Долгопрудный", "Лобня" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(495)58#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Химки",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)585-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)589-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Мегафон", "Центральный Телеграф" ],
+ desc: ""
+ }, {
+ mask: "+7(495)59#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Одинцово",
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(495)597-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва и ближнее Подмосковье",
+ city: "Москва",
+ operator: [ "Центральный Телеграф", "ЦентрТелеком" ],
+ desc: ""
+ }, {
+ mask: "+7(496)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)20#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Талдом",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)21#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Дубна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)22#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Дмитров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)24#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Клин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)25#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Щёлковский район",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)26#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Солнечногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)27#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Руза",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)28#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Лотошино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)30#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "ЗАО Калита-Телеком",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)31#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Истра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)34#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Наро-Фоминск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)36#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Волоколамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)37#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Шаховская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)38#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Можайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)40#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Егорьевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)41#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Орехово-Зуево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)42#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Орехово-Зуево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)43#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Павловский Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)44#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Воскресенск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)45#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Шатура",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)46#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Раменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)51#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Ногинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)52#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Черноголовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)53#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Пушкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)54#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Сергиев Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)55#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Сергиев Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)56#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Щелково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)57#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Электросталь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)61#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Коломна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)63#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Луховицы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)64#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Ступино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)66#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Зарайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)67#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Серебряные Пруды",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)69#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Кашира",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)70#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Озеры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)72#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Чехов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)73#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Серпухов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)75#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Подольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)76#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Подольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)77#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Серпухов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(496)79#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Московская область",
+ city: "Домодедово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)48#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Жуковский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)54#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: [ "Видное", "Ленинский район" ],
+ operator: "ЦентрТелеком",
+ desc: ""
+ }, {
+ mask: "+7(498)617-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: [ "Газопровод", "Коммунарка" ],
+ operator: "ЗАО «Газтелеком»",
+ desc: "Ленинский район"
+ }, {
+ mask: "+7(498)657-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Развилка",
+ operator: "ООО «Газпром связь»",
+ desc: "Ленинский район"
+ }, {
+ mask: "+7(498)664-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Железнодорожный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)68#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Лобня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)713-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Долгопрудный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(498)744-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Лесопарковый защитный пояс Москвы",
+ city: "Долгопрудный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(499)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(499)39#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва",
+ city: "Москва",
+ operator: "МегаФон",
+ desc: ""
+ }, {
+ mask: "+7(499)50#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва",
+ city: "Москва",
+ operator: "Центральный Телеграф",
+ desc: ""
+ }, {
+ mask: "+7(499)755-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Москва",
+ city: "Москва",
+ operator: "МегаФон",
+ desc: ""
+ }, {
+ mask: "+7(811)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8112)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Псков",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Гдов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Струги Красные",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Плюсса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Порхов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Дно",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Дедовичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Красногородск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Опочка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Локня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Себеж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Бежаницы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Пустошка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Новоржев",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Новосокольники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Палкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Пушкинские Горы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Пыталово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Печоры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Кунья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Усвяты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Невель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Остров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Псковская область",
+ city: "Великие Луки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(812)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Санкт-Петербург",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(813)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Тосно",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Кировск", "Шлиссельбург" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Волхов", "Новая Ладога", "Сясьстрой" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Лодейное Поле",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Подпорожье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Бокситогорск", "Пикалёво" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Тихвин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Кириши", "Будогощь" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Сосновый Бор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81370)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Всеволожск", "Токсово" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Гатчина", "Вырица", "Коммунар" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Луга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Волосово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Сланцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Кингисепп", "Ивангород" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Ломоносов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81378)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: [ "Выборг", "Высоцк", "Приморск", "Светогорск" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81379)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ленинградская область",
+ city: "Приозерск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(814)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8142)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Петрозаводск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Сортавала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Вяртсиля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Хелюля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Рускеала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пуйккола",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Хаапалампи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кааламо",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81430)3-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Заозёрный", "Ламберг", "Сортавала", "Хюмпеля" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Сегежа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кочкома",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Олений", "Пертозеро", "Черный Порог" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-2#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Валдай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Волдозеро", "Идель", "Кяргозеро", "Попов Порог" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Каменный Бор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Полга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81431)3-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Надвоицы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Питкяранта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81433)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Ляскеля", "Рауталахти", "Харлу", "Хийденсельга" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81433)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Ряймяля", "Салми" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81433)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Импилахти",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81433)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Леппясилта", "Уукса" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Медвежьегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)3-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Толвуя",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)3-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Шуньга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)3-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Великая Губа", "Великая Нива", "Кижи", "Космозеро", "Ламбасручей", "Сенная Губа" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)3-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Кумса", "Лавас Губа", "Лумбуши", "Чебино" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)3-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Волозеро", "Габсельга", "Сосновка", "Челмужи" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)4-2#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Огорелыши", "Сергиево" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)4-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Повенец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)4-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пиндуши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81434)4-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Паданы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Олонец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Ильинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Верхний Олонец", "Ковера", "Речная Сельга", "Сяндеба", "Тулокса" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Михайловское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Алексала", "Мегрега", "Рыпушкалица", "Тукса" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Видлица",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Коткозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81436)2-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Куйтежа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Беломорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Сумский Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Золотец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Колежма", "Лапино", "Лехта", "Маленьга", "Новое Машозеро", "Нюхча", "Тунгуза", "Хвойный", "Шуерецкое" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Сосновец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Лесобиржа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Вирандозеро", "Летнереченский" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81437)3-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пушной",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Лоухи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кестеньга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Софпорог", "Тунгозеро" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)2-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пяозерский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)3-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Амбарный", "Плотина", "Сосновый", "Энгозеро" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)4-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Чупа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)4-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Чкаловский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81439)45#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Тэдино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81450)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Лахденпохья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81450)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Ихала", "Мийнала", "Яккима" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81450)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Куркиёки", "Хийтола" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81450)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Элисенваара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кондопога",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кедрозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Гирвас", "Тивдия", "Эльмус" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-2#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Спасская Губа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Кивач", "Новинка" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Кяпесельга", "Нелгомозеро" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кончезеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Берёзовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81451)3-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Суна", "Янишполе" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пудож",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Бочилово", "Каршево", "Колово", "Колодозеро", "Семёново" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Водла", "Кубово", "Онежский", "Рагнукса" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Кривцы", "Приречный" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Авдеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Подпорожье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Шала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81452)2-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пяльма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Калевала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81454)5-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кепа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81454)5-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Юшкозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81454)5-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Войница", "Куусиниеми", "Луусалми" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Муезерский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Тикша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Реболы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Ригозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Волома", "Пенинга" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Суккозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Ледмозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81455)2-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Лендеры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Пряжа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Вилла Гора", "Соддер", "Сяпся", "Эссойла" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Ведлозеро", "Кинелахта", "Койвусельга", "Колатсельга", "Савиново" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Чална",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Матросы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Верхние Важины",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Крошнозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81456)2-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Святозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Суоярви",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Лахколамби",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Поросозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Найстеньярви",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Вегарус", "Суоёки", "Тойвола", "Хаутоваара" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Вешкелица", "Лоймола", "Пийтсиёки" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)2-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Леппясюрья", "Райконкоски", "Суйстамо" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81457)3-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Леппяниеми",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кемь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Калгалакша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-2#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Панозеро", "Поньгома" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-4#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: [ "Авнепорог", "Кривой Порог" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Рабочеостровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-6#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Шомба",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-7#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Кузема",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-8#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Баб-Губа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81458)3-9#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Сокол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81459)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Костомукша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81459)9-3#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Контокки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81459)9-5#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Карелия",
+ city: "Вокнаволок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(815)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8152)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Мурманск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81530)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Снежногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Кировск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Полярные Зори",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Кандалакша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Ковдор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Мончегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Североморск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Ловозеро",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Гаджиево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Полярный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Оленегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Кола",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: [ "Заполярный", "Никель" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Апатиты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Заозерск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Островной",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мурманская область",
+ city: "Умба",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(816)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8162)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Великий Новгород",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81650)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Парфино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81651)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Демянск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81652)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Старая Русса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81653)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Мошенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81654)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Холм",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81655)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Сольцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81656)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Шимск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81657)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Окуловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81658)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Поддорье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81659)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Крестцы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81660)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Малая Вишера",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81661)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Батецкий",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81662)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Волот",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81663)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Марёво",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81664)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Боровичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81665)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Чудово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81666)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Валдай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81667)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Хвойная",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81668)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Любытино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81669)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Новгородская область",
+ city: "Пестово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(817)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8172)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Вологда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81732)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Харовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81733)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Сокол",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81737)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Устюжна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81738)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Великий Устюг",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81739)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Тотьма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81740)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Кичменгский Городок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81741)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Чагода",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81742)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Кадуй",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81743)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Бабаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81744)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Вожега",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81745)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Село имени Бабушкина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81746)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Вытегра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81747)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Нюксеница",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81748)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Тарногский Городок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81749)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Шуйское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81751)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Шексна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81752)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Сямжа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81753)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Устье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81754)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Никольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81755)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Грязовец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81756)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Белозерск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81757)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Кириллов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81758)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Липин Бор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81759)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Верховажье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(818)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Архангельск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81830)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Холмогоры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81831)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Березник",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81832)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Плесецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81833)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Лешуконское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81834)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Мирный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81835)9-0#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Соловецкий",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81836)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Вельск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81837)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Котлас",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81838)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Няндома",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81839)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Онега",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81840)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Красноборск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81841)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Каргополь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81842)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Северодвинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81843)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Ильинско-Подомское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81848)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Мезень",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81850)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Коряжма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81851)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Шенкурск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81852)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Новодвинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81853)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Нарьян-Мар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81854)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Верхняя Тойма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81855)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Октябрьский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81856)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Карпогоры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81858)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Коноша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(81859)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: [ "Архангельская область", "Ненецкий автономный округ" ],
+ city: "Яренск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(820)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8202)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Вологодская область",
+ city: "Череповец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(821)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8212)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Сыктывкар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Выльгорт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Визинга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Койгородок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Объячево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Айкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Усогорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Корткерос",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Усть-Кулом",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Троицко-Печорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Емва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Ижма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Усть-Цильма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Печора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Усинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Инта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Вуктыл",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Сосногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(82151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Воркута",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8216)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Коми",
+ city: "Ухта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(831)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Нижний Новгород",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8313)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Дзержинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Саров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Дивеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Володарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Сокольское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Большое Болдино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83139)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Первомайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Вад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Балахна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Кстово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Арзамас",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Перевоз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Лысково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Ветлуга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Тоншаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Шахунья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Тонкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Урень",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Шаранга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Красные Баки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Ковернино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Варнавино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Бор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Чкаловск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Городец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Семёнов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Воскресенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Воротынец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Спасское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Княгинино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Большое Мурашкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Дальнее Константиново",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Заволжье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83170)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Богородск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83171)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: [ "Павлово", "Ворсма" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83172)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Бутурлино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83173)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Вача",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83174)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Сосновское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83175)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Навашино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83176)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Кулебаки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83177)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Выкса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83178)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Вознесенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83179)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Ардатов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83190)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Шатки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83191)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Сергач",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83192)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Пильна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83193)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Сеченово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83194)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Уразовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83195)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Гагино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83196)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Лукоянов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83197)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Нижегородская область",
+ city: "Починки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(833)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8332)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Киров",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83330)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Арбаж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83331)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Афанасьево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83332)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Фаленки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83333)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Богородское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83334)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Вятские Поляны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83335)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Верхошижемье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83336)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Даровской",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83337)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Зуевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83338)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Кильмезь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83339)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Кирс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83340)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Тужа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Кикнур",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Котельнич",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Кумены",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Лебяжье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Ленинское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Луза",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Малмыж",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Мураши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Нагорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83350)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Нема",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Подосиновец",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83352)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Омутнинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Опарино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Оричи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Пижанка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Санчурск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Свеча",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83359)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Уни",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Кирово-Чепецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Слободской",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Уржум",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Белая Холуница",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Орлов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Юрья",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Яранск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Нолинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Суна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кировская область",
+ city: "Советск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(834)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8342)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Саранск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83431)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Ардатов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83432)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Старое Шайгово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83433)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Кемля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83434)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Атяшево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83436)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Большие Березники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83437)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Чамзинка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83438)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Ромоданово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83439)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Кочкурово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83441)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Лямбирь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Большое Игнатово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Краснослободск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Ельники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Темников",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Теньгушево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Дубенки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83448)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Кадошкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83449)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Инсар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83451)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Рузаевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Ковылкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Атюрьево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83456)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Торбеево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83457)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Явас",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83458)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Мордовия",
+ city: "Зубова Поляна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(835)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8352)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Чебоксары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8352)7#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Новочебоксарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83530)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Красноармейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83531)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Алатырь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83532)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Батырево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83533)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Канаш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83534)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Козловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83535)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Аликово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83536)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Шумерля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83537)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Вурнары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83538)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Ибреси",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83539)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Комсомольское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83540)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Кугеси",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Моргауши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Мариинский Посад",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Порецкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Урмары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Цивильск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Шемурша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83547)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Ядрин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Янтиково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Яльчики",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чувашия",
+ city: "Красные Четаи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(836)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8362)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Йошкар-Ола",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83631)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Волжск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83632)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Козьмодемьянск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83633)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Сернур",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83634)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Мари-Турек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83635)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Морки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83636)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Новый Торъял",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83637)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Куженер",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83638)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Советский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83639)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Параньга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83641)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Оршанка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83643)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Килемары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83644)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Юрино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(83645)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Марий Эл",
+ city: "Звенигово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)22#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Сухум",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)23#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Гагра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)24#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Гудаута",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)25#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Очамчыра",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)26#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Ткуарчал",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)27#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Гулрыпш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(840)28#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Абхазия",
+ city: "Гал",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(841)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8412)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Пенза",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Бессоновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Беково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Вадинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Башмаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Исса",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Русский Камешкир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Колышлей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Кондоль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Лопатино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Мокшан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Спасск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Пачелма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Белинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Нижний Ломов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Земетчино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Каменка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Кузнецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Городище",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Шемышейка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Лунино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Малая Сердоба",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Наровчат",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Неверкино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Никольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Сердобск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Сосновоборск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Пензенская область",
+ city: "Тамала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(842)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8422)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Ульяновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84230)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Старая Майна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Чердаклы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Новая Малыкла",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Сенгилей",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Тереньга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Димитровград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Кузоватово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Новоспасское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84239)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Радищево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84240)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Базарный Сызган",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84241)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Инза",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Сурское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Вешкайма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Майна",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Большое Нагаткино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Карсун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Николаевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Павловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Старая Кулатка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84253)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Барыш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84254)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Ишеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ульяновская область",
+ city: "Новоульяновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(843)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Казань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Алексеевское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Чистополь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Аксубаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Нурлат",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84346)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Базарные Матаки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Болгар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Новошешминск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84360)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Тюлячи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Рыбная Слобода",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84362)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Богатые Сабы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Кукмор",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Высокая Гора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84366)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Арск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Пестрецы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Балтаси",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Большая Атня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84370)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Большие Кайбицы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Зеленодольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Тетюши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Буинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Старое Дрожжаное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Апастово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84377)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Камское Устье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84378)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Лаишево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84379)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Верхний Услон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84396)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Черемшан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(844)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(844)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Волгоград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(844)70#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Волгоград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8443)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Волжский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84442)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Урюпинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84443)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Нехаевская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84444)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Новониколаевский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84445)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Преображенская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84446)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Алексеевская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84447)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Новоаннинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84452)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Елань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84453)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Рудня",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84454)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Жирновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84455)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Котово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84456)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Ольховка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84457)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Камышин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84458)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Дубовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84461)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Даниловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84462)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Кумылженская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84463)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Михайловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84464)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Серафимович",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84465)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Фролово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84466)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Клетская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84467)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Иловля",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84468)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Городище",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84472)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Калач-на-Дону",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84473)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Суровикино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84474)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Чернышковский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84475)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Октябрьский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84476)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Котельниково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84477)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Светлый Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84478)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Ленинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84479)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Средняя Ахтуба",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84492)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Палласовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84493)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Старая Полтавка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84494)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Николаевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84495)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Волгоградская область",
+ city: "Быково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(845)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8452)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Саратов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Балаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Балаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)4#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Балаково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)5#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Энгельс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)7#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Энгельс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8453)9#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Энгельс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84540)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Ртищево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Аркадак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Турки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Романовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Балашов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Самойловка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Калининск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84550)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Красноармейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Лысые Горы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Аткарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Екатериновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Петровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Новые Бурасы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Татищево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84560)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Красный Кут",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84561)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Питерка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84562)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Новоузенск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84563)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Дергачи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84564)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Ершов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84565)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Мокроус",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84566)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Степное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84567)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Маркс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84568)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Воскресенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84573)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Духовницкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84574)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Пугачёв",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84575)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Перелюб",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84576)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Озинки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84577)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Горный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84578)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Александров Гай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84579)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Ивантеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84591)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Базарный Карабулак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84592)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Балтай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84593)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Вольск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84595)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Хвалынск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84596)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Саратовская область",
+ city: "Ровное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)300-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)302-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)303-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)309-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)31#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)33#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)34#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)37#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(846)9##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Самара",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84630)5-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Волжский Утёс",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84635)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Новокуйбышевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84639)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Чапаевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8464)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Сызрань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8464)4#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Сызрань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8464)9#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Сызрань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84646)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Октябрьск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84647)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Приволжье",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84648)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Шигоны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84650)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Кошки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84651)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Челно-Вершины",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84652)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Шентала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84653)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Клявлино",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84654)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Исаклы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84655)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Сергиевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84656)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Похвистнево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84657)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Красный Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84658)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Елховка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84660)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Кинель-Черкассы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84661)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Отрадный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84663)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Кинель",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84664)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Камышла",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84666)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Богатое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84667)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Борское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84670)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Нефтегорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84671)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Алексеевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84672)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Большая Черниговка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84673)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Большая Глушица",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84674)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Пестравка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84675)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Красноармейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84676)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Безенчук",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84677)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Хворостянка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(847)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84722)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Элиста",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84731)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Городовиковск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84732)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Ики-Бурул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84733)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Лагань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84734)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Малые Дербеты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84735)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Кетченеры",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84736)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Приютное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84741)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Садовое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84742)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Троицкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84743)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Комсомольский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84744)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Цаган Аман",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84745)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Яшалта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84746)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Яшкуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84747)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Калмыкия",
+ city: "Большой Царын",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(848)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8482)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Тольятти",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(84862)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Самарская область",
+ city: "Жигулевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(851)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8512)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Астрахань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Знаменск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Ахтубинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Володарский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Енотаевка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Икряное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Камызяк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Красный Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Лиман",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Харабали",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Чёрный Яр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85171)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Нариманов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85172)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Астраханская область",
+ city: "Началово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(855)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8552)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Набережные Челны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8553)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Альметьевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Менделеевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8555)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Нижнекамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8555)4#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Нижнекамск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85551)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Агрыз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Актаныш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Мензелинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Муслюмово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Елабуга",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Заинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Сарманово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85563)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Мамадыш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85569)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Бавлы",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8557)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Набережные Челны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8557)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Набережные Челны",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85592)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Азнакаево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85593)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Уруссу",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85594)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Бугульма",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(85595)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Татарстан",
+ city: "Лениногорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(861)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Краснодар",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86130)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Тимашёвск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86131)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Крымск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Ейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86133)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Анапа",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Усть-Лабинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86137)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Армавир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86138)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Кропоткин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86140)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Успенское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86141)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Геленджик",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Кореновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Приморско-Ахтарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86144)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Отрадная",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Ленинградская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Славянск-на-Кубани",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Курганинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Темрюк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86149)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Новопокровская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86150)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Абинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86151)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Старощербиновская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Апшеронск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86153)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Староминская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Белая Глина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Белореченск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Брюховецкая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86157)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Выселки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86158)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Тбилисская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86159)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Горячий Ключ",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86160)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Гулькевичи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86161)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Крыловская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86162)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Динская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86163)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Калининская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Каневская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86165)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Полтавская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86166)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Северская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86167)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Туапсе",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86168)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Кущёвская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86169)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Лабинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8617)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Новороссийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86191)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Павловская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86192)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Мостовской",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86193)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Кавказская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86195)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Новокубанск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86196)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Тихорецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(862)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "",
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: [ "Аше", "Вардане", "Головинка", "Головинка", "Сочи", "Хоста" ],
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)23#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "",
+ operator: "МТС",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)24#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Адлер",
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)247-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Кудепста",
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)252-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: [ "Дагомыс", "Лоо" ],
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)27#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "Лазаревское",
+ operator: "",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(862)295-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Краснодарский край",
+ city: "",
+ operator: "МегаФон",
+ desc: "агломерация Большой Сочи"
+ }, {
+ mask: "+7(863)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(863)2##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Ростов-на-Дону",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(863)3##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Ростов-на-Дону",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8634)3#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Таганрог",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8634)43-1#-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Таганрог",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8634)6#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Таганрог",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86340)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Родионово-Несветайская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Матвеев-Курган",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Азов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Кагальницкая",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86347)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Покровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86348)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Куйбышево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86349)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Чалтырь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8635)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Новочеркасск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86350)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Аксай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86351)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Усть-Донецкий",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86353)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Вёшенская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86354)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Батайск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86355)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Зверево",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86356)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Семикаракорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86357)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Багаевская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86358)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Весёлый",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86359)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Зерноград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8636)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Шахты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86360)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Каменоломни",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86361)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Гуково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86363)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Советская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86364)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Казанская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86365)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Каменск-Шахтинский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86367)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Красный Сулин",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86368)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Донецк",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86369)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Новошахтинск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86370)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Егорлыкская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86371)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Целина",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86372)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Сальск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86373)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Песчанокопское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86374)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Пролетарск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86375)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Орловский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86376)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Зимовники",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86377)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Дубовское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86378)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Заветное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86379)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Ремонтное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86382)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Боковская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86383)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Белая Калитва",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86384)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Морозовск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86385)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Миллерово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86386)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Тарасовский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86387)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Чертково",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86388)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Кашары",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86389)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Милютинская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8639)2#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Волгодонск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86391)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Цимлянск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86393)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Константиновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86394)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Романовская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86395)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Большая Мартыновка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86396)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Обливская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86397)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ростовская область",
+ city: "Тацинская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(865)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8652)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Ставрополь",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86540)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Грачёвка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86541)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Красногвардейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86542)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Ипатово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86543)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Левокумское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86544)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Новоалександровск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86545)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Изобильный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86546)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Донское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86547)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Светлоград",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86548)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Новоселицкое",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86549)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Благодарный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86550)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Кочубеевское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86552)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Зеленокумск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86553)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Михайловск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86554)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Невинномысск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86555)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Дивное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86556)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Курсавка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86557)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Александровское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86558)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Нефтекумск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86559)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Буденновск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86560)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Арзгир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86563)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Степное",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86565)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Летняя Ставка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(866)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8662)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Нальчик",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86630)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Чегем",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86631)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Прохладный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86632)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Терек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86633)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Майский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86634)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Баксан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86635)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Нарткала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86636)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Кашхатау",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86637)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Залукокоаже",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86638)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Кабардино-Балкария",
+ city: "Тырныауз",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(867)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8672)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Владикавказ",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86731)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Алагир",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86732)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Ардон",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86733)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Дигора",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86734)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Чикола",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86735)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Эльхотово",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86736)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Моздок",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86737)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Беслан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86738)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Октябрьское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(86739)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Северная Осетия",
+ city: "Архонская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(871)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8712)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Грозный",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87132)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Знаменское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87134)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Ведено",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87135)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Шатой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87136)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Шелковская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87142)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Ачхой-Мартан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87143)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Наурская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87145)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Урус-Мартан",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87146)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Шали",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87147)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Аргун",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87148)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Ножай-Юрт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87152)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Гудермес",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87154)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Серноводск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87155)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Курчалой",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87156)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: [ "Толстой-Юрт", "Старые Атаги" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87164)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Чеченская Республика",
+ city: "Итум-Кале",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(872)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8722)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Махачкала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87230)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Сергокала",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87231)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Хасавюрт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87232)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Карабудахкент",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87233)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Хунзах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87234)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Кизилюрт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87235)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Магарамкент",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87236)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Касумкент",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87237)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Буйнакск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87238)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Маджалис",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87239)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Кизляр",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87240)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Дербент",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87242)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Новолакское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87243)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: [ "Тпиг", "Агул" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87244)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Хив",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87245)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Избербаш",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87246)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Каспийск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87247)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Бабаюрт",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87248)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Новокаякент",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87249)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Хучни",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87252)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Леваши",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87254)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Уркарах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87255)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Гергебиль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87256)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Терекли-Мектеб",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87257)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Унцукуль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87258)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Гуниб",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87259)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Хебда",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87260)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Акуша",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87261)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Тарумовка",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87262)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Курах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87263)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Ахты",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87264)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Рутул",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87265)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Тлярата",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87266)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Цуриб",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87267)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Кумух",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87268)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Вачи",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87271)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Ботлих",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87272)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Мехельта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87273)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Агвали",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87274)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Бежта",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87275)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Дагестанские Огни",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87276)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Южно-Сухокумск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87279)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Дагестан",
+ city: "Дылым",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(873)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8732)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Назрань",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87341)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Орджоникидзевская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87342)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Малгобек",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87343)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Джейрах",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87344)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Карабулак",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87345)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Ингушетия",
+ city: "Магас",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(877)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8772)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Майкоп",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87770)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Кошехабль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87771)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Тахтамукай",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87772)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Адыгейск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87773)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Хакуринохабль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87777)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Тульский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87778)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Красногвардейское",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87779)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Адыгея",
+ city: "Гиагинская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(878)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8782)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Черкесск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87870)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Адыге-Хабль",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87872)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: [ "Теберда", "Домбай" ],
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87873)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Хабез",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87874)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Кавказский",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87875)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Усть-Джегута",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87876)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Преградная",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87877)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Учкекен",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87878)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Зеленчукская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87879)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Республика Карачаево-Черкесия",
+ city: "Карачаевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(879)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87922)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Минеральные Воды",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(8793)##-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Пятигорск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87932)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Железноводск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87934)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Ессентуки",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87935)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Лермонтов",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87937)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Кисловодск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87938)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Новопавловск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87951)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Георгиевск",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87961)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Ессентукская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(87964)#-##-##",
+ cc: "RU",
+ cd: "Russia",
+ region: "Ставропольский край",
+ city: "Курская",
+ operator: "",
+ desc: ""
+ }, {
+ mask: "+7(9##)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ type: "mobile"
+ } ]
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-uk.js b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-uk.js
new file mode 100644
index 0000000..12fdfd4
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone-uk.js
@@ -0,0 +1,1009 @@
+/*!
+* phone-codes/phone-uk.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("../inputmask")) : factory(window.Inputmask);
+}(function(Inputmask) {
+ return Inputmask.extendAliases({
+ phoneuk: {
+ alias: "abstractphone",
+ countrycode: "44",
+ phoneCodes: [ {
+ mask: "+44(113)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Leeds"
+ }, {
+ mask: "+44(114)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Sheffield"
+ }, {
+ mask: "+44(115)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Nottingham"
+ }, {
+ mask: "+44(116)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Leicester"
+ }, {
+ mask: "+44(117)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bristol"
+ }, {
+ mask: "+44(118)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Reading"
+ }, {
+ mask: "+44(1200)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Clitheroe"
+ }, {
+ mask: "+44(1202)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bournemouth"
+ }, {
+ mask: "+44(1204)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bolton"
+ }, {
+ mask: "+44(1205)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Boston"
+ }, {
+ mask: "+44(1206)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Colchester"
+ }, {
+ mask: "+44(1207)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Consett"
+ }, {
+ mask: "+44(1208)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bodmin"
+ }, {
+ mask: "+44(1209)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Redruth"
+ }, {
+ mask: "+44(121)-###-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Birmingham"
+ }, {
+ mask: "+44(1223)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cambridge"
+ }, {
+ mask: "+44(1224)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Aberdeen"
+ }, {
+ mask: "+44(1225)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bath"
+ }, {
+ mask: "+44(1226)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Barnsley"
+ }, {
+ mask: "+44(1227)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Canterbury"
+ }, {
+ mask: "+44(1228)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Carlisle"
+ }, {
+ mask: "+44(1229)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Barrow-in-Furness(2,4,5,6,8), Millom(3,7,9)"
+ }, {
+ mask: "+44(1233)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ashford (Kent)"
+ }, {
+ mask: "+44(1234)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bedford"
+ }, {
+ mask: "+44(1235)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Abingdon"
+ }, {
+ mask: "+44(1236)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Coatbridge"
+ }, {
+ mask: "+44(1237)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bideford"
+ }, {
+ mask: "+44(1239)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cardigan"
+ }, {
+ mask: "+44(1241)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Arbroath"
+ }, {
+ mask: "+44(1242)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cheltenham"
+ }, {
+ mask: "+44(1243)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chichester"
+ }, {
+ mask: "+44(1244)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chester"
+ }, {
+ mask: "+44(1245)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chelmsford"
+ }, {
+ mask: "+44(1246)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chesterfield"
+ }, {
+ mask: "+44(1248)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bangor (Gwynedd)"
+ }, {
+ mask: "+44(1249)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chippenham"
+ }, {
+ mask: "+44(1250)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Blairgowrie"
+ }, {
+ mask: "+44(1252)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Aldershot"
+ }, {
+ mask: "+44(1253)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Blackpool"
+ }, {
+ mask: "+44(1254)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Blackburn"
+ }, {
+ mask: "+44(1255)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Clacton-on-Sea"
+ }, {
+ mask: "+44(1256)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Basingstoke"
+ }, {
+ mask: "+44(1257)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Coppull"
+ }, {
+ mask: "+44(1258)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Blandford"
+ }, {
+ mask: "+44(1259)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Alloa"
+ }, {
+ mask: "+44(1260)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Congleton"
+ }, {
+ mask: "+44(1261)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Banff"
+ }, {
+ mask: "+44(1262)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bridlington"
+ }, {
+ mask: "+44(1263)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cromer"
+ }, {
+ mask: "+44(1264)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Andover"
+ }, {
+ mask: "+44(1267)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Carmarthen"
+ }, {
+ mask: "+44(1268)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Basildon"
+ }, {
+ mask: "+44(1269)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ammanford"
+ }, {
+ mask: "+44(1270)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Crewe"
+ }, {
+ mask: "+44(1271)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Barnstaple"
+ }, {
+ mask: "+44(1273)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Brighton"
+ }, {
+ mask: "+44(1274)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bradford"
+ }, {
+ mask: "+44(1275)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Clevedon"
+ }, {
+ mask: "+44(1276)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Camberley"
+ }, {
+ mask: "+44(1277)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Brentwood"
+ }, {
+ mask: "+44(1278)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bridgwater"
+ }, {
+ mask: "+44(1279)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bishops Stortford"
+ }, {
+ mask: "+44(1280)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Buckingham"
+ }, {
+ mask: "+44(1282)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Burnley"
+ }, {
+ mask: "+44(1283)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Burton-on-Trent"
+ }, {
+ mask: "+44(1284)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bury St Edmunds"
+ }, {
+ mask: "+44(1285)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cirencester"
+ }, {
+ mask: "+44(1286)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Caernarfon"
+ }, {
+ mask: "+44(1287)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Guisborough"
+ }, {
+ mask: "+44(1288)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bude"
+ }, {
+ mask: "+44(1289)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Berwick-upon-Tweed"
+ }, {
+ mask: "+44(1290)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cumnock"
+ }, {
+ mask: "+44(1291)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chepstow"
+ }, {
+ mask: "+44(1292)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ayr"
+ }, {
+ mask: "+44(1293)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Crawley"
+ }, {
+ mask: "+44(1294)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ardrossan"
+ }, {
+ mask: "+44(1295)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Banbury"
+ }, {
+ mask: "+44(1296)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Aylesbury"
+ }, {
+ mask: "+44(1297)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Axminster"
+ }, {
+ mask: "+44(1298)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Buxton"
+ }, {
+ mask: "+44(1299)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bewdley"
+ }, {
+ mask: "+44(1300)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Cerne Abbas"
+ }, {
+ mask: "+44(1301)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Arrochar"
+ }, {
+ mask: "+44(1302)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Doncaster"
+ }, {
+ mask: "+44(1303)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Folkestone"
+ }, {
+ mask: "+44(1304)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dover"
+ }, {
+ mask: "+44(1305)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dorchester"
+ }, {
+ mask: "+44(1306)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dorking"
+ }, {
+ mask: "+44(1307)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Forfar"
+ }, {
+ mask: "+44(1308)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bridport"
+ }, {
+ mask: "+44(1309)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Forres"
+ }, {
+ mask: "+44(131)-###-###",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Edinburgh"
+ }, {
+ mask: "+44(1320)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fort Augustus"
+ }, {
+ mask: "+44(1322)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dartford"
+ }, {
+ mask: "+44(1323)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Eastbourne"
+ }, {
+ mask: "+44(1324)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Falkirk"
+ }, {
+ mask: "+44(1325)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Darlington"
+ }, {
+ mask: "+44(1326)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Falmouth"
+ }, {
+ mask: "+44(1327)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Daventry"
+ }, {
+ mask: "+44(1328)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fakenham"
+ }, {
+ mask: "+44(1329)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fareham"
+ }, {
+ mask: "+44(1330)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Banchory"
+ }, {
+ mask: "+44(1332)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Derby"
+ }, {
+ mask: "+44(1333)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Peat Inn"
+ }, {
+ mask: "+44(1334)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "St Andrews"
+ }, {
+ mask: "+44(1335)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ashbourne"
+ }, {
+ mask: "+44(1337)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ladybank"
+ }, {
+ mask: "+44(1339)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Aboyne(2,3,5,8), Ballater(4,6,7,9)"
+ }, {
+ mask: "+44(1340)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Craigellachie"
+ }, {
+ mask: "+44(1341)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Barmouth"
+ }, {
+ mask: "+44(1342)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "East Grinstead"
+ }, {
+ mask: "+44(1343)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Elgin"
+ }, {
+ mask: "+44(1344)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bracknell"
+ }, {
+ mask: "+44(1346)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fraserburgh"
+ }, {
+ mask: "+44(1347)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Easingwold"
+ }, {
+ mask: "+44(1348)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fishguard"
+ }, {
+ mask: "+44(1349)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dingwall"
+ }, {
+ mask: "+44(1350)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dunkeld"
+ }, {
+ mask: "+44(1352)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Mold"
+ }, {
+ mask: "+44(1353)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ely"
+ }, {
+ mask: "+44(1354)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chatteris"
+ }, {
+ mask: "+44(1355)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "East Kilbride"
+ }, {
+ mask: "+44(1356)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Brechin"
+ }, {
+ mask: "+44(1357)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Strathaven"
+ }, {
+ mask: "+44(1358)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ellon"
+ }, {
+ mask: "+44(1359)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Pakenham"
+ }, {
+ mask: "+44(1360)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Killearn"
+ }, {
+ mask: "+44(1361)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Duns"
+ }, {
+ mask: "+44(1362)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dereham"
+ }, {
+ mask: "+44(1363)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Crediton"
+ }, {
+ mask: "+44(1364)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ashburton"
+ }, {
+ mask: "+44(1366)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Downham Market"
+ }, {
+ mask: "+44(1367)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Faringdon"
+ }, {
+ mask: "+44(1368)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dunbar"
+ }, {
+ mask: "+44(1369)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dunoon"
+ }, {
+ mask: "+44(1371)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Great Dunmow"
+ }, {
+ mask: "+44(1372)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Esher"
+ }, {
+ mask: "+44(1373)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Frome"
+ }, {
+ mask: "+44(1375)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Grays Thurrock"
+ }, {
+ mask: "+44(1376)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Braintree"
+ }, {
+ mask: "+44(1377)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Driffield"
+ }, {
+ mask: "+44(1379)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Diss"
+ }, {
+ mask: "+44(1380)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Devizes"
+ }, {
+ mask: "+44(1381)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fortrose"
+ }, {
+ mask: "+44(1382)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dundee"
+ }, {
+ mask: "+44(1383)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dunfermline"
+ }, {
+ mask: "+44(1384)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dudley"
+ }, {
+ mask: "+44(1386)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Evesham"
+ }, {
+ mask: "+44(1387)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dumfries"
+ }, {
+ mask: "+44(13873)-####[#]",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Langholm"
+ }, {
+ mask: "+44(1388)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bishop Auckland(3,4,6,7,8,9), Stanhope(2,5)"
+ }, {
+ mask: "+44(1389)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dumbarton"
+ }, {
+ mask: "+44(1392)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Exeter"
+ }, {
+ mask: "+44(1394)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Felixstowe"
+ }, {
+ mask: "+44(1395)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Budleigh Salterton"
+ }, {
+ mask: "+44(1397)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Fort William"
+ }, {
+ mask: "+44(1398)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dulverton"
+ }, {
+ mask: "+44(1400)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Honington"
+ }, {
+ mask: "+44(1403)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Horsham"
+ }, {
+ mask: "+44(1404)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Honiton"
+ }, {
+ mask: "+44(1405)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Goole"
+ }, {
+ mask: "+44(1406)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Holbeach"
+ }, {
+ mask: "+44(1407)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Holyhead"
+ }, {
+ mask: "+44(1408)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Golspie"
+ }, {
+ mask: "+44(1409)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Holsworthy"
+ }, {
+ mask: "+44(141)-###-###",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Glasgow"
+ }, {
+ mask: "+44(1420)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Alton"
+ }, {
+ mask: "+44(1422)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Halifax"
+ }, {
+ mask: "+44(1423)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Boroughbridge(3,4,9), Harrogate(2,5,6,7,8)"
+ }, {
+ mask: "+44(1424)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hastings"
+ }, {
+ mask: "+44(1425)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Ringwood"
+ }, {
+ mask: "+44(1427)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Gainsborough"
+ }, {
+ mask: "+44(1428)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Haslemere"
+ }, {
+ mask: "+44(1429)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hartlepool"
+ }, {
+ mask: "+44(1430)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Market Weighton(6,7,8,9), North Cave(2,3,4,5)"
+ }, {
+ mask: "+44(1431)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Helmsdale"
+ }, {
+ mask: "+44(1432)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hereford"
+ }, {
+ mask: "+44(1433)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hathersage"
+ }, {
+ mask: "+44(1434)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Bellingham(2,4,9), Haltwhistle(3,5), Hexham(6,7,8)"
+ }, {
+ mask: "+44(1435)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Heathfield"
+ }, {
+ mask: "+44(1436)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Helensburgh"
+ }, {
+ mask: "+44(1437)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Clynderwen(2,3,4,5), Haverfordwest(6,7,8,9)"
+ }, {
+ mask: "+44(1438)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Stevenage"
+ }, {
+ mask: "+44(1439)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Helmsley"
+ }, {
+ mask: "+44(1440)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Haverhill"
+ }, {
+ mask: "+44(1442)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hemel Hempstead"
+ }, {
+ mask: "+44(1443)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Pontypridd"
+ }, {
+ mask: "+44(1444)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Haywards Heath"
+ }, {
+ mask: "+44(1445)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Gairloch"
+ }, {
+ mask: "+44(1446)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Barry"
+ }, {
+ mask: "+44(1449)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Stowmarket"
+ }, {
+ mask: "+44(1450)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hawick"
+ }, {
+ mask: "+44(1451)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Stow-on-the-Wold"
+ }, {
+ mask: "+44(1452)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Gloucester"
+ }, {
+ mask: "+44(1453)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Dursley"
+ }, {
+ mask: "+44(1454)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Chipping Sodbury"
+ }, {
+ mask: "+44(1455)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Hinckley"
+ }, {
+ mask: "+44(1456)-######",
+ cc: "UK",
+ cd: "United Kingdom",
+ city: "Glenurquhart"
+ } ]
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/inputmask/phone-codes/phone.js b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone.js
new file mode 100644
index 0000000..2b11e5c
--- /dev/null
+++ b/public/bower_components/inputmask/dist/inputmask/phone-codes/phone.js
@@ -0,0 +1,2111 @@
+/*!
+* phone-codes/phone.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(factory) {
+ "function" == typeof define && define.amd ? define([ "../inputmask" ], factory) : "object" == typeof exports ? module.exports = factory(require("../inputmask")) : factory(window.Inputmask);
+}(function(Inputmask) {
+ return Inputmask.extendAliases({
+ phone: {
+ alias: "abstractphone",
+ phoneCodes: [ {
+ mask: "+247-####",
+ cc: "AC",
+ cd: "Ascension",
+ desc_en: "",
+ name_ru: "Остров Вознесения",
+ desc_ru: ""
+ }, {
+ mask: "+376-###-###",
+ cc: "AD",
+ cd: "Andorra",
+ desc_en: "",
+ name_ru: "Андорра",
+ desc_ru: ""
+ }, {
+ mask: "+971-5#-###-####",
+ cc: "AE",
+ cd: "United Arab Emirates",
+ desc_en: "mobile",
+ name_ru: "Объединенные Арабские Эмираты",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+971-#-###-####",
+ cc: "AE",
+ cd: "United Arab Emirates",
+ desc_en: "",
+ name_ru: "Объединенные Арабские Эмираты",
+ desc_ru: ""
+ }, {
+ mask: "+93-##-###-####",
+ cc: "AF",
+ cd: "Afghanistan",
+ desc_en: "",
+ name_ru: "Афганистан",
+ desc_ru: ""
+ }, {
+ mask: "+1(268)###-####",
+ cc: "AG",
+ cd: "Antigua & Barbuda",
+ desc_en: "",
+ name_ru: "Антигуа и Барбуда",
+ desc_ru: ""
+ }, {
+ mask: "+1(264)###-####",
+ cc: "AI",
+ cd: "Anguilla",
+ desc_en: "",
+ name_ru: "Ангилья",
+ desc_ru: ""
+ }, {
+ mask: "+355(###)###-###",
+ cc: "AL",
+ cd: "Albania",
+ desc_en: "",
+ name_ru: "Албания",
+ desc_ru: ""
+ }, {
+ mask: "+374-##-###-###",
+ cc: "AM",
+ cd: "Armenia",
+ desc_en: "",
+ name_ru: "Армения",
+ desc_ru: ""
+ }, {
+ mask: "+599-###-####",
+ cc: "AN",
+ cd: "Caribbean Netherlands",
+ desc_en: "",
+ name_ru: "Карибские Нидерланды",
+ desc_ru: ""
+ }, {
+ mask: "+599-###-####",
+ cc: "AN",
+ cd: "Netherlands Antilles",
+ desc_en: "",
+ name_ru: "Нидерландские Антильские острова",
+ desc_ru: ""
+ }, {
+ mask: "+599-9###-####",
+ cc: "AN",
+ cd: "Netherlands Antilles",
+ desc_en: "Curacao",
+ name_ru: "Нидерландские Антильские острова",
+ desc_ru: "Кюрасао"
+ }, {
+ mask: "+244(###)###-###",
+ cc: "AO",
+ cd: "Angola",
+ desc_en: "",
+ name_ru: "Ангола",
+ desc_ru: ""
+ }, {
+ mask: "+672-1##-###",
+ cc: "AQ",
+ cd: "Australian bases in Antarctica",
+ desc_en: "",
+ name_ru: "Австралийская антарктическая база",
+ desc_ru: ""
+ }, {
+ mask: "+54(###)###-####",
+ cc: "AR",
+ cd: "Argentina",
+ desc_en: "",
+ name_ru: "Аргентина",
+ desc_ru: ""
+ }, {
+ mask: "+1(684)###-####",
+ cc: "AS",
+ cd: "American Samoa",
+ desc_en: "",
+ name_ru: "Американское Самоа",
+ desc_ru: ""
+ }, {
+ mask: "+43(###)###-####",
+ cc: "AT",
+ cd: "Austria",
+ desc_en: "",
+ name_ru: "Австрия",
+ desc_ru: ""
+ }, {
+ mask: "+61-#-####-####",
+ cc: "AU",
+ cd: "Australia",
+ desc_en: "",
+ name_ru: "Австралия",
+ desc_ru: ""
+ }, {
+ mask: "+297-###-####",
+ cc: "AW",
+ cd: "Aruba",
+ desc_en: "",
+ name_ru: "Аруба",
+ desc_ru: ""
+ }, {
+ mask: "+994-##-###-##-##",
+ cc: "AZ",
+ cd: "Azerbaijan",
+ desc_en: "",
+ name_ru: "Азербайджан",
+ desc_ru: ""
+ }, {
+ mask: "+387-##-#####",
+ cc: "BA",
+ cd: "Bosnia and Herzegovina",
+ desc_en: "",
+ name_ru: "Босния и Герцеговина",
+ desc_ru: ""
+ }, {
+ mask: "+387-##-####",
+ cc: "BA",
+ cd: "Bosnia and Herzegovina",
+ desc_en: "",
+ name_ru: "Босния и Герцеговина",
+ desc_ru: ""
+ }, {
+ mask: "+1(246)###-####",
+ cc: "BB",
+ cd: "Barbados",
+ desc_en: "",
+ name_ru: "Барбадос",
+ desc_ru: ""
+ }, {
+ mask: "+880-##-###-###",
+ cc: "BD",
+ cd: "Bangladesh",
+ desc_en: "",
+ name_ru: "Бангладеш",
+ desc_ru: ""
+ }, {
+ mask: "+32(###)###-###",
+ cc: "BE",
+ cd: "Belgium",
+ desc_en: "",
+ name_ru: "Бельгия",
+ desc_ru: ""
+ }, {
+ mask: "+226-##-##-####",
+ cc: "BF",
+ cd: "Burkina Faso",
+ desc_en: "",
+ name_ru: "Буркина Фасо",
+ desc_ru: ""
+ }, {
+ mask: "+359(###)###-###",
+ cc: "BG",
+ cd: "Bulgaria",
+ desc_en: "",
+ name_ru: "Болгария",
+ desc_ru: ""
+ }, {
+ mask: "+973-####-####",
+ cc: "BH",
+ cd: "Bahrain",
+ desc_en: "",
+ name_ru: "Бахрейн",
+ desc_ru: ""
+ }, {
+ mask: "+257-##-##-####",
+ cc: "BI",
+ cd: "Burundi",
+ desc_en: "",
+ name_ru: "Бурунди",
+ desc_ru: ""
+ }, {
+ mask: "+229-##-##-####",
+ cc: "BJ",
+ cd: "Benin",
+ desc_en: "",
+ name_ru: "Бенин",
+ desc_ru: ""
+ }, {
+ mask: "+1(441)###-####",
+ cc: "BM",
+ cd: "Bermuda",
+ desc_en: "",
+ name_ru: "Бермудские острова",
+ desc_ru: ""
+ }, {
+ mask: "+673-###-####",
+ cc: "BN",
+ cd: "Brunei Darussalam",
+ desc_en: "",
+ name_ru: "Бруней-Даруссалам",
+ desc_ru: ""
+ }, {
+ mask: "+591-#-###-####",
+ cc: "BO",
+ cd: "Bolivia",
+ desc_en: "",
+ name_ru: "Боливия",
+ desc_ru: ""
+ }, {
+ mask: "+55-##-####-####",
+ cc: "BR",
+ cd: "Brazil",
+ desc_en: "",
+ name_ru: "Бразилия",
+ desc_ru: ""
+ }, {
+ mask: "+55-##-#####-####",
+ cc: "BR",
+ cd: "Brazil",
+ desc_en: "",
+ name_ru: "Бразилия",
+ desc_ru: ""
+ }, {
+ mask: "+1(242)###-####",
+ cc: "BS",
+ cd: "Bahamas",
+ desc_en: "",
+ name_ru: "Багамские Острова",
+ desc_ru: ""
+ }, {
+ mask: "+975-17-###-###",
+ cc: "BT",
+ cd: "Bhutan",
+ desc_en: "",
+ name_ru: "Бутан",
+ desc_ru: ""
+ }, {
+ mask: "+975-#-###-###",
+ cc: "BT",
+ cd: "Bhutan",
+ desc_en: "",
+ name_ru: "Бутан",
+ desc_ru: ""
+ }, {
+ mask: "+267-##-###-###",
+ cc: "BW",
+ cd: "Botswana",
+ desc_en: "",
+ name_ru: "Ботсвана",
+ desc_ru: ""
+ }, {
+ mask: "+375(##)###-##-##",
+ cc: "BY",
+ cd: "Belarus",
+ desc_en: "",
+ name_ru: "Беларусь (Белоруссия)",
+ desc_ru: ""
+ }, {
+ mask: "+501-###-####",
+ cc: "BZ",
+ cd: "Belize",
+ desc_en: "",
+ name_ru: "Белиз",
+ desc_ru: ""
+ }, {
+ mask: "+243(###)###-###",
+ cc: "CD",
+ cd: "Dem. Rep. Congo",
+ desc_en: "",
+ name_ru: "Дем. Респ. Конго (Киншаса)",
+ desc_ru: ""
+ }, {
+ mask: "+236-##-##-####",
+ cc: "CF",
+ cd: "Central African Republic",
+ desc_en: "",
+ name_ru: "Центральноафриканская Республика",
+ desc_ru: ""
+ }, {
+ mask: "+242-##-###-####",
+ cc: "CG",
+ cd: "Congo (Brazzaville)",
+ desc_en: "",
+ name_ru: "Конго (Браззавиль)",
+ desc_ru: ""
+ }, {
+ mask: "+41-##-###-####",
+ cc: "CH",
+ cd: "Switzerland",
+ desc_en: "",
+ name_ru: "Швейцария",
+ desc_ru: ""
+ }, {
+ mask: "+225-##-###-###",
+ cc: "CI",
+ cd: "Cote d’Ivoire (Ivory Coast)",
+ desc_en: "",
+ name_ru: "Кот-д’Ивуар",
+ desc_ru: ""
+ }, {
+ mask: "+682-##-###",
+ cc: "CK",
+ cd: "Cook Islands",
+ desc_en: "",
+ name_ru: "Острова Кука",
+ desc_ru: ""
+ }, {
+ mask: "+56-#-####-####",
+ cc: "CL",
+ cd: "Chile",
+ desc_en: "",
+ name_ru: "Чили",
+ desc_ru: ""
+ }, {
+ mask: "+237-####-####",
+ cc: "CM",
+ cd: "Cameroon",
+ desc_en: "",
+ name_ru: "Камерун",
+ desc_ru: ""
+ }, {
+ mask: "+86(###)####-####",
+ cc: "CN",
+ cd: "China (PRC)",
+ desc_en: "",
+ name_ru: "Китайская Н.Р.",
+ desc_ru: ""
+ }, {
+ mask: "+86(###)####-###",
+ cc: "CN",
+ cd: "China (PRC)",
+ desc_en: "",
+ name_ru: "Китайская Н.Р.",
+ desc_ru: ""
+ }, {
+ mask: "+86-##-#####-#####",
+ cc: "CN",
+ cd: "China (PRC)",
+ desc_en: "",
+ name_ru: "Китайская Н.Р.",
+ desc_ru: ""
+ }, {
+ mask: "+57(###)###-####",
+ cc: "CO",
+ cd: "Colombia",
+ desc_en: "",
+ name_ru: "Колумбия",
+ desc_ru: ""
+ }, {
+ mask: "+506-####-####",
+ cc: "CR",
+ cd: "Costa Rica",
+ desc_en: "",
+ name_ru: "Коста-Рика",
+ desc_ru: ""
+ }, {
+ mask: "+53-#-###-####",
+ cc: "CU",
+ cd: "Cuba",
+ desc_en: "",
+ name_ru: "Куба",
+ desc_ru: ""
+ }, {
+ mask: "+238(###)##-##",
+ cc: "CV",
+ cd: "Cape Verde",
+ desc_en: "",
+ name_ru: "Кабо-Верде",
+ desc_ru: ""
+ }, {
+ mask: "+599-###-####",
+ cc: "CW",
+ cd: "Curacao",
+ desc_en: "",
+ name_ru: "Кюрасао",
+ desc_ru: ""
+ }, {
+ mask: "+357-##-###-###",
+ cc: "CY",
+ cd: "Cyprus",
+ desc_en: "",
+ name_ru: "Кипр",
+ desc_ru: ""
+ }, {
+ mask: "+420(###)###-###",
+ cc: "CZ",
+ cd: "Czech Republic",
+ desc_en: "",
+ name_ru: "Чехия",
+ desc_ru: ""
+ }, {
+ mask: "+49(####)###-####",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+49(###)###-####",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+49(###)##-####",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+49(###)##-###",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+49(###)##-##",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+49-###-###",
+ cc: "DE",
+ cd: "Germany",
+ desc_en: "",
+ name_ru: "Германия",
+ desc_ru: ""
+ }, {
+ mask: "+253-##-##-##-##",
+ cc: "DJ",
+ cd: "Djibouti",
+ desc_en: "",
+ name_ru: "Джибути",
+ desc_ru: ""
+ }, {
+ mask: "+45-##-##-##-##",
+ cc: "DK",
+ cd: "Denmark",
+ desc_en: "",
+ name_ru: "Дания",
+ desc_ru: ""
+ }, {
+ mask: "+1(767)###-####",
+ cc: "DM",
+ cd: "Dominica",
+ desc_en: "",
+ name_ru: "Доминика",
+ desc_ru: ""
+ }, {
+ mask: "+1(809)###-####",
+ cc: "DO",
+ cd: "Dominican Republic",
+ desc_en: "",
+ name_ru: "Доминиканская Республика",
+ desc_ru: ""
+ }, {
+ mask: "+1(829)###-####",
+ cc: "DO",
+ cd: "Dominican Republic",
+ desc_en: "",
+ name_ru: "Доминиканская Республика",
+ desc_ru: ""
+ }, {
+ mask: "+1(849)###-####",
+ cc: "DO",
+ cd: "Dominican Republic",
+ desc_en: "",
+ name_ru: "Доминиканская Республика",
+ desc_ru: ""
+ }, {
+ mask: "+213-##-###-####",
+ cc: "DZ",
+ cd: "Algeria",
+ desc_en: "",
+ name_ru: "Алжир",
+ desc_ru: ""
+ }, {
+ mask: "+593-##-###-####",
+ cc: "EC",
+ cd: "Ecuador ",
+ desc_en: "mobile",
+ name_ru: "Эквадор ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+593-#-###-####",
+ cc: "EC",
+ cd: "Ecuador",
+ desc_en: "",
+ name_ru: "Эквадор",
+ desc_ru: ""
+ }, {
+ mask: "+372-####-####",
+ cc: "EE",
+ cd: "Estonia ",
+ desc_en: "mobile",
+ name_ru: "Эстония ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+372-###-####",
+ cc: "EE",
+ cd: "Estonia",
+ desc_en: "",
+ name_ru: "Эстония",
+ desc_ru: ""
+ }, {
+ mask: "+20(###)###-####",
+ cc: "EG",
+ cd: "Egypt",
+ desc_en: "",
+ name_ru: "Египет",
+ desc_ru: ""
+ }, {
+ mask: "+291-#-###-###",
+ cc: "ER",
+ cd: "Eritrea",
+ desc_en: "",
+ name_ru: "Эритрея",
+ desc_ru: ""
+ }, {
+ mask: "+34(###)###-###",
+ cc: "ES",
+ cd: "Spain",
+ desc_en: "",
+ name_ru: "Испания",
+ desc_ru: ""
+ }, {
+ mask: "+251-##-###-####",
+ cc: "ET",
+ cd: "Ethiopia",
+ desc_en: "",
+ name_ru: "Эфиопия",
+ desc_ru: ""
+ }, {
+ mask: "+358(###)###-##-##",
+ cc: "FI",
+ cd: "Finland",
+ desc_en: "",
+ name_ru: "Финляндия",
+ desc_ru: ""
+ }, {
+ mask: "+679-##-#####",
+ cc: "FJ",
+ cd: "Fiji",
+ desc_en: "",
+ name_ru: "Фиджи",
+ desc_ru: ""
+ }, {
+ mask: "+500-#####",
+ cc: "FK",
+ cd: "Falkland Islands",
+ desc_en: "",
+ name_ru: "Фолклендские острова",
+ desc_ru: ""
+ }, {
+ mask: "+691-###-####",
+ cc: "FM",
+ cd: "F.S. Micronesia",
+ desc_en: "",
+ name_ru: "Ф.Ш. Микронезии",
+ desc_ru: ""
+ }, {
+ mask: "+298-###-###",
+ cc: "FO",
+ cd: "Faroe Islands",
+ desc_en: "",
+ name_ru: "Фарерские острова",
+ desc_ru: ""
+ }, {
+ mask: "+262-#####-####",
+ cc: "FR",
+ cd: "Mayotte",
+ desc_en: "",
+ name_ru: "Майотта",
+ desc_ru: ""
+ }, {
+ mask: "+33(###)###-###",
+ cc: "FR",
+ cd: "France",
+ desc_en: "",
+ name_ru: "Франция",
+ desc_ru: ""
+ }, {
+ mask: "+508-##-####",
+ cc: "FR",
+ cd: "St Pierre & Miquelon",
+ desc_en: "",
+ name_ru: "Сен-Пьер и Микелон",
+ desc_ru: ""
+ }, {
+ mask: "+590(###)###-###",
+ cc: "FR",
+ cd: "Guadeloupe",
+ desc_en: "",
+ name_ru: "Гваделупа",
+ desc_ru: ""
+ }, {
+ mask: "+241-#-##-##-##",
+ cc: "GA",
+ cd: "Gabon",
+ desc_en: "",
+ name_ru: "Габон",
+ desc_ru: ""
+ }, {
+ mask: "+1(473)###-####",
+ cc: "GD",
+ cd: "Grenada",
+ desc_en: "",
+ name_ru: "Гренада",
+ desc_ru: ""
+ }, {
+ mask: "+995(###)###-###",
+ cc: "GE",
+ cd: "Rep. of Georgia",
+ desc_en: "",
+ name_ru: "Грузия",
+ desc_ru: ""
+ }, {
+ mask: "+594-#####-####",
+ cc: "GF",
+ cd: "Guiana (French)",
+ desc_en: "",
+ name_ru: "Фр. Гвиана",
+ desc_ru: ""
+ }, {
+ mask: "+233(###)###-###",
+ cc: "GH",
+ cd: "Ghana",
+ desc_en: "",
+ name_ru: "Гана",
+ desc_ru: ""
+ }, {
+ mask: "+350-###-#####",
+ cc: "GI",
+ cd: "Gibraltar",
+ desc_en: "",
+ name_ru: "Гибралтар",
+ desc_ru: ""
+ }, {
+ mask: "+299-##-##-##",
+ cc: "GL",
+ cd: "Greenland",
+ desc_en: "",
+ name_ru: "Гренландия",
+ desc_ru: ""
+ }, {
+ mask: "+220(###)##-##",
+ cc: "GM",
+ cd: "Gambia",
+ desc_en: "",
+ name_ru: "Гамбия",
+ desc_ru: ""
+ }, {
+ mask: "+224-##-###-###",
+ cc: "GN",
+ cd: "Guinea",
+ desc_en: "",
+ name_ru: "Гвинея",
+ desc_ru: ""
+ }, {
+ mask: "+240-##-###-####",
+ cc: "GQ",
+ cd: "Equatorial Guinea",
+ desc_en: "",
+ name_ru: "Экваториальная Гвинея",
+ desc_ru: ""
+ }, {
+ mask: "+30(###)###-####",
+ cc: "GR",
+ cd: "Greece",
+ desc_en: "",
+ name_ru: "Греция",
+ desc_ru: ""
+ }, {
+ mask: "+502-#-###-####",
+ cc: "GT",
+ cd: "Guatemala",
+ desc_en: "",
+ name_ru: "Гватемала",
+ desc_ru: ""
+ }, {
+ mask: "+1(671)###-####",
+ cc: "GU",
+ cd: "Guam",
+ desc_en: "",
+ name_ru: "Гуам",
+ desc_ru: ""
+ }, {
+ mask: "+245-#-######",
+ cc: "GW",
+ cd: "Guinea-Bissau",
+ desc_en: "",
+ name_ru: "Гвинея-Бисау",
+ desc_ru: ""
+ }, {
+ mask: "+592-###-####",
+ cc: "GY",
+ cd: "Guyana",
+ desc_en: "",
+ name_ru: "Гайана",
+ desc_ru: ""
+ }, {
+ mask: "+852-####-####",
+ cc: "HK",
+ cd: "Hong Kong",
+ desc_en: "",
+ name_ru: "Гонконг",
+ desc_ru: ""
+ }, {
+ mask: "+504-####-####",
+ cc: "HN",
+ cd: "Honduras",
+ desc_en: "",
+ name_ru: "Гондурас",
+ desc_ru: ""
+ }, {
+ mask: "+385-(##)-###-###",
+ cc: "HR",
+ cd: "Croatia",
+ desc_en: "",
+ name_ru: "Хорватия",
+ desc_ru: ""
+ }, {
+ mask: "+385-(##)-###-####",
+ cc: "HR",
+ cd: "Croatia",
+ desc_en: "",
+ name_ru: "Хорватия",
+ desc_ru: ""
+ }, {
+ mask: "+385-1-####-###",
+ cc: "HR",
+ cd: "Croatia",
+ desc_en: "",
+ name_ru: "Хорватия",
+ desc_ru: ""
+ }, {
+ mask: "+509-##-##-####",
+ cc: "HT",
+ cd: "Haiti",
+ desc_en: "",
+ name_ru: "Гаити",
+ desc_ru: ""
+ }, {
+ mask: "+36(###)###-###",
+ cc: "HU",
+ cd: "Hungary",
+ desc_en: "",
+ name_ru: "Венгрия",
+ desc_ru: ""
+ }, {
+ mask: "+62(8##)###-####",
+ cc: "ID",
+ cd: "Indonesia ",
+ desc_en: "mobile",
+ name_ru: "Индонезия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+62-##-###-##",
+ cc: "ID",
+ cd: "Indonesia",
+ desc_en: "",
+ name_ru: "Индонезия",
+ desc_ru: ""
+ }, {
+ mask: "+62-##-###-###",
+ cc: "ID",
+ cd: "Indonesia",
+ desc_en: "",
+ name_ru: "Индонезия",
+ desc_ru: ""
+ }, {
+ mask: "+62-##-###-####",
+ cc: "ID",
+ cd: "Indonesia",
+ desc_en: "",
+ name_ru: "Индонезия",
+ desc_ru: ""
+ }, {
+ mask: "+62(8##)###-###",
+ cc: "ID",
+ cd: "Indonesia ",
+ desc_en: "mobile",
+ name_ru: "Индонезия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+62(8##)###-##-###",
+ cc: "ID",
+ cd: "Indonesia ",
+ desc_en: "mobile",
+ name_ru: "Индонезия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+353(###)###-###",
+ cc: "IE",
+ cd: "Ireland",
+ desc_en: "",
+ name_ru: "Ирландия",
+ desc_ru: ""
+ }, {
+ mask: "+972-5#-###-####",
+ cc: "IL",
+ cd: "Israel ",
+ desc_en: "mobile",
+ name_ru: "Израиль ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+972-#-###-####",
+ cc: "IL",
+ cd: "Israel",
+ desc_en: "",
+ name_ru: "Израиль",
+ desc_ru: ""
+ }, {
+ mask: "+91(####)###-###",
+ cc: "IN",
+ cd: "India",
+ desc_en: "",
+ name_ru: "Индия",
+ desc_ru: ""
+ }, {
+ mask: "+246-###-####",
+ cc: "IO",
+ cd: "Diego Garcia",
+ desc_en: "",
+ name_ru: "Диего-Гарсия",
+ desc_ru: ""
+ }, {
+ mask: "+964(###)###-####",
+ cc: "IQ",
+ cd: "Iraq",
+ desc_en: "",
+ name_ru: "Ирак",
+ desc_ru: ""
+ }, {
+ mask: "+98(###)###-####",
+ cc: "IR",
+ cd: "Iran",
+ desc_en: "",
+ name_ru: "Иран",
+ desc_ru: ""
+ }, {
+ mask: "+354-###-####",
+ cc: "IS",
+ cd: "Iceland",
+ desc_en: "",
+ name_ru: "Исландия",
+ desc_ru: ""
+ }, {
+ mask: "+39(###)####-###",
+ cc: "IT",
+ cd: "Italy",
+ desc_en: "",
+ name_ru: "Италия",
+ desc_ru: ""
+ }, {
+ mask: "+1(876)###-####",
+ cc: "JM",
+ cd: "Jamaica",
+ desc_en: "",
+ name_ru: "Ямайка",
+ desc_ru: ""
+ }, {
+ mask: "+962-#-####-####",
+ cc: "JO",
+ cd: "Jordan",
+ desc_en: "",
+ name_ru: "Иордания",
+ desc_ru: ""
+ }, {
+ mask: "+81-##-####-####",
+ cc: "JP",
+ cd: "Japan ",
+ desc_en: "mobile",
+ name_ru: "Япония ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+81(###)###-###",
+ cc: "JP",
+ cd: "Japan",
+ desc_en: "",
+ name_ru: "Япония",
+ desc_ru: ""
+ }, {
+ mask: "+254-###-######",
+ cc: "KE",
+ cd: "Kenya",
+ desc_en: "",
+ name_ru: "Кения",
+ desc_ru: ""
+ }, {
+ mask: "+996(###)###-###",
+ cc: "KG",
+ cd: "Kyrgyzstan",
+ desc_en: "",
+ name_ru: "Киргизия",
+ desc_ru: ""
+ }, {
+ mask: "+855-##-###-###",
+ cc: "KH",
+ cd: "Cambodia",
+ desc_en: "",
+ name_ru: "Камбоджа",
+ desc_ru: ""
+ }, {
+ mask: "+686-##-###",
+ cc: "KI",
+ cd: "Kiribati",
+ desc_en: "",
+ name_ru: "Кирибати",
+ desc_ru: ""
+ }, {
+ mask: "+269-##-#####",
+ cc: "KM",
+ cd: "Comoros",
+ desc_en: "",
+ name_ru: "Коморы",
+ desc_ru: ""
+ }, {
+ mask: "+1(869)###-####",
+ cc: "KN",
+ cd: "Saint Kitts & Nevis",
+ desc_en: "",
+ name_ru: "Сент-Китс и Невис",
+ desc_ru: ""
+ }, {
+ mask: "+850-191-###-####",
+ cc: "KP",
+ cd: "DPR Korea (North) ",
+ desc_en: "mobile",
+ name_ru: "Корейская НДР ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+850-##-###-###",
+ cc: "KP",
+ cd: "DPR Korea (North)",
+ desc_en: "",
+ name_ru: "Корейская НДР",
+ desc_ru: ""
+ }, {
+ mask: "+850-###-####-###",
+ cc: "KP",
+ cd: "DPR Korea (North)",
+ desc_en: "",
+ name_ru: "Корейская НДР",
+ desc_ru: ""
+ }, {
+ mask: "+850-###-###",
+ cc: "KP",
+ cd: "DPR Korea (North)",
+ desc_en: "",
+ name_ru: "Корейская НДР",
+ desc_ru: ""
+ }, {
+ mask: "+850-####-####",
+ cc: "KP",
+ cd: "DPR Korea (North)",
+ desc_en: "",
+ name_ru: "Корейская НДР",
+ desc_ru: ""
+ }, {
+ mask: "+850-####-#############",
+ cc: "KP",
+ cd: "DPR Korea (North)",
+ desc_en: "",
+ name_ru: "Корейская НДР",
+ desc_ru: ""
+ }, {
+ mask: "+82-##-###-####",
+ cc: "KR",
+ cd: "Korea (South)",
+ desc_en: "",
+ name_ru: "Респ. Корея",
+ desc_ru: ""
+ }, {
+ mask: "+965-####-####",
+ cc: "KW",
+ cd: "Kuwait",
+ desc_en: "",
+ name_ru: "Кувейт",
+ desc_ru: ""
+ }, {
+ mask: "+1(345)###-####",
+ cc: "KY",
+ cd: "Cayman Islands",
+ desc_en: "",
+ name_ru: "Каймановы острова",
+ desc_ru: ""
+ }, {
+ mask: "+7(6##)###-##-##",
+ cc: "KZ",
+ cd: "Kazakhstan",
+ desc_en: "",
+ name_ru: "Казахстан",
+ desc_ru: ""
+ }, {
+ mask: "+7(7##)###-##-##",
+ cc: "KZ",
+ cd: "Kazakhstan",
+ desc_en: "",
+ name_ru: "Казахстан",
+ desc_ru: ""
+ }, {
+ mask: "+856(20##)###-###",
+ cc: "LA",
+ cd: "Laos ",
+ desc_en: "mobile",
+ name_ru: "Лаос ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+856-##-###-###",
+ cc: "LA",
+ cd: "Laos",
+ desc_en: "",
+ name_ru: "Лаос",
+ desc_ru: ""
+ }, {
+ mask: "+961-##-###-###",
+ cc: "LB",
+ cd: "Lebanon ",
+ desc_en: "mobile",
+ name_ru: "Ливан ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+961-#-###-###",
+ cc: "LB",
+ cd: "Lebanon",
+ desc_en: "",
+ name_ru: "Ливан",
+ desc_ru: ""
+ }, {
+ mask: "+1(758)###-####",
+ cc: "LC",
+ cd: "Saint Lucia",
+ desc_en: "",
+ name_ru: "Сент-Люсия",
+ desc_ru: ""
+ }, {
+ mask: "+423(###)###-####",
+ cc: "LI",
+ cd: "Liechtenstein",
+ desc_en: "",
+ name_ru: "Лихтенштейн",
+ desc_ru: ""
+ }, {
+ mask: "+94-##-###-####",
+ cc: "LK",
+ cd: "Sri Lanka",
+ desc_en: "",
+ name_ru: "Шри-Ланка",
+ desc_ru: ""
+ }, {
+ mask: "+231-##-###-###",
+ cc: "LR",
+ cd: "Liberia",
+ desc_en: "",
+ name_ru: "Либерия",
+ desc_ru: ""
+ }, {
+ mask: "+266-#-###-####",
+ cc: "LS",
+ cd: "Lesotho",
+ desc_en: "",
+ name_ru: "Лесото",
+ desc_ru: ""
+ }, {
+ mask: "+370(###)##-###",
+ cc: "LT",
+ cd: "Lithuania",
+ desc_en: "",
+ name_ru: "Литва",
+ desc_ru: ""
+ }, {
+ mask: "+352-###-###",
+ cc: "LU",
+ cd: "Luxembourg",
+ desc_en: "",
+ name_ru: "Люксембург",
+ desc_ru: ""
+ }, {
+ mask: "+352-####-###",
+ cc: "LU",
+ cd: "Luxembourg",
+ desc_en: "",
+ name_ru: "Люксембург",
+ desc_ru: ""
+ }, {
+ mask: "+352-#####-###",
+ cc: "LU",
+ cd: "Luxembourg",
+ desc_en: "",
+ name_ru: "Люксембург",
+ desc_ru: ""
+ }, {
+ mask: "+352-######-###",
+ cc: "LU",
+ cd: "Luxembourg",
+ desc_en: "",
+ name_ru: "Люксембург",
+ desc_ru: ""
+ }, {
+ mask: "+371-##-###-###",
+ cc: "LV",
+ cd: "Latvia",
+ desc_en: "",
+ name_ru: "Латвия",
+ desc_ru: ""
+ }, {
+ mask: "+218-##-###-###",
+ cc: "LY",
+ cd: "Libya",
+ desc_en: "",
+ name_ru: "Ливия",
+ desc_ru: ""
+ }, {
+ mask: "+218-21-###-####",
+ cc: "LY",
+ cd: "Libya",
+ desc_en: "Tripoli",
+ name_ru: "Ливия",
+ desc_ru: "Триполи"
+ }, {
+ mask: "+212-##-####-###",
+ cc: "MA",
+ cd: "Morocco",
+ desc_en: "",
+ name_ru: "Марокко",
+ desc_ru: ""
+ }, {
+ mask: "+377(###)###-###",
+ cc: "MC",
+ cd: "Monaco",
+ desc_en: "",
+ name_ru: "Монако",
+ desc_ru: ""
+ }, {
+ mask: "+377-##-###-###",
+ cc: "MC",
+ cd: "Monaco",
+ desc_en: "",
+ name_ru: "Монако",
+ desc_ru: ""
+ }, {
+ mask: "+373-####-####",
+ cc: "MD",
+ cd: "Moldova",
+ desc_en: "",
+ name_ru: "Молдова",
+ desc_ru: ""
+ }, {
+ mask: "+382-##-###-###",
+ cc: "ME",
+ cd: "Montenegro",
+ desc_en: "",
+ name_ru: "Черногория",
+ desc_ru: ""
+ }, {
+ mask: "+261-##-##-#####",
+ cc: "MG",
+ cd: "Madagascar",
+ desc_en: "",
+ name_ru: "Мадагаскар",
+ desc_ru: ""
+ }, {
+ mask: "+692-###-####",
+ cc: "MH",
+ cd: "Marshall Islands",
+ desc_en: "",
+ name_ru: "Маршалловы Острова",
+ desc_ru: ""
+ }, {
+ mask: "+389-##-###-###",
+ cc: "MK",
+ cd: "Republic of Macedonia",
+ desc_en: "",
+ name_ru: "Респ. Македония",
+ desc_ru: ""
+ }, {
+ mask: "+223-##-##-####",
+ cc: "ML",
+ cd: "Mali",
+ desc_en: "",
+ name_ru: "Мали",
+ desc_ru: ""
+ }, {
+ mask: "+95-##-###-###",
+ cc: "MM",
+ cd: "Burma (Myanmar)",
+ desc_en: "",
+ name_ru: "Бирма (Мьянма)",
+ desc_ru: ""
+ }, {
+ mask: "+95-#-###-###",
+ cc: "MM",
+ cd: "Burma (Myanmar)",
+ desc_en: "",
+ name_ru: "Бирма (Мьянма)",
+ desc_ru: ""
+ }, {
+ mask: "+95-###-###",
+ cc: "MM",
+ cd: "Burma (Myanmar)",
+ desc_en: "",
+ name_ru: "Бирма (Мьянма)",
+ desc_ru: ""
+ }, {
+ mask: "+976-##-##-####",
+ cc: "MN",
+ cd: "Mongolia",
+ desc_en: "",
+ name_ru: "Монголия",
+ desc_ru: ""
+ }, {
+ mask: "+853-####-####",
+ cc: "MO",
+ cd: "Macau",
+ desc_en: "",
+ name_ru: "Макао",
+ desc_ru: ""
+ }, {
+ mask: "+1(670)###-####",
+ cc: "MP",
+ cd: "Northern Mariana Islands",
+ desc_en: "",
+ name_ru: "Северные Марианские острова Сайпан",
+ desc_ru: ""
+ }, {
+ mask: "+596(###)##-##-##",
+ cc: "MQ",
+ cd: "Martinique",
+ desc_en: "",
+ name_ru: "Мартиника",
+ desc_ru: ""
+ }, {
+ mask: "+222-##-##-####",
+ cc: "MR",
+ cd: "Mauritania",
+ desc_en: "",
+ name_ru: "Мавритания",
+ desc_ru: ""
+ }, {
+ mask: "+1(664)###-####",
+ cc: "MS",
+ cd: "Montserrat",
+ desc_en: "",
+ name_ru: "Монтсеррат",
+ desc_ru: ""
+ }, {
+ mask: "+356-####-####",
+ cc: "MT",
+ cd: "Malta",
+ desc_en: "",
+ name_ru: "Мальта",
+ desc_ru: ""
+ }, {
+ mask: "+230-###-####",
+ cc: "MU",
+ cd: "Mauritius",
+ desc_en: "",
+ name_ru: "Маврикий",
+ desc_ru: ""
+ }, {
+ mask: "+960-###-####",
+ cc: "MV",
+ cd: "Maldives",
+ desc_en: "",
+ name_ru: "Мальдивские острова",
+ desc_ru: ""
+ }, {
+ mask: "+265-1-###-###",
+ cc: "MW",
+ cd: "Malawi",
+ desc_en: "Telecom Ltd",
+ name_ru: "Малави",
+ desc_ru: "Telecom Ltd"
+ }, {
+ mask: "+265-#-####-####",
+ cc: "MW",
+ cd: "Malawi",
+ desc_en: "",
+ name_ru: "Малави",
+ desc_ru: ""
+ }, {
+ mask: "+52(###)###-####",
+ cc: "MX",
+ cd: "Mexico",
+ desc_en: "",
+ name_ru: "Мексика",
+ desc_ru: ""
+ }, {
+ mask: "+52-##-##-####",
+ cc: "MX",
+ cd: "Mexico",
+ desc_en: "",
+ name_ru: "Мексика",
+ desc_ru: ""
+ }, {
+ mask: "+60-##-###-####",
+ cc: "MY",
+ cd: "Malaysia ",
+ desc_en: "mobile",
+ name_ru: "Малайзия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+60-11-####-####",
+ cc: "MY",
+ cd: "Malaysia ",
+ desc_en: "mobile",
+ name_ru: "Малайзия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+60(###)###-###",
+ cc: "MY",
+ cd: "Malaysia",
+ desc_en: "",
+ name_ru: "Малайзия",
+ desc_ru: ""
+ }, {
+ mask: "+60-##-###-###",
+ cc: "MY",
+ cd: "Malaysia",
+ desc_en: "",
+ name_ru: "Малайзия",
+ desc_ru: ""
+ }, {
+ mask: "+60-#-###-###",
+ cc: "MY",
+ cd: "Malaysia",
+ desc_en: "",
+ name_ru: "Малайзия",
+ desc_ru: ""
+ }, {
+ mask: "+258-##-###-###",
+ cc: "MZ",
+ cd: "Mozambique",
+ desc_en: "",
+ name_ru: "Мозамбик",
+ desc_ru: ""
+ }, {
+ mask: "+264-##-###-####",
+ cc: "NA",
+ cd: "Namibia",
+ desc_en: "",
+ name_ru: "Намибия",
+ desc_ru: ""
+ }, {
+ mask: "+687-##-####",
+ cc: "NC",
+ cd: "New Caledonia",
+ desc_en: "",
+ name_ru: "Новая Каледония",
+ desc_ru: ""
+ }, {
+ mask: "+227-##-##-####",
+ cc: "NE",
+ cd: "Niger",
+ desc_en: "",
+ name_ru: "Нигер",
+ desc_ru: ""
+ }, {
+ mask: "+672-3##-###",
+ cc: "NF",
+ cd: "Norfolk Island",
+ desc_en: "",
+ name_ru: "Норфолк (остров)",
+ desc_ru: ""
+ }, {
+ mask: "+234(###)###-####",
+ cc: "NG",
+ cd: "Nigeria",
+ desc_en: "",
+ name_ru: "Нигерия",
+ desc_ru: ""
+ }, {
+ mask: "+234-##-###-###",
+ cc: "NG",
+ cd: "Nigeria",
+ desc_en: "",
+ name_ru: "Нигерия",
+ desc_ru: ""
+ }, {
+ mask: "+234-##-###-##",
+ cc: "NG",
+ cd: "Nigeria",
+ desc_en: "",
+ name_ru: "Нигерия",
+ desc_ru: ""
+ }, {
+ mask: "+234(###)###-####",
+ cc: "NG",
+ cd: "Nigeria ",
+ desc_en: "mobile",
+ name_ru: "Нигерия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+505-####-####",
+ cc: "NI",
+ cd: "Nicaragua",
+ desc_en: "",
+ name_ru: "Никарагуа",
+ desc_ru: ""
+ }, {
+ mask: "+31-##-###-####",
+ cc: "NL",
+ cd: "Netherlands",
+ desc_en: "",
+ name_ru: "Нидерланды",
+ desc_ru: ""
+ }, {
+ mask: "+47(###)##-###",
+ cc: "NO",
+ cd: "Norway",
+ desc_en: "",
+ name_ru: "Норвегия",
+ desc_ru: ""
+ }, {
+ mask: "+977-##-###-###",
+ cc: "NP",
+ cd: "Nepal",
+ desc_en: "",
+ name_ru: "Непал",
+ desc_ru: ""
+ }, {
+ mask: "+674-###-####",
+ cc: "NR",
+ cd: "Nauru",
+ desc_en: "",
+ name_ru: "Науру",
+ desc_ru: ""
+ }, {
+ mask: "+683-####",
+ cc: "NU",
+ cd: "Niue",
+ desc_en: "",
+ name_ru: "Ниуэ",
+ desc_ru: ""
+ }, {
+ mask: "+64(###)###-###",
+ cc: "NZ",
+ cd: "New Zealand",
+ desc_en: "",
+ name_ru: "Новая Зеландия",
+ desc_ru: ""
+ }, {
+ mask: "+64-##-###-###",
+ cc: "NZ",
+ cd: "New Zealand",
+ desc_en: "",
+ name_ru: "Новая Зеландия",
+ desc_ru: ""
+ }, {
+ mask: "+64(###)###-####",
+ cc: "NZ",
+ cd: "New Zealand",
+ desc_en: "",
+ name_ru: "Новая Зеландия",
+ desc_ru: ""
+ }, {
+ mask: "+968-##-###-###",
+ cc: "OM",
+ cd: "Oman",
+ desc_en: "",
+ name_ru: "Оман",
+ desc_ru: ""
+ }, {
+ mask: "+507-###-####",
+ cc: "PA",
+ cd: "Panama",
+ desc_en: "",
+ name_ru: "Панама",
+ desc_ru: ""
+ }, {
+ mask: "+51(###)###-###",
+ cc: "PE",
+ cd: "Peru",
+ desc_en: "",
+ name_ru: "Перу",
+ desc_ru: ""
+ }, {
+ mask: "+689-##-##-##",
+ cc: "PF",
+ cd: "French Polynesia",
+ desc_en: "",
+ name_ru: "Французская Полинезия (Таити)",
+ desc_ru: ""
+ }, {
+ mask: "+675(###)##-###",
+ cc: "PG",
+ cd: "Papua New Guinea",
+ desc_en: "",
+ name_ru: "Папуа-Новая Гвинея",
+ desc_ru: ""
+ }, {
+ mask: "+63(###)###-####",
+ cc: "PH",
+ cd: "Philippines",
+ desc_en: "",
+ name_ru: "Филиппины",
+ desc_ru: ""
+ }, {
+ mask: "+92(###)###-####",
+ cc: "PK",
+ cd: "Pakistan",
+ desc_en: "",
+ name_ru: "Пакистан",
+ desc_ru: ""
+ }, {
+ mask: "+48(###)###-###",
+ cc: "PL",
+ cd: "Poland",
+ desc_en: "",
+ name_ru: "Польша",
+ desc_ru: ""
+ }, {
+ mask: "+970-##-###-####",
+ cc: "PS",
+ cd: "Palestine",
+ desc_en: "",
+ name_ru: "Палестина",
+ desc_ru: ""
+ }, {
+ mask: "+351-##-###-####",
+ cc: "PT",
+ cd: "Portugal",
+ desc_en: "",
+ name_ru: "Португалия",
+ desc_ru: ""
+ }, {
+ mask: "+680-###-####",
+ cc: "PW",
+ cd: "Palau",
+ desc_en: "",
+ name_ru: "Палау",
+ desc_ru: ""
+ }, {
+ mask: "+595(###)###-###",
+ cc: "PY",
+ cd: "Paraguay",
+ desc_en: "",
+ name_ru: "Парагвай",
+ desc_ru: ""
+ }, {
+ mask: "+974-####-####",
+ cc: "QA",
+ cd: "Qatar",
+ desc_en: "",
+ name_ru: "Катар",
+ desc_ru: ""
+ }, {
+ mask: "+262-#####-####",
+ cc: "RE",
+ cd: "Reunion",
+ desc_en: "",
+ name_ru: "Реюньон",
+ desc_ru: ""
+ }, {
+ mask: "+40-##-###-####",
+ cc: "RO",
+ cd: "Romania",
+ desc_en: "",
+ name_ru: "Румыния",
+ desc_ru: ""
+ }, {
+ mask: "+381-##-###-####",
+ cc: "RS",
+ cd: "Serbia",
+ desc_en: "",
+ name_ru: "Сербия",
+ desc_ru: ""
+ }, {
+ mask: "+7(###)###-##-##",
+ cc: "RU",
+ cd: "Russia",
+ desc_en: "",
+ name_ru: "Россия",
+ desc_ru: ""
+ }, {
+ mask: "+250(###)###-###",
+ cc: "RW",
+ cd: "Rwanda",
+ desc_en: "",
+ name_ru: "Руанда",
+ desc_ru: ""
+ }, {
+ mask: "+966-5-####-####",
+ cc: "SA",
+ cd: "Saudi Arabia ",
+ desc_en: "mobile",
+ name_ru: "Саудовская Аравия ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+966-#-###-####",
+ cc: "SA",
+ cd: "Saudi Arabia",
+ desc_en: "",
+ name_ru: "Саудовская Аравия",
+ desc_ru: ""
+ }, {
+ mask: "+677-###-####",
+ cc: "SB",
+ cd: "Solomon Islands ",
+ desc_en: "mobile",
+ name_ru: "Соломоновы Острова ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+677-#####",
+ cc: "SB",
+ cd: "Solomon Islands",
+ desc_en: "",
+ name_ru: "Соломоновы Острова",
+ desc_ru: ""
+ }, {
+ mask: "+248-#-###-###",
+ cc: "SC",
+ cd: "Seychelles",
+ desc_en: "",
+ name_ru: "Сейшелы",
+ desc_ru: ""
+ }, {
+ mask: "+249-##-###-####",
+ cc: "SD",
+ cd: "Sudan",
+ desc_en: "",
+ name_ru: "Судан",
+ desc_ru: ""
+ }, {
+ mask: "+46-##-###-####",
+ cc: "SE",
+ cd: "Sweden",
+ desc_en: "",
+ name_ru: "Швеция",
+ desc_ru: ""
+ }, {
+ mask: "+65-####-####",
+ cc: "SG",
+ cd: "Singapore",
+ desc_en: "",
+ name_ru: "Сингапур",
+ desc_ru: ""
+ }, {
+ mask: "+290-####",
+ cc: "SH",
+ cd: "Saint Helena",
+ desc_en: "",
+ name_ru: "Остров Святой Елены",
+ desc_ru: ""
+ }, {
+ mask: "+290-####",
+ cc: "SH",
+ cd: "Tristan da Cunha",
+ desc_en: "",
+ name_ru: "Тристан-да-Кунья",
+ desc_ru: ""
+ }, {
+ mask: "+386-##-###-###",
+ cc: "SI",
+ cd: "Slovenia",
+ desc_en: "",
+ name_ru: "Словения",
+ desc_ru: ""
+ }, {
+ mask: "+421(###)###-###",
+ cc: "SK",
+ cd: "Slovakia",
+ desc_en: "",
+ name_ru: "Словакия",
+ desc_ru: ""
+ }, {
+ mask: "+232-##-######",
+ cc: "SL",
+ cd: "Sierra Leone",
+ desc_en: "",
+ name_ru: "Сьерра-Леоне",
+ desc_ru: ""
+ }, {
+ mask: "+378-####-######",
+ cc: "SM",
+ cd: "San Marino",
+ desc_en: "",
+ name_ru: "Сан-Марино",
+ desc_ru: ""
+ }, {
+ mask: "+221-##-###-####",
+ cc: "SN",
+ cd: "Senegal",
+ desc_en: "",
+ name_ru: "Сенегал",
+ desc_ru: ""
+ }, {
+ mask: "+252-##-###-###",
+ cc: "SO",
+ cd: "Somalia",
+ desc_en: "",
+ name_ru: "Сомали",
+ desc_ru: ""
+ }, {
+ mask: "+252-#-###-###",
+ cc: "SO",
+ cd: "Somalia",
+ desc_en: "",
+ name_ru: "Сомали",
+ desc_ru: ""
+ }, {
+ mask: "+252-#-###-###",
+ cc: "SO",
+ cd: "Somalia ",
+ desc_en: "mobile",
+ name_ru: "Сомали ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+597-###-####",
+ cc: "SR",
+ cd: "Suriname ",
+ desc_en: "mobile",
+ name_ru: "Суринам ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+597-###-###",
+ cc: "SR",
+ cd: "Suriname",
+ desc_en: "",
+ name_ru: "Суринам",
+ desc_ru: ""
+ }, {
+ mask: "+211-##-###-####",
+ cc: "SS",
+ cd: "South Sudan",
+ desc_en: "",
+ name_ru: "Южный Судан",
+ desc_ru: ""
+ }, {
+ mask: "+239-##-#####",
+ cc: "ST",
+ cd: "Sao Tome and Principe",
+ desc_en: "",
+ name_ru: "Сан-Томе и Принсипи",
+ desc_ru: ""
+ }, {
+ mask: "+503-##-##-####",
+ cc: "SV",
+ cd: "El Salvador",
+ desc_en: "",
+ name_ru: "Сальвадор",
+ desc_ru: ""
+ }, {
+ mask: "+1(721)###-####",
+ cc: "SX",
+ cd: "Sint Maarten",
+ desc_en: "",
+ name_ru: "Синт-Маартен",
+ desc_ru: ""
+ }, {
+ mask: "+963-##-####-###",
+ cc: "SY",
+ cd: "Syrian Arab Republic",
+ desc_en: "",
+ name_ru: "Сирийская арабская республика",
+ desc_ru: ""
+ }, {
+ mask: "+268-##-##-####",
+ cc: "SZ",
+ cd: "Swaziland",
+ desc_en: "",
+ name_ru: "Свазиленд",
+ desc_ru: ""
+ }, {
+ mask: "+1(649)###-####",
+ cc: "TC",
+ cd: "Turks & Caicos",
+ desc_en: "",
+ name_ru: "Тёркс и Кайкос",
+ desc_ru: ""
+ }, {
+ mask: "+235-##-##-##-##",
+ cc: "TD",
+ cd: "Chad",
+ desc_en: "",
+ name_ru: "Чад",
+ desc_ru: ""
+ }, {
+ mask: "+228-##-###-###",
+ cc: "TG",
+ cd: "Togo",
+ desc_en: "",
+ name_ru: "Того",
+ desc_ru: ""
+ }, {
+ mask: "+66-##-###-####",
+ cc: "TH",
+ cd: "Thailand ",
+ desc_en: "mobile",
+ name_ru: "Таиланд ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+66-##-###-###",
+ cc: "TH",
+ cd: "Thailand",
+ desc_en: "",
+ name_ru: "Таиланд",
+ desc_ru: ""
+ }, {
+ mask: "+992-##-###-####",
+ cc: "TJ",
+ cd: "Tajikistan",
+ desc_en: "",
+ name_ru: "Таджикистан",
+ desc_ru: ""
+ }, {
+ mask: "+690-####",
+ cc: "TK",
+ cd: "Tokelau",
+ desc_en: "",
+ name_ru: "Токелау",
+ desc_ru: ""
+ }, {
+ mask: "+670-###-####",
+ cc: "TL",
+ cd: "East Timor",
+ desc_en: "",
+ name_ru: "Восточный Тимор",
+ desc_ru: ""
+ }, {
+ mask: "+670-77#-#####",
+ cc: "TL",
+ cd: "East Timor",
+ desc_en: "Timor Telecom",
+ name_ru: "Восточный Тимор",
+ desc_ru: "Timor Telecom"
+ }, {
+ mask: "+670-78#-#####",
+ cc: "TL",
+ cd: "East Timor",
+ desc_en: "Timor Telecom",
+ name_ru: "Восточный Тимор",
+ desc_ru: "Timor Telecom"
+ }, {
+ mask: "+993-#-###-####",
+ cc: "TM",
+ cd: "Turkmenistan",
+ desc_en: "",
+ name_ru: "Туркменистан",
+ desc_ru: ""
+ }, {
+ mask: "+216-##-###-###",
+ cc: "TN",
+ cd: "Tunisia",
+ desc_en: "",
+ name_ru: "Тунис",
+ desc_ru: ""
+ }, {
+ mask: "+676-#####",
+ cc: "TO",
+ cd: "Tonga",
+ desc_en: "",
+ name_ru: "Тонга",
+ desc_ru: ""
+ }, {
+ mask: "+90(###)###-####",
+ cc: "TR",
+ cd: "Turkey",
+ desc_en: "",
+ name_ru: "Турция",
+ desc_ru: ""
+ }, {
+ mask: "+1(868)###-####",
+ cc: "TT",
+ cd: "Trinidad & Tobago",
+ desc_en: "",
+ name_ru: "Тринидад и Тобаго",
+ desc_ru: ""
+ }, {
+ mask: "+688-90####",
+ cc: "TV",
+ cd: "Tuvalu ",
+ desc_en: "mobile",
+ name_ru: "Тувалу ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+688-2####",
+ cc: "TV",
+ cd: "Tuvalu",
+ desc_en: "",
+ name_ru: "Тувалу",
+ desc_ru: ""
+ }, {
+ mask: "+886-#-####-####",
+ cc: "TW",
+ cd: "Taiwan",
+ desc_en: "",
+ name_ru: "Тайвань",
+ desc_ru: ""
+ }, {
+ mask: "+886-####-####",
+ cc: "TW",
+ cd: "Taiwan",
+ desc_en: "",
+ name_ru: "Тайвань",
+ desc_ru: ""
+ }, {
+ mask: "+255-##-###-####",
+ cc: "TZ",
+ cd: "Tanzania",
+ desc_en: "",
+ name_ru: "Танзания",
+ desc_ru: ""
+ }, {
+ mask: "+380(##)###-##-##",
+ cc: "UA",
+ cd: "Ukraine",
+ desc_en: "",
+ name_ru: "Украина",
+ desc_ru: ""
+ }, {
+ mask: "+256(###)###-###",
+ cc: "UG",
+ cd: "Uganda",
+ desc_en: "",
+ name_ru: "Уганда",
+ desc_ru: ""
+ }, {
+ mask: "+44-##-####-####",
+ cc: "UK",
+ cd: "United Kingdom",
+ desc_en: "",
+ name_ru: "Великобритания",
+ desc_ru: ""
+ }, {
+ mask: "+598-#-###-##-##",
+ cc: "UY",
+ cd: "Uruguay",
+ desc_en: "",
+ name_ru: "Уругвай",
+ desc_ru: ""
+ }, {
+ mask: "+998-##-###-####",
+ cc: "UZ",
+ cd: "Uzbekistan",
+ desc_en: "",
+ name_ru: "Узбекистан",
+ desc_ru: ""
+ }, {
+ mask: "+39-6-698-#####",
+ cc: "VA",
+ cd: "Vatican City",
+ desc_en: "",
+ name_ru: "Ватикан",
+ desc_ru: ""
+ }, {
+ mask: "+1(784)###-####",
+ cc: "VC",
+ cd: "Saint Vincent & the Grenadines",
+ desc_en: "",
+ name_ru: "Сент-Винсент и Гренадины",
+ desc_ru: ""
+ }, {
+ mask: "+58(###)###-####",
+ cc: "VE",
+ cd: "Venezuela",
+ desc_en: "",
+ name_ru: "Венесуэла",
+ desc_ru: ""
+ }, {
+ mask: "+1(284)###-####",
+ cc: "VG",
+ cd: "British Virgin Islands",
+ desc_en: "",
+ name_ru: "Британские Виргинские острова",
+ desc_ru: ""
+ }, {
+ mask: "+1(340)###-####",
+ cc: "VI",
+ cd: "US Virgin Islands",
+ desc_en: "",
+ name_ru: "Американские Виргинские острова",
+ desc_ru: ""
+ }, {
+ mask: "+84-##-####-###",
+ cc: "VN",
+ cd: "Vietnam",
+ desc_en: "",
+ name_ru: "Вьетнам",
+ desc_ru: ""
+ }, {
+ mask: "+84(###)####-###",
+ cc: "VN",
+ cd: "Vietnam",
+ desc_en: "",
+ name_ru: "Вьетнам",
+ desc_ru: ""
+ }, {
+ mask: "+678-##-#####",
+ cc: "VU",
+ cd: "Vanuatu ",
+ desc_en: "mobile",
+ name_ru: "Вануату ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+678-#####",
+ cc: "VU",
+ cd: "Vanuatu",
+ desc_en: "",
+ name_ru: "Вануату",
+ desc_ru: ""
+ }, {
+ mask: "+681-##-####",
+ cc: "WF",
+ cd: "Wallis and Futuna",
+ desc_en: "",
+ name_ru: "Уоллис и Футуна",
+ desc_ru: ""
+ }, {
+ mask: "+685-##-####",
+ cc: "WS",
+ cd: "Samoa",
+ desc_en: "",
+ name_ru: "Самоа",
+ desc_ru: ""
+ }, {
+ mask: "+967-###-###-###",
+ cc: "YE",
+ cd: "Yemen ",
+ desc_en: "mobile",
+ name_ru: "Йемен ",
+ desc_ru: "мобильные"
+ }, {
+ mask: "+967-#-###-###",
+ cc: "YE",
+ cd: "Yemen",
+ desc_en: "",
+ name_ru: "Йемен",
+ desc_ru: ""
+ }, {
+ mask: "+967-##-###-###",
+ cc: "YE",
+ cd: "Yemen",
+ desc_en: "",
+ name_ru: "Йемен",
+ desc_ru: ""
+ }, {
+ mask: "+27-##-###-####",
+ cc: "ZA",
+ cd: "South Africa",
+ desc_en: "",
+ name_ru: "Южно-Африканская Респ.",
+ desc_ru: ""
+ }, {
+ mask: "+260-##-###-####",
+ cc: "ZM",
+ cd: "Zambia",
+ desc_en: "",
+ name_ru: "Замбия",
+ desc_ru: ""
+ }, {
+ mask: "+263-#-######",
+ cc: "ZW",
+ cd: "Zimbabwe",
+ desc_en: "",
+ name_ru: "Зимбабве",
+ desc_ru: ""
+ }, {
+ mask: "+1(###)###-####",
+ cc: [ "US", "CA" ],
+ cd: "USA and Canada",
+ desc_en: "",
+ name_ru: "США и Канада",
+ desc_ru: ""
+ } ]
+ }
+ }), Inputmask;
+}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/jquery.inputmask.bundle.js b/public/bower_components/inputmask/dist/jquery.inputmask.bundle.js
new file mode 100644
index 0000000..fa10a5f
--- /dev/null
+++ b/public/bower_components/inputmask/dist/jquery.inputmask.bundle.js
@@ -0,0 +1,3055 @@
+/*!
+* jquery.inputmask.bundle.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(modules) {
+ function __webpack_require__(moduleId) {
+ if (installedModules[moduleId]) return installedModules[moduleId].exports;
+ var module = installedModules[moduleId] = {
+ i: moduleId,
+ l: !1,
+ exports: {}
+ };
+ return modules[moduleId].call(module.exports, module, module.exports, __webpack_require__),
+ module.l = !0, module.exports;
+ }
+ var installedModules = {};
+ __webpack_require__.m = modules, __webpack_require__.c = installedModules, __webpack_require__.d = function(exports, name, getter) {
+ __webpack_require__.o(exports, name) || Object.defineProperty(exports, name, {
+ configurable: !1,
+ enumerable: !0,
+ get: getter
+ });
+ }, __webpack_require__.n = function(module) {
+ var getter = module && module.__esModule ? function() {
+ return module.default;
+ } : function() {
+ return module;
+ };
+ return __webpack_require__.d(getter, "a", getter), getter;
+ }, __webpack_require__.o = function(object, property) {
+ return Object.prototype.hasOwnProperty.call(object, property);
+ }, __webpack_require__.p = "", __webpack_require__(__webpack_require__.s = 3);
+}([ function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(2) ], void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($) {
+ return $;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
+ return typeof obj;
+ } : function(obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(10), __webpack_require__(11) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, window, document, undefined) {
+ function Inputmask(alias, options, internal) {
+ if (!(this instanceof Inputmask)) return new Inputmask(alias, options, internal);
+ this.el = undefined, this.events = {}, this.maskset = undefined, this.refreshValue = !1,
+ !0 !== internal && ($.isPlainObject(alias) ? options = alias : (options = options || {}).alias = alias,
+ this.opts = $.extend(!0, {}, this.defaults, options), this.noMasksCache = options && options.definitions !== undefined,
+ this.userOptions = options || {}, this.isRTL = this.opts.numericInput, resolveAlias(this.opts.alias, options, this.opts));
+ }
+ function resolveAlias(aliasStr, options, opts) {
+ var aliasDefinition = Inputmask.prototype.aliases[aliasStr];
+ return aliasDefinition ? (aliasDefinition.alias && resolveAlias(aliasDefinition.alias, undefined, opts),
+ $.extend(!0, opts, aliasDefinition), $.extend(!0, opts, options), !0) : (null === opts.mask && (opts.mask = aliasStr),
+ !1);
+ }
+ function generateMaskSet(opts, nocache) {
+ function generateMask(mask, metadata, opts) {
+ var regexMask = !1;
+ if (null !== mask && "" !== mask || ((regexMask = null !== opts.regex) ? mask = (mask = opts.regex).replace(/^(\^)(.*)(\$)$/, "$2") : (regexMask = !0,
+ mask = ".*")), 1 === mask.length && !1 === opts.greedy && 0 !== opts.repeat && (opts.placeholder = ""),
+ opts.repeat > 0 || "*" === opts.repeat || "+" === opts.repeat) {
+ var repeatStart = "*" === opts.repeat ? 0 : "+" === opts.repeat ? 1 : opts.repeat;
+ mask = opts.groupmarker.start + mask + opts.groupmarker.end + opts.quantifiermarker.start + repeatStart + "," + opts.repeat + opts.quantifiermarker.end;
+ }
+ var masksetDefinition, maskdefKey = regexMask ? "regex_" + opts.regex : opts.numericInput ? mask.split("").reverse().join("") : mask;
+ return Inputmask.prototype.masksCache[maskdefKey] === undefined || !0 === nocache ? (masksetDefinition = {
+ mask: mask,
+ maskToken: Inputmask.prototype.analyseMask(mask, regexMask, opts),
+ validPositions: {},
+ _buffer: undefined,
+ buffer: undefined,
+ tests: {},
+ metadata: metadata,
+ maskLength: undefined
+ }, !0 !== nocache && (Inputmask.prototype.masksCache[maskdefKey] = masksetDefinition,
+ masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]))) : masksetDefinition = $.extend(!0, {}, Inputmask.prototype.masksCache[maskdefKey]),
+ masksetDefinition;
+ }
+ if ($.isFunction(opts.mask) && (opts.mask = opts.mask(opts)), $.isArray(opts.mask)) {
+ if (opts.mask.length > 1) {
+ opts.keepStatic = null === opts.keepStatic || opts.keepStatic;
+ var altMask = opts.groupmarker.start;
+ return $.each(opts.numericInput ? opts.mask.reverse() : opts.mask, function(ndx, msk) {
+ altMask.length > 1 && (altMask += opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start),
+ msk.mask === undefined || $.isFunction(msk.mask) ? altMask += msk : altMask += msk.mask;
+ }), altMask += opts.groupmarker.end, generateMask(altMask, opts.mask, opts);
+ }
+ opts.mask = opts.mask.pop();
+ }
+ return opts.mask && opts.mask.mask !== undefined && !$.isFunction(opts.mask.mask) ? generateMask(opts.mask.mask, opts.mask, opts) : generateMask(opts.mask, opts.mask, opts);
+ }
+ function maskScope(actionObj, maskset, opts) {
+ function getMaskTemplate(baseOnInput, minimalPos, includeMode) {
+ minimalPos = minimalPos || 0;
+ var ndxIntlzr, test, testPos, maskTemplate = [], pos = 0, lvp = getLastValidPosition();
+ do {
+ !0 === baseOnInput && getMaskSet().validPositions[pos] ? (test = (testPos = getMaskSet().validPositions[pos]).match,
+ ndxIntlzr = testPos.locator.slice(), maskTemplate.push(!0 === includeMode ? testPos.input : !1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))) : (test = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).match,
+ ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || "number" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && maskTemplate.push(!1 === includeMode ? test.nativeDef : getPlaceholder(pos, test))),
+ pos++;
+ } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || minimalPos > pos);
+ return "" === maskTemplate[maskTemplate.length - 1] && maskTemplate.pop(), getMaskSet().maskLength = pos + 1,
+ maskTemplate;
+ }
+ function getMaskSet() {
+ return maskset;
+ }
+ function resetMaskSet(soft) {
+ var maskset = getMaskSet();
+ maskset.buffer = undefined, !0 !== soft && (maskset.validPositions = {}, maskset.p = 0);
+ }
+ function getLastValidPosition(closestTo, strict, validPositions) {
+ var before = -1, after = -1, valids = validPositions || getMaskSet().validPositions;
+ closestTo === undefined && (closestTo = -1);
+ for (var posNdx in valids) {
+ var psNdx = parseInt(posNdx);
+ valids[psNdx] && (strict || !0 !== valids[psNdx].generatedInput) && (psNdx <= closestTo && (before = psNdx),
+ psNdx >= closestTo && (after = psNdx));
+ }
+ return -1 !== before && closestTo - before > 1 || after < closestTo ? before : after;
+ }
+ function stripValidPositions(start, end, nocheck, strict) {
+ var i, startPos = start, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), needsValidation = !1;
+ for (getMaskSet().p = start, i = end - 1; i >= startPos; i--) getMaskSet().validPositions[i] !== undefined && (!0 !== nocheck && (!getMaskSet().validPositions[i].match.optionality && function(pos) {
+ var posMatch = getMaskSet().validPositions[pos];
+ if (posMatch !== undefined && null === posMatch.match.fn) {
+ var prevMatch = getMaskSet().validPositions[pos - 1], nextMatch = getMaskSet().validPositions[pos + 1];
+ return prevMatch !== undefined && nextMatch !== undefined;
+ }
+ return !1;
+ }(i) || !1 === opts.canClearPosition(getMaskSet(), i, getLastValidPosition(), strict, opts)) || delete getMaskSet().validPositions[i]);
+ for (resetMaskSet(!0), i = startPos + 1; i <= getLastValidPosition(); ) {
+ for (;getMaskSet().validPositions[startPos] !== undefined; ) startPos++;
+ if (i < startPos && (i = startPos + 1), getMaskSet().validPositions[i] === undefined && isMask(i)) i++; else {
+ var t = getTestTemplate(i);
+ !1 === needsValidation && positionsClone[startPos] && positionsClone[startPos].match.def === t.match.def ? (getMaskSet().validPositions[startPos] = $.extend(!0, {}, positionsClone[startPos]),
+ getMaskSet().validPositions[startPos].input = t.input, delete getMaskSet().validPositions[i],
+ i++) : positionCanMatchDefinition(startPos, t.match.def) ? !1 !== isValid(startPos, t.input || getPlaceholder(i), !0) && (delete getMaskSet().validPositions[i],
+ i++, needsValidation = !0) : isMask(i) || (i++, startPos--), startPos++;
+ }
+ }
+ resetMaskSet(!0);
+ }
+ function determineTestTemplate(tests, guessNextBest) {
+ for (var testPos, testPositions = tests, lvp = getLastValidPosition(), lvTest = getMaskSet().validPositions[lvp] || getTests(0)[0], lvTestAltArr = lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation].toString().split(",") : [], ndx = 0; ndx < testPositions.length && (!((testPos = testPositions[ndx]).match && (opts.greedy && !0 !== testPos.match.optionalQuantifier || (!1 === testPos.match.optionality || !1 === testPos.match.newBlockMarker) && !0 !== testPos.match.optionalQuantifier) && (lvTest.alternation === undefined || lvTest.alternation !== testPos.alternation || testPos.locator[lvTest.alternation] !== undefined && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAltArr))) || !0 === guessNextBest && (null !== testPos.match.fn || /[0-9a-bA-Z]/.test(testPos.match.def))); ndx++) ;
+ return testPos;
+ }
+ function getTestTemplate(pos, ndxIntlzr, tstPs) {
+ return getMaskSet().validPositions[pos] || determineTestTemplate(getTests(pos, ndxIntlzr ? ndxIntlzr.slice() : ndxIntlzr, tstPs));
+ }
+ function getTest(pos) {
+ return getMaskSet().validPositions[pos] ? getMaskSet().validPositions[pos] : getTests(pos)[0];
+ }
+ function positionCanMatchDefinition(pos, def) {
+ for (var valid = !1, tests = getTests(pos), tndx = 0; tndx < tests.length; tndx++) if (tests[tndx].match && tests[tndx].match.def === def) {
+ valid = !0;
+ break;
+ }
+ return valid;
+ }
+ function getTests(pos, ndxIntlzr, tstPs) {
+ function resolveTestFromToken(maskToken, ndxInitializer, loopNdx, quantifierRecurse) {
+ function handleMatch(match, loopNdx, quantifierRecurse) {
+ function isFirstMatch(latestMatch, tokenGroup) {
+ var firstMatch = 0 === $.inArray(latestMatch, tokenGroup.matches);
+ return firstMatch || $.each(tokenGroup.matches, function(ndx, match) {
+ if (!0 === match.isQuantifier && (firstMatch = isFirstMatch(latestMatch, tokenGroup.matches[ndx - 1]))) return !1;
+ }), firstMatch;
+ }
+ function resolveNdxInitializer(pos, alternateNdx, targetAlternation) {
+ var bestMatch, indexPos;
+ if (getMaskSet().validPositions[pos - 1] && targetAlternation && getMaskSet().tests[pos]) for (var vpAlternation = getMaskSet().validPositions[pos - 1].locator, tpAlternation = getMaskSet().tests[pos][0].locator, i = 0; i < targetAlternation; i++) if (vpAlternation[i] !== tpAlternation[i]) return vpAlternation.slice(targetAlternation + 1);
+ return (getMaskSet().tests[pos] || getMaskSet().validPositions[pos]) && $.each(getMaskSet().tests[pos] || [ getMaskSet().validPositions[pos] ], function(ndx, lmnt) {
+ var alternation = targetAlternation !== undefined ? targetAlternation : lmnt.alternation, ndxPos = lmnt.locator[alternation] !== undefined ? lmnt.locator[alternation].toString().indexOf(alternateNdx) : -1;
+ (indexPos === undefined || ndxPos < indexPos) && -1 !== ndxPos && (bestMatch = lmnt,
+ indexPos = ndxPos);
+ }), bestMatch ? bestMatch.locator.slice((targetAlternation !== undefined ? targetAlternation : bestMatch.alternation) + 1) : targetAlternation !== undefined ? resolveNdxInitializer(pos, alternateNdx) : undefined;
+ }
+ if (testPos > 1e4) throw "Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. " + getMaskSet().mask;
+ if (testPos === pos && match.matches === undefined) return matches.push({
+ match: match,
+ locator: loopNdx.reverse(),
+ cd: cacheDependency
+ }), !0;
+ if (match.matches !== undefined) {
+ if (match.isGroup && quantifierRecurse !== match) {
+ if (match = handleMatch(maskToken.matches[$.inArray(match, maskToken.matches) + 1], loopNdx)) return !0;
+ } else if (match.isOptional) {
+ var optionalToken = match;
+ if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) {
+ if (latestMatch = matches[matches.length - 1].match, !isFirstMatch(latestMatch, optionalToken)) return !0;
+ insertStop = !0, testPos = pos;
+ }
+ } else if (match.isAlternator) {
+ var maltMatches, alternateToken = match, malternateMatches = [], currentMatches = matches.slice(), loopNdxCnt = loopNdx.length, altIndex = ndxInitializer.length > 0 ? ndxInitializer.shift() : -1;
+ if (-1 === altIndex || "string" == typeof altIndex) {
+ var amndx, currentPos = testPos, ndxInitializerClone = ndxInitializer.slice(), altIndexArr = [];
+ if ("string" == typeof altIndex) altIndexArr = altIndex.split(","); else for (amndx = 0; amndx < alternateToken.matches.length; amndx++) altIndexArr.push(amndx);
+ for (var ndx = 0; ndx < altIndexArr.length; ndx++) {
+ if (amndx = parseInt(altIndexArr[ndx]), matches = [], ndxInitializer = resolveNdxInitializer(testPos, amndx, loopNdxCnt) || ndxInitializerClone.slice(),
+ !0 !== (match = handleMatch(alternateToken.matches[amndx] || maskToken.matches[amndx], [ amndx ].concat(loopNdx), quantifierRecurse) || match) && match !== undefined && altIndexArr[altIndexArr.length - 1] < alternateToken.matches.length) {
+ var ntndx = $.inArray(match, maskToken.matches) + 1;
+ maskToken.matches.length > ntndx && (match = handleMatch(maskToken.matches[ntndx], [ ntndx ].concat(loopNdx.slice(1, loopNdx.length)), quantifierRecurse)) && (altIndexArr.push(ntndx.toString()),
+ $.each(matches, function(ndx, lmnt) {
+ lmnt.alternation = loopNdx.length - 1;
+ }));
+ }
+ maltMatches = matches.slice(), testPos = currentPos, matches = [];
+ for (var ndx1 = 0; ndx1 < maltMatches.length; ndx1++) {
+ var altMatch = maltMatches[ndx1], dropMatch = !1;
+ altMatch.alternation = altMatch.alternation || loopNdxCnt;
+ for (var ndx2 = 0; ndx2 < malternateMatches.length; ndx2++) {
+ var altMatch2 = malternateMatches[ndx2];
+ if ("string" != typeof altIndex || -1 !== $.inArray(altMatch.locator[altMatch.alternation].toString(), altIndexArr)) {
+ if (function(source, target) {
+ return source.match.nativeDef === target.match.nativeDef || source.match.def === target.match.nativeDef || source.match.nativeDef === target.match.def;
+ }(altMatch, altMatch2)) {
+ dropMatch = !0, altMatch.alternation === altMatch2.alternation && -1 === altMatch2.locator[altMatch2.alternation].toString().indexOf(altMatch.locator[altMatch.alternation]) && (altMatch2.locator[altMatch2.alternation] = altMatch2.locator[altMatch2.alternation] + "," + altMatch.locator[altMatch.alternation],
+ altMatch2.alternation = altMatch.alternation), altMatch.match.nativeDef === altMatch2.match.def && (altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation],
+ malternateMatches.splice(malternateMatches.indexOf(altMatch2), 1, altMatch));
+ break;
+ }
+ if (altMatch.match.def === altMatch2.match.def) {
+ dropMatch = !1;
+ break;
+ }
+ if (function(source, target) {
+ return null === source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def, getMaskSet(), pos, !1, opts, !1);
+ }(altMatch, altMatch2) || function(source, target) {
+ return null !== source.match.fn && null !== target.match.fn && target.match.fn.test(source.match.def.replace(/[\[\]]/g, ""), getMaskSet(), pos, !1, opts, !1);
+ }(altMatch, altMatch2)) {
+ altMatch.alternation === altMatch2.alternation && -1 === altMatch.locator[altMatch.alternation].toString().indexOf(altMatch2.locator[altMatch2.alternation].toString().split("")[0]) && (altMatch.na = altMatch.na || altMatch.locator[altMatch.alternation].toString(),
+ -1 === altMatch.na.indexOf(altMatch.locator[altMatch.alternation].toString().split("")[0]) && (altMatch.na = altMatch.na + "," + altMatch.locator[altMatch2.alternation].toString().split("")[0]),
+ dropMatch = !0, altMatch.locator[altMatch.alternation] = altMatch2.locator[altMatch2.alternation].toString().split("")[0] + "," + altMatch.locator[altMatch.alternation],
+ malternateMatches.splice(malternateMatches.indexOf(altMatch2), 0, altMatch));
+ break;
+ }
+ }
+ }
+ dropMatch || malternateMatches.push(altMatch);
+ }
+ }
+ "string" == typeof altIndex && (malternateMatches = $.map(malternateMatches, function(lmnt, ndx) {
+ if (isFinite(ndx)) {
+ var alternation = lmnt.alternation, altLocArr = lmnt.locator[alternation].toString().split(",");
+ lmnt.locator[alternation] = undefined, lmnt.alternation = undefined;
+ for (var alndx = 0; alndx < altLocArr.length; alndx++) -1 !== $.inArray(altLocArr[alndx], altIndexArr) && (lmnt.locator[alternation] !== undefined ? (lmnt.locator[alternation] += ",",
+ lmnt.locator[alternation] += altLocArr[alndx]) : lmnt.locator[alternation] = parseInt(altLocArr[alndx]),
+ lmnt.alternation = alternation);
+ if (lmnt.locator[alternation] !== undefined) return lmnt;
+ }
+ })), matches = currentMatches.concat(malternateMatches), testPos = pos, insertStop = matches.length > 0,
+ match = malternateMatches.length > 0, ndxInitializer = ndxInitializerClone.slice();
+ } else match = handleMatch(alternateToken.matches[altIndex] || maskToken.matches[altIndex], [ altIndex ].concat(loopNdx), quantifierRecurse);
+ if (match) return !0;
+ } else if (match.isQuantifier && quantifierRecurse !== maskToken.matches[$.inArray(match, maskToken.matches) - 1]) for (var qt = match, qndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; qndx < (isNaN(qt.quantifier.max) ? qndx + 1 : qt.quantifier.max) && testPos <= pos; qndx++) {
+ var tokenGroup = maskToken.matches[$.inArray(qt, maskToken.matches) - 1];
+ if (match = handleMatch(tokenGroup, [ qndx ].concat(loopNdx), tokenGroup)) {
+ if (latestMatch = matches[matches.length - 1].match, latestMatch.optionalQuantifier = qndx > qt.quantifier.min - 1,
+ isFirstMatch(latestMatch, tokenGroup)) {
+ if (qndx > qt.quantifier.min - 1) {
+ insertStop = !0, testPos = pos;
+ break;
+ }
+ return !0;
+ }
+ return !0;
+ }
+ } else if (match = resolveTestFromToken(match, ndxInitializer, loopNdx, quantifierRecurse)) return !0;
+ } else testPos++;
+ }
+ for (var tndx = ndxInitializer.length > 0 ? ndxInitializer.shift() : 0; tndx < maskToken.matches.length; tndx++) if (!0 !== maskToken.matches[tndx].isQuantifier) {
+ var match = handleMatch(maskToken.matches[tndx], [ tndx ].concat(loopNdx), quantifierRecurse);
+ if (match && testPos === pos) return match;
+ if (testPos > pos) break;
+ }
+ }
+ function filterTests(tests) {
+ if (opts.keepStatic && pos > 0 && tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0) && !0 !== tests[0].match.optionality && !0 !== tests[0].match.optionalQuantifier && null === tests[0].match.fn && !/[0-9a-bA-Z]/.test(tests[0].match.def)) {
+ if (getMaskSet().validPositions[pos - 1] === undefined) return [ determineTestTemplate(tests) ];
+ if (getMaskSet().validPositions[pos - 1].alternation === tests[0].alternation) return [ determineTestTemplate(tests) ];
+ if (getMaskSet().validPositions[pos - 1]) return [ determineTestTemplate(tests) ];
+ }
+ return tests;
+ }
+ var latestMatch, maskTokens = getMaskSet().maskToken, testPos = ndxIntlzr ? tstPs : 0, ndxInitializer = ndxIntlzr ? ndxIntlzr.slice() : [ 0 ], matches = [], insertStop = !1, cacheDependency = ndxIntlzr ? ndxIntlzr.join("") : "";
+ if (pos > -1) {
+ if (ndxIntlzr === undefined) {
+ for (var test, previousPos = pos - 1; (test = getMaskSet().validPositions[previousPos] || getMaskSet().tests[previousPos]) === undefined && previousPos > -1; ) previousPos--;
+ test !== undefined && previousPos > -1 && (ndxInitializer = function(tests) {
+ var locator = [];
+ return $.isArray(tests) || (tests = [ tests ]), tests.length > 0 && (tests[0].alternation === undefined ? 0 === (locator = determineTestTemplate(tests.slice()).locator.slice()).length && (locator = tests[0].locator.slice()) : $.each(tests, function(ndx, tst) {
+ if ("" !== tst.def) if (0 === locator.length) locator = tst.locator.slice(); else for (var i = 0; i < locator.length; i++) tst.locator[i] && -1 === locator[i].toString().indexOf(tst.locator[i]) && (locator[i] += "," + tst.locator[i]);
+ })), locator;
+ }(test), cacheDependency = ndxInitializer.join(""), testPos = previousPos);
+ }
+ if (getMaskSet().tests[pos] && getMaskSet().tests[pos][0].cd === cacheDependency) return filterTests(getMaskSet().tests[pos]);
+ for (var mtndx = ndxInitializer.shift(); mtndx < maskTokens.length && !(resolveTestFromToken(maskTokens[mtndx], ndxInitializer, [ mtndx ]) && testPos === pos || testPos > pos); mtndx++) ;
+ }
+ return (0 === matches.length || insertStop) && matches.push({
+ match: {
+ fn: null,
+ cardinality: 0,
+ optionality: !0,
+ casing: null,
+ def: "",
+ placeholder: ""
+ },
+ locator: [],
+ cd: cacheDependency
+ }), ndxIntlzr !== undefined && getMaskSet().tests[pos] ? filterTests($.extend(!0, [], matches)) : (getMaskSet().tests[pos] = $.extend(!0, [], matches),
+ filterTests(getMaskSet().tests[pos]));
+ }
+ function getBufferTemplate() {
+ return getMaskSet()._buffer === undefined && (getMaskSet()._buffer = getMaskTemplate(!1, 1),
+ getMaskSet().buffer === undefined && (getMaskSet().buffer = getMaskSet()._buffer.slice())),
+ getMaskSet()._buffer;
+ }
+ function getBuffer(noCache) {
+ return getMaskSet().buffer !== undefined && !0 !== noCache || (getMaskSet().buffer = getMaskTemplate(!0, getLastValidPosition(), !0)),
+ getMaskSet().buffer;
+ }
+ function refreshFromBuffer(start, end, buffer) {
+ var i, p;
+ if (!0 === start) resetMaskSet(), start = 0, end = buffer.length; else for (i = start; i < end; i++) delete getMaskSet().validPositions[i];
+ for (p = start, i = start; i < end; i++) if (resetMaskSet(!0), buffer[i] !== opts.skipOptionalPartCharacter) {
+ var valResult = isValid(p, buffer[i], !0, !0);
+ !1 !== valResult && (resetMaskSet(!0), p = valResult.caret !== undefined ? valResult.caret : valResult.pos + 1);
+ }
+ }
+ function casing(elem, test, pos) {
+ switch (opts.casing || test.casing) {
+ case "upper":
+ elem = elem.toUpperCase();
+ break;
+
+ case "lower":
+ elem = elem.toLowerCase();
+ break;
+
+ case "title":
+ var posBefore = getMaskSet().validPositions[pos - 1];
+ elem = 0 === pos || posBefore && posBefore.input === String.fromCharCode(Inputmask.keyCode.SPACE) ? elem.toUpperCase() : elem.toLowerCase();
+ break;
+
+ default:
+ if ($.isFunction(opts.casing)) {
+ var args = Array.prototype.slice.call(arguments);
+ args.push(getMaskSet().validPositions), elem = opts.casing.apply(this, args);
+ }
+ }
+ return elem;
+ }
+ function checkAlternationMatch(altArr1, altArr2, na) {
+ for (var naNdx, altArrC = opts.greedy ? altArr2 : altArr2.slice(0, 1), isMatch = !1, naArr = na !== undefined ? na.split(",") : [], i = 0; i < naArr.length; i++) -1 !== (naNdx = altArr1.indexOf(naArr[i])) && altArr1.splice(naNdx, 1);
+ for (var alndx = 0; alndx < altArr1.length; alndx++) if (-1 !== $.inArray(altArr1[alndx], altArrC)) {
+ isMatch = !0;
+ break;
+ }
+ return isMatch;
+ }
+ function isValid(pos, c, strict, fromSetValid, fromAlternate, validateOnly) {
+ function isSelection(posObj) {
+ var selection = isRTL ? posObj.begin - posObj.end > 1 || posObj.begin - posObj.end == 1 : posObj.end - posObj.begin > 1 || posObj.end - posObj.begin == 1;
+ return selection && 0 === posObj.begin && posObj.end === getMaskSet().maskLength ? "full" : selection;
+ }
+ function _isValid(position, c, strict) {
+ var rslt = !1;
+ return $.each(getTests(position), function(ndx, tst) {
+ for (var test = tst.match, loopend = c ? 1 : 0, chrs = "", i = test.cardinality; i > loopend; i--) chrs += getBufferElement(position - (i - 1));
+ if (c && (chrs += c), getBuffer(!0), !1 !== (rslt = null != test.fn ? test.fn.test(chrs, getMaskSet(), position, strict, opts, isSelection(pos)) : (c === test.def || c === opts.skipOptionalPartCharacter) && "" !== test.def && {
+ c: getPlaceholder(position, test, !0) || test.def,
+ pos: position
+ })) {
+ var elem = rslt.c !== undefined ? rslt.c : c;
+ elem = elem === opts.skipOptionalPartCharacter && null === test.fn ? getPlaceholder(position, test, !0) || test.def : elem;
+ var validatedPos = position, possibleModifiedBuffer = getBuffer();
+ if (rslt.remove !== undefined && ($.isArray(rslt.remove) || (rslt.remove = [ rslt.remove ]),
+ $.each(rslt.remove.sort(function(a, b) {
+ return b - a;
+ }), function(ndx, lmnt) {
+ stripValidPositions(lmnt, lmnt + 1, !0);
+ })), rslt.insert !== undefined && ($.isArray(rslt.insert) || (rslt.insert = [ rslt.insert ]),
+ $.each(rslt.insert.sort(function(a, b) {
+ return a - b;
+ }), function(ndx, lmnt) {
+ isValid(lmnt.pos, lmnt.c, !0, fromSetValid);
+ })), rslt.refreshFromBuffer) {
+ var refresh = rslt.refreshFromBuffer;
+ if (refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, possibleModifiedBuffer),
+ rslt.pos === undefined && rslt.c === undefined) return rslt.pos = getLastValidPosition(),
+ !1;
+ if ((validatedPos = rslt.pos !== undefined ? rslt.pos : position) !== position) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0, fromSetValid)),
+ !1;
+ } else if (!0 !== rslt && rslt.pos !== undefined && rslt.pos !== position && (validatedPos = rslt.pos,
+ refreshFromBuffer(position, validatedPos, getBuffer().slice()), validatedPos !== position)) return rslt = $.extend(rslt, isValid(validatedPos, elem, !0)),
+ !1;
+ return (!0 === rslt || rslt.pos !== undefined || rslt.c !== undefined) && (ndx > 0 && resetMaskSet(!0),
+ setValidPosition(validatedPos, $.extend({}, tst, {
+ input: casing(elem, test, validatedPos)
+ }), fromSetValid, isSelection(pos)) || (rslt = !1), !1);
+ }
+ }), rslt;
+ }
+ function setValidPosition(pos, validTest, fromSetValid, isSelection) {
+ if (isSelection || opts.insertMode && getMaskSet().validPositions[pos] !== undefined && fromSetValid === undefined) {
+ var i, positionsClone = $.extend(!0, {}, getMaskSet().validPositions), lvp = getLastValidPosition(undefined, !0);
+ for (i = pos; i <= lvp; i++) delete getMaskSet().validPositions[i];
+ getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
+ var j, valid = !0, vps = getMaskSet().validPositions, needsValidation = !1, initialLength = getMaskSet().maskLength;
+ for (i = j = pos; i <= lvp; i++) {
+ var t = positionsClone[i];
+ if (t !== undefined) for (var posMatch = j; posMatch < getMaskSet().maskLength && (null === t.match.fn && vps[i] && (!0 === vps[i].match.optionalQuantifier || !0 === vps[i].match.optionality) || null != t.match.fn); ) {
+ if (posMatch++, !1 === needsValidation && positionsClone[posMatch] && positionsClone[posMatch].match.def === t.match.def) getMaskSet().validPositions[posMatch] = $.extend(!0, {}, positionsClone[posMatch]),
+ getMaskSet().validPositions[posMatch].input = t.input, fillMissingNonMask(posMatch),
+ j = posMatch, valid = !0; else if (positionCanMatchDefinition(posMatch, t.match.def)) {
+ var result = isValid(posMatch, t.input, !0, !0);
+ valid = !1 !== result, j = result.caret || result.insert ? getLastValidPosition() : posMatch,
+ needsValidation = !0;
+ } else if (!(valid = !0 === t.generatedInput) && posMatch >= getMaskSet().maskLength - 1) break;
+ if (getMaskSet().maskLength < initialLength && (getMaskSet().maskLength = initialLength),
+ valid) break;
+ }
+ if (!valid) break;
+ }
+ if (!valid) return getMaskSet().validPositions = $.extend(!0, {}, positionsClone),
+ resetMaskSet(!0), !1;
+ } else getMaskSet().validPositions[pos] = $.extend(!0, {}, validTest);
+ return resetMaskSet(!0), !0;
+ }
+ function fillMissingNonMask(maskPos) {
+ for (var pndx = maskPos - 1; pndx > -1 && !getMaskSet().validPositions[pndx]; pndx--) ;
+ var testTemplate, testsFromPos;
+ for (pndx++; pndx < maskPos; pndx++) getMaskSet().validPositions[pndx] === undefined && (!1 === opts.jitMasking || opts.jitMasking > pndx) && ("" === (testsFromPos = getTests(pndx, getTestTemplate(pndx - 1).locator, pndx - 1).slice())[testsFromPos.length - 1].match.def && testsFromPos.pop(),
+ (testTemplate = determineTestTemplate(testsFromPos)) && (testTemplate.match.def === opts.radixPointDefinitionSymbol || !isMask(pndx, !0) || $.inArray(opts.radixPoint, getBuffer()) < pndx && testTemplate.match.fn && testTemplate.match.fn.test(getPlaceholder(pndx), getMaskSet(), pndx, !1, opts)) && !1 !== (result = _isValid(pndx, getPlaceholder(pndx, testTemplate.match, !0) || (null == testTemplate.match.fn ? testTemplate.match.def : "" !== getPlaceholder(pndx) ? getPlaceholder(pndx) : getBuffer()[pndx]), !0)) && (getMaskSet().validPositions[result.pos || pndx].generatedInput = !0));
+ }
+ strict = !0 === strict;
+ var maskPos = pos;
+ pos.begin !== undefined && (maskPos = isRTL && !isSelection(pos) ? pos.end : pos.begin);
+ var result = !0, positionsClone = $.extend(!0, {}, getMaskSet().validPositions);
+ if ($.isFunction(opts.preValidation) && !strict && !0 !== fromSetValid && !0 !== validateOnly && (result = opts.preValidation(getBuffer(), maskPos, c, isSelection(pos), opts)),
+ !0 === result) {
+ if (fillMissingNonMask(maskPos), isSelection(pos) && (handleRemove(undefined, Inputmask.keyCode.DELETE, pos, !0, !0),
+ maskPos = getMaskSet().p), maskPos < getMaskSet().maskLength && (maxLength === undefined || maskPos < maxLength) && (result = _isValid(maskPos, c, strict),
+ (!strict || !0 === fromSetValid) && !1 === result && !0 !== validateOnly)) {
+ var currentPosValid = getMaskSet().validPositions[maskPos];
+ if (!currentPosValid || null !== currentPosValid.match.fn || currentPosValid.match.def !== c && c !== opts.skipOptionalPartCharacter) {
+ if ((opts.insertMode || getMaskSet().validPositions[seekNext(maskPos)] === undefined) && !isMask(maskPos, !0)) for (var nPos = maskPos + 1, snPos = seekNext(maskPos); nPos <= snPos; nPos++) if (!1 !== (result = _isValid(nPos, c, strict))) {
+ !function(originalPos, newPos) {
+ var vp = getMaskSet().validPositions[newPos];
+ if (vp) for (var targetLocator = vp.locator, tll = targetLocator.length, ps = originalPos; ps < newPos; ps++) if (getMaskSet().validPositions[ps] === undefined && !isMask(ps, !0)) {
+ var tests = getTests(ps).slice(), bestMatch = determineTestTemplate(tests, !0), equality = -1;
+ "" === tests[tests.length - 1].match.def && tests.pop(), $.each(tests, function(ndx, tst) {
+ for (var i = 0; i < tll; i++) {
+ if (tst.locator[i] === undefined || !checkAlternationMatch(tst.locator[i].toString().split(","), targetLocator[i].toString().split(","), tst.na)) {
+ var targetAI = targetLocator[i], bestMatchAI = bestMatch.locator[i], tstAI = tst.locator[i];
+ targetAI - bestMatchAI > Math.abs(targetAI - tstAI) && (bestMatch = tst);
+ break;
+ }
+ equality < i && (equality = i, bestMatch = tst);
+ }
+ }), (bestMatch = $.extend({}, bestMatch, {
+ input: getPlaceholder(ps, bestMatch.match, !0) || bestMatch.match.def
+ })).generatedInput = !0, setValidPosition(ps, bestMatch, !0), getMaskSet().validPositions[newPos] = undefined,
+ _isValid(newPos, vp.input, !0);
+ }
+ }(maskPos, result.pos !== undefined ? result.pos : nPos), maskPos = nPos;
+ break;
+ }
+ } else result = {
+ caret: seekNext(maskPos)
+ };
+ }
+ !1 === result && opts.keepStatic && !strict && !0 !== fromAlternate && (result = function(pos, c, strict) {
+ var lastAlt, alternation, altPos, prevAltPos, i, validPos, altNdxs, decisionPos, validPsClone = $.extend(!0, {}, getMaskSet().validPositions), isValidRslt = !1, lAltPos = getLastValidPosition();
+ for (prevAltPos = getMaskSet().validPositions[lAltPos]; lAltPos >= 0; lAltPos--) if ((altPos = getMaskSet().validPositions[lAltPos]) && altPos.alternation !== undefined) {
+ if (lastAlt = lAltPos, alternation = getMaskSet().validPositions[lastAlt].alternation,
+ prevAltPos.locator[altPos.alternation] !== altPos.locator[altPos.alternation]) break;
+ prevAltPos = altPos;
+ }
+ if (alternation !== undefined) {
+ decisionPos = parseInt(lastAlt);
+ var decisionTaker = prevAltPos.locator[prevAltPos.alternation || alternation] !== undefined ? prevAltPos.locator[prevAltPos.alternation || alternation] : altNdxs[0];
+ decisionTaker.length > 0 && (decisionTaker = decisionTaker.split(",")[0]);
+ var possibilityPos = getMaskSet().validPositions[decisionPos], prevPos = getMaskSet().validPositions[decisionPos - 1];
+ $.each(getTests(decisionPos, prevPos ? prevPos.locator : undefined, decisionPos - 1), function(ndx, test) {
+ altNdxs = test.locator[alternation] ? test.locator[alternation].toString().split(",") : [];
+ for (var mndx = 0; mndx < altNdxs.length; mndx++) {
+ var validInputs = [], staticInputsBeforePos = 0, staticInputsBeforePosAlternate = 0, verifyValidInput = !1;
+ if (decisionTaker < altNdxs[mndx] && (test.na === undefined || -1 === $.inArray(altNdxs[mndx], test.na.split(",")) || -1 === $.inArray(decisionTaker.toString(), altNdxs))) {
+ getMaskSet().validPositions[decisionPos] = $.extend(!0, {}, test);
+ var possibilities = getMaskSet().validPositions[decisionPos].locator;
+ for (getMaskSet().validPositions[decisionPos].locator[alternation] = parseInt(altNdxs[mndx]),
+ null == test.match.fn ? (possibilityPos.input !== test.match.def && (verifyValidInput = !0,
+ !0 !== possibilityPos.generatedInput && validInputs.push(possibilityPos.input)),
+ staticInputsBeforePosAlternate++, getMaskSet().validPositions[decisionPos].generatedInput = !/[0-9a-bA-Z]/.test(test.match.def),
+ getMaskSet().validPositions[decisionPos].input = test.match.def) : getMaskSet().validPositions[decisionPos].input = possibilityPos.input,
+ i = decisionPos + 1; i < getLastValidPosition(undefined, !0) + 1; i++) (validPos = getMaskSet().validPositions[i]) && !0 !== validPos.generatedInput && /[0-9a-bA-Z]/.test(validPos.input) ? validInputs.push(validPos.input) : i < pos && staticInputsBeforePos++,
+ delete getMaskSet().validPositions[i];
+ for (verifyValidInput && validInputs[0] === test.match.def && validInputs.shift(),
+ resetMaskSet(!0), isValidRslt = !0; validInputs.length > 0; ) {
+ var input = validInputs.shift();
+ if (input !== opts.skipOptionalPartCharacter && !(isValidRslt = isValid(getLastValidPosition(undefined, !0) + 1, input, !1, fromSetValid, !0))) break;
+ }
+ if (isValidRslt) {
+ getMaskSet().validPositions[decisionPos].locator = possibilities;
+ var targetLvp = getLastValidPosition(pos) + 1;
+ for (i = decisionPos + 1; i < getLastValidPosition() + 1; i++) ((validPos = getMaskSet().validPositions[i]) === undefined || null == validPos.match.fn) && i < pos + (staticInputsBeforePosAlternate - staticInputsBeforePos) && staticInputsBeforePosAlternate++;
+ isValidRslt = isValid((pos += staticInputsBeforePosAlternate - staticInputsBeforePos) > targetLvp ? targetLvp : pos, c, strict, fromSetValid, !0);
+ }
+ if (isValidRslt) return !1;
+ resetMaskSet(), getMaskSet().validPositions = $.extend(!0, {}, validPsClone);
+ }
+ }
+ });
+ }
+ return isValidRslt;
+ }(maskPos, c, strict)), !0 === result && (result = {
+ pos: maskPos
+ });
+ }
+ if ($.isFunction(opts.postValidation) && !1 !== result && !strict && !0 !== fromSetValid && !0 !== validateOnly) {
+ var postResult = opts.postValidation(getBuffer(!0), result, opts);
+ if (postResult.refreshFromBuffer && postResult.buffer) {
+ var refresh = postResult.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, postResult.buffer);
+ }
+ result = !0 === postResult ? result : postResult;
+ }
+ return result && result.pos === undefined && (result.pos = maskPos), !1 !== result && !0 !== validateOnly || (resetMaskSet(!0),
+ getMaskSet().validPositions = $.extend(!0, {}, positionsClone)), result;
+ }
+ function isMask(pos, strict) {
+ var test = getTestTemplate(pos).match;
+ if ("" === test.def && (test = getTest(pos).match), null != test.fn) return test.fn;
+ if (!0 !== strict && pos > -1) {
+ var tests = getTests(pos);
+ return tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0);
+ }
+ return !1;
+ }
+ function seekNext(pos, newBlock) {
+ var maskL = getMaskSet().maskLength;
+ if (pos >= maskL) return maskL;
+ var position = pos;
+ for (getTests(maskL + 1).length > 1 && (getMaskTemplate(!0, maskL + 1, !0), maskL = getMaskSet().maskLength); ++position < maskL && (!0 === newBlock && (!0 !== getTest(position).match.newBlockMarker || !isMask(position)) || !0 !== newBlock && !isMask(position)); ) ;
+ return position;
+ }
+ function seekPrevious(pos, newBlock) {
+ var tests, position = pos;
+ if (position <= 0) return 0;
+ for (;--position > 0 && (!0 === newBlock && !0 !== getTest(position).match.newBlockMarker || !0 !== newBlock && !isMask(position) && ((tests = getTests(position)).length < 2 || 2 === tests.length && "" === tests[1].match.def)); ) ;
+ return position;
+ }
+ function getBufferElement(position) {
+ return getMaskSet().validPositions[position] === undefined ? getPlaceholder(position) : getMaskSet().validPositions[position].input;
+ }
+ function writeBuffer(input, buffer, caretPos, event, triggerInputEvent) {
+ if (event && $.isFunction(opts.onBeforeWrite)) {
+ var result = opts.onBeforeWrite.call(inputmask, event, buffer, caretPos, opts);
+ if (result) {
+ if (result.refreshFromBuffer) {
+ var refresh = result.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer || buffer),
+ buffer = getBuffer(!0);
+ }
+ caretPos !== undefined && (caretPos = result.caret !== undefined ? result.caret : caretPos);
+ }
+ }
+ input !== undefined && (input.inputmask._valueSet(buffer.join("")), caretPos === undefined || event !== undefined && "blur" === event.type ? renderColorMask(input, caretPos, 0 === buffer.length) : android && event && "input" === event.type ? setTimeout(function() {
+ caret(input, caretPos);
+ }, 0) : caret(input, caretPos), !0 === triggerInputEvent && (skipInputEvent = !0,
+ $(input).trigger("input")));
+ }
+ function getPlaceholder(pos, test, returnPL) {
+ if ((test = test || getTest(pos).match).placeholder !== undefined || !0 === returnPL) return $.isFunction(test.placeholder) ? test.placeholder(opts) : test.placeholder;
+ if (null === test.fn) {
+ if (pos > -1 && getMaskSet().validPositions[pos] === undefined) {
+ var prevTest, tests = getTests(pos), staticAlternations = [];
+ if (tests.length > 1 + ("" === tests[tests.length - 1].match.def ? 1 : 0)) for (var i = 0; i < tests.length; i++) if (!0 !== tests[i].match.optionality && !0 !== tests[i].match.optionalQuantifier && (null === tests[i].match.fn || prevTest === undefined || !1 !== tests[i].match.fn.test(prevTest.match.def, getMaskSet(), pos, !0, opts)) && (staticAlternations.push(tests[i]),
+ null === tests[i].match.fn && (prevTest = tests[i]), staticAlternations.length > 1 && /[0-9a-bA-Z]/.test(staticAlternations[0].match.def))) return opts.placeholder.charAt(pos % opts.placeholder.length);
+ }
+ return test.def;
+ }
+ return opts.placeholder.charAt(pos % opts.placeholder.length);
+ }
+ function checkVal(input, writeOut, strict, nptvl, initiatingEvent) {
+ function isTemplateMatch(ndx, charCodes) {
+ return -1 !== getBufferTemplate().slice(ndx, seekNext(ndx)).join("").indexOf(charCodes) && !isMask(ndx) && getTest(ndx).match.nativeDef === charCodes.charAt(charCodes.length - 1);
+ }
+ var inputValue = nptvl.slice(), charCodes = "", initialNdx = -1, result = undefined;
+ if (resetMaskSet(), strict || !0 === opts.autoUnmask) initialNdx = seekNext(initialNdx); else {
+ var staticInput = getBufferTemplate().slice(0, seekNext(-1)).join(""), matches = inputValue.join("").match(new RegExp("^" + Inputmask.escapeRegex(staticInput), "g"));
+ matches && matches.length > 0 && (inputValue.splice(0, matches.length * staticInput.length),
+ initialNdx = seekNext(initialNdx));
+ }
+ if (-1 === initialNdx ? (getMaskSet().p = seekNext(initialNdx), initialNdx = 0) : getMaskSet().p = initialNdx,
+ $.each(inputValue, function(ndx, charCode) {
+ if (charCode !== undefined) if (getMaskSet().validPositions[ndx] === undefined && inputValue[ndx] === getPlaceholder(ndx) && isMask(ndx, !0) && !1 === isValid(ndx, inputValue[ndx], !0, undefined, undefined, !0)) getMaskSet().p++; else {
+ var keypress = new $.Event("_checkval");
+ keypress.which = charCode.charCodeAt(0), charCodes += charCode;
+ var lvp = getLastValidPosition(undefined, !0), lvTest = getMaskSet().validPositions[lvp], nextTest = getTestTemplate(lvp + 1, lvTest ? lvTest.locator.slice() : undefined, lvp);
+ if (!isTemplateMatch(initialNdx, charCodes) || strict || opts.autoUnmask) {
+ var pos = strict ? ndx : null == nextTest.match.fn && nextTest.match.optionality && lvp + 1 < getMaskSet().p ? lvp + 1 : getMaskSet().p;
+ result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, strict, pos),
+ initialNdx = pos + 1, charCodes = "";
+ } else result = EventHandlers.keypressEvent.call(input, keypress, !0, !1, !0, lvp + 1);
+ if (!1 !== result && !strict && $.isFunction(opts.onBeforeWrite)) {
+ var origResult = result;
+ if (result = opts.onBeforeWrite.call(inputmask, keypress, getBuffer(), result.forwardPosition, opts),
+ (result = $.extend(origResult, result)) && result.refreshFromBuffer) {
+ var refresh = result.refreshFromBuffer;
+ refreshFromBuffer(!0 === refresh ? refresh : refresh.start, refresh.end, result.buffer),
+ resetMaskSet(!0), result.caret && (getMaskSet().p = result.caret, result.forwardPosition = result.caret);
+ }
+ }
+ }
+ }), writeOut) {
+ var caretPos = undefined;
+ document.activeElement === input && result && (caretPos = opts.numericInput ? seekPrevious(result.forwardPosition) : result.forwardPosition),
+ writeBuffer(input, getBuffer(), caretPos, initiatingEvent || new $.Event("checkval"), initiatingEvent && "input" === initiatingEvent.type);
+ }
+ }
+ function unmaskedvalue(input) {
+ if (input) {
+ if (input.inputmask === undefined) return input.value;
+ input.inputmask && input.inputmask.refreshValue && EventHandlers.setValueEvent.call(input);
+ }
+ var umValue = [], vps = getMaskSet().validPositions;
+ for (var pndx in vps) vps[pndx].match && null != vps[pndx].match.fn && umValue.push(vps[pndx].input);
+ var unmaskedValue = 0 === umValue.length ? "" : (isRTL ? umValue.reverse() : umValue).join("");
+ if ($.isFunction(opts.onUnMask)) {
+ var bufferValue = (isRTL ? getBuffer().slice().reverse() : getBuffer()).join("");
+ unmaskedValue = opts.onUnMask.call(inputmask, bufferValue, unmaskedValue, opts);
+ }
+ return unmaskedValue;
+ }
+ function caret(input, begin, end, notranslate) {
+ function translatePosition(pos) {
+ return !0 === notranslate || !isRTL || "number" != typeof pos || opts.greedy && "" === opts.placeholder || (pos = getBuffer().join("").length - pos),
+ pos;
+ }
+ var range;
+ if (begin === undefined) return input.setSelectionRange ? (begin = input.selectionStart,
+ end = input.selectionEnd) : window.getSelection ? (range = window.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode !== input && range.commonAncestorContainer !== input || (begin = range.startOffset,
+ end = range.endOffset) : document.selection && document.selection.createRange && (end = (begin = 0 - (range = document.selection.createRange()).duplicate().moveStart("character", -input.inputmask._valueGet().length)) + range.text.length),
+ {
+ begin: translatePosition(begin),
+ end: translatePosition(end)
+ };
+ if (begin.begin !== undefined && (end = begin.end, begin = begin.begin), "number" == typeof begin) {
+ begin = translatePosition(begin), end = "number" == typeof (end = translatePosition(end)) ? end : begin;
+ var scrollCalc = parseInt(((input.ownerDocument.defaultView || window).getComputedStyle ? (input.ownerDocument.defaultView || window).getComputedStyle(input, null) : input.currentStyle).fontSize) * end;
+ if (input.scrollLeft = scrollCalc > input.scrollWidth ? scrollCalc : 0, mobile || !1 !== opts.insertMode || begin !== end || end++,
+ input.setSelectionRange) input.selectionStart = begin, input.selectionEnd = end; else if (window.getSelection) {
+ if (range = document.createRange(), input.firstChild === undefined || null === input.firstChild) {
+ var textNode = document.createTextNode("");
+ input.appendChild(textNode);
+ }
+ range.setStart(input.firstChild, begin < input.inputmask._valueGet().length ? begin : input.inputmask._valueGet().length),
+ range.setEnd(input.firstChild, end < input.inputmask._valueGet().length ? end : input.inputmask._valueGet().length),
+ range.collapse(!0);
+ var sel = window.getSelection();
+ sel.removeAllRanges(), sel.addRange(range);
+ } else input.createTextRange && ((range = input.createTextRange()).collapse(!0),
+ range.moveEnd("character", end), range.moveStart("character", begin), range.select());
+ renderColorMask(input, {
+ begin: begin,
+ end: end
+ });
+ }
+ }
+ function determineLastRequiredPosition(returnDefinition) {
+ var pos, testPos, buffer = getBuffer(), bl = buffer.length, lvp = getLastValidPosition(), positions = {}, lvTest = getMaskSet().validPositions[lvp], ndxIntlzr = lvTest !== undefined ? lvTest.locator.slice() : undefined;
+ for (pos = lvp + 1; pos < buffer.length; pos++) ndxIntlzr = (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1)).locator.slice(),
+ positions[pos] = $.extend(!0, {}, testPos);
+ var lvTestAlt = lvTest && lvTest.alternation !== undefined ? lvTest.locator[lvTest.alternation] : undefined;
+ for (pos = bl - 1; pos > lvp && (((testPos = positions[pos]).match.optionality || testPos.match.optionalQuantifier && testPos.match.newBlockMarker || lvTestAlt && (lvTestAlt !== positions[pos].locator[lvTest.alternation] && null != testPos.match.fn || null === testPos.match.fn && testPos.locator[lvTest.alternation] && checkAlternationMatch(testPos.locator[lvTest.alternation].toString().split(","), lvTestAlt.toString().split(",")) && "" !== getTests(pos)[0].def)) && buffer[pos] === getPlaceholder(pos, testPos.match)); pos--) bl--;
+ return returnDefinition ? {
+ l: bl,
+ def: positions[bl] ? positions[bl].match : undefined
+ } : bl;
+ }
+ function clearOptionalTail(buffer) {
+ for (var validPos, rl = determineLastRequiredPosition(), bl = buffer.length, lv = getMaskSet().validPositions[getLastValidPosition()]; rl < bl && !isMask(rl, !0) && (validPos = lv !== undefined ? getTestTemplate(rl, lv.locator.slice(""), lv) : getTest(rl)) && !0 !== validPos.match.optionality && (!0 !== validPos.match.optionalQuantifier && !0 !== validPos.match.newBlockMarker || rl + 1 === bl && "" === (lv !== undefined ? getTestTemplate(rl + 1, lv.locator.slice(""), lv) : getTest(rl + 1)).match.def); ) rl++;
+ for (;(validPos = getMaskSet().validPositions[rl - 1]) && validPos && validPos.match.optionality && validPos.input === opts.skipOptionalPartCharacter; ) rl--;
+ return buffer.splice(rl), buffer;
+ }
+ function isComplete(buffer) {
+ if ($.isFunction(opts.isComplete)) return opts.isComplete(buffer, opts);
+ if ("*" === opts.repeat) return undefined;
+ var complete = !1, lrp = determineLastRequiredPosition(!0), aml = seekPrevious(lrp.l);
+ if (lrp.def === undefined || lrp.def.newBlockMarker || lrp.def.optionality || lrp.def.optionalQuantifier) {
+ complete = !0;
+ for (var i = 0; i <= aml; i++) {
+ var test = getTestTemplate(i).match;
+ if (null !== test.fn && getMaskSet().validPositions[i] === undefined && !0 !== test.optionality && !0 !== test.optionalQuantifier || null === test.fn && buffer[i] !== getPlaceholder(i, test)) {
+ complete = !1;
+ break;
+ }
+ }
+ }
+ return complete;
+ }
+ function handleRemove(input, k, pos, strict, fromIsValid) {
+ if ((opts.numericInput || isRTL) && (k === Inputmask.keyCode.BACKSPACE ? k = Inputmask.keyCode.DELETE : k === Inputmask.keyCode.DELETE && (k = Inputmask.keyCode.BACKSPACE),
+ isRTL)) {
+ var pend = pos.end;
+ pos.end = pos.begin, pos.begin = pend;
+ }
+ k === Inputmask.keyCode.BACKSPACE && (pos.end - pos.begin < 1 || !1 === opts.insertMode) ? (pos.begin = seekPrevious(pos.begin),
+ getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.begin--) : k === Inputmask.keyCode.DELETE && pos.begin === pos.end && (pos.end = isMask(pos.end, !0) && getMaskSet().validPositions[pos.end] && getMaskSet().validPositions[pos.end].input !== opts.radixPoint ? pos.end + 1 : seekNext(pos.end) + 1,
+ getMaskSet().validPositions[pos.begin] !== undefined && getMaskSet().validPositions[pos.begin].input === opts.groupSeparator && pos.end++),
+ stripValidPositions(pos.begin, pos.end, !1, strict), !0 !== strict && function() {
+ if (opts.keepStatic) {
+ for (var validInputs = [], lastAlt = getLastValidPosition(-1, !0), positionsClone = $.extend(!0, {}, getMaskSet().validPositions), prevAltPos = getMaskSet().validPositions[lastAlt]; lastAlt >= 0; lastAlt--) {
+ var altPos = getMaskSet().validPositions[lastAlt];
+ if (altPos) {
+ if (!0 !== altPos.generatedInput && /[0-9a-bA-Z]/.test(altPos.input) && validInputs.push(altPos.input),
+ delete getMaskSet().validPositions[lastAlt], altPos.alternation !== undefined && altPos.locator[altPos.alternation] !== prevAltPos.locator[altPos.alternation]) break;
+ prevAltPos = altPos;
+ }
+ }
+ if (lastAlt > -1) for (getMaskSet().p = seekNext(getLastValidPosition(-1, !0)); validInputs.length > 0; ) {
+ var keypress = new $.Event("keypress");
+ keypress.which = validInputs.pop().charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !1, !1, getMaskSet().p);
+ } else getMaskSet().validPositions = $.extend(!0, {}, positionsClone);
+ }
+ }();
+ var lvp = getLastValidPosition(pos.begin, !0);
+ if (lvp < pos.begin) getMaskSet().p = seekNext(lvp); else if (!0 !== strict && (getMaskSet().p = pos.begin,
+ !0 !== fromIsValid)) for (;getMaskSet().p < lvp && getMaskSet().validPositions[getMaskSet().p] === undefined; ) getMaskSet().p++;
+ }
+ function initializeColorMask(input) {
+ function findCaretPos(clientx) {
+ var caretPos, e = document.createElement("span");
+ for (var style in computedStyle) isNaN(style) && -1 !== style.indexOf("font") && (e.style[style] = computedStyle[style]);
+ e.style.textTransform = computedStyle.textTransform, e.style.letterSpacing = computedStyle.letterSpacing,
+ e.style.position = "absolute", e.style.height = "auto", e.style.width = "auto",
+ e.style.visibility = "hidden", e.style.whiteSpace = "nowrap", document.body.appendChild(e);
+ var itl, inputText = input.inputmask._valueGet(), previousWidth = 0;
+ for (caretPos = 0, itl = inputText.length; caretPos <= itl; caretPos++) {
+ if (e.innerHTML += inputText.charAt(caretPos) || "_", e.offsetWidth >= clientx) {
+ var offset1 = clientx - previousWidth, offset2 = e.offsetWidth - clientx;
+ e.innerHTML = inputText.charAt(caretPos), caretPos = (offset1 -= e.offsetWidth / 3) < offset2 ? caretPos - 1 : caretPos;
+ break;
+ }
+ previousWidth = e.offsetWidth;
+ }
+ return document.body.removeChild(e), caretPos;
+ }
+ var computedStyle = (input.ownerDocument.defaultView || window).getComputedStyle(input, null), template = document.createElement("div");
+ template.style.width = computedStyle.width, template.style.textAlign = computedStyle.textAlign,
+ (colorMask = document.createElement("div")).className = "im-colormask", input.parentNode.insertBefore(colorMask, input),
+ input.parentNode.removeChild(input), colorMask.appendChild(template), colorMask.appendChild(input),
+ input.style.left = template.offsetLeft + "px", $(input).on("click", function(e) {
+ return caret(input, findCaretPos(e.clientX)), EventHandlers.clickEvent.call(input, [ e ]);
+ }), $(input).on("keydown", function(e) {
+ e.shiftKey || !1 === opts.insertMode || setTimeout(function() {
+ renderColorMask(input);
+ }, 0);
+ });
+ }
+ function renderColorMask(input, caretPos, clear) {
+ function handleStatic() {
+ isStatic || null !== test.fn && testPos.input !== undefined ? isStatic && (null !== test.fn && testPos.input !== undefined || "" === test.def) && (isStatic = !1,
+ maskTemplate += "</span>") : (isStatic = !0, maskTemplate += "<span class='im-static'>");
+ }
+ function handleCaret(force) {
+ !0 !== force && pos !== caretPos.begin || document.activeElement !== input || (maskTemplate += "<span class='im-caret' style='border-right-width: 1px;border-right-style: solid;'></span>");
+ }
+ var test, testPos, ndxIntlzr, maskTemplate = "", isStatic = !1, pos = 0;
+ if (colorMask !== undefined) {
+ var buffer = getBuffer();
+ if (caretPos === undefined ? caretPos = caret(input) : caretPos.begin === undefined && (caretPos = {
+ begin: caretPos,
+ end: caretPos
+ }), !0 !== clear) {
+ var lvp = getLastValidPosition();
+ do {
+ handleCaret(), getMaskSet().validPositions[pos] ? (testPos = getMaskSet().validPositions[pos],
+ test = testPos.match, ndxIntlzr = testPos.locator.slice(), handleStatic(), maskTemplate += buffer[pos]) : (testPos = getTestTemplate(pos, ndxIntlzr, pos - 1),
+ test = testPos.match, ndxIntlzr = testPos.locator.slice(), (!1 === opts.jitMasking || pos < lvp || "number" == typeof opts.jitMasking && isFinite(opts.jitMasking) && opts.jitMasking > pos) && (handleStatic(),
+ maskTemplate += getPlaceholder(pos, test))), pos++;
+ } while ((maxLength === undefined || pos < maxLength) && (null !== test.fn || "" !== test.def) || lvp > pos || isStatic);
+ -1 === maskTemplate.indexOf("im-caret") && handleCaret(!0), isStatic && handleStatic();
+ }
+ var template = colorMask.getElementsByTagName("div")[0];
+ template.innerHTML = maskTemplate, input.inputmask.positionColorMask(input, template);
+ }
+ }
+ maskset = maskset || this.maskset, opts = opts || this.opts;
+ var undoValue, $el, maxLength, colorMask, inputmask = this, el = this.el, isRTL = this.isRTL, skipKeyPressEvent = !1, skipInputEvent = !1, ignorable = !1, mouseEnter = !1, EventRuler = {
+ on: function(input, eventName, eventHandler) {
+ var ev = function(e) {
+ if (this.inputmask === undefined && "FORM" !== this.nodeName) {
+ var imOpts = $.data(this, "_inputmask_opts");
+ imOpts ? new Inputmask(imOpts).mask(this) : EventRuler.off(this);
+ } else {
+ if ("setvalue" === e.type || "FORM" === this.nodeName || !(this.disabled || this.readOnly && !("keydown" === e.type && e.ctrlKey && 67 === e.keyCode || !1 === opts.tabThrough && e.keyCode === Inputmask.keyCode.TAB))) {
+ switch (e.type) {
+ case "input":
+ if (!0 === skipInputEvent) return skipInputEvent = !1, e.preventDefault();
+ break;
+
+ case "keydown":
+ skipKeyPressEvent = !1, skipInputEvent = !1;
+ break;
+
+ case "keypress":
+ if (!0 === skipKeyPressEvent) return e.preventDefault();
+ skipKeyPressEvent = !0;
+ break;
+
+ case "click":
+ if (iemobile || iphone) {
+ var that = this, args = arguments;
+ return setTimeout(function() {
+ eventHandler.apply(that, args);
+ }, 0), !1;
+ }
+ }
+ var returnVal = eventHandler.apply(this, arguments);
+ return !1 === returnVal && (e.preventDefault(), e.stopPropagation()), returnVal;
+ }
+ e.preventDefault();
+ }
+ };
+ input.inputmask.events[eventName] = input.inputmask.events[eventName] || [], input.inputmask.events[eventName].push(ev),
+ -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).on(eventName, ev) : $(input).on(eventName, ev);
+ },
+ off: function(input, event) {
+ if (input.inputmask && input.inputmask.events) {
+ var events;
+ event ? (events = [])[event] = input.inputmask.events[event] : events = input.inputmask.events,
+ $.each(events, function(eventName, evArr) {
+ for (;evArr.length > 0; ) {
+ var ev = evArr.pop();
+ -1 !== $.inArray(eventName, [ "submit", "reset" ]) ? null !== input.form && $(input.form).off(eventName, ev) : $(input).off(eventName, ev);
+ }
+ delete input.inputmask.events[eventName];
+ });
+ }
+ }
+ }, EventHandlers = {
+ keydownEvent: function(e) {
+ var input = this, $input = $(input), k = e.keyCode, pos = caret(input);
+ if (k === Inputmask.keyCode.BACKSPACE || k === Inputmask.keyCode.DELETE || iphone && k === Inputmask.keyCode.BACKSPACE_SAFARI || e.ctrlKey && k === Inputmask.keyCode.X && !function(eventName) {
+ var el = document.createElement("input"), evName = "on" + eventName, isSupported = evName in el;
+ return isSupported || (el.setAttribute(evName, "return;"), isSupported = "function" == typeof el[evName]),
+ el = null, isSupported;
+ }("cut")) e.preventDefault(), handleRemove(input, k, pos), writeBuffer(input, getBuffer(!0), getMaskSet().p, e, input.inputmask._valueGet() !== getBuffer().join("")),
+ input.inputmask._valueGet() === getBufferTemplate().join("") ? $input.trigger("cleared") : !0 === isComplete(getBuffer()) && $input.trigger("complete"); else if (k === Inputmask.keyCode.END || k === Inputmask.keyCode.PAGE_DOWN) {
+ e.preventDefault();
+ var caretPos = seekNext(getLastValidPosition());
+ opts.insertMode || caretPos !== getMaskSet().maskLength || e.shiftKey || caretPos--,
+ caret(input, e.shiftKey ? pos.begin : caretPos, caretPos, !0);
+ } else k === Inputmask.keyCode.HOME && !e.shiftKey || k === Inputmask.keyCode.PAGE_UP ? (e.preventDefault(),
+ caret(input, 0, e.shiftKey ? pos.begin : 0, !0)) : (opts.undoOnEscape && k === Inputmask.keyCode.ESCAPE || 90 === k && e.ctrlKey) && !0 !== e.altKey ? (checkVal(input, !0, !1, undoValue.split("")),
+ $input.trigger("click")) : k !== Inputmask.keyCode.INSERT || e.shiftKey || e.ctrlKey ? !0 === opts.tabThrough && k === Inputmask.keyCode.TAB ? (!0 === e.shiftKey ? (null === getTest(pos.begin).match.fn && (pos.begin = seekNext(pos.begin)),
+ pos.end = seekPrevious(pos.begin, !0), pos.begin = seekPrevious(pos.end, !0)) : (pos.begin = seekNext(pos.begin, !0),
+ pos.end = seekNext(pos.begin, !0), pos.end < getMaskSet().maskLength && pos.end--),
+ pos.begin < getMaskSet().maskLength && (e.preventDefault(), caret(input, pos.begin, pos.end))) : e.shiftKey || !1 === opts.insertMode && (k === Inputmask.keyCode.RIGHT ? setTimeout(function() {
+ var caretPos = caret(input);
+ caret(input, caretPos.begin);
+ }, 0) : k === Inputmask.keyCode.LEFT && setTimeout(function() {
+ var caretPos = caret(input);
+ caret(input, isRTL ? caretPos.begin + 1 : caretPos.begin - 1);
+ }, 0)) : (opts.insertMode = !opts.insertMode, caret(input, opts.insertMode || pos.begin !== getMaskSet().maskLength ? pos.begin : pos.begin - 1));
+ opts.onKeyDown.call(this, e, getBuffer(), caret(input).begin, opts), ignorable = -1 !== $.inArray(k, opts.ignorables);
+ },
+ keypressEvent: function(e, checkval, writeOut, strict, ndx) {
+ var input = this, $input = $(input), k = e.which || e.charCode || e.keyCode;
+ if (!(!0 === checkval || e.ctrlKey && e.altKey) && (e.ctrlKey || e.metaKey || ignorable)) return k === Inputmask.keyCode.ENTER && undoValue !== getBuffer().join("") && (undoValue = getBuffer().join(""),
+ setTimeout(function() {
+ $input.trigger("change");
+ }, 0)), !0;
+ if (k) {
+ 46 === k && !1 === e.shiftKey && "" !== opts.radixPoint && (k = opts.radixPoint.charCodeAt(0));
+ var forwardPosition, pos = checkval ? {
+ begin: ndx,
+ end: ndx
+ } : caret(input), c = String.fromCharCode(k);
+ getMaskSet().writeOutBuffer = !0;
+ var valResult = isValid(pos, c, strict);
+ if (!1 !== valResult && (resetMaskSet(!0), forwardPosition = valResult.caret !== undefined ? valResult.caret : checkval ? valResult.pos + 1 : seekNext(valResult.pos),
+ getMaskSet().p = forwardPosition), !1 !== writeOut && (setTimeout(function() {
+ opts.onKeyValidation.call(input, k, valResult, opts);
+ }, 0), getMaskSet().writeOutBuffer && !1 !== valResult)) {
+ var buffer = getBuffer();
+ writeBuffer(input, buffer, opts.numericInput && valResult.caret === undefined ? seekPrevious(forwardPosition) : forwardPosition, e, !0 !== checkval),
+ !0 !== checkval && setTimeout(function() {
+ !0 === isComplete(buffer) && $input.trigger("complete");
+ }, 0);
+ }
+ if (e.preventDefault(), checkval) return !1 !== valResult && (valResult.forwardPosition = forwardPosition),
+ valResult;
+ }
+ },
+ pasteEvent: function(e) {
+ var tempValue, input = this, ev = e.originalEvent || e, $input = $(input), inputValue = input.inputmask._valueGet(!0), caretPos = caret(input);
+ isRTL && (tempValue = caretPos.end, caretPos.end = caretPos.begin, caretPos.begin = tempValue);
+ var valueBeforeCaret = inputValue.substr(0, caretPos.begin), valueAfterCaret = inputValue.substr(caretPos.end, inputValue.length);
+ if (valueBeforeCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(0, caretPos.begin).join("") && (valueBeforeCaret = ""),
+ valueAfterCaret === (isRTL ? getBufferTemplate().reverse() : getBufferTemplate()).slice(caretPos.end).join("") && (valueAfterCaret = ""),
+ isRTL && (tempValue = valueBeforeCaret, valueBeforeCaret = valueAfterCaret, valueAfterCaret = tempValue),
+ window.clipboardData && window.clipboardData.getData) inputValue = valueBeforeCaret + window.clipboardData.getData("Text") + valueAfterCaret; else {
+ if (!ev.clipboardData || !ev.clipboardData.getData) return !0;
+ inputValue = valueBeforeCaret + ev.clipboardData.getData("text/plain") + valueAfterCaret;
+ }
+ var pasteValue = inputValue;
+ if ($.isFunction(opts.onBeforePaste)) {
+ if (!1 === (pasteValue = opts.onBeforePaste.call(inputmask, inputValue, opts))) return e.preventDefault();
+ pasteValue || (pasteValue = inputValue);
+ }
+ return checkVal(input, !1, !1, isRTL ? pasteValue.split("").reverse() : pasteValue.toString().split("")),
+ writeBuffer(input, getBuffer(), seekNext(getLastValidPosition()), e, undoValue !== getBuffer().join("")),
+ !0 === isComplete(getBuffer()) && $input.trigger("complete"), e.preventDefault();
+ },
+ inputFallBackEvent: function(e) {
+ var input = this, inputValue = input.inputmask._valueGet();
+ if (getBuffer().join("") !== inputValue) {
+ var caretPos = caret(input);
+ if (!1 === function(input, inputValue, caretPos) {
+ if ("." === inputValue.charAt(caretPos.begin - 1) && "" !== opts.radixPoint && ((inputValue = inputValue.split(""))[caretPos.begin - 1] = opts.radixPoint.charAt(0),
+ inputValue = inputValue.join("")), inputValue.charAt(caretPos.begin - 1) === opts.radixPoint && inputValue.length > getBuffer().length) {
+ var keypress = new $.Event("keypress");
+ return keypress.which = opts.radixPoint.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, caretPos.begin - 1),
+ !1;
+ }
+ }(input, inputValue, caretPos)) return !1;
+ if (inputValue = inputValue.replace(new RegExp("(" + Inputmask.escapeRegex(getBufferTemplate().join("")) + ")*"), ""),
+ !1 === function(input, inputValue, caretPos) {
+ if (iemobile) {
+ var inputChar = inputValue.replace(getBuffer().join(""), "");
+ if (1 === inputChar.length) {
+ var keypress = new $.Event("keypress");
+ return keypress.which = inputChar.charCodeAt(0), EventHandlers.keypressEvent.call(input, keypress, !0, !0, !1, getMaskSet().validPositions[caretPos.begin - 1] ? caretPos.begin : caretPos.begin - 1),
+ !1;
+ }
+ }
+ }(input, inputValue, caretPos)) return !1;
+ caretPos.begin > inputValue.length && (caret(input, inputValue.length), caretPos = caret(input));
+ var buffer = getBuffer().join(""), frontPart = inputValue.substr(0, caretPos.begin), backPart = inputValue.substr(caretPos.begin), frontBufferPart = buffer.substr(0, caretPos.begin), backBufferPart = buffer.substr(caretPos.begin), selection = caretPos, entries = "", isEntry = !1;
+ if (frontPart !== frontBufferPart) {
+ selection.begin = 0;
+ for (var fpl = (isEntry = frontPart.length >= frontBufferPart.length) ? frontPart.length : frontBufferPart.length, i = 0; frontPart.charAt(i) === frontBufferPart.charAt(i) && i < fpl; i++) selection.begin++;
+ isEntry && (entries += frontPart.slice(selection.begin, selection.end));
+ }
+ backPart !== backBufferPart && (backPart.length > backBufferPart.length ? isEntry && (selection.end = selection.begin) : backPart.length < backBufferPart.length ? selection.end += backBufferPart.length - backPart.length : backPart.charAt(0) !== backBufferPart.charAt(0) && selection.end++),
+ writeBuffer(input, getBuffer(), selection), entries.length > 0 ? $.each(entries.split(""), function(ndx, entry) {
+ var keypress = new $.Event("keypress");
+ keypress.which = entry.charCodeAt(0), ignorable = !1, EventHandlers.keypressEvent.call(input, keypress);
+ }) : (selection.begin === selection.end - 1 && caret(input, seekPrevious(selection.begin + 1), selection.end),
+ e.keyCode = Inputmask.keyCode.DELETE, EventHandlers.keydownEvent.call(input, e)),
+ e.preventDefault();
+ }
+ },
+ setValueEvent: function(e) {
+ this.inputmask.refreshValue = !1;
+ var input = this, value = input.inputmask._valueGet(!0);
+ $.isFunction(opts.onBeforeMask) && (value = opts.onBeforeMask.call(inputmask, value, opts) || value),
+ value = value.split(""), checkVal(input, !0, !1, isRTL ? value.reverse() : value),
+ undoValue = getBuffer().join(""), (opts.clearMaskOnLostFocus || opts.clearIncomplete) && input.inputmask._valueGet() === getBufferTemplate().join("") && input.inputmask._valueSet("");
+ },
+ focusEvent: function(e) {
+ var input = this, nptValue = input.inputmask._valueGet();
+ opts.showMaskOnFocus && (!opts.showMaskOnHover || opts.showMaskOnHover && "" === nptValue) && (input.inputmask._valueGet() !== getBuffer().join("") ? writeBuffer(input, getBuffer(), seekNext(getLastValidPosition())) : !1 === mouseEnter && caret(input, seekNext(getLastValidPosition()))),
+ !0 === opts.positionCaretOnTab && !1 === mouseEnter && "" !== nptValue && (writeBuffer(input, getBuffer(), caret(input)),
+ EventHandlers.clickEvent.apply(input, [ e, !0 ])), undoValue = getBuffer().join("");
+ },
+ mouseleaveEvent: function(e) {
+ var input = this;
+ if (mouseEnter = !1, opts.clearMaskOnLostFocus && document.activeElement !== input) {
+ var buffer = getBuffer().slice(), nptValue = input.inputmask._valueGet();
+ nptValue !== input.getAttribute("placeholder") && "" !== nptValue && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer),
+ writeBuffer(input, buffer));
+ }
+ },
+ clickEvent: function(e, tabbed) {
+ function doRadixFocus(clickPos) {
+ if ("" !== opts.radixPoint) {
+ var vps = getMaskSet().validPositions;
+ if (vps[clickPos] === undefined || vps[clickPos].input === getPlaceholder(clickPos)) {
+ if (clickPos < seekNext(-1)) return !0;
+ var radixPos = $.inArray(opts.radixPoint, getBuffer());
+ if (-1 !== radixPos) {
+ for (var vp in vps) if (radixPos < vp && vps[vp].input !== getPlaceholder(vp)) return !1;
+ return !0;
+ }
+ }
+ }
+ return !1;
+ }
+ var input = this;
+ setTimeout(function() {
+ if (document.activeElement === input) {
+ var selectedCaret = caret(input);
+ if (tabbed && (isRTL ? selectedCaret.end = selectedCaret.begin : selectedCaret.begin = selectedCaret.end),
+ selectedCaret.begin === selectedCaret.end) switch (opts.positionCaretOnClick) {
+ case "none":
+ break;
+
+ case "radixFocus":
+ if (doRadixFocus(selectedCaret.begin)) {
+ var radixPos = getBuffer().join("").indexOf(opts.radixPoint);
+ caret(input, opts.numericInput ? seekNext(radixPos) : radixPos);
+ break;
+ }
+
+ default:
+ var clickPosition = selectedCaret.begin, lvclickPosition = getLastValidPosition(clickPosition, !0), lastPosition = seekNext(lvclickPosition);
+ if (clickPosition < lastPosition) caret(input, isMask(clickPosition, !0) || isMask(clickPosition - 1, !0) ? clickPosition : seekNext(clickPosition)); else {
+ var lvp = getMaskSet().validPositions[lvclickPosition], tt = getTestTemplate(lastPosition, lvp ? lvp.match.locator : undefined, lvp), placeholder = getPlaceholder(lastPosition, tt.match);
+ if ("" !== placeholder && getBuffer()[lastPosition] !== placeholder && !0 !== tt.match.optionalQuantifier && !0 !== tt.match.newBlockMarker || !isMask(lastPosition, !0) && tt.match.def === placeholder) {
+ var newPos = seekNext(lastPosition);
+ (clickPosition >= newPos || clickPosition === lastPosition) && (lastPosition = newPos);
+ }
+ caret(input, lastPosition);
+ }
+ }
+ }
+ }, 0);
+ },
+ dblclickEvent: function(e) {
+ var input = this;
+ setTimeout(function() {
+ caret(input, 0, seekNext(getLastValidPosition()));
+ }, 0);
+ },
+ cutEvent: function(e) {
+ var input = this, $input = $(input), pos = caret(input), ev = e.originalEvent || e, clipboardData = window.clipboardData || ev.clipboardData, clipData = isRTL ? getBuffer().slice(pos.end, pos.begin) : getBuffer().slice(pos.begin, pos.end);
+ clipboardData.setData("text", isRTL ? clipData.reverse().join("") : clipData.join("")),
+ document.execCommand && document.execCommand("copy"), handleRemove(input, Inputmask.keyCode.DELETE, pos),
+ writeBuffer(input, getBuffer(), getMaskSet().p, e, undoValue !== getBuffer().join("")),
+ input.inputmask._valueGet() === getBufferTemplate().join("") && $input.trigger("cleared");
+ },
+ blurEvent: function(e) {
+ var $input = $(this), input = this;
+ if (input.inputmask) {
+ var nptValue = input.inputmask._valueGet(), buffer = getBuffer().slice();
+ "" !== nptValue && (opts.clearMaskOnLostFocus && (-1 === getLastValidPosition() && nptValue === getBufferTemplate().join("") ? buffer = [] : clearOptionalTail(buffer)),
+ !1 === isComplete(buffer) && (setTimeout(function() {
+ $input.trigger("incomplete");
+ }, 0), opts.clearIncomplete && (resetMaskSet(), buffer = opts.clearMaskOnLostFocus ? [] : getBufferTemplate().slice())),
+ writeBuffer(input, buffer, undefined, e)), undoValue !== getBuffer().join("") && (undoValue = buffer.join(""),
+ $input.trigger("change"));
+ }
+ },
+ mouseenterEvent: function(e) {
+ var input = this;
+ mouseEnter = !0, document.activeElement !== input && opts.showMaskOnHover && input.inputmask._valueGet() !== getBuffer().join("") && writeBuffer(input, getBuffer());
+ },
+ submitEvent: function(e) {
+ undoValue !== getBuffer().join("") && $el.trigger("change"), opts.clearMaskOnLostFocus && -1 === getLastValidPosition() && el.inputmask._valueGet && el.inputmask._valueGet() === getBufferTemplate().join("") && el.inputmask._valueSet(""),
+ opts.removeMaskOnSubmit && (el.inputmask._valueSet(el.inputmask.unmaskedvalue(), !0),
+ setTimeout(function() {
+ writeBuffer(el, getBuffer());
+ }, 0));
+ },
+ resetEvent: function(e) {
+ el.inputmask.refreshValue = !0, setTimeout(function() {
+ $el.trigger("setvalue");
+ }, 0);
+ }
+ };
+ Inputmask.prototype.positionColorMask = function(input, template) {
+ input.style.left = template.offsetLeft + "px";
+ };
+ var valueBuffer;
+ if (actionObj !== undefined) switch (actionObj.action) {
+ case "isComplete":
+ return el = actionObj.el, isComplete(getBuffer());
+
+ case "unmaskedvalue":
+ return el !== undefined && actionObj.value === undefined || (valueBuffer = actionObj.value,
+ valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, valueBuffer, opts) || valueBuffer : valueBuffer).split(""),
+ checkVal(undefined, !1, !1, isRTL ? valueBuffer.reverse() : valueBuffer), $.isFunction(opts.onBeforeWrite) && opts.onBeforeWrite.call(inputmask, undefined, getBuffer(), 0, opts)),
+ unmaskedvalue(el);
+
+ case "mask":
+ !function(elem) {
+ EventRuler.off(elem);
+ var isSupported = function(input, opts) {
+ var elementType = input.getAttribute("type"), isSupported = "INPUT" === input.tagName && -1 !== $.inArray(elementType, opts.supportsInputType) || input.isContentEditable || "TEXTAREA" === input.tagName;
+ if (!isSupported) if ("INPUT" === input.tagName) {
+ var el = document.createElement("input");
+ el.setAttribute("type", elementType), isSupported = "text" === el.type, el = null;
+ } else isSupported = "partial";
+ return !1 !== isSupported ? function(npt) {
+ function getter() {
+ return this.inputmask ? this.inputmask.opts.autoUnmask ? this.inputmask.unmaskedvalue() : -1 !== getLastValidPosition() || !0 !== opts.nullable ? document.activeElement === this && opts.clearMaskOnLostFocus ? (isRTL ? clearOptionalTail(getBuffer().slice()).reverse() : clearOptionalTail(getBuffer().slice())).join("") : valueGet.call(this) : "" : valueGet.call(this);
+ }
+ function setter(value) {
+ valueSet.call(this, value), this.inputmask && $(this).trigger("setvalue");
+ }
+ var valueGet, valueSet;
+ if (!npt.inputmask.__valueGet) {
+ if (!0 !== opts.noValuePatching) {
+ if (Object.getOwnPropertyDescriptor) {
+ "function" != typeof Object.getPrototypeOf && (Object.getPrototypeOf = "object" === _typeof("test".__proto__) ? function(object) {
+ return object.__proto__;
+ } : function(object) {
+ return object.constructor.prototype;
+ });
+ var valueProperty = Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(npt), "value") : undefined;
+ valueProperty && valueProperty.get && valueProperty.set ? (valueGet = valueProperty.get,
+ valueSet = valueProperty.set, Object.defineProperty(npt, "value", {
+ get: getter,
+ set: setter,
+ configurable: !0
+ })) : "INPUT" !== npt.tagName && (valueGet = function() {
+ return this.textContent;
+ }, valueSet = function(value) {
+ this.textContent = value;
+ }, Object.defineProperty(npt, "value", {
+ get: getter,
+ set: setter,
+ configurable: !0
+ }));
+ } else document.__lookupGetter__ && npt.__lookupGetter__("value") && (valueGet = npt.__lookupGetter__("value"),
+ valueSet = npt.__lookupSetter__("value"), npt.__defineGetter__("value", getter),
+ npt.__defineSetter__("value", setter));
+ npt.inputmask.__valueGet = valueGet, npt.inputmask.__valueSet = valueSet;
+ }
+ npt.inputmask._valueGet = function(overruleRTL) {
+ return isRTL && !0 !== overruleRTL ? valueGet.call(this.el).split("").reverse().join("") : valueGet.call(this.el);
+ }, npt.inputmask._valueSet = function(value, overruleRTL) {
+ valueSet.call(this.el, null === value || value === undefined ? "" : !0 !== overruleRTL && isRTL ? value.split("").reverse().join("") : value);
+ }, valueGet === undefined && (valueGet = function() {
+ return this.value;
+ }, valueSet = function(value) {
+ this.value = value;
+ }, function(type) {
+ if ($.valHooks && ($.valHooks[type] === undefined || !0 !== $.valHooks[type].inputmaskpatch)) {
+ var valhookGet = $.valHooks[type] && $.valHooks[type].get ? $.valHooks[type].get : function(elem) {
+ return elem.value;
+ }, valhookSet = $.valHooks[type] && $.valHooks[type].set ? $.valHooks[type].set : function(elem, value) {
+ return elem.value = value, elem;
+ };
+ $.valHooks[type] = {
+ get: function(elem) {
+ if (elem.inputmask) {
+ if (elem.inputmask.opts.autoUnmask) return elem.inputmask.unmaskedvalue();
+ var result = valhookGet(elem);
+ return -1 !== getLastValidPosition(undefined, undefined, elem.inputmask.maskset.validPositions) || !0 !== opts.nullable ? result : "";
+ }
+ return valhookGet(elem);
+ },
+ set: function(elem, value) {
+ var result, $elem = $(elem);
+ return result = valhookSet(elem, value), elem.inputmask && $elem.trigger("setvalue"),
+ result;
+ },
+ inputmaskpatch: !0
+ };
+ }
+ }(npt.type), function(npt) {
+ EventRuler.on(npt, "mouseenter", function(event) {
+ var $input = $(this);
+ this.inputmask._valueGet() !== getBuffer().join("") && $input.trigger("setvalue");
+ });
+ }(npt));
+ }
+ }(input) : input.inputmask = undefined, isSupported;
+ }(elem, opts);
+ if (!1 !== isSupported && (el = elem, $el = $(el), -1 === (maxLength = el !== undefined ? el.maxLength : undefined) && (maxLength = undefined),
+ !0 === opts.colorMask && initializeColorMask(el), android && (el.hasOwnProperty("inputmode") && (el.inputmode = opts.inputmode,
+ el.setAttribute("inputmode", opts.inputmode)), "rtfm" === opts.androidHack && (!0 !== opts.colorMask && initializeColorMask(el),
+ el.type = "password")), !0 === isSupported && (EventRuler.on(el, "submit", EventHandlers.submitEvent),
+ EventRuler.on(el, "reset", EventHandlers.resetEvent), EventRuler.on(el, "mouseenter", EventHandlers.mouseenterEvent),
+ EventRuler.on(el, "blur", EventHandlers.blurEvent), EventRuler.on(el, "focus", EventHandlers.focusEvent),
+ EventRuler.on(el, "mouseleave", EventHandlers.mouseleaveEvent), !0 !== opts.colorMask && EventRuler.on(el, "click", EventHandlers.clickEvent),
+ EventRuler.on(el, "dblclick", EventHandlers.dblclickEvent), EventRuler.on(el, "paste", EventHandlers.pasteEvent),
+ EventRuler.on(el, "dragdrop", EventHandlers.pasteEvent), EventRuler.on(el, "drop", EventHandlers.pasteEvent),
+ EventRuler.on(el, "cut", EventHandlers.cutEvent), EventRuler.on(el, "complete", opts.oncomplete),
+ EventRuler.on(el, "incomplete", opts.onincomplete), EventRuler.on(el, "cleared", opts.oncleared),
+ android || !0 === opts.inputEventOnly ? el.removeAttribute("maxLength") : (EventRuler.on(el, "keydown", EventHandlers.keydownEvent),
+ EventRuler.on(el, "keypress", EventHandlers.keypressEvent)), EventRuler.on(el, "compositionstart", $.noop),
+ EventRuler.on(el, "compositionupdate", $.noop), EventRuler.on(el, "compositionend", $.noop),
+ EventRuler.on(el, "keyup", $.noop), EventRuler.on(el, "input", EventHandlers.inputFallBackEvent),
+ EventRuler.on(el, "beforeinput", $.noop)), EventRuler.on(el, "setvalue", EventHandlers.setValueEvent),
+ undoValue = getBufferTemplate().join(""), "" !== el.inputmask._valueGet(!0) || !1 === opts.clearMaskOnLostFocus || document.activeElement === el)) {
+ var initialValue = $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, el.inputmask._valueGet(!0), opts) || el.inputmask._valueGet(!0) : el.inputmask._valueGet(!0);
+ "" !== initialValue && checkVal(el, !0, !1, isRTL ? initialValue.split("").reverse() : initialValue.split(""));
+ var buffer = getBuffer().slice();
+ undoValue = buffer.join(""), !1 === isComplete(buffer) && opts.clearIncomplete && resetMaskSet(),
+ opts.clearMaskOnLostFocus && document.activeElement !== el && (-1 === getLastValidPosition() ? buffer = [] : clearOptionalTail(buffer)),
+ writeBuffer(el, buffer), document.activeElement === el && caret(el, seekNext(getLastValidPosition()));
+ }
+ }(el);
+ break;
+
+ case "format":
+ return valueBuffer = ($.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(inputmask, actionObj.value, opts) || actionObj.value : actionObj.value).split(""),
+ checkVal(undefined, !0, !1, isRTL ? valueBuffer.reverse() : valueBuffer), actionObj.metadata ? {
+ value: isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join(""),
+ metadata: maskScope.call(this, {
+ action: "getmetadata"
+ }, maskset, opts)
+ } : isRTL ? getBuffer().slice().reverse().join("") : getBuffer().join("");
+
+ case "isValid":
+ actionObj.value ? (valueBuffer = actionObj.value.split(""), checkVal(undefined, !0, !0, isRTL ? valueBuffer.reverse() : valueBuffer)) : actionObj.value = getBuffer().join("");
+ for (var buffer = getBuffer(), rl = determineLastRequiredPosition(), lmib = buffer.length - 1; lmib > rl && !isMask(lmib); lmib--) ;
+ return buffer.splice(rl, lmib + 1 - rl), isComplete(buffer) && actionObj.value === getBuffer().join("");
+
+ case "getemptymask":
+ return getBufferTemplate().join("");
+
+ case "remove":
+ if (el && el.inputmask) {
+ $el = $(el), el.inputmask._valueSet(opts.autoUnmask ? unmaskedvalue(el) : el.inputmask._valueGet(!0)),
+ EventRuler.off(el);
+ Object.getOwnPropertyDescriptor && Object.getPrototypeOf ? Object.getOwnPropertyDescriptor(Object.getPrototypeOf(el), "value") && el.inputmask.__valueGet && Object.defineProperty(el, "value", {
+ get: el.inputmask.__valueGet,
+ set: el.inputmask.__valueSet,
+ configurable: !0
+ }) : document.__lookupGetter__ && el.__lookupGetter__("value") && el.inputmask.__valueGet && (el.__defineGetter__("value", el.inputmask.__valueGet),
+ el.__defineSetter__("value", el.inputmask.__valueSet)), el.inputmask = undefined;
+ }
+ return el;
+
+ case "getmetadata":
+ if ($.isArray(maskset.metadata)) {
+ var maskTarget = getMaskTemplate(!0, 0, !1).join("");
+ return $.each(maskset.metadata, function(ndx, mtdt) {
+ if (mtdt.mask === maskTarget) return maskTarget = mtdt, !1;
+ }), maskTarget;
+ }
+ return maskset.metadata;
+ }
+ }
+ var ua = navigator.userAgent, mobile = /mobile/i.test(ua), iemobile = /iemobile/i.test(ua), iphone = /iphone/i.test(ua) && !iemobile, android = /android/i.test(ua) && !iemobile;
+ return Inputmask.prototype = {
+ dataAttribute: "data-inputmask",
+ defaults: {
+ placeholder: "_",
+ optionalmarker: {
+ start: "[",
+ end: "]"
+ },
+ quantifiermarker: {
+ start: "{",
+ end: "}"
+ },
+ groupmarker: {
+ start: "(",
+ end: ")"
+ },
+ alternatormarker: "|",
+ escapeChar: "\\",
+ mask: null,
+ regex: null,
+ oncomplete: $.noop,
+ onincomplete: $.noop,
+ oncleared: $.noop,
+ repeat: 0,
+ greedy: !0,
+ autoUnmask: !1,
+ removeMaskOnSubmit: !1,
+ clearMaskOnLostFocus: !0,
+ insertMode: !0,
+ clearIncomplete: !1,
+ alias: null,
+ onKeyDown: $.noop,
+ onBeforeMask: null,
+ onBeforePaste: function(pastedValue, opts) {
+ return $.isFunction(opts.onBeforeMask) ? opts.onBeforeMask.call(this, pastedValue, opts) : pastedValue;
+ },
+ onBeforeWrite: null,
+ onUnMask: null,
+ showMaskOnFocus: !0,
+ showMaskOnHover: !0,
+ onKeyValidation: $.noop,
+ skipOptionalPartCharacter: " ",
+ numericInput: !1,
+ rightAlign: !1,
+ undoOnEscape: !0,
+ radixPoint: "",
+ radixPointDefinitionSymbol: undefined,
+ groupSeparator: "",
+ keepStatic: null,
+ positionCaretOnTab: !0,
+ tabThrough: !1,
+ supportsInputType: [ "text", "tel", "password" ],
+ ignorables: [ 8, 9, 13, 19, 27, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 93, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 0, 229 ],
+ isComplete: null,
+ canClearPosition: $.noop,
+ preValidation: null,
+ postValidation: null,
+ staticDefinitionSymbol: undefined,
+ jitMasking: !1,
+ nullable: !0,
+ inputEventOnly: !1,
+ noValuePatching: !1,
+ positionCaretOnClick: "lvp",
+ casing: null,
+ inputmode: "verbatim",
+ colorMask: !1,
+ androidHack: !1,
+ importDataAttributes: !0
+ },
+ definitions: {
+ "9": {
+ validator: "[0-91-9]",
+ cardinality: 1,
+ definitionSymbol: "*"
+ },
+ a: {
+ validator: "[A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ definitionSymbol: "*"
+ },
+ "*": {
+ validator: "[0-91-9A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1
+ }
+ },
+ aliases: {},
+ masksCache: {},
+ mask: function(elems) {
+ function importAttributeOptions(npt, opts, userOptions, dataAttribute) {
+ if (!0 === opts.importDataAttributes) {
+ var option, dataoptions, optionData, p, importOption = function(option, optionData) {
+ null !== (optionData = optionData !== undefined ? optionData : npt.getAttribute(dataAttribute + "-" + option)) && ("string" == typeof optionData && (0 === option.indexOf("on") ? optionData = window[optionData] : "false" === optionData ? optionData = !1 : "true" === optionData && (optionData = !0)),
+ userOptions[option] = optionData);
+ }, attrOptions = npt.getAttribute(dataAttribute);
+ if (attrOptions && "" !== attrOptions && (attrOptions = attrOptions.replace(new RegExp("'", "g"), '"'),
+ dataoptions = JSON.parse("{" + attrOptions + "}")), dataoptions) {
+ optionData = undefined;
+ for (p in dataoptions) if ("alias" === p.toLowerCase()) {
+ optionData = dataoptions[p];
+ break;
+ }
+ }
+ importOption("alias", optionData), userOptions.alias && resolveAlias(userOptions.alias, userOptions, opts);
+ for (option in opts) {
+ if (dataoptions) {
+ optionData = undefined;
+ for (p in dataoptions) if (p.toLowerCase() === option.toLowerCase()) {
+ optionData = dataoptions[p];
+ break;
+ }
+ }
+ importOption(option, optionData);
+ }
+ }
+ return $.extend(!0, opts, userOptions), ("rtl" === npt.dir || opts.rightAlign) && (npt.style.textAlign = "right"),
+ ("rtl" === npt.dir || opts.numericInput) && (npt.dir = "ltr", npt.removeAttribute("dir"),
+ opts.isRTL = !0), opts;
+ }
+ var that = this;
+ return "string" == typeof elems && (elems = document.getElementById(elems) || document.querySelectorAll(elems)),
+ elems = elems.nodeName ? [ elems ] : elems, $.each(elems, function(ndx, el) {
+ var scopedOpts = $.extend(!0, {}, that.opts);
+ importAttributeOptions(el, scopedOpts, $.extend(!0, {}, that.userOptions), that.dataAttribute);
+ var maskset = generateMaskSet(scopedOpts, that.noMasksCache);
+ maskset !== undefined && (el.inputmask !== undefined && (el.inputmask.opts.autoUnmask = !0,
+ el.inputmask.remove()), el.inputmask = new Inputmask(undefined, undefined, !0),
+ el.inputmask.opts = scopedOpts, el.inputmask.noMasksCache = that.noMasksCache, el.inputmask.userOptions = $.extend(!0, {}, that.userOptions),
+ el.inputmask.isRTL = scopedOpts.isRTL || scopedOpts.numericInput, el.inputmask.el = el,
+ el.inputmask.maskset = maskset, $.data(el, "_inputmask_opts", scopedOpts), maskScope.call(el.inputmask, {
+ action: "mask"
+ }));
+ }), elems && elems[0] ? elems[0].inputmask || this : this;
+ },
+ option: function(options, noremask) {
+ return "string" == typeof options ? this.opts[options] : "object" === (void 0 === options ? "undefined" : _typeof(options)) ? ($.extend(this.userOptions, options),
+ this.el && !0 !== noremask && this.mask(this.el), this) : void 0;
+ },
+ unmaskedvalue: function(value) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "unmaskedvalue",
+ value: value
+ });
+ },
+ remove: function() {
+ return maskScope.call(this, {
+ action: "remove"
+ });
+ },
+ getemptymask: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "getemptymask"
+ });
+ },
+ hasMaskedValue: function() {
+ return !this.opts.autoUnmask;
+ },
+ isComplete: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "isComplete"
+ });
+ },
+ getmetadata: function() {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "getmetadata"
+ });
+ },
+ isValid: function(value) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "isValid",
+ value: value
+ });
+ },
+ format: function(value, metadata) {
+ return this.maskset = this.maskset || generateMaskSet(this.opts, this.noMasksCache),
+ maskScope.call(this, {
+ action: "format",
+ value: value,
+ metadata: metadata
+ });
+ },
+ analyseMask: function(mask, regexMask, opts) {
+ function MaskToken(isGroup, isOptional, isQuantifier, isAlternator) {
+ this.matches = [], this.openGroup = isGroup || !1, this.alternatorGroup = !1, this.isGroup = isGroup || !1,
+ this.isOptional = isOptional || !1, this.isQuantifier = isQuantifier || !1, this.isAlternator = isAlternator || !1,
+ this.quantifier = {
+ min: 1,
+ max: 1
+ };
+ }
+ function insertTestDefinition(mtoken, element, position) {
+ position = position !== undefined ? position : mtoken.matches.length;
+ var prevMatch = mtoken.matches[position - 1];
+ if (regexMask) 0 === element.indexOf("[") || escaped && /\\d|\\s|\\w]/i.test(element) || "." === element ? mtoken.matches.splice(position++, 0, {
+ fn: new RegExp(element, opts.casing ? "i" : ""),
+ cardinality: 1,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== element,
+ casing: null,
+ def: element,
+ placeholder: undefined,
+ nativeDef: element
+ }) : (escaped && (element = element[element.length - 1]), $.each(element.split(""), function(ndx, lmnt) {
+ prevMatch = mtoken.matches[position - 1], mtoken.matches.splice(position++, 0, {
+ fn: null,
+ cardinality: 0,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== lmnt && null !== prevMatch.fn,
+ casing: null,
+ def: opts.staticDefinitionSymbol || lmnt,
+ placeholder: opts.staticDefinitionSymbol !== undefined ? lmnt : undefined,
+ nativeDef: lmnt
+ });
+ })), escaped = !1; else {
+ var maskdef = (opts.definitions ? opts.definitions[element] : undefined) || Inputmask.prototype.definitions[element];
+ if (maskdef && !escaped) {
+ for (var prevalidators = maskdef.prevalidator, prevalidatorsL = prevalidators ? prevalidators.length : 0, i = 1; i < maskdef.cardinality; i++) {
+ var prevalidator = prevalidatorsL >= i ? prevalidators[i - 1] : [], validator = prevalidator.validator, cardinality = prevalidator.cardinality;
+ mtoken.matches.splice(position++, 0, {
+ fn: validator ? "string" == typeof validator ? new RegExp(validator, opts.casing ? "i" : "") : new function() {
+ this.test = validator;
+ }() : new RegExp("."),
+ cardinality: cardinality || 1,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),
+ casing: maskdef.casing,
+ def: maskdef.definitionSymbol || element,
+ placeholder: maskdef.placeholder,
+ nativeDef: element
+ }), prevMatch = mtoken.matches[position - 1];
+ }
+ mtoken.matches.splice(position++, 0, {
+ fn: maskdef.validator ? "string" == typeof maskdef.validator ? new RegExp(maskdef.validator, opts.casing ? "i" : "") : new function() {
+ this.test = maskdef.validator;
+ }() : new RegExp("."),
+ cardinality: maskdef.cardinality,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== (maskdef.definitionSymbol || element),
+ casing: maskdef.casing,
+ def: maskdef.definitionSymbol || element,
+ placeholder: maskdef.placeholder,
+ nativeDef: element
+ });
+ } else mtoken.matches.splice(position++, 0, {
+ fn: null,
+ cardinality: 0,
+ optionality: mtoken.isOptional,
+ newBlockMarker: prevMatch === undefined || prevMatch.def !== element && null !== prevMatch.fn,
+ casing: null,
+ def: opts.staticDefinitionSymbol || element,
+ placeholder: opts.staticDefinitionSymbol !== undefined ? element : undefined,
+ nativeDef: element
+ }), escaped = !1;
+ }
+ }
+ function verifyGroupMarker(maskToken) {
+ maskToken && maskToken.matches && $.each(maskToken.matches, function(ndx, token) {
+ var nextToken = maskToken.matches[ndx + 1];
+ (nextToken === undefined || nextToken.matches === undefined || !1 === nextToken.isQuantifier) && token && token.isGroup && (token.isGroup = !1,
+ regexMask || (insertTestDefinition(token, opts.groupmarker.start, 0), !0 !== token.openGroup && insertTestDefinition(token, opts.groupmarker.end))),
+ verifyGroupMarker(token);
+ });
+ }
+ function defaultCase() {
+ if (openenings.length > 0) {
+ if (currentOpeningToken = openenings[openenings.length - 1], insertTestDefinition(currentOpeningToken, m),
+ currentOpeningToken.isAlternator) {
+ alternator = openenings.pop();
+ for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1;
+ openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator);
+ }
+ } else insertTestDefinition(currentToken, m);
+ }
+ function reverseTokens(maskToken) {
+ maskToken.matches = maskToken.matches.reverse();
+ for (var match in maskToken.matches) if (maskToken.matches.hasOwnProperty(match)) {
+ var intMatch = parseInt(match);
+ if (maskToken.matches[match].isQuantifier && maskToken.matches[intMatch + 1] && maskToken.matches[intMatch + 1].isGroup) {
+ var qt = maskToken.matches[match];
+ maskToken.matches.splice(match, 1), maskToken.matches.splice(intMatch + 1, 0, qt);
+ }
+ maskToken.matches[match].matches !== undefined ? maskToken.matches[match] = reverseTokens(maskToken.matches[match]) : maskToken.matches[match] = function(st) {
+ return st === opts.optionalmarker.start ? st = opts.optionalmarker.end : st === opts.optionalmarker.end ? st = opts.optionalmarker.start : st === opts.groupmarker.start ? st = opts.groupmarker.end : st === opts.groupmarker.end && (st = opts.groupmarker.start),
+ st;
+ }(maskToken.matches[match]);
+ }
+ return maskToken;
+ }
+ var match, m, openingToken, currentOpeningToken, alternator, lastMatch, groupToken, tokenizer = /(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g, regexTokenizer = /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g, escaped = !1, currentToken = new MaskToken(), openenings = [], maskTokens = [];
+ for (regexMask && (opts.optionalmarker.start = undefined, opts.optionalmarker.end = undefined); match = regexMask ? regexTokenizer.exec(mask) : tokenizer.exec(mask); ) {
+ if (m = match[0], regexMask) switch (m.charAt(0)) {
+ case "?":
+ m = "{0,1}";
+ break;
+
+ case "+":
+ case "*":
+ m = "{" + m + "}";
+ }
+ if (escaped) defaultCase(); else switch (m.charAt(0)) {
+ case opts.escapeChar:
+ escaped = !0, regexMask && defaultCase();
+ break;
+
+ case opts.optionalmarker.end:
+ case opts.groupmarker.end:
+ if (openingToken = openenings.pop(), openingToken.openGroup = !1, openingToken !== undefined) if (openenings.length > 0) {
+ if ((currentOpeningToken = openenings[openenings.length - 1]).matches.push(openingToken),
+ currentOpeningToken.isAlternator) {
+ alternator = openenings.pop();
+ for (var mndx = 0; mndx < alternator.matches.length; mndx++) alternator.matches[mndx].isGroup = !1,
+ alternator.matches[mndx].alternatorGroup = !1;
+ openenings.length > 0 ? (currentOpeningToken = openenings[openenings.length - 1]).matches.push(alternator) : currentToken.matches.push(alternator);
+ }
+ } else currentToken.matches.push(openingToken); else defaultCase();
+ break;
+
+ case opts.optionalmarker.start:
+ openenings.push(new MaskToken(!1, !0));
+ break;
+
+ case opts.groupmarker.start:
+ openenings.push(new MaskToken(!0));
+ break;
+
+ case opts.quantifiermarker.start:
+ var quantifier = new MaskToken(!1, !1, !0), mq = (m = m.replace(/[{}]/g, "")).split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);
+ if ("*" !== mq1 && "+" !== mq1 || (mq0 = "*" === mq1 ? 0 : 1), quantifier.quantifier = {
+ min: mq0,
+ max: mq1
+ }, openenings.length > 0) {
+ var matches = openenings[openenings.length - 1].matches;
+ (match = matches.pop()).isGroup || ((groupToken = new MaskToken(!0)).matches.push(match),
+ match = groupToken), matches.push(match), matches.push(quantifier);
+ } else (match = currentToken.matches.pop()).isGroup || (regexMask && null === match.fn && "." === match.def && (match.fn = new RegExp(match.def, opts.casing ? "i" : "")),
+ (groupToken = new MaskToken(!0)).matches.push(match), match = groupToken), currentToken.matches.push(match),
+ currentToken.matches.push(quantifier);
+ break;
+
+ case opts.alternatormarker:
+ if (openenings.length > 0) {
+ var subToken = (currentOpeningToken = openenings[openenings.length - 1]).matches[currentOpeningToken.matches.length - 1];
+ lastMatch = currentOpeningToken.openGroup && (subToken.matches === undefined || !1 === subToken.isGroup && !1 === subToken.isAlternator) ? openenings.pop() : currentOpeningToken.matches.pop();
+ } else lastMatch = currentToken.matches.pop();
+ if (lastMatch.isAlternator) openenings.push(lastMatch); else if (lastMatch.alternatorGroup ? (alternator = openenings.pop(),
+ lastMatch.alternatorGroup = !1) : alternator = new MaskToken(!1, !1, !1, !0), alternator.matches.push(lastMatch),
+ openenings.push(alternator), lastMatch.openGroup) {
+ lastMatch.openGroup = !1;
+ var alternatorGroup = new MaskToken(!0);
+ alternatorGroup.alternatorGroup = !0, openenings.push(alternatorGroup);
+ }
+ break;
+
+ default:
+ defaultCase();
+ }
+ }
+ for (;openenings.length > 0; ) openingToken = openenings.pop(), currentToken.matches.push(openingToken);
+ return currentToken.matches.length > 0 && (verifyGroupMarker(currentToken), maskTokens.push(currentToken)),
+ (opts.numericInput || opts.isRTL) && reverseTokens(maskTokens[0]), maskTokens;
+ }
+ }, Inputmask.extendDefaults = function(options) {
+ $.extend(!0, Inputmask.prototype.defaults, options);
+ }, Inputmask.extendDefinitions = function(definition) {
+ $.extend(!0, Inputmask.prototype.definitions, definition);
+ }, Inputmask.extendAliases = function(alias) {
+ $.extend(!0, Inputmask.prototype.aliases, alias);
+ }, Inputmask.format = function(value, options, metadata) {
+ return Inputmask(options).format(value, metadata);
+ }, Inputmask.unmask = function(value, options) {
+ return Inputmask(options).unmaskedvalue(value);
+ }, Inputmask.isValid = function(value, options) {
+ return Inputmask(options).isValid(value);
+ }, Inputmask.remove = function(elems) {
+ $.each(elems, function(ndx, el) {
+ el.inputmask && el.inputmask.remove();
+ });
+ }, Inputmask.escapeRegex = function(str) {
+ var specials = [ "/", ".", "*", "+", "?", "|", "(", ")", "[", "]", "{", "}", "\\", "$", "^" ];
+ return str.replace(new RegExp("(\\" + specials.join("|\\") + ")", "gim"), "\\$1");
+ }, Inputmask.keyCode = {
+ ALT: 18,
+ BACKSPACE: 8,
+ BACKSPACE_SAFARI: 127,
+ CAPS_LOCK: 20,
+ COMMA: 188,
+ COMMAND: 91,
+ COMMAND_LEFT: 91,
+ COMMAND_RIGHT: 93,
+ CONTROL: 17,
+ DELETE: 46,
+ DOWN: 40,
+ END: 35,
+ ENTER: 13,
+ ESCAPE: 27,
+ HOME: 36,
+ INSERT: 45,
+ LEFT: 37,
+ MENU: 93,
+ NUMPAD_ADD: 107,
+ NUMPAD_DECIMAL: 110,
+ NUMPAD_DIVIDE: 111,
+ NUMPAD_ENTER: 108,
+ NUMPAD_MULTIPLY: 106,
+ NUMPAD_SUBTRACT: 109,
+ PAGE_DOWN: 34,
+ PAGE_UP: 33,
+ PERIOD: 190,
+ RIGHT: 39,
+ SHIFT: 16,
+ SPACE: 32,
+ TAB: 9,
+ UP: 38,
+ WINDOWS: 91,
+ X: 88
+ }, Inputmask;
+ });
+}, function(module, exports) {
+ module.exports = jQuery;
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ function _interopRequireDefault(obj) {
+ return obj && obj.__esModule ? obj : {
+ default: obj
+ };
+ }
+ __webpack_require__(4), __webpack_require__(9), __webpack_require__(12), __webpack_require__(13),
+ __webpack_require__(14), __webpack_require__(15);
+ var _inputmask2 = _interopRequireDefault(__webpack_require__(1)), _inputmask4 = _interopRequireDefault(__webpack_require__(0)), _jquery2 = _interopRequireDefault(__webpack_require__(2));
+ _inputmask4.default === _jquery2.default && __webpack_require__(16), window.Inputmask = _inputmask2.default;
+}, function(module, exports, __webpack_require__) {
+ var content = __webpack_require__(5);
+ "string" == typeof content && (content = [ [ module.i, content, "" ] ]);
+ var options = {
+ hmr: !0
+ };
+ options.transform = void 0;
+ __webpack_require__(7)(content, options);
+ content.locals && (module.exports = content.locals);
+}, function(module, exports, __webpack_require__) {
+ (module.exports = __webpack_require__(6)(void 0)).push([ module.i, "span.im-caret {\r\n -webkit-animation: 1s blink step-end infinite;\r\n animation: 1s blink step-end infinite;\r\n}\r\n\r\n@keyframes blink {\r\n from, to {\r\n border-right-color: black;\r\n }\r\n 50% {\r\n border-right-color: transparent;\r\n }\r\n}\r\n\r\n@-webkit-keyframes blink {\r\n from, to {\r\n border-right-color: black;\r\n }\r\n 50% {\r\n border-right-color: transparent;\r\n }\r\n}\r\n\r\nspan.im-static {\r\n color: grey;\r\n}\r\n\r\ndiv.im-colormask {\r\n display: inline-block;\r\n border-style: inset;\r\n border-width: 2px;\r\n -webkit-appearance: textfield;\r\n -moz-appearance: textfield;\r\n appearance: textfield;\r\n}\r\n\r\ndiv.im-colormask > input {\r\n position: absolute;\r\n display: inline-block;\r\n background-color: transparent;\r\n color: transparent;\r\n -webkit-appearance: caret;\r\n -moz-appearance: caret;\r\n appearance: caret;\r\n border-style: none;\r\n left: 0; /*calculated*/\r\n}\r\n\r\ndiv.im-colormask > input:focus {\r\n outline: none;\r\n}\r\n\r\ndiv.im-colormask > input::-moz-selection{\r\n background: none;\r\n}\r\n\r\ndiv.im-colormask > input::selection{\r\n background: none;\r\n}\r\ndiv.im-colormask > input::-moz-selection{\r\n background: none;\r\n}\r\n\r\ndiv.im-colormask > div {\r\n color: black;\r\n display: inline-block;\r\n width: 100px; /*calculated*/\r\n}", "" ]);
+}, function(module, exports) {
+ function cssWithMappingToString(item, useSourceMap) {
+ var content = item[1] || "", cssMapping = item[3];
+ if (!cssMapping) return content;
+ if (useSourceMap && "function" == typeof btoa) {
+ var sourceMapping = toComment(cssMapping), sourceURLs = cssMapping.sources.map(function(source) {
+ return "/*# sourceURL=" + cssMapping.sourceRoot + source + " */";
+ });
+ return [ content ].concat(sourceURLs).concat([ sourceMapping ]).join("\n");
+ }
+ return [ content ].join("\n");
+ }
+ function toComment(sourceMap) {
+ return "/*# " + ("sourceMappingURL=data:application/json;charset=utf-8;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))))) + " */";
+ }
+ module.exports = function(useSourceMap) {
+ var list = [];
+ return list.toString = function() {
+ return this.map(function(item) {
+ var content = cssWithMappingToString(item, useSourceMap);
+ return item[2] ? "@media " + item[2] + "{" + content + "}" : content;
+ }).join("");
+ }, list.i = function(modules, mediaQuery) {
+ "string" == typeof modules && (modules = [ [ null, modules, "" ] ]);
+ for (var alreadyImportedModules = {}, i = 0; i < this.length; i++) {
+ var id = this[i][0];
+ "number" == typeof id && (alreadyImportedModules[id] = !0);
+ }
+ for (i = 0; i < modules.length; i++) {
+ var item = modules[i];
+ "number" == typeof item[0] && alreadyImportedModules[item[0]] || (mediaQuery && !item[2] ? item[2] = mediaQuery : mediaQuery && (item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"),
+ list.push(item));
+ }
+ }, list;
+ };
+}, function(module, exports, __webpack_require__) {
+ function addStylesToDom(styles, options) {
+ for (var i = 0; i < styles.length; i++) {
+ var item = styles[i], domStyle = stylesInDom[item.id];
+ if (domStyle) {
+ domStyle.refs++;
+ for (j = 0; j < domStyle.parts.length; j++) domStyle.parts[j](item.parts[j]);
+ for (;j < item.parts.length; j++) domStyle.parts.push(addStyle(item.parts[j], options));
+ } else {
+ for (var parts = [], j = 0; j < item.parts.length; j++) parts.push(addStyle(item.parts[j], options));
+ stylesInDom[item.id] = {
+ id: item.id,
+ refs: 1,
+ parts: parts
+ };
+ }
+ }
+ }
+ function listToStyles(list, options) {
+ for (var styles = [], newStyles = {}, i = 0; i < list.length; i++) {
+ var item = list[i], id = options.base ? item[0] + options.base : item[0], part = {
+ css: item[1],
+ media: item[2],
+ sourceMap: item[3]
+ };
+ newStyles[id] ? newStyles[id].parts.push(part) : styles.push(newStyles[id] = {
+ id: id,
+ parts: [ part ]
+ });
+ }
+ return styles;
+ }
+ function insertStyleElement(options, style) {
+ var target = getElement(options.insertInto);
+ if (!target) throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");
+ var lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];
+ if ("top" === options.insertAt) lastStyleElementInsertedAtTop ? lastStyleElementInsertedAtTop.nextSibling ? target.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling) : target.appendChild(style) : target.insertBefore(style, target.firstChild),
+ stylesInsertedAtTop.push(style); else if ("bottom" === options.insertAt) target.appendChild(style); else {
+ if ("object" != typeof options.insertAt || !options.insertAt.before) throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");
+ var nextSibling = getElement(options.insertInto + " " + options.insertAt.before);
+ target.insertBefore(style, nextSibling);
+ }
+ }
+ function removeStyleElement(style) {
+ if (null === style.parentNode) return !1;
+ style.parentNode.removeChild(style);
+ var idx = stylesInsertedAtTop.indexOf(style);
+ idx >= 0 && stylesInsertedAtTop.splice(idx, 1);
+ }
+ function createStyleElement(options) {
+ var style = document.createElement("style");
+ return options.attrs.type = "text/css", addAttrs(style, options.attrs), insertStyleElement(options, style),
+ style;
+ }
+ function createLinkElement(options) {
+ var link = document.createElement("link");
+ return options.attrs.type = "text/css", options.attrs.rel = "stylesheet", addAttrs(link, options.attrs),
+ insertStyleElement(options, link), link;
+ }
+ function addAttrs(el, attrs) {
+ Object.keys(attrs).forEach(function(key) {
+ el.setAttribute(key, attrs[key]);
+ });
+ }
+ function addStyle(obj, options) {
+ var style, update, remove, result;
+ if (options.transform && obj.css) {
+ if (!(result = options.transform(obj.css))) return function() {};
+ obj.css = result;
+ }
+ if (options.singleton) {
+ var styleIndex = singletonCounter++;
+ style = singleton || (singleton = createStyleElement(options)), update = applyToSingletonTag.bind(null, style, styleIndex, !1),
+ remove = applyToSingletonTag.bind(null, style, styleIndex, !0);
+ } else obj.sourceMap && "function" == typeof URL && "function" == typeof URL.createObjectURL && "function" == typeof URL.revokeObjectURL && "function" == typeof Blob && "function" == typeof btoa ? (style = createLinkElement(options),
+ update = updateLink.bind(null, style, options), remove = function() {
+ removeStyleElement(style), style.href && URL.revokeObjectURL(style.href);
+ }) : (style = createStyleElement(options), update = applyToTag.bind(null, style),
+ remove = function() {
+ removeStyleElement(style);
+ });
+ return update(obj), function(newObj) {
+ if (newObj) {
+ if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap) return;
+ update(obj = newObj);
+ } else remove();
+ };
+ }
+ function applyToSingletonTag(style, index, remove, obj) {
+ var css = remove ? "" : obj.css;
+ if (style.styleSheet) style.styleSheet.cssText = replaceText(index, css); else {
+ var cssNode = document.createTextNode(css), childNodes = style.childNodes;
+ childNodes[index] && style.removeChild(childNodes[index]), childNodes.length ? style.insertBefore(cssNode, childNodes[index]) : style.appendChild(cssNode);
+ }
+ }
+ function applyToTag(style, obj) {
+ var css = obj.css, media = obj.media;
+ if (media && style.setAttribute("media", media), style.styleSheet) style.styleSheet.cssText = css; else {
+ for (;style.firstChild; ) style.removeChild(style.firstChild);
+ style.appendChild(document.createTextNode(css));
+ }
+ }
+ function updateLink(link, options, obj) {
+ var css = obj.css, sourceMap = obj.sourceMap, autoFixUrls = void 0 === options.convertToAbsoluteUrls && sourceMap;
+ (options.convertToAbsoluteUrls || autoFixUrls) && (css = fixUrls(css)), sourceMap && (css += "\n/*# sourceMappingURL=data:application/json;base64," + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + " */");
+ var blob = new Blob([ css ], {
+ type: "text/css"
+ }), oldSrc = link.href;
+ link.href = URL.createObjectURL(blob), oldSrc && URL.revokeObjectURL(oldSrc);
+ }
+ var stylesInDom = {}, isOldIE = function(fn) {
+ var memo;
+ return function() {
+ return void 0 === memo && (memo = fn.apply(this, arguments)), memo;
+ };
+ }(function() {
+ return window && document && document.all && !window.atob;
+ }), getElement = function(fn) {
+ var memo = {};
+ return function(selector) {
+ if (void 0 === memo[selector]) {
+ var styleTarget = fn.call(this, selector);
+ if (styleTarget instanceof window.HTMLIFrameElement) try {
+ styleTarget = styleTarget.contentDocument.head;
+ } catch (e) {
+ styleTarget = null;
+ }
+ memo[selector] = styleTarget;
+ }
+ return memo[selector];
+ };
+ }(function(target) {
+ return document.querySelector(target);
+ }), singleton = null, singletonCounter = 0, stylesInsertedAtTop = [], fixUrls = __webpack_require__(8);
+ module.exports = function(list, options) {
+ if ("undefined" != typeof DEBUG && DEBUG && "object" != typeof document) throw new Error("The style-loader cannot be used in a non-browser environment");
+ (options = options || {}).attrs = "object" == typeof options.attrs ? options.attrs : {},
+ options.singleton || (options.singleton = isOldIE()), options.insertInto || (options.insertInto = "head"),
+ options.insertAt || (options.insertAt = "bottom");
+ var styles = listToStyles(list, options);
+ return addStylesToDom(styles, options), function(newList) {
+ for (var mayRemove = [], i = 0; i < styles.length; i++) {
+ var item = styles[i];
+ (domStyle = stylesInDom[item.id]).refs--, mayRemove.push(domStyle);
+ }
+ newList && addStylesToDom(listToStyles(newList, options), options);
+ for (i = 0; i < mayRemove.length; i++) {
+ var domStyle = mayRemove[i];
+ if (0 === domStyle.refs) {
+ for (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();
+ delete stylesInDom[domStyle.id];
+ }
+ }
+ };
+ };
+ var replaceText = function() {
+ var textStore = [];
+ return function(index, replacement) {
+ return textStore[index] = replacement, textStore.filter(Boolean).join("\n");
+ };
+ }();
+}, function(module, exports) {
+ module.exports = function(css) {
+ var location = "undefined" != typeof window && window.location;
+ if (!location) throw new Error("fixUrls requires window.location");
+ if (!css || "string" != typeof css) return css;
+ var baseUrl = location.protocol + "//" + location.host, currentDir = baseUrl + location.pathname.replace(/\/[^\/]*$/, "/");
+ return css.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi, function(fullMatch, origUrl) {
+ var unquotedOrigUrl = origUrl.trim().replace(/^"(.*)"$/, function(o, $1) {
+ return $1;
+ }).replace(/^'(.*)'$/, function(o, $1) {
+ return $1;
+ });
+ if (/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(unquotedOrigUrl)) return fullMatch;
+ var newUrl;
+ return newUrl = 0 === unquotedOrigUrl.indexOf("//") ? unquotedOrigUrl : 0 === unquotedOrigUrl.indexOf("/") ? baseUrl + unquotedOrigUrl : currentDir + unquotedOrigUrl.replace(/^\.\//, ""),
+ "url(" + JSON.stringify(newUrl) + ")";
+ });
+ };
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask) {
+ function isLeapYear(year) {
+ return isNaN(year) || 29 === new Date(year, 2, 0).getDate();
+ }
+ return Inputmask.extendAliases({
+ "dd/mm/yyyy": {
+ mask: "1/2/y",
+ placeholder: "dd/mm/yyyy",
+ regex: {
+ val1pre: new RegExp("[0-3]"),
+ val1: new RegExp("0[1-9]|[12][0-9]|3[01]"),
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|[12][0-9]|3[01])" + escapedSeparator + "[01])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|[12][0-9])" + escapedSeparator + "(0[1-9]|1[012]))|(30" + escapedSeparator + "(0[13-9]|1[012]))|(31" + escapedSeparator + "(0[13578]|1[02]))");
+ }
+ },
+ leapday: "29/02/",
+ separator: "/",
+ yearrange: {
+ minyear: 1900,
+ maxyear: 2099
+ },
+ isInYearRange: function(chrs, minyear, maxyear) {
+ if (isNaN(chrs)) return !1;
+ var enteredyear = parseInt(chrs.concat(minyear.toString().slice(chrs.length))), enteredyear2 = parseInt(chrs.concat(maxyear.toString().slice(chrs.length)));
+ return !isNaN(enteredyear) && (minyear <= enteredyear && enteredyear <= maxyear) || !isNaN(enteredyear2) && (minyear <= enteredyear2 && enteredyear2 <= maxyear);
+ },
+ determinebaseyear: function(minyear, maxyear, hint) {
+ var currentyear = new Date().getFullYear();
+ if (minyear > currentyear) return minyear;
+ if (maxyear < currentyear) {
+ for (var maxYearPrefix = maxyear.toString().slice(0, 2), maxYearPostfix = maxyear.toString().slice(2, 4); maxyear < maxYearPrefix + hint; ) maxYearPrefix--;
+ var maxxYear = maxYearPrefix + maxYearPostfix;
+ return minyear > maxxYear ? minyear : maxxYear;
+ }
+ if (minyear <= currentyear && currentyear <= maxyear) {
+ for (var currentYearPrefix = currentyear.toString().slice(0, 2); maxyear < currentYearPrefix + hint; ) currentYearPrefix--;
+ var currentYearAndHint = currentYearPrefix + hint;
+ return currentYearAndHint < minyear ? minyear : currentYearAndHint;
+ }
+ return currentyear;
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val(today.getDate().toString() + (today.getMonth() + 1).toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ },
+ getFrontValue: function(mask, buffer, opts) {
+ for (var start = 0, length = 0, i = 0; i < mask.length && "2" !== mask.charAt(i); i++) {
+ var definition = opts.definitions[mask.charAt(i)];
+ definition ? (start += length, length = definition.cardinality) : length++;
+ }
+ return buffer.join("").substr(start, length);
+ },
+ postValidation: function(buffer, currentResult, opts) {
+ var dayMonthValue, year, bufferStr = buffer.join("");
+ return 0 === opts.mask.indexOf("y") ? (year = bufferStr.substr(0, 4), dayMonthValue = bufferStr.substring(4, 10)) : (year = bufferStr.substring(6, 10),
+ dayMonthValue = bufferStr.substr(0, 6)), currentResult && (dayMonthValue !== opts.leapday || isLeapYear(year));
+ },
+ definitions: {
+ "1": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.val1.test(chrs);
+ return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val1.test("0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
+ {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ pos: pos,
+ c: chrs.charAt(0)
+ });
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var pchrs = chrs;
+ isNaN(maskset.buffer[pos + 1]) || (pchrs += maskset.buffer[pos + 1]);
+ var isValid = 1 === pchrs.length ? opts.regex.val1pre.test(pchrs) : opts.regex.val1.test(pchrs);
+ if (isValid && maskset.validPositions[pos] && (opts.regex.val2(opts.separator).test(chrs + maskset.validPositions[pos].input) || (maskset.validPositions[pos].input = "0" === chrs ? "1" : "0")),
+ !strict && !isValid) {
+ if (isValid = opts.regex.val1.test(chrs + "0")) return maskset.buffer[pos] = chrs,
+ maskset.buffer[++pos] = "0", {
+ pos: pos,
+ c: "0"
+ };
+ if (isValid = opts.regex.val1.test("0" + chrs)) return maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 1
+ } ]
+ },
+ "2": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
+ -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator);
+ var isValid = opts.regex.val2(opts.separator).test(frontValue + chrs);
+ return strict || isValid || chrs.charAt(1) !== opts.separator && -1 === "-./".indexOf(chrs.charAt(1)) || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs.charAt(0))) ? isValid : (maskset.buffer[pos - 1] = "0",
+ {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ pos: pos,
+ c: chrs.charAt(0)
+ });
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ isNaN(maskset.buffer[pos + 1]) || (chrs += maskset.buffer[pos + 1]);
+ var frontValue = opts.getFrontValue(maskset.mask, maskset.buffer, opts);
+ -1 !== frontValue.indexOf(opts.placeholder[0]) && (frontValue = "01" + opts.separator);
+ var isValid = 1 === chrs.length ? opts.regex.val2pre(opts.separator).test(frontValue + chrs) : opts.regex.val2(opts.separator).test(frontValue + chrs);
+ return isValid && maskset.validPositions[pos] && (opts.regex.val2(opts.separator).test(chrs + maskset.validPositions[pos].input) || (maskset.validPositions[pos].input = "0" === chrs ? "1" : "0")),
+ strict || isValid || !(isValid = opts.regex.val2(opts.separator).test(frontValue + "0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ y: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ },
+ cardinality: 4,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ if (!strict && !isValid) {
+ var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 1);
+ if (isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
+ {
+ pos: pos
+ };
+ if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs + "0").toString().slice(0, 2),
+ isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(0),
+ maskset.buffer[pos++] = yearPrefix.charAt(1), {
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 1
+ }, {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ if (!strict && !isValid) {
+ var yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2);
+ if (isValid = opts.isInYearRange(chrs[0] + yearPrefix[1] + chrs[1], opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos++] = yearPrefix.charAt(1),
+ {
+ pos: pos
+ };
+ if (yearPrefix = opts.determinebaseyear(opts.yearrange.minyear, opts.yearrange.maxyear, chrs).toString().slice(0, 2),
+ isValid = opts.isInYearRange(yearPrefix + chrs, opts.yearrange.minyear, opts.yearrange.maxyear)) return maskset.buffer[pos - 1] = yearPrefix.charAt(0),
+ maskset.buffer[pos++] = yearPrefix.charAt(1), maskset.buffer[pos++] = chrs.charAt(0),
+ {
+ refreshFromBuffer: {
+ start: pos - 3,
+ end: pos
+ },
+ pos: pos
+ };
+ }
+ return isValid;
+ },
+ cardinality: 2
+ }, {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.isInYearRange(chrs, opts.yearrange.minyear, opts.yearrange.maxyear);
+ },
+ cardinality: 3
+ } ]
+ }
+ },
+ insertMode: !1,
+ autoUnmask: !1
+ },
+ "mm/dd/yyyy": {
+ placeholder: "mm/dd/yyyy",
+ alias: "dd/mm/yyyy",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ leapday: "02/29/",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "yyyy/mm/dd": {
+ mask: "y/1/2",
+ placeholder: "yyyy/mm/dd",
+ alias: "mm/dd/yyyy",
+ leapday: "/02/29",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val(today.getFullYear().toString() + (today.getMonth() + 1).toString() + today.getDate().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "dd.mm.yyyy": {
+ mask: "1.2.y",
+ placeholder: "dd.mm.yyyy",
+ leapday: "29.02.",
+ separator: ".",
+ alias: "dd/mm/yyyy"
+ },
+ "dd-mm-yyyy": {
+ mask: "1-2-y",
+ placeholder: "dd-mm-yyyy",
+ leapday: "29-02-",
+ separator: "-",
+ alias: "dd/mm/yyyy"
+ },
+ "mm.dd.yyyy": {
+ mask: "1.2.y",
+ placeholder: "mm.dd.yyyy",
+ leapday: "02.29.",
+ separator: ".",
+ alias: "mm/dd/yyyy"
+ },
+ "mm-dd-yyyy": {
+ mask: "1-2-y",
+ placeholder: "mm-dd-yyyy",
+ leapday: "02-29-",
+ separator: "-",
+ alias: "mm/dd/yyyy"
+ },
+ "yyyy.mm.dd": {
+ mask: "y.1.2",
+ placeholder: "yyyy.mm.dd",
+ leapday: ".02.29",
+ separator: ".",
+ alias: "yyyy/mm/dd"
+ },
+ "yyyy-mm-dd": {
+ mask: "y-1-2",
+ placeholder: "yyyy-mm-dd",
+ leapday: "-02-29",
+ separator: "-",
+ alias: "yyyy/mm/dd"
+ },
+ datetime: {
+ mask: "1/2/y h:s",
+ placeholder: "dd/mm/yyyy hh:mm",
+ alias: "dd/mm/yyyy",
+ regex: {
+ hrspre: new RegExp("[012]"),
+ hrs24: new RegExp("2[0-4]|1[3-9]"),
+ hrs: new RegExp("[01][0-9]|2[0-4]"),
+ ampm: new RegExp("^[a|p|A|P][m|M]"),
+ mspre: new RegExp("[0-5]"),
+ ms: new RegExp("[0-5][0-9]")
+ },
+ timeseparator: ":",
+ hourFormat: "24",
+ definitions: {
+ h: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ if ("24" === opts.hourFormat && 24 === parseInt(chrs, 10)) return maskset.buffer[pos - 1] = "0",
+ maskset.buffer[pos] = "0", {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos
+ },
+ c: "0"
+ };
+ var isValid = opts.regex.hrs.test(chrs);
+ if (!strict && !isValid && (chrs.charAt(1) === opts.timeseparator || -1 !== "-.:".indexOf(chrs.charAt(1))) && (isValid = opts.regex.hrs.test("0" + chrs.charAt(0)))) return maskset.buffer[pos - 1] = "0",
+ maskset.buffer[pos] = chrs.charAt(0), pos++, {
+ refreshFromBuffer: {
+ start: pos - 2,
+ end: pos
+ },
+ pos: pos,
+ c: opts.timeseparator
+ };
+ if (isValid && "24" !== opts.hourFormat && opts.regex.hrs24.test(chrs)) {
+ var tmp = parseInt(chrs, 10);
+ return 24 === tmp ? (maskset.buffer[pos + 5] = "a", maskset.buffer[pos + 6] = "m") : (maskset.buffer[pos + 5] = "p",
+ maskset.buffer[pos + 6] = "m"), (tmp -= 12) < 10 ? (maskset.buffer[pos] = tmp.toString(),
+ maskset.buffer[pos - 1] = "0") : (maskset.buffer[pos] = tmp.toString().charAt(1),
+ maskset.buffer[pos - 1] = tmp.toString().charAt(0)), {
+ refreshFromBuffer: {
+ start: pos - 1,
+ end: pos + 6
+ },
+ c: maskset.buffer[pos]
+ };
+ }
+ return isValid;
+ },
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.hrspre.test(chrs);
+ return strict || isValid || !(isValid = opts.regex.hrs.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ s: {
+ validator: "[0-5][0-9]",
+ cardinality: 2,
+ prevalidator: [ {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var isValid = opts.regex.mspre.test(chrs);
+ return strict || isValid || !(isValid = opts.regex.ms.test("0" + chrs)) ? isValid : (maskset.buffer[pos] = "0",
+ pos++, {
+ pos: pos
+ });
+ },
+ cardinality: 1
+ } ]
+ },
+ t: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.regex.ampm.test(chrs + "m");
+ },
+ casing: "lower",
+ cardinality: 1
+ }
+ },
+ insertMode: !1,
+ autoUnmask: !1
+ },
+ datetime12: {
+ mask: "1/2/y h:s t\\m",
+ placeholder: "dd/mm/yyyy hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "mm/dd/yyyy hh:mm xm": {
+ mask: "1/2/y h:s t\\m",
+ placeholder: "mm/dd/yyyy hh:mm xm",
+ alias: "datetime12",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ leapday: "02/29/",
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey && e.keyCode === Inputmask.keyCode.RIGHT) {
+ var today = new Date();
+ $input.val((today.getMonth() + 1).toString() + today.getDate().toString() + today.getFullYear().toString()),
+ $input.trigger("setvalue");
+ }
+ }
+ },
+ "hh:mm t": {
+ mask: "h:s t\\m",
+ placeholder: "hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "h:s t": {
+ mask: "h:s t\\m",
+ placeholder: "hh:mm xm",
+ alias: "datetime",
+ hourFormat: "12"
+ },
+ "hh:mm:ss": {
+ mask: "h:s:s",
+ placeholder: "hh:mm:ss",
+ alias: "datetime",
+ autoUnmask: !1
+ },
+ "hh:mm": {
+ mask: "h:s",
+ placeholder: "hh:mm",
+ alias: "datetime",
+ autoUnmask: !1
+ },
+ date: {
+ alias: "dd/mm/yyyy"
+ },
+ "mm/yyyy": {
+ mask: "1/y",
+ placeholder: "mm/yyyy",
+ leapday: "donotuse",
+ separator: "/",
+ alias: "mm/dd/yyyy"
+ },
+ shamsi: {
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "[0-3])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[1-9]|1[012])" + escapedSeparator + "30)|((0[1-6])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ yearrange: {
+ minyear: 1300,
+ maxyear: 1499
+ },
+ mask: "y/1/2",
+ leapday: "/12/30",
+ placeholder: "yyyy/mm/dd",
+ alias: "mm/dd/yyyy",
+ clearIncomplete: !0
+ },
+ "yyyy-mm-dd hh:mm:ss": {
+ mask: "y-1-2 h:s:s",
+ placeholder: "yyyy-mm-dd hh:mm:ss",
+ alias: "datetime",
+ separator: "-",
+ leapday: "-02-29",
+ regex: {
+ val2pre: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[13-9]|1[012])" + escapedSeparator + "[0-3])|(02" + escapedSeparator + "[0-2])");
+ },
+ val2: function(separator) {
+ var escapedSeparator = Inputmask.escapeRegex.call(this, separator);
+ return new RegExp("((0[1-9]|1[012])" + escapedSeparator + "(0[1-9]|[12][0-9]))|((0[13-9]|1[012])" + escapedSeparator + "30)|((0[13578]|1[02])" + escapedSeparator + "31)");
+ },
+ val1pre: new RegExp("[01]"),
+ val1: new RegExp("0[1-9]|1[012]")
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {}
+ }
+ }), Inputmask;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = function() {
+ return window;
+ }.call(exports, __webpack_require__, exports, module)) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = function() {
+ return document;
+ }.call(exports, __webpack_require__, exports, module)) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask) {
+ return Inputmask.extendDefinitions({
+ A: {
+ validator: "[A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ casing: "upper"
+ },
+ "&": {
+ validator: "[0-9A-Za-zА-яЁёÀ-ÿµ]",
+ cardinality: 1,
+ casing: "upper"
+ },
+ "#": {
+ validator: "[0-9A-Fa-f]",
+ cardinality: 1,
+ casing: "upper"
+ }
+ }), Inputmask.extendAliases({
+ url: {
+ definitions: {
+ i: {
+ validator: ".",
+ cardinality: 1
+ }
+ },
+ mask: "(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",
+ insertMode: !1,
+ autoUnmask: !1,
+ inputmode: "url"
+ },
+ ip: {
+ mask: "i[i[i]].i[i[i]].i[i[i]].i[i[i]]",
+ definitions: {
+ i: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return pos - 1 > -1 && "." !== maskset.buffer[pos - 1] ? (chrs = maskset.buffer[pos - 1] + chrs,
+ chrs = pos - 2 > -1 && "." !== maskset.buffer[pos - 2] ? maskset.buffer[pos - 2] + chrs : "0" + chrs) : chrs = "00" + chrs,
+ new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(chrs);
+ },
+ cardinality: 1
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue;
+ },
+ inputmode: "numeric"
+ },
+ email: {
+ mask: "*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",
+ greedy: !1,
+ onBeforePaste: function(pastedValue, opts) {
+ return (pastedValue = pastedValue.toLowerCase()).replace("mailto:", "");
+ },
+ definitions: {
+ "*": {
+ validator: "[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",
+ cardinality: 1,
+ casing: "lower"
+ },
+ "-": {
+ validator: "[0-9A-Za-z-]",
+ cardinality: 1,
+ casing: "lower"
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue;
+ },
+ inputmode: "email"
+ },
+ mac: {
+ mask: "##:##:##:##:##:##"
+ },
+ vin: {
+ mask: "V{13}9{4}",
+ definitions: {
+ V: {
+ validator: "[A-HJ-NPR-Za-hj-npr-z\\d]",
+ cardinality: 1,
+ casing: "upper"
+ }
+ },
+ clearIncomplete: !0,
+ autoUnmask: !0
+ }
+ }), Inputmask;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask, undefined) {
+ function autoEscape(txt, opts) {
+ for (var escapedTxt = "", i = 0; i < txt.length; i++) Inputmask.prototype.definitions[txt.charAt(i)] || opts.definitions[txt.charAt(i)] || opts.optionalmarker.start === txt.charAt(i) || opts.optionalmarker.end === txt.charAt(i) || opts.quantifiermarker.start === txt.charAt(i) || opts.quantifiermarker.end === txt.charAt(i) || opts.groupmarker.start === txt.charAt(i) || opts.groupmarker.end === txt.charAt(i) || opts.alternatormarker === txt.charAt(i) ? escapedTxt += "\\" + txt.charAt(i) : escapedTxt += txt.charAt(i);
+ return escapedTxt;
+ }
+ return Inputmask.extendAliases({
+ numeric: {
+ mask: function(opts) {
+ if (0 !== opts.repeat && isNaN(opts.integerDigits) && (opts.integerDigits = opts.repeat),
+ opts.repeat = 0, opts.groupSeparator === opts.radixPoint && ("." === opts.radixPoint ? opts.groupSeparator = "," : "," === opts.radixPoint ? opts.groupSeparator = "." : opts.groupSeparator = ""),
+ " " === opts.groupSeparator && (opts.skipOptionalPartCharacter = undefined), opts.autoGroup = opts.autoGroup && "" !== opts.groupSeparator,
+ opts.autoGroup && ("string" == typeof opts.groupSize && isFinite(opts.groupSize) && (opts.groupSize = parseInt(opts.groupSize)),
+ isFinite(opts.integerDigits))) {
+ var seps = Math.floor(opts.integerDigits / opts.groupSize), mod = opts.integerDigits % opts.groupSize;
+ opts.integerDigits = parseInt(opts.integerDigits) + (0 === mod ? seps - 1 : seps),
+ opts.integerDigits < 1 && (opts.integerDigits = "*");
+ }
+ opts.placeholder.length > 1 && (opts.placeholder = opts.placeholder.charAt(0)),
+ "radixFocus" === opts.positionCaretOnClick && "" === opts.placeholder && !1 === opts.integerOptional && (opts.positionCaretOnClick = "lvp"),
+ opts.definitions[";"] = opts.definitions["~"], opts.definitions[";"].definitionSymbol = "~",
+ !0 === opts.numericInput && (opts.positionCaretOnClick = "radixFocus" === opts.positionCaretOnClick ? "lvp" : opts.positionCaretOnClick,
+ opts.digitsOptional = !1, isNaN(opts.digits) && (opts.digits = 2), opts.decimalProtect = !1);
+ var mask = "[+]";
+ if (mask += autoEscape(opts.prefix, opts), !0 === opts.integerOptional ? mask += "~{1," + opts.integerDigits + "}" : mask += "~{" + opts.integerDigits + "}",
+ opts.digits !== undefined) {
+ opts.radixPointDefinitionSymbol = opts.decimalProtect ? ":" : opts.radixPoint;
+ var dq = opts.digits.toString().split(",");
+ isFinite(dq[0] && dq[1] && isFinite(dq[1])) ? mask += opts.radixPointDefinitionSymbol + ";{" + opts.digits + "}" : (isNaN(opts.digits) || parseInt(opts.digits) > 0) && (opts.digitsOptional ? mask += "[" + opts.radixPointDefinitionSymbol + ";{1," + opts.digits + "}]" : mask += opts.radixPointDefinitionSymbol + ";{" + opts.digits + "}");
+ }
+ return mask += autoEscape(opts.suffix, opts), mask += "[-]", opts.greedy = !1, mask;
+ },
+ placeholder: "",
+ greedy: !1,
+ digits: "*",
+ digitsOptional: !0,
+ enforceDigitsOnBlur: !1,
+ radixPoint: ".",
+ positionCaretOnClick: "radixFocus",
+ groupSize: 3,
+ groupSeparator: "",
+ autoGroup: !1,
+ allowMinus: !0,
+ negationSymbol: {
+ front: "-",
+ back: ""
+ },
+ integerDigits: "+",
+ integerOptional: !0,
+ prefix: "",
+ suffix: "",
+ rightAlign: !0,
+ decimalProtect: !0,
+ min: null,
+ max: null,
+ step: 1,
+ insertMode: !0,
+ autoUnmask: !1,
+ unmaskAsNumber: !1,
+ inputmode: "numeric",
+ preValidation: function(buffer, pos, c, isSelection, opts) {
+ if ("-" === c || c === opts.negationSymbol.front) return !0 === opts.allowMinus && (opts.isNegative = opts.isNegative === undefined || !opts.isNegative,
+ "" === buffer.join("") || {
+ caret: pos,
+ dopost: !0
+ });
+ if (!1 === isSelection && c === opts.radixPoint && opts.digits !== undefined && (isNaN(opts.digits) || parseInt(opts.digits) > 0)) {
+ var radixPos = $.inArray(opts.radixPoint, buffer);
+ if (-1 !== radixPos) return !0 === opts.numericInput ? pos === radixPos : {
+ caret: radixPos + 1
+ };
+ }
+ return !0;
+ },
+ postValidation: function(buffer, currentResult, opts) {
+ var suffix = opts.suffix.split(""), prefix = opts.prefix.split("");
+ if (currentResult.pos === undefined && currentResult.caret !== undefined && !0 !== currentResult.dopost) return currentResult;
+ var caretPos = currentResult.caret !== undefined ? currentResult.caret : currentResult.pos, maskedValue = buffer.slice();
+ opts.numericInput && (caretPos = maskedValue.length - caretPos - 1, maskedValue = maskedValue.reverse());
+ var charAtPos = maskedValue[caretPos];
+ if (charAtPos === opts.groupSeparator && (charAtPos = maskedValue[caretPos += 1]),
+ caretPos === maskedValue.length - opts.suffix.length - 1 && charAtPos === opts.radixPoint) return currentResult;
+ charAtPos !== undefined && charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back && (maskedValue[caretPos] = "?",
+ opts.prefix.length > 0 && caretPos >= (!1 === opts.isNegative ? 1 : 0) && caretPos < opts.prefix.length - 1 + (!1 === opts.isNegative ? 1 : 0) ? prefix[caretPos - (!1 === opts.isNegative ? 1 : 0)] = "?" : opts.suffix.length > 0 && caretPos >= maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0) && (suffix[caretPos - (maskedValue.length - opts.suffix.length - (!1 === opts.isNegative ? 1 : 0))] = "?")),
+ prefix = prefix.join(""), suffix = suffix.join("");
+ var processValue = maskedValue.join("").replace(prefix, "");
+ if (processValue = processValue.replace(suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), ""),
+ processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""),
+ isNaN(opts.placeholder) && (processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.placeholder), "g"), "")),
+ processValue.length > 1 && 1 !== processValue.indexOf(opts.radixPoint) && ("0" === charAtPos && (processValue = processValue.replace(/^\?/g, "")),
+ processValue = processValue.replace(/^0/g, "")), processValue.charAt(0) === opts.radixPoint && "" !== opts.radixPoint && !0 !== opts.numericInput && (processValue = "0" + processValue),
+ "" !== processValue) {
+ if (processValue = processValue.split(""), (!opts.digitsOptional || opts.enforceDigitsOnBlur && "blur" === currentResult.event) && isFinite(opts.digits)) {
+ var radixPosition = $.inArray(opts.radixPoint, processValue), rpb = $.inArray(opts.radixPoint, maskedValue);
+ -1 === radixPosition && (processValue.push(opts.radixPoint), radixPosition = processValue.length - 1);
+ for (var i = 1; i <= opts.digits; i++) opts.digitsOptional && (!opts.enforceDigitsOnBlur || "blur" !== currentResult.event) || processValue[radixPosition + i] !== undefined && processValue[radixPosition + i] !== opts.placeholder.charAt(0) ? -1 !== rpb && maskedValue[rpb + i] !== undefined && (processValue[radixPosition + i] = processValue[radixPosition + i] || maskedValue[rpb + i]) : processValue[radixPosition + i] = currentResult.placeholder || opts.placeholder.charAt(0);
+ }
+ if (!0 !== opts.autoGroup || "" === opts.groupSeparator || charAtPos === opts.radixPoint && currentResult.pos === undefined && !currentResult.dopost) processValue = processValue.join(""); else {
+ var addRadix = processValue[processValue.length - 1] === opts.radixPoint && currentResult.c === opts.radixPoint;
+ processValue = Inputmask(function(buffer, opts) {
+ var postMask = "";
+ if (postMask += "(" + opts.groupSeparator + "*{" + opts.groupSize + "}){*}", "" !== opts.radixPoint) {
+ var radixSplit = buffer.join("").split(opts.radixPoint);
+ radixSplit[1] && (postMask += opts.radixPoint + "*{" + radixSplit[1].match(/^\d*\??\d*/)[0].length + "}");
+ }
+ return postMask;
+ }(processValue, opts), {
+ numericInput: !0,
+ jitMasking: !0,
+ definitions: {
+ "*": {
+ validator: "[0-9?]",
+ cardinality: 1
+ }
+ }
+ }).format(processValue.join("")), addRadix && (processValue += opts.radixPoint),
+ processValue.charAt(0) === opts.groupSeparator && processValue.substr(1);
+ }
+ }
+ if (opts.isNegative && "blur" === currentResult.event && (opts.isNegative = "0" !== processValue),
+ processValue = prefix + processValue, processValue += suffix, opts.isNegative && (processValue = opts.negationSymbol.front + processValue,
+ processValue += opts.negationSymbol.back), processValue = processValue.split(""),
+ charAtPos !== undefined) if (charAtPos !== opts.radixPoint && charAtPos !== opts.negationSymbol.front && charAtPos !== opts.negationSymbol.back) (caretPos = $.inArray("?", processValue)) > -1 ? processValue[caretPos] = charAtPos : caretPos = currentResult.caret || 0; else if (charAtPos === opts.radixPoint || charAtPos === opts.negationSymbol.front || charAtPos === opts.negationSymbol.back) {
+ var newCaretPos = $.inArray(charAtPos, processValue);
+ -1 !== newCaretPos && (caretPos = newCaretPos);
+ }
+ opts.numericInput && (caretPos = processValue.length - caretPos - 1, processValue = processValue.reverse());
+ var rslt = {
+ caret: charAtPos === undefined || currentResult.pos !== undefined ? caretPos + (opts.numericInput ? -1 : 1) : caretPos,
+ buffer: processValue,
+ refreshFromBuffer: currentResult.dopost || buffer.join("") !== processValue.join("")
+ };
+ return rslt.refreshFromBuffer ? rslt : currentResult;
+ },
+ onBeforeWrite: function(e, buffer, caretPos, opts) {
+ if (e) switch (e.type) {
+ case "keydown":
+ return opts.postValidation(buffer, {
+ caret: caretPos,
+ dopost: !0
+ }, opts);
+
+ case "blur":
+ case "checkval":
+ var unmasked;
+ if (function(opts) {
+ opts.parseMinMaxOptions === undefined && (null !== opts.min && (opts.min = opts.min.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (opts.min = opts.min.replace(opts.radixPoint, ".")),
+ opts.min = isFinite(opts.min) ? parseFloat(opts.min) : NaN, isNaN(opts.min) && (opts.min = Number.MIN_VALUE)),
+ null !== opts.max && (opts.max = opts.max.toString().replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (opts.max = opts.max.replace(opts.radixPoint, ".")),
+ opts.max = isFinite(opts.max) ? parseFloat(opts.max) : NaN, isNaN(opts.max) && (opts.max = Number.MAX_VALUE)),
+ opts.parseMinMaxOptions = "done");
+ }(opts), null !== opts.min || null !== opts.max) {
+ if (unmasked = opts.onUnMask(buffer.join(""), undefined, $.extend({}, opts, {
+ unmaskAsNumber: !0
+ })), null !== opts.min && unmasked < opts.min) return opts.isNegative = opts.min < 0,
+ opts.postValidation(opts.min.toString().replace(".", opts.radixPoint).split(""), {
+ caret: caretPos,
+ dopost: !0,
+ placeholder: "0"
+ }, opts);
+ if (null !== opts.max && unmasked > opts.max) return opts.isNegative = opts.max < 0,
+ opts.postValidation(opts.max.toString().replace(".", opts.radixPoint).split(""), {
+ caret: caretPos,
+ dopost: !0,
+ placeholder: "0"
+ }, opts);
+ }
+ return opts.postValidation(buffer, {
+ caret: caretPos,
+ placeholder: "0",
+ event: "blur"
+ }, opts);
+
+ case "_checkval":
+ return {
+ caret: caretPos
+ };
+ }
+ },
+ regex: {
+ integerPart: function(opts, emptyCheck) {
+ return emptyCheck ? new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?") : new RegExp("[" + Inputmask.escapeRegex(opts.negationSymbol.front) + "+]?\\d+");
+ },
+ integerNPart: function(opts) {
+ return new RegExp("[\\d" + Inputmask.escapeRegex(opts.groupSeparator) + Inputmask.escapeRegex(opts.placeholder.charAt(0)) + "]+");
+ }
+ },
+ definitions: {
+ "~": {
+ validator: function(chrs, maskset, pos, strict, opts, isSelection) {
+ var isValid = strict ? new RegExp("[0-9" + Inputmask.escapeRegex(opts.groupSeparator) + "]").test(chrs) : new RegExp("[0-9]").test(chrs);
+ if (!0 === isValid) {
+ if (!0 !== opts.numericInput && maskset.validPositions[pos] !== undefined && "~" === maskset.validPositions[pos].match.def && !isSelection) {
+ var processValue = maskset.buffer.join(""), pvRadixSplit = (processValue = (processValue = processValue.replace(new RegExp("[-" + Inputmask.escapeRegex(opts.negationSymbol.front) + "]", "g"), "")).replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), "")).split(opts.radixPoint);
+ pvRadixSplit.length > 1 && (pvRadixSplit[1] = pvRadixSplit[1].replace(/0/g, opts.placeholder.charAt(0))),
+ "0" === pvRadixSplit[0] && (pvRadixSplit[0] = pvRadixSplit[0].replace(/0/g, opts.placeholder.charAt(0))),
+ processValue = pvRadixSplit[0] + opts.radixPoint + pvRadixSplit[1] || "";
+ var bufferTemplate = maskset._buffer.join("");
+ for (processValue === opts.radixPoint && (processValue = bufferTemplate); null === processValue.match(Inputmask.escapeRegex(bufferTemplate) + "$"); ) bufferTemplate = bufferTemplate.slice(1);
+ isValid = (processValue = (processValue = processValue.replace(bufferTemplate, "")).split(""))[pos] === undefined ? {
+ pos: pos,
+ remove: pos
+ } : {
+ pos: pos
+ };
+ }
+ } else strict || chrs !== opts.radixPoint || maskset.validPositions[pos - 1] !== undefined || (maskset.buffer[pos] = "0",
+ isValid = {
+ pos: pos + 1
+ });
+ return isValid;
+ },
+ cardinality: 1
+ },
+ "+": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.allowMinus && ("-" === chrs || chrs === opts.negationSymbol.front);
+ },
+ cardinality: 1,
+ placeholder: ""
+ },
+ "-": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ return opts.allowMinus && chrs === opts.negationSymbol.back;
+ },
+ cardinality: 1,
+ placeholder: ""
+ },
+ ":": {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ var radix = "[" + Inputmask.escapeRegex(opts.radixPoint) + "]", isValid = new RegExp(radix).test(chrs);
+ return isValid && maskset.validPositions[pos] && maskset.validPositions[pos].match.placeholder === opts.radixPoint && (isValid = {
+ caret: pos + 1
+ }), isValid;
+ },
+ cardinality: 1,
+ placeholder: function(opts) {
+ return opts.radixPoint;
+ }
+ }
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ if ("" === unmaskedValue && !0 === opts.nullable) return unmaskedValue;
+ var processValue = maskedValue.replace(opts.prefix, "");
+ return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "" !== opts.placeholder.charAt(0) && (processValue = processValue.replace(new RegExp(opts.placeholder.charAt(0), "g"), "0")),
+ opts.unmaskAsNumber ? ("" !== opts.radixPoint && -1 !== processValue.indexOf(opts.radixPoint) && (processValue = processValue.replace(Inputmask.escapeRegex.call(this, opts.radixPoint), ".")),
+ processValue = processValue.replace(new RegExp("^" + Inputmask.escapeRegex(opts.negationSymbol.front)), "-"),
+ processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.negationSymbol.back) + "$"), ""),
+ Number(processValue)) : processValue;
+ },
+ isComplete: function(buffer, opts) {
+ var maskedValue = buffer.join("");
+ if (buffer.slice().join("") !== maskedValue) return !1;
+ var processValue = maskedValue.replace(opts.prefix, "");
+ return processValue = processValue.replace(opts.suffix, ""), processValue = processValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ "," === opts.radixPoint && (processValue = processValue.replace(Inputmask.escapeRegex(opts.radixPoint), ".")),
+ isFinite(processValue);
+ },
+ onBeforeMask: function(initialValue, opts) {
+ if (opts.isNegative = undefined, initialValue = initialValue.toString().charAt(initialValue.length - 1) === opts.radixPoint ? initialValue.toString().substr(0, initialValue.length - 1) : initialValue.toString(),
+ "" !== opts.radixPoint && isFinite(initialValue)) {
+ var vs = initialValue.split("."), groupSize = "" !== opts.groupSeparator ? parseInt(opts.groupSize) : 0;
+ 2 === vs.length && (vs[0].length > groupSize || vs[1].length > groupSize || vs[0].length <= groupSize && vs[1].length < groupSize) && (initialValue = initialValue.replace(".", opts.radixPoint));
+ }
+ var kommaMatches = initialValue.match(/,/g), dotMatches = initialValue.match(/\./g);
+ if (initialValue = dotMatches && kommaMatches ? dotMatches.length > kommaMatches.length ? (initialValue = initialValue.replace(/\./g, "")).replace(",", opts.radixPoint) : kommaMatches.length > dotMatches.length ? (initialValue = initialValue.replace(/,/g, "")).replace(".", opts.radixPoint) : initialValue.indexOf(".") < initialValue.indexOf(",") ? initialValue.replace(/\./g, "") : initialValue.replace(/,/g, "") : initialValue.replace(new RegExp(Inputmask.escapeRegex(opts.groupSeparator), "g"), ""),
+ 0 === opts.digits && (-1 !== initialValue.indexOf(".") ? initialValue = initialValue.substring(0, initialValue.indexOf(".")) : -1 !== initialValue.indexOf(",") && (initialValue = initialValue.substring(0, initialValue.indexOf(",")))),
+ "" !== opts.radixPoint && isFinite(opts.digits) && -1 !== initialValue.indexOf(opts.radixPoint)) {
+ var decPart = initialValue.split(opts.radixPoint)[1].match(new RegExp("\\d*"))[0];
+ if (parseInt(opts.digits) < decPart.toString().length) {
+ var digitsFactor = Math.pow(10, parseInt(opts.digits));
+ initialValue = initialValue.replace(Inputmask.escapeRegex(opts.radixPoint), "."),
+ initialValue = (initialValue = Math.round(parseFloat(initialValue) * digitsFactor) / digitsFactor).toString().replace(".", opts.radixPoint);
+ }
+ }
+ return initialValue;
+ },
+ canClearPosition: function(maskset, position, lvp, strict, opts) {
+ var vp = maskset.validPositions[position], canClear = vp.input !== opts.radixPoint || null !== maskset.validPositions[position].match.fn && !1 === opts.decimalProtect || vp.input === opts.radixPoint && maskset.validPositions[position + 1] && null === maskset.validPositions[position + 1].match.fn || isFinite(vp.input) || position === lvp || vp.input === opts.groupSeparator || vp.input === opts.negationSymbol.front || vp.input === opts.negationSymbol.back;
+ return !canClear || "+" !== vp.match.nativeDef && "-" !== vp.match.nativeDef || (opts.isNegative = !1),
+ canClear;
+ },
+ onKeyDown: function(e, buffer, caretPos, opts) {
+ var $input = $(this);
+ if (e.ctrlKey) switch (e.keyCode) {
+ case Inputmask.keyCode.UP:
+ $input.val(parseFloat(this.inputmask.unmaskedvalue()) + parseInt(opts.step)), $input.trigger("setvalue");
+ break;
+
+ case Inputmask.keyCode.DOWN:
+ $input.val(parseFloat(this.inputmask.unmaskedvalue()) - parseInt(opts.step)), $input.trigger("setvalue");
+ }
+ }
+ },
+ currency: {
+ prefix: "$ ",
+ groupSeparator: ",",
+ alias: "numeric",
+ placeholder: "0",
+ autoGroup: !0,
+ digits: 2,
+ digitsOptional: !1,
+ clearMaskOnLostFocus: !1
+ },
+ decimal: {
+ alias: "numeric"
+ },
+ integer: {
+ alias: "numeric",
+ digits: 0,
+ radixPoint: ""
+ },
+ percentage: {
+ alias: "numeric",
+ digits: 2,
+ digitsOptional: !0,
+ radixPoint: ".",
+ placeholder: "0",
+ autoGroup: !1,
+ min: 0,
+ max: 100,
+ suffix: " %",
+ allowMinus: !1
+ }
+ }), Inputmask;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask) {
+ function maskSort(a, b) {
+ var maska = (a.mask || a).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskb = (b.mask || b).replace(/#/g, "9").replace(/\)/, "9").replace(/[+()#-]/g, ""), maskas = (a.mask || a).split("#")[0], maskbs = (b.mask || b).split("#")[0];
+ return 0 === maskbs.indexOf(maskas) ? -1 : 0 === maskas.indexOf(maskbs) ? 1 : maska.localeCompare(maskb);
+ }
+ var analyseMaskBase = Inputmask.prototype.analyseMask;
+ return Inputmask.prototype.analyseMask = function(mask, regexMask, opts) {
+ function reduceVariations(masks, previousVariation, previousmaskGroup) {
+ previousVariation = previousVariation || "", previousmaskGroup = previousmaskGroup || maskGroups,
+ "" !== previousVariation && (previousmaskGroup[previousVariation] = {});
+ for (var variation = "", maskGroup = previousmaskGroup[previousVariation] || previousmaskGroup, i = masks.length - 1; i >= 0; i--) maskGroup[variation = (mask = masks[i].mask || masks[i]).substr(0, 1)] = maskGroup[variation] || [],
+ maskGroup[variation].unshift(mask.substr(1)), masks.splice(i, 1);
+ for (var ndx in maskGroup) maskGroup[ndx].length > 500 && reduceVariations(maskGroup[ndx].slice(), ndx, maskGroup);
+ }
+ function rebuild(maskGroup) {
+ var mask = "", submasks = [];
+ for (var ndx in maskGroup) $.isArray(maskGroup[ndx]) ? 1 === maskGroup[ndx].length ? submasks.push(ndx + maskGroup[ndx]) : submasks.push(ndx + opts.groupmarker.start + maskGroup[ndx].join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end) : submasks.push(ndx + rebuild(maskGroup[ndx]));
+ return 1 === submasks.length ? mask += submasks[0] : mask += opts.groupmarker.start + submasks.join(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start) + opts.groupmarker.end,
+ mask;
+ }
+ var maskGroups = {};
+ return opts.phoneCodes && (opts.phoneCodes && opts.phoneCodes.length > 1e3 && (reduceVariations((mask = mask.substr(1, mask.length - 2)).split(opts.groupmarker.end + opts.alternatormarker + opts.groupmarker.start)),
+ mask = rebuild(maskGroups)), mask = mask.replace(/9/g, "\\9")), analyseMaskBase.call(this, mask, regexMask, opts);
+ }, Inputmask.extendAliases({
+ abstractphone: {
+ groupmarker: {
+ start: "<",
+ end: ">"
+ },
+ countrycode: "",
+ phoneCodes: [],
+ mask: function(opts) {
+ return opts.definitions = {
+ "#": Inputmask.prototype.definitions[9]
+ }, opts.phoneCodes.sort(maskSort);
+ },
+ keepStatic: !0,
+ onBeforeMask: function(value, opts) {
+ var processedValue = value.replace(/^0{1,2}/, "").replace(/[\s]/g, "");
+ return (processedValue.indexOf(opts.countrycode) > 1 || -1 === processedValue.indexOf(opts.countrycode)) && (processedValue = "+" + opts.countrycode + processedValue),
+ processedValue;
+ },
+ onUnMask: function(maskedValue, unmaskedValue, opts) {
+ return maskedValue.replace(/[()#-]/g, "");
+ },
+ inputmode: "tel"
+ }
+ }), Inputmask;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;
+ "function" == typeof Symbol && Symbol.iterator;
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(0), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask) {
+ return Inputmask.extendAliases({
+ Regex: {
+ mask: "r",
+ greedy: !1,
+ repeat: "*",
+ regex: null,
+ regexTokens: null,
+ tokenizer: /\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,
+ quantifierFilter: /[0-9]+[^,]/,
+ isComplete: function(buffer, opts) {
+ return new RegExp(opts.regex, opts.casing ? "i" : "").test(buffer.join(""));
+ },
+ definitions: {
+ r: {
+ validator: function(chrs, maskset, pos, strict, opts) {
+ function RegexToken(isGroup, isQuantifier) {
+ this.matches = [], this.isGroup = isGroup || !1, this.isQuantifier = isQuantifier || !1,
+ this.quantifier = {
+ min: 1,
+ max: 1
+ }, this.repeaterPart = void 0;
+ }
+ function validateRegexToken(token, fromGroup) {
+ var isvalid = !1;
+ fromGroup && (regexPart += "(", openGroupCount++);
+ for (var mndx = 0; mndx < token.matches.length; mndx++) {
+ var matchToken = token.matches[mndx];
+ if (!0 === matchToken.isGroup) isvalid = validateRegexToken(matchToken, !0); else if (!0 === matchToken.isQuantifier) {
+ var crrntndx = $.inArray(matchToken, token.matches), matchGroup = token.matches[crrntndx - 1], regexPartBak = regexPart;
+ if (isNaN(matchToken.quantifier.max)) {
+ for (;matchToken.repeaterPart && matchToken.repeaterPart !== regexPart && matchToken.repeaterPart.length > regexPart.length && !(isvalid = validateRegexToken(matchGroup, !0)); ) ;
+ (isvalid = isvalid || validateRegexToken(matchGroup, !0)) && (matchToken.repeaterPart = regexPart),
+ regexPart = regexPartBak + matchToken.quantifier.max;
+ } else {
+ for (var i = 0, qm = matchToken.quantifier.max - 1; i < qm && !(isvalid = validateRegexToken(matchGroup, !0)); i++) ;
+ regexPart = regexPartBak + "{" + matchToken.quantifier.min + "," + matchToken.quantifier.max + "}";
+ }
+ } else if (void 0 !== matchToken.matches) for (var k = 0; k < matchToken.length && !(isvalid = validateRegexToken(matchToken[k], fromGroup)); k++) ; else {
+ var testExp;
+ if ("[" == matchToken.charAt(0)) {
+ testExp = regexPart, testExp += matchToken;
+ for (j = 0; j < openGroupCount; j++) testExp += ")";
+ isvalid = (exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "")).test(bufferStr);
+ } else for (var l = 0, tl = matchToken.length; l < tl; l++) if ("\\" !== matchToken.charAt(l)) {
+ testExp = regexPart, testExp = (testExp += matchToken.substr(0, l + 1)).replace(/\|$/, "");
+ for (var j = 0; j < openGroupCount; j++) testExp += ")";
+ var exp = new RegExp("^(" + testExp + ")$", opts.casing ? "i" : "");
+ if (isvalid = exp.test(bufferStr)) break;
+ }
+ regexPart += matchToken;
+ }
+ if (isvalid) break;
+ }
+ return fromGroup && (regexPart += ")", openGroupCount--), isvalid;
+ }
+ var bufferStr, groupToken, cbuffer = maskset.buffer.slice(), regexPart = "", isValid = !1, openGroupCount = 0;
+ null === opts.regexTokens && function() {
+ var match, m, currentToken = new RegexToken(), opengroups = [];
+ for (opts.regexTokens = []; match = opts.tokenizer.exec(opts.regex); ) switch ((m = match[0]).charAt(0)) {
+ case "(":
+ opengroups.push(new RegexToken(!0));
+ break;
+
+ case ")":
+ groupToken = opengroups.pop(), opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(groupToken) : currentToken.matches.push(groupToken);
+ break;
+
+ case "{":
+ case "+":
+ case "*":
+ var quantifierToken = new RegexToken(!1, !0), mq = (m = m.replace(/[{}]/g, "")).split(","), mq0 = isNaN(mq[0]) ? mq[0] : parseInt(mq[0]), mq1 = 1 === mq.length ? mq0 : isNaN(mq[1]) ? mq[1] : parseInt(mq[1]);
+ if (quantifierToken.quantifier = {
+ min: mq0,
+ max: mq1
+ }, opengroups.length > 0) {
+ var matches = opengroups[opengroups.length - 1].matches;
+ (match = matches.pop()).isGroup || ((groupToken = new RegexToken(!0)).matches.push(match),
+ match = groupToken), matches.push(match), matches.push(quantifierToken);
+ } else (match = currentToken.matches.pop()).isGroup || ((groupToken = new RegexToken(!0)).matches.push(match),
+ match = groupToken), currentToken.matches.push(match), currentToken.matches.push(quantifierToken);
+ break;
+
+ default:
+ opengroups.length > 0 ? opengroups[opengroups.length - 1].matches.push(m) : currentToken.matches.push(m);
+ }
+ currentToken.matches.length > 0 && opts.regexTokens.push(currentToken);
+ }(), cbuffer.splice(pos, 0, chrs), bufferStr = cbuffer.join("");
+ for (var i = 0; i < opts.regexTokens.length; i++) {
+ var regexToken = opts.regexTokens[i];
+ if (isValid = validateRegexToken(regexToken, regexToken.isGroup)) break;
+ }
+ return isValid;
+ },
+ cardinality: 1
+ }
+ }
+ }
+ }), Inputmask;
+ });
+}, function(module, exports, __webpack_require__) {
+ "use strict";
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__, _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
+ return typeof obj;
+ } : function(obj) {
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
+ };
+ !function(factory) {
+ __WEBPACK_AMD_DEFINE_ARRAY__ = [ __webpack_require__(2), __webpack_require__(1) ],
+ void 0 !== (__WEBPACK_AMD_DEFINE_RESULT__ = "function" == typeof (__WEBPACK_AMD_DEFINE_FACTORY__ = factory) ? __WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__) : __WEBPACK_AMD_DEFINE_FACTORY__) && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__);
+ }(function($, Inputmask) {
+ return void 0 === $.fn.inputmask && ($.fn.inputmask = function(fn, options) {
+ var nptmask, input = this[0];
+ if (void 0 === options && (options = {}), "string" == typeof fn) switch (fn) {
+ case "unmaskedvalue":
+ return input && input.inputmask ? input.inputmask.unmaskedvalue() : $(input).val();
+
+ case "remove":
+ return this.each(function() {
+ this.inputmask && this.inputmask.remove();
+ });
+
+ case "getemptymask":
+ return input && input.inputmask ? input.inputmask.getemptymask() : "";
+
+ case "hasMaskedValue":
+ return !(!input || !input.inputmask) && input.inputmask.hasMaskedValue();
+
+ case "isComplete":
+ return !input || !input.inputmask || input.inputmask.isComplete();
+
+ case "getmetadata":
+ return input && input.inputmask ? input.inputmask.getmetadata() : void 0;
+
+ case "setvalue":
+ $(input).val(options), input && void 0 === input.inputmask && $(input).triggerHandler("setvalue");
+ break;
+
+ case "option":
+ if ("string" != typeof options) return this.each(function() {
+ if (void 0 !== this.inputmask) return this.inputmask.option(options);
+ });
+ if (input && void 0 !== input.inputmask) return input.inputmask.option(options);
+ break;
+
+ default:
+ return options.alias = fn, nptmask = new Inputmask(options), this.each(function() {
+ nptmask.mask(this);
+ });
+ } else {
+ if ("object" == (void 0 === fn ? "undefined" : _typeof(fn))) return nptmask = new Inputmask(fn),
+ void 0 === fn.mask && void 0 === fn.alias ? this.each(function() {
+ if (void 0 !== this.inputmask) return this.inputmask.option(fn);
+ nptmask.mask(this);
+ }) : this.each(function() {
+ nptmask.mask(this);
+ });
+ if (void 0 === fn) return this.each(function() {
+ (nptmask = new Inputmask(options)).mask(this);
+ });
+ }
+ }), $.fn.inputmask;
+ });
+} ]); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.date.extensions.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.date.extensions.min.js
new file mode 100644
index 0000000..55744a2
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.date.extensions.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.date.extensions.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./inputmask"],e):"object"==typeof exports?module.exports=e(require("./dependencyLibs/inputmask.dependencyLib"),require("./inputmask")):e(window.dependencyLib||jQuery,window.Inputmask)}(function(e,a){function r(e){return isNaN(e)||29===new Date(e,2,0).getDate()}return a.extendAliases({"dd/mm/yyyy":{mask:"1/2/y",placeholder:"dd/mm/yyyy",regex:{val1pre:new RegExp("[0-3]"),val1:new RegExp("0[1-9]|[12][0-9]|3[01]"),val2pre:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|[12][0-9]|3[01])"+r+"[01])")},val2:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|[12][0-9])"+r+"(0[1-9]|1[012]))|(30"+r+"(0[13-9]|1[012]))|(31"+r+"(0[13578]|1[02]))")}},leapday:"29/02/",separator:"/",yearrange:{minyear:1900,maxyear:2099},isInYearRange:function(e,a,r){if(isNaN(e))return!1;var t=parseInt(e.concat(a.toString().slice(e.length))),n=parseInt(e.concat(r.toString().slice(e.length)));return!isNaN(t)&&(a<=t&&t<=r)||!isNaN(n)&&(a<=n&&n<=r)},determinebaseyear:function(e,a,r){var t=(new Date).getFullYear();if(e>t)return e;if(a<t){for(var n=a.toString().slice(0,2),y=a.toString().slice(2,4);a<n+r;)n--;var i=n+y;return e>i?e:i}if(e<=t&&t<=a){for(var s=t.toString().slice(0,2);a<s+r;)s--;var o=s+r;return o<e?e:o}return t},onKeyDown:function(r,t,n,y){var i=e(this);if(r.ctrlKey&&r.keyCode===a.keyCode.RIGHT){var s=new Date;i.val(s.getDate().toString()+(s.getMonth()+1).toString()+s.getFullYear().toString()),i.trigger("setvalue")}},getFrontValue:function(e,a,r){for(var t=0,n=0,y=0;y<e.length&&"2"!==e.charAt(y);y++){var i=r.definitions[e.charAt(y)];i?(t+=n,n=i.cardinality):n++}return a.join("").substr(t,n)},postValidation:function(e,a,t){var n,y,i=e.join("");return 0===t.mask.indexOf("y")?(y=i.substr(0,4),n=i.substring(4,10)):(y=i.substring(6,10),n=i.substr(0,6)),a&&(n!==t.leapday||r(y))},definitions:{1:{validator:function(e,a,r,t,n){var y=n.regex.val1.test(e);return t||y||e.charAt(1)!==n.separator&&-1==="-./".indexOf(e.charAt(1))||!(y=n.regex.val1.test("0"+e.charAt(0)))?y:(a.buffer[r-1]="0",{refreshFromBuffer:{start:r-1,end:r},pos:r,c:e.charAt(0)})},cardinality:2,prevalidator:[{validator:function(e,a,r,t,n){var y=e;isNaN(a.buffer[r+1])||(y+=a.buffer[r+1]);var i=1===y.length?n.regex.val1pre.test(y):n.regex.val1.test(y);if(i&&a.validPositions[r]&&(n.regex.val2(n.separator).test(e+a.validPositions[r].input)||(a.validPositions[r].input="0"===e?"1":"0")),!t&&!i){if(i=n.regex.val1.test(e+"0"))return a.buffer[r]=e,a.buffer[++r]="0",{pos:r,c:"0"};if(i=n.regex.val1.test("0"+e))return a.buffer[r]="0",r++,{pos:r}}return i},cardinality:1}]},2:{validator:function(e,a,r,t,n){var y=n.getFrontValue(a.mask,a.buffer,n);-1!==y.indexOf(n.placeholder[0])&&(y="01"+n.separator);var i=n.regex.val2(n.separator).test(y+e);return t||i||e.charAt(1)!==n.separator&&-1==="-./".indexOf(e.charAt(1))||!(i=n.regex.val2(n.separator).test(y+"0"+e.charAt(0)))?i:(a.buffer[r-1]="0",{refreshFromBuffer:{start:r-1,end:r},pos:r,c:e.charAt(0)})},cardinality:2,prevalidator:[{validator:function(e,a,r,t,n){isNaN(a.buffer[r+1])||(e+=a.buffer[r+1]);var y=n.getFrontValue(a.mask,a.buffer,n);-1!==y.indexOf(n.placeholder[0])&&(y="01"+n.separator);var i=1===e.length?n.regex.val2pre(n.separator).test(y+e):n.regex.val2(n.separator).test(y+e);return i&&a.validPositions[r]&&(n.regex.val2(n.separator).test(e+a.validPositions[r].input)||(a.validPositions[r].input="0"===e?"1":"0")),t||i||!(i=n.regex.val2(n.separator).test(y+"0"+e))?i:(a.buffer[r]="0",r++,{pos:r})},cardinality:1}]},y:{validator:function(e,a,r,t,n){return n.isInYearRange(e,n.yearrange.minyear,n.yearrange.maxyear)},cardinality:4,prevalidator:[{validator:function(e,a,r,t,n){var y=n.isInYearRange(e,n.yearrange.minyear,n.yearrange.maxyear);if(!t&&!y){var i=n.determinebaseyear(n.yearrange.minyear,n.yearrange.maxyear,e+"0").toString().slice(0,1);if(y=n.isInYearRange(i+e,n.yearrange.minyear,n.yearrange.maxyear))return a.buffer[r++]=i.charAt(0),{pos:r};if(i=n.determinebaseyear(n.yearrange.minyear,n.yearrange.maxyear,e+"0").toString().slice(0,2),y=n.isInYearRange(i+e,n.yearrange.minyear,n.yearrange.maxyear))return a.buffer[r++]=i.charAt(0),a.buffer[r++]=i.charAt(1),{pos:r}}return y},cardinality:1},{validator:function(e,a,r,t,n){var y=n.isInYearRange(e,n.yearrange.minyear,n.yearrange.maxyear);if(!t&&!y){var i=n.determinebaseyear(n.yearrange.minyear,n.yearrange.maxyear,e).toString().slice(0,2);if(y=n.isInYearRange(e[0]+i[1]+e[1],n.yearrange.minyear,n.yearrange.maxyear))return a.buffer[r++]=i.charAt(1),{pos:r};if(i=n.determinebaseyear(n.yearrange.minyear,n.yearrange.maxyear,e).toString().slice(0,2),y=n.isInYearRange(i+e,n.yearrange.minyear,n.yearrange.maxyear))return a.buffer[r-1]=i.charAt(0),a.buffer[r++]=i.charAt(1),a.buffer[r++]=e.charAt(0),{refreshFromBuffer:{start:r-3,end:r},pos:r}}return y},cardinality:2},{validator:function(e,a,r,t,n){return n.isInYearRange(e,n.yearrange.minyear,n.yearrange.maxyear)},cardinality:3}]}},insertMode:!1,autoUnmask:!1},"mm/dd/yyyy":{placeholder:"mm/dd/yyyy",alias:"dd/mm/yyyy",regex:{val2pre:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+r+"[0-3])|(02"+r+"[0-2])")},val2:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+r+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+r+"30)|((0[13578]|1[02])"+r+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(r,t,n,y){var i=e(this);if(r.ctrlKey&&r.keyCode===a.keyCode.RIGHT){var s=new Date;i.val((s.getMonth()+1).toString()+s.getDate().toString()+s.getFullYear().toString()),i.trigger("setvalue")}}},"yyyy/mm/dd":{mask:"y/1/2",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",leapday:"/02/29",onKeyDown:function(r,t,n,y){var i=e(this);if(r.ctrlKey&&r.keyCode===a.keyCode.RIGHT){var s=new Date;i.val(s.getFullYear().toString()+(s.getMonth()+1).toString()+s.getDate().toString()),i.trigger("setvalue")}}},"dd.mm.yyyy":{mask:"1.2.y",placeholder:"dd.mm.yyyy",leapday:"29.02.",separator:".",alias:"dd/mm/yyyy"},"dd-mm-yyyy":{mask:"1-2-y",placeholder:"dd-mm-yyyy",leapday:"29-02-",separator:"-",alias:"dd/mm/yyyy"},"mm.dd.yyyy":{mask:"1.2.y",placeholder:"mm.dd.yyyy",leapday:"02.29.",separator:".",alias:"mm/dd/yyyy"},"mm-dd-yyyy":{mask:"1-2-y",placeholder:"mm-dd-yyyy",leapday:"02-29-",separator:"-",alias:"mm/dd/yyyy"},"yyyy.mm.dd":{mask:"y.1.2",placeholder:"yyyy.mm.dd",leapday:".02.29",separator:".",alias:"yyyy/mm/dd"},"yyyy-mm-dd":{mask:"y-1-2",placeholder:"yyyy-mm-dd",leapday:"-02-29",separator:"-",alias:"yyyy/mm/dd"},datetime:{mask:"1/2/y h:s",placeholder:"dd/mm/yyyy hh:mm",alias:"dd/mm/yyyy",regex:{hrspre:new RegExp("[012]"),hrs24:new RegExp("2[0-4]|1[3-9]"),hrs:new RegExp("[01][0-9]|2[0-4]"),ampm:new RegExp("^[a|p|A|P][m|M]"),mspre:new RegExp("[0-5]"),ms:new RegExp("[0-5][0-9]")},timeseparator:":",hourFormat:"24",definitions:{h:{validator:function(e,a,r,t,n){if("24"===n.hourFormat&&24===parseInt(e,10))return a.buffer[r-1]="0",a.buffer[r]="0",{refreshFromBuffer:{start:r-1,end:r},c:"0"};var y=n.regex.hrs.test(e);if(!t&&!y&&(e.charAt(1)===n.timeseparator||-1!=="-.:".indexOf(e.charAt(1)))&&(y=n.regex.hrs.test("0"+e.charAt(0))))return a.buffer[r-1]="0",a.buffer[r]=e.charAt(0),r++,{refreshFromBuffer:{start:r-2,end:r},pos:r,c:n.timeseparator};if(y&&"24"!==n.hourFormat&&n.regex.hrs24.test(e)){var i=parseInt(e,10);return 24===i?(a.buffer[r+5]="a",a.buffer[r+6]="m"):(a.buffer[r+5]="p",a.buffer[r+6]="m"),(i-=12)<10?(a.buffer[r]=i.toString(),a.buffer[r-1]="0"):(a.buffer[r]=i.toString().charAt(1),a.buffer[r-1]=i.toString().charAt(0)),{refreshFromBuffer:{start:r-1,end:r+6},c:a.buffer[r]}}return y},cardinality:2,prevalidator:[{validator:function(e,a,r,t,n){var y=n.regex.hrspre.test(e);return t||y||!(y=n.regex.hrs.test("0"+e))?y:(a.buffer[r]="0",r++,{pos:r})},cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:function(e,a,r,t,n){var y=n.regex.mspre.test(e);return t||y||!(y=n.regex.ms.test("0"+e))?y:(a.buffer[r]="0",r++,{pos:r})},cardinality:1}]},t:{validator:function(e,a,r,t,n){return n.regex.ampm.test(e+"m")},casing:"lower",cardinality:1}},insertMode:!1,autoUnmask:!1},datetime12:{mask:"1/2/y h:s t\\m",placeholder:"dd/mm/yyyy hh:mm xm",alias:"datetime",hourFormat:"12"},"mm/dd/yyyy hh:mm xm":{mask:"1/2/y h:s t\\m",placeholder:"mm/dd/yyyy hh:mm xm",alias:"datetime12",regex:{val2pre:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+r+"[0-3])|(02"+r+"[0-2])")},val2:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+r+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+r+"30)|((0[13578]|1[02])"+r+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(r,t,n,y){var i=e(this);if(r.ctrlKey&&r.keyCode===a.keyCode.RIGHT){var s=new Date;i.val((s.getMonth()+1).toString()+s.getDate().toString()+s.getFullYear().toString()),i.trigger("setvalue")}}},"hh:mm t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"h:s t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"hh:mm:ss":{mask:"h:s:s",placeholder:"hh:mm:ss",alias:"datetime",autoUnmask:!1},"hh:mm":{mask:"h:s",placeholder:"hh:mm",alias:"datetime",autoUnmask:!1},date:{alias:"dd/mm/yyyy"},"mm/yyyy":{mask:"1/y",placeholder:"mm/yyyy",leapday:"donotuse",separator:"/",alias:"mm/dd/yyyy"},shamsi:{regex:{val2pre:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+r+"[0-3])")},val2:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+r+"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])"+r+"30)|((0[1-6])"+r+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},yearrange:{minyear:1300,maxyear:1499},mask:"y/1/2",leapday:"/12/30",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",clearIncomplete:!0},"yyyy-mm-dd hh:mm:ss":{mask:"y-1-2 h:s:s",placeholder:"yyyy-mm-dd hh:mm:ss",alias:"datetime",separator:"-",leapday:"-02-29",regex:{val2pre:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+r+"[0-3])|(02"+r+"[0-2])")},val2:function(e){var r=a.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+r+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+r+"30)|((0[13578]|1[02])"+r+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},onKeyDown:function(e,a,r,t){}}}),a}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.extensions.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.extensions.min.js
new file mode 100644
index 0000000..eac064b
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.extensions.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.extensions.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(i){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./inputmask"],i):"object"==typeof exports?module.exports=i(require("./dependencyLibs/inputmask.dependencyLib"),require("./inputmask")):i(window.dependencyLib||jQuery,window.Inputmask)}(function(i,n){return n.extendDefinitions({A:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,casing:"upper"},"&":{validator:"[0-9A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,casing:"upper"},"#":{validator:"[0-9A-Fa-f]",cardinality:1,casing:"upper"}}),n.extendAliases({url:{definitions:{i:{validator:".",cardinality:1}},mask:"(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",insertMode:!1,autoUnmask:!1,inputmode:"url"},ip:{mask:"i[i[i]].i[i[i]].i[i[i]].i[i[i]]",definitions:{i:{validator:function(i,n,e,a,t){return e-1>-1&&"."!==n.buffer[e-1]?(i=n.buffer[e-1]+i,i=e-2>-1&&"."!==n.buffer[e-2]?n.buffer[e-2]+i:"0"+i):i="00"+i,new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(i)},cardinality:1}},onUnMask:function(i,n,e){return i},inputmode:"numeric"},email:{mask:"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",greedy:!1,onBeforePaste:function(i,n){return(i=i.toLowerCase()).replace("mailto:","")},definitions:{"*":{validator:"[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",cardinality:1,casing:"lower"},"-":{validator:"[0-9A-Za-z-]",cardinality:1,casing:"lower"}},onUnMask:function(i,n,e){return i},inputmode:"email"},mac:{mask:"##:##:##:##:##:##"},vin:{mask:"V{13}9{4}",definitions:{V:{validator:"[A-HJ-NPR-Za-hj-npr-z\\d]",cardinality:1,casing:"upper"}},clearIncomplete:!0,autoUnmask:!0}}),n}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.min.js
new file mode 100644
index 0000000..a5e7a09
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./global/window","./global/document"],e):"object"==typeof exports?module.exports=e(require("./dependencyLibs/inputmask.dependencyLib"),require("./global/window"),require("./global/document")):window.Inputmask=e(window.dependencyLib||jQuery,window,document)}(function(e,t,n,i){function a(t,n,o){if(!(this instanceof a))return new a(t,n,o);this.el=i,this.events={},this.maskset=i,this.refreshValue=!1,!0!==o&&(e.isPlainObject(t)?n=t:(n=n||{}).alias=t,this.opts=e.extend(!0,{},this.defaults,n),this.noMasksCache=n&&n.definitions!==i,this.userOptions=n||{},this.isRTL=this.opts.numericInput,r(this.opts.alias,n,this.opts))}function r(t,n,o){var s=a.prototype.aliases[t];return s?(s.alias&&r(s.alias,i,o),e.extend(!0,o,s),e.extend(!0,o,n),!0):(null===o.mask&&(o.mask=t),!1)}function o(t,n){function r(t,r,o){var s=!1;if(null!==t&&""!==t||((s=null!==o.regex)?t=(t=o.regex).replace(/^(\^)(.*)(\$)$/,"$2"):(s=!0,t=".*")),1===t.length&&!1===o.greedy&&0!==o.repeat&&(o.placeholder=""),o.repeat>0||"*"===o.repeat||"+"===o.repeat){var l="*"===o.repeat?0:"+"===o.repeat?1:o.repeat;t=o.groupmarker.start+t+o.groupmarker.end+o.quantifiermarker.start+l+","+o.repeat+o.quantifiermarker.end}var c,u=s?"regex_"+o.regex:o.numericInput?t.split("").reverse().join(""):t;return a.prototype.masksCache[u]===i||!0===n?(c={mask:t,maskToken:a.prototype.analyseMask(t,s,o),validPositions:{},_buffer:i,buffer:i,tests:{},metadata:r,maskLength:i},!0!==n&&(a.prototype.masksCache[u]=c,c=e.extend(!0,{},a.prototype.masksCache[u]))):c=e.extend(!0,{},a.prototype.masksCache[u]),c}if(e.isFunction(t.mask)&&(t.mask=t.mask(t)),e.isArray(t.mask)){if(t.mask.length>1){t.keepStatic=null===t.keepStatic||t.keepStatic;var o=t.groupmarker.start;return e.each(t.numericInput?t.mask.reverse():t.mask,function(n,a){o.length>1&&(o+=t.groupmarker.end+t.alternatormarker+t.groupmarker.start),a.mask===i||e.isFunction(a.mask)?o+=a:o+=a.mask}),o+=t.groupmarker.end,r(o,t.mask,t)}t.mask=t.mask.pop()}return t.mask&&t.mask.mask!==i&&!e.isFunction(t.mask.mask)?r(t.mask.mask,t.mask,t):r(t.mask,t.mask,t)}function s(r,o,l){function h(e,t,n){t=t||0;var a,r,o,s=[],c=0,u=v();do{!0===e&&m().validPositions[c]?(r=(o=m().validPositions[c]).match,a=o.locator.slice(),s.push(!0===n?o.input:!1===n?r.nativeDef:G(c,r))):(r=(o=y(c,a,c-1)).match,a=o.locator.slice(),(!1===l.jitMasking||c<u||"number"==typeof l.jitMasking&&isFinite(l.jitMasking)&&l.jitMasking>c)&&s.push(!1===n?r.nativeDef:G(c,r))),c++}while((W===i||c<W)&&(null!==r.fn||""!==r.def)||t>c);return""===s[s.length-1]&&s.pop(),m().maskLength=c+1,s}function m(){return o}function d(e){var t=m();t.buffer=i,!0!==e&&(t.validPositions={},t.p=0)}function v(e,t,n){var a=-1,r=-1,o=n||m().validPositions;e===i&&(e=-1);for(var s in o){var l=parseInt(s);o[l]&&(t||!0!==o[l].generatedInput)&&(l<=e&&(a=l),l>=e&&(r=l))}return-1!==a&&e-a>1||r<e?a:r}function g(t,n,a,r){var o,s=t,c=e.extend(!0,{},m().validPositions),u=!1;for(m().p=t,o=n-1;o>=s;o--)m().validPositions[o]!==i&&(!0!==a&&(!m().validPositions[o].match.optionality&&function(e){var t=m().validPositions[e];if(t!==i&&null===t.match.fn){var n=m().validPositions[e-1],a=m().validPositions[e+1];return n!==i&&a!==i}return!1}(o)||!1===l.canClearPosition(m(),o,v(),r,l))||delete m().validPositions[o]);for(d(!0),o=s+1;o<=v();){for(;m().validPositions[s]!==i;)s++;if(o<s&&(o=s+1),m().validPositions[o]===i&&O(o))o++;else{var f=y(o);!1===u&&c[s]&&c[s].match.def===f.match.def?(m().validPositions[s]=e.extend(!0,{},c[s]),m().validPositions[s].input=f.input,delete m().validPositions[o],o++):P(s,f.match.def)?!1!==M(s,f.input||G(o),!0)&&(delete m().validPositions[o],o++,u=!0):O(o)||(o++,s--),s++}}d(!0)}function k(e,t){for(var n,a=e,r=v(),o=m().validPositions[r]||E(0)[0],s=o.alternation!==i?o.locator[o.alternation].toString().split(","):[],c=0;c<a.length&&(!((n=a[c]).match&&(l.greedy&&!0!==n.match.optionalQuantifier||(!1===n.match.optionality||!1===n.match.newBlockMarker)&&!0!==n.match.optionalQuantifier)&&(o.alternation===i||o.alternation!==n.alternation||n.locator[o.alternation]!==i&&w(n.locator[o.alternation].toString().split(","),s)))||!0===t&&(null!==n.match.fn||/[0-9a-bA-Z]/.test(n.match.def)));c++);return n}function y(e,t,n){return m().validPositions[e]||k(E(e,t?t.slice():t,n))}function b(e){return m().validPositions[e]?m().validPositions[e]:E(e)[0]}function P(e,t){for(var n=!1,i=E(e),a=0;a<i.length;a++)if(i[a].match&&i[a].match.def===t){n=!0;break}return n}function E(t,n,a){function r(n,a,o,c){function f(o,c,v){function g(t,n){var i=0===e.inArray(t,n.matches);return i||e.each(n.matches,function(e,a){if(!0===a.isQuantifier&&(i=g(t,n.matches[e-1])))return!1}),i}function k(t,n,a){var r,o;if(m().validPositions[t-1]&&a&&m().tests[t])for(var s=m().validPositions[t-1].locator,l=m().tests[t][0].locator,c=0;c<a;c++)if(s[c]!==l[c])return s.slice(a+1);return(m().tests[t]||m().validPositions[t])&&e.each(m().tests[t]||[m().validPositions[t]],function(e,t){var s=a!==i?a:t.alternation,l=t.locator[s]!==i?t.locator[s].toString().indexOf(n):-1;(o===i||l<o)&&-1!==l&&(r=t,o=l)}),r?r.locator.slice((a!==i?a:r.alternation)+1):a!==i?k(t,n):i}if(u>1e4)throw"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. "+m().mask;if(u===t&&o.matches===i)return p.push({match:o,locator:c.reverse(),cd:d}),!0;if(o.matches!==i){if(o.isGroup&&v!==o){if(o=f(n.matches[e.inArray(o,n.matches)+1],c))return!0}else if(o.isOptional){var y=o;if(o=r(o,a,c,v)){if(s=p[p.length-1].match,!g(s,y))return!0;h=!0,u=t}}else if(o.isAlternator){var b,P=o,E=[],C=p.slice(),A=c.length,_=a.length>0?a.shift():-1;if(-1===_||"string"==typeof _){var x,w=u,M=a.slice(),O=[];if("string"==typeof _)O=_.split(",");else for(x=0;x<P.matches.length;x++)O.push(x);for(var S=0;S<O.length;S++){if(x=parseInt(O[S]),p=[],a=k(u,x,A)||M.slice(),!0!==(o=f(P.matches[x]||n.matches[x],[x].concat(c),v)||o)&&o!==i&&O[O.length-1]<P.matches.length){var D=e.inArray(o,n.matches)+1;n.matches.length>D&&(o=f(n.matches[D],[D].concat(c.slice(1,c.length)),v))&&(O.push(D.toString()),e.each(p,function(e,t){t.alternation=c.length-1}))}b=p.slice(),u=w,p=[];for(var j=0;j<b.length;j++){var T=b[j],G=!1;T.alternation=T.alternation||A;for(var L=0;L<E.length;L++){var B=E[L];if("string"!=typeof _||-1!==e.inArray(T.locator[T.alternation].toString(),O)){if(function(e,t){return e.match.nativeDef===t.match.nativeDef||e.match.def===t.match.nativeDef||e.match.nativeDef===t.match.def}(T,B)){G=!0,T.alternation===B.alternation&&-1===B.locator[B.alternation].toString().indexOf(T.locator[T.alternation])&&(B.locator[B.alternation]=B.locator[B.alternation]+","+T.locator[T.alternation],B.alternation=T.alternation),T.match.nativeDef===B.match.def&&(T.locator[T.alternation]=B.locator[B.alternation],E.splice(E.indexOf(B),1,T));break}if(T.match.def===B.match.def){G=!1;break}if(function(e,n){return null===e.match.fn&&null!==n.match.fn&&n.match.fn.test(e.match.def,m(),t,!1,l,!1)}(T,B)||function(e,n){return null!==e.match.fn&&null!==n.match.fn&&n.match.fn.test(e.match.def.replace(/[\[\]]/g,""),m(),t,!1,l,!1)}(T,B)){T.alternation===B.alternation&&-1===T.locator[T.alternation].toString().indexOf(B.locator[B.alternation].toString().split("")[0])&&(T.na=T.na||T.locator[T.alternation].toString(),-1===T.na.indexOf(T.locator[T.alternation].toString().split("")[0])&&(T.na=T.na+","+T.locator[B.alternation].toString().split("")[0]),G=!0,T.locator[T.alternation]=B.locator[B.alternation].toString().split("")[0]+","+T.locator[T.alternation],E.splice(E.indexOf(B),0,T));break}}}G||E.push(T)}}"string"==typeof _&&(E=e.map(E,function(t,n){if(isFinite(n)){var a=t.alternation,r=t.locator[a].toString().split(",");t.locator[a]=i,t.alternation=i;for(var o=0;o<r.length;o++)-1!==e.inArray(r[o],O)&&(t.locator[a]!==i?(t.locator[a]+=",",t.locator[a]+=r[o]):t.locator[a]=parseInt(r[o]),t.alternation=a);if(t.locator[a]!==i)return t}})),p=C.concat(E),u=t,h=p.length>0,o=E.length>0,a=M.slice()}else o=f(P.matches[_]||n.matches[_],[_].concat(c),v);if(o)return!0}else if(o.isQuantifier&&v!==n.matches[e.inArray(o,n.matches)-1])for(var I=o,F=a.length>0?a.shift():0;F<(isNaN(I.quantifier.max)?F+1:I.quantifier.max)&&u<=t;F++){var N=n.matches[e.inArray(I,n.matches)-1];if(o=f(N,[F].concat(c),N)){if(s=p[p.length-1].match,s.optionalQuantifier=F>I.quantifier.min-1,g(s,N)){if(F>I.quantifier.min-1){h=!0,u=t;break}return!0}return!0}}else if(o=r(o,a,c,v))return!0}else u++}for(var v=a.length>0?a.shift():0;v<n.matches.length;v++)if(!0!==n.matches[v].isQuantifier){var g=f(n.matches[v],[v].concat(o),c);if(g&&u===t)return g;if(u>t)break}}function o(e){if(l.keepStatic&&t>0&&e.length>1+(""===e[e.length-1].match.def?1:0)&&!0!==e[0].match.optionality&&!0!==e[0].match.optionalQuantifier&&null===e[0].match.fn&&!/[0-9a-bA-Z]/.test(e[0].match.def)){if(m().validPositions[t-1]===i)return[k(e)];if(m().validPositions[t-1].alternation===e[0].alternation)return[k(e)];if(m().validPositions[t-1])return[k(e)]}return e}var s,c=m().maskToken,u=n?a:0,f=n?n.slice():[0],p=[],h=!1,d=n?n.join(""):"";if(t>-1){if(n===i){for(var v,g=t-1;(v=m().validPositions[g]||m().tests[g])===i&&g>-1;)g--;v!==i&&g>-1&&(f=function(t){var n=[];return e.isArray(t)||(t=[t]),t.length>0&&(t[0].alternation===i?0===(n=k(t.slice()).locator.slice()).length&&(n=t[0].locator.slice()):e.each(t,function(e,t){if(""!==t.def)if(0===n.length)n=t.locator.slice();else for(var i=0;i<n.length;i++)t.locator[i]&&-1===n[i].toString().indexOf(t.locator[i])&&(n[i]+=","+t.locator[i])})),n}(v),d=f.join(""),u=g)}if(m().tests[t]&&m().tests[t][0].cd===d)return o(m().tests[t]);for(var y=f.shift();y<c.length&&!(r(c[y],f,[y])&&u===t||u>t);y++);}return(0===p.length||h)&&p.push({match:{fn:null,cardinality:0,optionality:!0,casing:null,def:"",placeholder:""},locator:[],cd:d}),n!==i&&m().tests[t]?o(e.extend(!0,[],p)):(m().tests[t]=e.extend(!0,[],p),o(m().tests[t]))}function C(){return m()._buffer===i&&(m()._buffer=h(!1,1),m().buffer===i&&(m().buffer=m()._buffer.slice())),m()._buffer}function A(e){return m().buffer!==i&&!0!==e||(m().buffer=h(!0,v(),!0)),m().buffer}function _(e,t,n){var a,r;if(!0===e)d(),e=0,t=n.length;else for(a=e;a<t;a++)delete m().validPositions[a];for(r=e,a=e;a<t;a++)if(d(!0),n[a]!==l.skipOptionalPartCharacter){var o=M(r,n[a],!0,!0);!1!==o&&(d(!0),r=o.caret!==i?o.caret:o.pos+1)}}function x(t,n,i){switch(l.casing||n.casing){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break;case"title":var r=m().validPositions[i-1];t=0===i||r&&r.input===String.fromCharCode(a.keyCode.SPACE)?t.toUpperCase():t.toLowerCase();break;default:if(e.isFunction(l.casing)){var o=Array.prototype.slice.call(arguments);o.push(m().validPositions),t=l.casing.apply(this,o)}}return t}function w(t,n,a){for(var r,o=l.greedy?n:n.slice(0,1),s=!1,c=a!==i?a.split(","):[],u=0;u<c.length;u++)-1!==(r=t.indexOf(c[u]))&&t.splice(r,1);for(var f=0;f<t.length;f++)if(-1!==e.inArray(t[f],o)){s=!0;break}return s}function M(t,n,r,o,s,c){function u(e){var t=z?e.begin-e.end>1||e.begin-e.end==1:e.end-e.begin>1||e.end-e.begin==1;return t&&0===e.begin&&e.end===m().maskLength?"full":t}function f(n,a,r){var s=!1;return e.each(E(n),function(c,f){for(var h=f.match,k=a?1:0,y="",b=h.cardinality;b>k;b--)y+=j(n-(b-1));if(a&&(y+=a),A(!0),!1!==(s=null!=h.fn?h.fn.test(y,m(),n,r,l,u(t)):(a===h.def||a===l.skipOptionalPartCharacter)&&""!==h.def&&{c:G(n,h,!0)||h.def,pos:n})){var P=s.c!==i?s.c:a;P=P===l.skipOptionalPartCharacter&&null===h.fn?G(n,h,!0)||h.def:P;var E=n,C=A();if(s.remove!==i&&(e.isArray(s.remove)||(s.remove=[s.remove]),e.each(s.remove.sort(function(e,t){return t-e}),function(e,t){g(t,t+1,!0)})),s.insert!==i&&(e.isArray(s.insert)||(s.insert=[s.insert]),e.each(s.insert.sort(function(e,t){return e-t}),function(e,t){M(t.pos,t.c,!0,o)})),s.refreshFromBuffer){var w=s.refreshFromBuffer;if(_(!0===w?w:w.start,w.end,C),s.pos===i&&s.c===i)return s.pos=v(),!1;if((E=s.pos!==i?s.pos:n)!==n)return s=e.extend(s,M(E,P,!0,o)),!1}else if(!0!==s&&s.pos!==i&&s.pos!==n&&(E=s.pos,_(n,E,A().slice()),E!==n))return s=e.extend(s,M(E,P,!0)),!1;return(!0===s||s.pos!==i||s.c!==i)&&(c>0&&d(!0),p(E,e.extend({},f,{input:x(P,h,E)}),o,u(t))||(s=!1),!1)}}),s}function p(t,n,a,r){if(r||l.insertMode&&m().validPositions[t]!==i&&a===i){var o,s=e.extend(!0,{},m().validPositions),c=v(i,!0);for(o=t;o<=c;o++)delete m().validPositions[o];m().validPositions[t]=e.extend(!0,{},n);var u,f=!0,p=m().validPositions,g=!1,k=m().maskLength;for(o=u=t;o<=c;o++){var y=s[o];if(y!==i)for(var b=u;b<m().maskLength&&(null===y.match.fn&&p[o]&&(!0===p[o].match.optionalQuantifier||!0===p[o].match.optionality)||null!=y.match.fn);){if(b++,!1===g&&s[b]&&s[b].match.def===y.match.def)m().validPositions[b]=e.extend(!0,{},s[b]),m().validPositions[b].input=y.input,h(b),u=b,f=!0;else if(P(b,y.match.def)){var E=M(b,y.input,!0,!0);f=!1!==E,u=E.caret||E.insert?v():b,g=!0}else if(!(f=!0===y.generatedInput)&&b>=m().maskLength-1)break;if(m().maskLength<k&&(m().maskLength=k),f)break}if(!f)break}if(!f)return m().validPositions=e.extend(!0,{},s),d(!0),!1}else m().validPositions[t]=e.extend(!0,{},n);return d(!0),!0}function h(t){for(var n=t-1;n>-1&&!m().validPositions[n];n--);var a,r;for(n++;n<t;n++)m().validPositions[n]===i&&(!1===l.jitMasking||l.jitMasking>n)&&(""===(r=E(n,y(n-1).locator,n-1).slice())[r.length-1].match.def&&r.pop(),(a=k(r))&&(a.match.def===l.radixPointDefinitionSymbol||!O(n,!0)||e.inArray(l.radixPoint,A())<n&&a.match.fn&&a.match.fn.test(G(n),m(),n,!1,l))&&!1!==(C=f(n,G(n,a.match,!0)||(null==a.match.fn?a.match.def:""!==G(n)?G(n):A()[n]),!0))&&(m().validPositions[C.pos||n].generatedInput=!0))}r=!0===r;var b=t;t.begin!==i&&(b=z&&!u(t)?t.end:t.begin);var C=!0,D=e.extend(!0,{},m().validPositions);if(e.isFunction(l.preValidation)&&!r&&!0!==o&&!0!==c&&(C=l.preValidation(A(),b,n,u(t),l)),!0===C){if(h(b),u(t)&&(K(i,a.keyCode.DELETE,t,!0,!0),b=m().p),b<m().maskLength&&(W===i||b<W)&&(C=f(b,n,r),(!r||!0===o)&&!1===C&&!0!==c)){var T=m().validPositions[b];if(!T||null!==T.match.fn||T.match.def!==n&&n!==l.skipOptionalPartCharacter){if((l.insertMode||m().validPositions[S(b)]===i)&&!O(b,!0))for(var L=b+1,B=S(b);L<=B;L++)if(!1!==(C=f(L,n,r))){!function(t,n){var a=m().validPositions[n];if(a)for(var r=a.locator,o=r.length,s=t;s<n;s++)if(m().validPositions[s]===i&&!O(s,!0)){var l=E(s).slice(),c=k(l,!0),u=-1;""===l[l.length-1].match.def&&l.pop(),e.each(l,function(e,t){for(var n=0;n<o;n++){if(t.locator[n]===i||!w(t.locator[n].toString().split(","),r[n].toString().split(","),t.na)){var a=r[n],s=c.locator[n],l=t.locator[n];a-s>Math.abs(a-l)&&(c=t);break}u<n&&(u=n,c=t)}}),(c=e.extend({},c,{input:G(s,c.match,!0)||c.match.def})).generatedInput=!0,p(s,c,!0),m().validPositions[n]=i,f(n,a.input,!0)}}(b,C.pos!==i?C.pos:L),b=L;break}}else C={caret:S(b)}}!1===C&&l.keepStatic&&!r&&!0!==s&&(C=function(t,n,a){var r,s,c,u,f,p,h,g,k=e.extend(!0,{},m().validPositions),y=!1,b=v();for(u=m().validPositions[b];b>=0;b--)if((c=m().validPositions[b])&&c.alternation!==i){if(r=b,s=m().validPositions[r].alternation,u.locator[c.alternation]!==c.locator[c.alternation])break;u=c}if(s!==i){g=parseInt(r);var P=u.locator[u.alternation||s]!==i?u.locator[u.alternation||s]:h[0];P.length>0&&(P=P.split(",")[0]);var C=m().validPositions[g],A=m().validPositions[g-1];e.each(E(g,A?A.locator:i,g-1),function(r,c){h=c.locator[s]?c.locator[s].toString().split(","):[];for(var u=0;u<h.length;u++){var b=[],E=0,A=0,_=!1;if(P<h[u]&&(c.na===i||-1===e.inArray(h[u],c.na.split(","))||-1===e.inArray(P.toString(),h))){m().validPositions[g]=e.extend(!0,{},c);var x=m().validPositions[g].locator;for(m().validPositions[g].locator[s]=parseInt(h[u]),null==c.match.fn?(C.input!==c.match.def&&(_=!0,!0!==C.generatedInput&&b.push(C.input)),A++,m().validPositions[g].generatedInput=!/[0-9a-bA-Z]/.test(c.match.def),m().validPositions[g].input=c.match.def):m().validPositions[g].input=C.input,f=g+1;f<v(i,!0)+1;f++)(p=m().validPositions[f])&&!0!==p.generatedInput&&/[0-9a-bA-Z]/.test(p.input)?b.push(p.input):f<t&&E++,delete m().validPositions[f];for(_&&b[0]===c.match.def&&b.shift(),d(!0),y=!0;b.length>0;){var w=b.shift();if(w!==l.skipOptionalPartCharacter&&!(y=M(v(i,!0)+1,w,!1,o,!0)))break}if(y){m().validPositions[g].locator=x;var O=v(t)+1;for(f=g+1;f<v()+1;f++)((p=m().validPositions[f])===i||null==p.match.fn)&&f<t+(A-E)&&A++;y=M((t+=A-E)>O?O:t,n,a,o,!0)}if(y)return!1;d(),m().validPositions=e.extend(!0,{},k)}}})}return y}(b,n,r)),!0===C&&(C={pos:b})}if(e.isFunction(l.postValidation)&&!1!==C&&!r&&!0!==o&&!0!==c){var I=l.postValidation(A(!0),C,l);if(I.refreshFromBuffer&&I.buffer){var F=I.refreshFromBuffer;_(!0===F?F:F.start,F.end,I.buffer)}C=!0===I?C:I}return C&&C.pos===i&&(C.pos=b),!1!==C&&!0!==c||(d(!0),m().validPositions=e.extend(!0,{},D)),C}function O(e,t){var n=y(e).match;if(""===n.def&&(n=b(e).match),null!=n.fn)return n.fn;if(!0!==t&&e>-1){var i=E(e);return i.length>1+(""===i[i.length-1].match.def?1:0)}return!1}function S(e,t){var n=m().maskLength;if(e>=n)return n;var i=e;for(E(n+1).length>1&&(h(!0,n+1,!0),n=m().maskLength);++i<n&&(!0===t&&(!0!==b(i).match.newBlockMarker||!O(i))||!0!==t&&!O(i)););return i}function D(e,t){var n,i=e;if(i<=0)return 0;for(;--i>0&&(!0===t&&!0!==b(i).match.newBlockMarker||!0!==t&&!O(i)&&((n=E(i)).length<2||2===n.length&&""===n[1].match.def)););return i}function j(e){return m().validPositions[e]===i?G(e):m().validPositions[e].input}function T(t,n,a,r,o){if(r&&e.isFunction(l.onBeforeWrite)){var s=l.onBeforeWrite.call(Z,r,n,a,l);if(s){if(s.refreshFromBuffer){var c=s.refreshFromBuffer;_(!0===c?c:c.start,c.end,s.buffer||n),n=A(!0)}a!==i&&(a=s.caret!==i?s.caret:a)}}t!==i&&(t.inputmask._valueSet(n.join("")),a===i||r!==i&&"blur"===r.type?V(t,a,0===n.length):p&&r&&"input"===r.type?setTimeout(function(){I(t,a)},0):I(t,a),!0===o&&(J=!0,e(t).trigger("input")))}function G(t,n,a){if((n=n||b(t).match).placeholder!==i||!0===a)return e.isFunction(n.placeholder)?n.placeholder(l):n.placeholder;if(null===n.fn){if(t>-1&&m().validPositions[t]===i){var r,o=E(t),s=[];if(o.length>1+(""===o[o.length-1].match.def?1:0))for(var c=0;c<o.length;c++)if(!0!==o[c].match.optionality&&!0!==o[c].match.optionalQuantifier&&(null===o[c].match.fn||r===i||!1!==o[c].match.fn.test(r.match.def,m(),t,!0,l))&&(s.push(o[c]),null===o[c].match.fn&&(r=o[c]),s.length>1&&/[0-9a-bA-Z]/.test(s[0].match.def)))return l.placeholder.charAt(t%l.placeholder.length)}return n.def}return l.placeholder.charAt(t%l.placeholder.length)}function L(t,r,o,s,c){function u(e,t){return-1!==C().slice(e,S(e)).join("").indexOf(t)&&!O(e)&&b(e).match.nativeDef===t.charAt(t.length-1)}var f=s.slice(),p="",h=-1,g=i;if(d(),o||!0===l.autoUnmask)h=S(h);else{var k=C().slice(0,S(-1)).join(""),P=f.join("").match(new RegExp("^"+a.escapeRegex(k),"g"));P&&P.length>0&&(f.splice(0,P.length*k.length),h=S(h))}if(-1===h?(m().p=S(h),h=0):m().p=h,e.each(f,function(n,a){if(a!==i)if(m().validPositions[n]===i&&f[n]===G(n)&&O(n,!0)&&!1===M(n,f[n],!0,i,i,!0))m().p++;else{var r=new e.Event("_checkval");r.which=a.charCodeAt(0),p+=a;var s=v(i,!0),c=m().validPositions[s],k=y(s+1,c?c.locator.slice():i,s);if(!u(h,p)||o||l.autoUnmask){var b=o?n:null==k.match.fn&&k.match.optionality&&s+1<m().p?s+1:m().p;g=ne.keypressEvent.call(t,r,!0,!1,o,b),h=b+1,p=""}else g=ne.keypressEvent.call(t,r,!0,!1,!0,s+1);if(!1!==g&&!o&&e.isFunction(l.onBeforeWrite)){var P=g;if(g=l.onBeforeWrite.call(Z,r,A(),g.forwardPosition,l),(g=e.extend(P,g))&&g.refreshFromBuffer){var E=g.refreshFromBuffer;_(!0===E?E:E.start,E.end,g.buffer),d(!0),g.caret&&(m().p=g.caret,g.forwardPosition=g.caret)}}}}),r){var E=i;n.activeElement===t&&g&&(E=l.numericInput?D(g.forwardPosition):g.forwardPosition),T(t,A(),E,c||new e.Event("checkval"),c&&"input"===c.type)}}function B(t){if(t){if(t.inputmask===i)return t.value;t.inputmask&&t.inputmask.refreshValue&&ne.setValueEvent.call(t)}var n=[],a=m().validPositions;for(var r in a)a[r].match&&null!=a[r].match.fn&&n.push(a[r].input);var o=0===n.length?"":(z?n.reverse():n).join("");if(e.isFunction(l.onUnMask)){var s=(z?A().slice().reverse():A()).join("");o=l.onUnMask.call(Z,s,o,l)}return o}function I(e,a,r,o){function s(e){return!0===o||!z||"number"!=typeof e||l.greedy&&""===l.placeholder||(e=A().join("").length-e),e}var u;if(a===i)return e.setSelectionRange?(a=e.selectionStart,r=e.selectionEnd):t.getSelection?(u=t.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode!==e&&u.commonAncestorContainer!==e||(a=u.startOffset,r=u.endOffset):n.selection&&n.selection.createRange&&(r=(a=0-(u=n.selection.createRange()).duplicate().moveStart("character",-e.inputmask._valueGet().length))+u.text.length),{begin:s(a),end:s(r)};if(a.begin!==i&&(r=a.end,a=a.begin),"number"==typeof a){a=s(a),r="number"==typeof(r=s(r))?r:a;var f=parseInt(((e.ownerDocument.defaultView||t).getComputedStyle?(e.ownerDocument.defaultView||t).getComputedStyle(e,null):e.currentStyle).fontSize)*r;if(e.scrollLeft=f>e.scrollWidth?f:0,c||!1!==l.insertMode||a!==r||r++,e.setSelectionRange)e.selectionStart=a,e.selectionEnd=r;else if(t.getSelection){if(u=n.createRange(),e.firstChild===i||null===e.firstChild){var p=n.createTextNode("");e.appendChild(p)}u.setStart(e.firstChild,a<e.inputmask._valueGet().length?a:e.inputmask._valueGet().length),u.setEnd(e.firstChild,r<e.inputmask._valueGet().length?r:e.inputmask._valueGet().length),u.collapse(!0);var h=t.getSelection();h.removeAllRanges(),h.addRange(u)}else e.createTextRange&&((u=e.createTextRange()).collapse(!0),u.moveEnd("character",r),u.moveStart("character",a),u.select());V(e,{begin:a,end:r})}}function F(t){var n,a,r=A(),o=r.length,s=v(),l={},c=m().validPositions[s],u=c!==i?c.locator.slice():i;for(n=s+1;n<r.length;n++)u=(a=y(n,u,n-1)).locator.slice(),l[n]=e.extend(!0,{},a);var f=c&&c.alternation!==i?c.locator[c.alternation]:i;for(n=o-1;n>s&&(((a=l[n]).match.optionality||a.match.optionalQuantifier&&a.match.newBlockMarker||f&&(f!==l[n].locator[c.alternation]&&null!=a.match.fn||null===a.match.fn&&a.locator[c.alternation]&&w(a.locator[c.alternation].toString().split(","),f.toString().split(","))&&""!==E(n)[0].def))&&r[n]===G(n,a.match));n--)o--;return t?{l:o,def:l[o]?l[o].match:i}:o}function N(e){for(var t,n=F(),a=e.length,r=m().validPositions[v()];n<a&&!O(n,!0)&&(t=r!==i?y(n,r.locator.slice(""),r):b(n))&&!0!==t.match.optionality&&(!0!==t.match.optionalQuantifier&&!0!==t.match.newBlockMarker||n+1===a&&""===(r!==i?y(n+1,r.locator.slice(""),r):b(n+1)).match.def);)n++;for(;(t=m().validPositions[n-1])&&t&&t.match.optionality&&t.input===l.skipOptionalPartCharacter;)n--;return e.splice(n),e}function R(t){if(e.isFunction(l.isComplete))return l.isComplete(t,l);if("*"===l.repeat)return i;var n=!1,a=F(!0),r=D(a.l);if(a.def===i||a.def.newBlockMarker||a.def.optionality||a.def.optionalQuantifier){n=!0;for(var o=0;o<=r;o++){var s=y(o).match;if(null!==s.fn&&m().validPositions[o]===i&&!0!==s.optionality&&!0!==s.optionalQuantifier||null===s.fn&&t[o]!==G(o,s)){n=!1;break}}}return n}function K(t,n,r,o,s){if((l.numericInput||z)&&(n===a.keyCode.BACKSPACE?n=a.keyCode.DELETE:n===a.keyCode.DELETE&&(n=a.keyCode.BACKSPACE),z)){var c=r.end;r.end=r.begin,r.begin=c}n===a.keyCode.BACKSPACE&&(r.end-r.begin<1||!1===l.insertMode)?(r.begin=D(r.begin),m().validPositions[r.begin]!==i&&m().validPositions[r.begin].input===l.groupSeparator&&r.begin--):n===a.keyCode.DELETE&&r.begin===r.end&&(r.end=O(r.end,!0)&&m().validPositions[r.end]&&m().validPositions[r.end].input!==l.radixPoint?r.end+1:S(r.end)+1,m().validPositions[r.begin]!==i&&m().validPositions[r.begin].input===l.groupSeparator&&r.end++),g(r.begin,r.end,!1,o),!0!==o&&function(){if(l.keepStatic){for(var n=[],a=v(-1,!0),r=e.extend(!0,{},m().validPositions),o=m().validPositions[a];a>=0;a--){var s=m().validPositions[a];if(s){if(!0!==s.generatedInput&&/[0-9a-bA-Z]/.test(s.input)&&n.push(s.input),delete m().validPositions[a],s.alternation!==i&&s.locator[s.alternation]!==o.locator[s.alternation])break;o=s}}if(a>-1)for(m().p=S(v(-1,!0));n.length>0;){var c=new e.Event("keypress");c.which=n.pop().charCodeAt(0),ne.keypressEvent.call(t,c,!0,!1,!1,m().p)}else m().validPositions=e.extend(!0,{},r)}}();var u=v(r.begin,!0);if(u<r.begin)m().p=S(u);else if(!0!==o&&(m().p=r.begin,!0!==s))for(;m().p<u&&m().validPositions[m().p]===i;)m().p++}function U(i){function a(e){var t,a=n.createElement("span");for(var o in r)isNaN(o)&&-1!==o.indexOf("font")&&(a.style[o]=r[o]);a.style.textTransform=r.textTransform,a.style.letterSpacing=r.letterSpacing,a.style.position="absolute",a.style.height="auto",a.style.width="auto",a.style.visibility="hidden",a.style.whiteSpace="nowrap",n.body.appendChild(a);var s,l=i.inputmask._valueGet(),c=0;for(t=0,s=l.length;t<=s;t++){if(a.innerHTML+=l.charAt(t)||"_",a.offsetWidth>=e){var u=e-c,f=a.offsetWidth-e;a.innerHTML=l.charAt(t),t=(u-=a.offsetWidth/3)<f?t-1:t;break}c=a.offsetWidth}return n.body.removeChild(a),t}var r=(i.ownerDocument.defaultView||t).getComputedStyle(i,null),o=n.createElement("div");o.style.width=r.width,o.style.textAlign=r.textAlign,(q=n.createElement("div")).className="im-colormask",i.parentNode.insertBefore(q,i),i.parentNode.removeChild(i),q.appendChild(o),q.appendChild(i),i.style.left=o.offsetLeft+"px",e(i).on("click",function(e){return I(i,a(e.clientX)),ne.clickEvent.call(i,[e])}),e(i).on("keydown",function(e){e.shiftKey||!1===l.insertMode||setTimeout(function(){V(i)},0)})}function V(e,t,a){function r(){p||null!==s.fn&&c.input!==i?p&&(null!==s.fn&&c.input!==i||""===s.def)&&(p=!1,f+="</span>"):(p=!0,f+="<span class='im-static'>")}function o(i){!0!==i&&h!==t.begin||n.activeElement!==e||(f+="<span class='im-caret' style='border-right-width: 1px;border-right-style: solid;'></span>")}var s,c,u,f="",p=!1,h=0;if(q!==i){var d=A();if(t===i?t=I(e):t.begin===i&&(t={begin:t,end:t}),!0!==a){var g=v();do{o(),m().validPositions[h]?(c=m().validPositions[h],s=c.match,u=c.locator.slice(),r(),f+=d[h]):(c=y(h,u,h-1),s=c.match,u=c.locator.slice(),(!1===l.jitMasking||h<g||"number"==typeof l.jitMasking&&isFinite(l.jitMasking)&&l.jitMasking>h)&&(r(),f+=G(h,s))),h++}while((W===i||h<W)&&(null!==s.fn||""!==s.def)||g>h||p);-1===f.indexOf("im-caret")&&o(!0),p&&r()}var k=q.getElementsByTagName("div")[0];k.innerHTML=f,e.inputmask.positionColorMask(e,k)}}o=o||this.maskset,l=l||this.opts;var H,Q,W,q,Z=this,$=this.el,z=this.isRTL,X=!1,J=!1,Y=!1,ee=!1,te={on:function(t,n,r){var o=function(t){if(this.inputmask===i&&"FORM"!==this.nodeName){var n=e.data(this,"_inputmask_opts");n?new a(n).mask(this):te.off(this)}else{if("setvalue"===t.type||"FORM"===this.nodeName||!(this.disabled||this.readOnly&&!("keydown"===t.type&&t.ctrlKey&&67===t.keyCode||!1===l.tabThrough&&t.keyCode===a.keyCode.TAB))){switch(t.type){case"input":if(!0===J)return J=!1,t.preventDefault();break;case"keydown":X=!1,J=!1;break;case"keypress":if(!0===X)return t.preventDefault();X=!0;break;case"click":if(u||f){var o=this,s=arguments;return setTimeout(function(){r.apply(o,s)},0),!1}}var c=r.apply(this,arguments);return!1===c&&(t.preventDefault(),t.stopPropagation()),c}t.preventDefault()}};t.inputmask.events[n]=t.inputmask.events[n]||[],t.inputmask.events[n].push(o),-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).on(n,o):e(t).on(n,o)},off:function(t,n){if(t.inputmask&&t.inputmask.events){var i;n?(i=[])[n]=t.inputmask.events[n]:i=t.inputmask.events,e.each(i,function(n,i){for(;i.length>0;){var a=i.pop();-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).off(n,a):e(t).off(n,a)}delete t.inputmask.events[n]})}}},ne={keydownEvent:function(t){var i=this,r=e(i),o=t.keyCode,s=I(i);if(o===a.keyCode.BACKSPACE||o===a.keyCode.DELETE||f&&o===a.keyCode.BACKSPACE_SAFARI||t.ctrlKey&&o===a.keyCode.X&&!function(e){var t=n.createElement("input"),i="on"+e,a=i in t;return a||(t.setAttribute(i,"return;"),a="function"==typeof t[i]),t=null,a}("cut"))t.preventDefault(),K(i,o,s),T(i,A(!0),m().p,t,i.inputmask._valueGet()!==A().join("")),i.inputmask._valueGet()===C().join("")?r.trigger("cleared"):!0===R(A())&&r.trigger("complete");else if(o===a.keyCode.END||o===a.keyCode.PAGE_DOWN){t.preventDefault();var c=S(v());l.insertMode||c!==m().maskLength||t.shiftKey||c--,I(i,t.shiftKey?s.begin:c,c,!0)}else o===a.keyCode.HOME&&!t.shiftKey||o===a.keyCode.PAGE_UP?(t.preventDefault(),I(i,0,t.shiftKey?s.begin:0,!0)):(l.undoOnEscape&&o===a.keyCode.ESCAPE||90===o&&t.ctrlKey)&&!0!==t.altKey?(L(i,!0,!1,H.split("")),r.trigger("click")):o!==a.keyCode.INSERT||t.shiftKey||t.ctrlKey?!0===l.tabThrough&&o===a.keyCode.TAB?(!0===t.shiftKey?(null===b(s.begin).match.fn&&(s.begin=S(s.begin)),s.end=D(s.begin,!0),s.begin=D(s.end,!0)):(s.begin=S(s.begin,!0),s.end=S(s.begin,!0),s.end<m().maskLength&&s.end--),s.begin<m().maskLength&&(t.preventDefault(),I(i,s.begin,s.end))):t.shiftKey||!1===l.insertMode&&(o===a.keyCode.RIGHT?setTimeout(function(){var e=I(i);I(i,e.begin)},0):o===a.keyCode.LEFT&&setTimeout(function(){var e=I(i);I(i,z?e.begin+1:e.begin-1)},0)):(l.insertMode=!l.insertMode,I(i,l.insertMode||s.begin!==m().maskLength?s.begin:s.begin-1));l.onKeyDown.call(this,t,A(),I(i).begin,l),Y=-1!==e.inArray(o,l.ignorables)},keypressEvent:function(t,n,r,o,s){var c=this,u=e(c),f=t.which||t.charCode||t.keyCode;if(!(!0===n||t.ctrlKey&&t.altKey)&&(t.ctrlKey||t.metaKey||Y))return f===a.keyCode.ENTER&&H!==A().join("")&&(H=A().join(""),setTimeout(function(){u.trigger("change")},0)),!0;if(f){46===f&&!1===t.shiftKey&&""!==l.radixPoint&&(f=l.radixPoint.charCodeAt(0));var p,h=n?{begin:s,end:s}:I(c),v=String.fromCharCode(f);m().writeOutBuffer=!0;var g=M(h,v,o);if(!1!==g&&(d(!0),p=g.caret!==i?g.caret:n?g.pos+1:S(g.pos),m().p=p),!1!==r&&(setTimeout(function(){l.onKeyValidation.call(c,f,g,l)},0),m().writeOutBuffer&&!1!==g)){var k=A();T(c,k,l.numericInput&&g.caret===i?D(p):p,t,!0!==n),!0!==n&&setTimeout(function(){!0===R(k)&&u.trigger("complete")},0)}if(t.preventDefault(),n)return!1!==g&&(g.forwardPosition=p),g}},pasteEvent:function(n){var i,a=this,r=n.originalEvent||n,o=e(a),s=a.inputmask._valueGet(!0),c=I(a);z&&(i=c.end,c.end=c.begin,c.begin=i);var u=s.substr(0,c.begin),f=s.substr(c.end,s.length);if(u===(z?C().reverse():C()).slice(0,c.begin).join("")&&(u=""),f===(z?C().reverse():C()).slice(c.end).join("")&&(f=""),z&&(i=u,u=f,f=i),t.clipboardData&&t.clipboardData.getData)s=u+t.clipboardData.getData("Text")+f;else{if(!r.clipboardData||!r.clipboardData.getData)return!0;s=u+r.clipboardData.getData("text/plain")+f}var p=s;if(e.isFunction(l.onBeforePaste)){if(!1===(p=l.onBeforePaste.call(Z,s,l)))return n.preventDefault();p||(p=s)}return L(a,!1,!1,z?p.split("").reverse():p.toString().split("")),T(a,A(),S(v()),n,H!==A().join("")),!0===R(A())&&o.trigger("complete"),n.preventDefault()},inputFallBackEvent:function(t){var n=this,i=n.inputmask._valueGet();if(A().join("")!==i){var r=I(n);if(!1===function(t,n,i){if("."===n.charAt(i.begin-1)&&""!==l.radixPoint&&((n=n.split(""))[i.begin-1]=l.radixPoint.charAt(0),n=n.join("")),n.charAt(i.begin-1)===l.radixPoint&&n.length>A().length){var a=new e.Event("keypress");return a.which=l.radixPoint.charCodeAt(0),ne.keypressEvent.call(t,a,!0,!0,!1,i.begin-1),!1}}(n,i,r))return!1;if(i=i.replace(new RegExp("("+a.escapeRegex(C().join(""))+")*"),""),!1===function(t,n,i){if(u){var a=n.replace(A().join(""),"");if(1===a.length){var r=new e.Event("keypress");return r.which=a.charCodeAt(0),ne.keypressEvent.call(t,r,!0,!0,!1,m().validPositions[i.begin-1]?i.begin:i.begin-1),!1}}}(n,i,r))return!1;r.begin>i.length&&(I(n,i.length),r=I(n));var o=A().join(""),s=i.substr(0,r.begin),c=i.substr(r.begin),f=o.substr(0,r.begin),p=o.substr(r.begin),h=r,d="",v=!1;if(s!==f){h.begin=0;for(var g=(v=s.length>=f.length)?s.length:f.length,k=0;s.charAt(k)===f.charAt(k)&&k<g;k++)h.begin++;v&&(d+=s.slice(h.begin,h.end))}c!==p&&(c.length>p.length?v&&(h.end=h.begin):c.length<p.length?h.end+=p.length-c.length:c.charAt(0)!==p.charAt(0)&&h.end++),T(n,A(),h),d.length>0?e.each(d.split(""),function(t,i){var a=new e.Event("keypress");a.which=i.charCodeAt(0),Y=!1,ne.keypressEvent.call(n,a)}):(h.begin===h.end-1&&I(n,D(h.begin+1),h.end),t.keyCode=a.keyCode.DELETE,ne.keydownEvent.call(n,t)),t.preventDefault()}},setValueEvent:function(t){this.inputmask.refreshValue=!1;var n=this,i=n.inputmask._valueGet(!0);e.isFunction(l.onBeforeMask)&&(i=l.onBeforeMask.call(Z,i,l)||i),i=i.split(""),L(n,!0,!1,z?i.reverse():i),H=A().join(""),(l.clearMaskOnLostFocus||l.clearIncomplete)&&n.inputmask._valueGet()===C().join("")&&n.inputmask._valueSet("")},focusEvent:function(e){var t=this,n=t.inputmask._valueGet();l.showMaskOnFocus&&(!l.showMaskOnHover||l.showMaskOnHover&&""===n)&&(t.inputmask._valueGet()!==A().join("")?T(t,A(),S(v())):!1===ee&&I(t,S(v()))),!0===l.positionCaretOnTab&&!1===ee&&""!==n&&(T(t,A(),I(t)),ne.clickEvent.apply(t,[e,!0])),H=A().join("")},mouseleaveEvent:function(e){var t=this;if(ee=!1,l.clearMaskOnLostFocus&&n.activeElement!==t){var i=A().slice(),a=t.inputmask._valueGet();a!==t.getAttribute("placeholder")&&""!==a&&(-1===v()&&a===C().join("")?i=[]:N(i),T(t,i))}},clickEvent:function(t,a){function r(t){if(""!==l.radixPoint){var n=m().validPositions;if(n[t]===i||n[t].input===G(t)){if(t<S(-1))return!0;var a=e.inArray(l.radixPoint,A());if(-1!==a){for(var r in n)if(a<r&&n[r].input!==G(r))return!1;return!0}}}return!1}var o=this;setTimeout(function(){if(n.activeElement===o){var e=I(o);if(a&&(z?e.end=e.begin:e.begin=e.end),e.begin===e.end)switch(l.positionCaretOnClick){case"none":break;case"radixFocus":if(r(e.begin)){var t=A().join("").indexOf(l.radixPoint);I(o,l.numericInput?S(t):t);break}default:var s=e.begin,c=v(s,!0),u=S(c);if(s<u)I(o,O(s,!0)||O(s-1,!0)?s:S(s));else{var f=m().validPositions[c],p=y(u,f?f.match.locator:i,f),h=G(u,p.match);if(""!==h&&A()[u]!==h&&!0!==p.match.optionalQuantifier&&!0!==p.match.newBlockMarker||!O(u,!0)&&p.match.def===h){var d=S(u);(s>=d||s===u)&&(u=d)}I(o,u)}}}},0)},dblclickEvent:function(e){var t=this;setTimeout(function(){I(t,0,S(v()))},0)},cutEvent:function(i){var r=this,o=e(r),s=I(r),l=i.originalEvent||i,c=t.clipboardData||l.clipboardData,u=z?A().slice(s.end,s.begin):A().slice(s.begin,s.end);c.setData("text",z?u.reverse().join(""):u.join("")),n.execCommand&&n.execCommand("copy"),K(r,a.keyCode.DELETE,s),T(r,A(),m().p,i,H!==A().join("")),r.inputmask._valueGet()===C().join("")&&o.trigger("cleared")},blurEvent:function(t){var n=e(this),a=this;if(a.inputmask){var r=a.inputmask._valueGet(),o=A().slice();""!==r&&(l.clearMaskOnLostFocus&&(-1===v()&&r===C().join("")?o=[]:N(o)),!1===R(o)&&(setTimeout(function(){n.trigger("incomplete")},0),l.clearIncomplete&&(d(),o=l.clearMaskOnLostFocus?[]:C().slice())),T(a,o,i,t)),H!==A().join("")&&(H=o.join(""),n.trigger("change"))}},mouseenterEvent:function(e){var t=this;ee=!0,n.activeElement!==t&&l.showMaskOnHover&&t.inputmask._valueGet()!==A().join("")&&T(t,A())},submitEvent:function(e){H!==A().join("")&&Q.trigger("change"),l.clearMaskOnLostFocus&&-1===v()&&$.inputmask._valueGet&&$.inputmask._valueGet()===C().join("")&&$.inputmask._valueSet(""),l.removeMaskOnSubmit&&($.inputmask._valueSet($.inputmask.unmaskedvalue(),!0),setTimeout(function(){T($,A())},0))},resetEvent:function(e){$.inputmask.refreshValue=!0,setTimeout(function(){Q.trigger("setvalue")},0)}};a.prototype.positionColorMask=function(e,t){e.style.left=t.offsetLeft+"px"};var ie;if(r!==i)switch(r.action){case"isComplete":return $=r.el,R(A());case"unmaskedvalue":return $!==i&&r.value===i||(ie=r.value,ie=(e.isFunction(l.onBeforeMask)?l.onBeforeMask.call(Z,ie,l)||ie:ie).split(""),L(i,!1,!1,z?ie.reverse():ie),e.isFunction(l.onBeforeWrite)&&l.onBeforeWrite.call(Z,i,A(),0,l)),B($);case"mask":!function(t){te.off(t);var a=function(t,a){var r=t.getAttribute("type"),o="INPUT"===t.tagName&&-1!==e.inArray(r,a.supportsInputType)||t.isContentEditable||"TEXTAREA"===t.tagName;if(!o)if("INPUT"===t.tagName){var s=n.createElement("input");s.setAttribute("type",r),o="text"===s.type,s=null}else o="partial";return!1!==o?function(t){function r(){return this.inputmask?this.inputmask.opts.autoUnmask?this.inputmask.unmaskedvalue():-1!==v()||!0!==a.nullable?n.activeElement===this&&a.clearMaskOnLostFocus?(z?N(A().slice()).reverse():N(A().slice())).join(""):s.call(this):"":s.call(this)}function o(t){l.call(this,t),this.inputmask&&e(this).trigger("setvalue")}var s,l;if(!t.inputmask.__valueGet){if(!0!==a.noValuePatching){if(Object.getOwnPropertyDescriptor){"function"!=typeof Object.getPrototypeOf&&(Object.getPrototypeOf="object"==typeof"test".__proto__?function(e){return e.__proto__}:function(e){return e.constructor.prototype});var c=Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value"):i;c&&c.get&&c.set?(s=c.get,l=c.set,Object.defineProperty(t,"value",{get:r,set:o,configurable:!0})):"INPUT"!==t.tagName&&(s=function(){return this.textContent},l=function(e){this.textContent=e},Object.defineProperty(t,"value",{get:r,set:o,configurable:!0}))}else n.__lookupGetter__&&t.__lookupGetter__("value")&&(s=t.__lookupGetter__("value"),l=t.__lookupSetter__("value"),t.__defineGetter__("value",r),t.__defineSetter__("value",o));t.inputmask.__valueGet=s,t.inputmask.__valueSet=l}t.inputmask._valueGet=function(e){return z&&!0!==e?s.call(this.el).split("").reverse().join(""):s.call(this.el)},t.inputmask._valueSet=function(e,t){l.call(this.el,null===e||e===i?"":!0!==t&&z?e.split("").reverse().join(""):e)},s===i&&(s=function(){return this.value},l=function(e){this.value=e},function(t){if(e.valHooks&&(e.valHooks[t]===i||!0!==e.valHooks[t].inputmaskpatch)){var n=e.valHooks[t]&&e.valHooks[t].get?e.valHooks[t].get:function(e){return e.value},r=e.valHooks[t]&&e.valHooks[t].set?e.valHooks[t].set:function(e,t){return e.value=t,e};e.valHooks[t]={get:function(e){if(e.inputmask){if(e.inputmask.opts.autoUnmask)return e.inputmask.unmaskedvalue();var t=n(e);return-1!==v(i,i,e.inputmask.maskset.validPositions)||!0!==a.nullable?t:""}return n(e)},set:function(t,n){var i,a=e(t);return i=r(t,n),t.inputmask&&a.trigger("setvalue"),i},inputmaskpatch:!0}}}(t.type),function(t){te.on(t,"mouseenter",function(t){var n=e(this);this.inputmask._valueGet()!==A().join("")&&n.trigger("setvalue")})}(t))}}(t):t.inputmask=i,o}(t,l);if(!1!==a&&($=t,Q=e($),-1===(W=$!==i?$.maxLength:i)&&(W=i),!0===l.colorMask&&U($),p&&($.hasOwnProperty("inputmode")&&($.inputmode=l.inputmode,$.setAttribute("inputmode",l.inputmode)),"rtfm"===l.androidHack&&(!0!==l.colorMask&&U($),$.type="password")),!0===a&&(te.on($,"submit",ne.submitEvent),te.on($,"reset",ne.resetEvent),te.on($,"mouseenter",ne.mouseenterEvent),te.on($,"blur",ne.blurEvent),te.on($,"focus",ne.focusEvent),te.on($,"mouseleave",ne.mouseleaveEvent),!0!==l.colorMask&&te.on($,"click",ne.clickEvent),te.on($,"dblclick",ne.dblclickEvent),te.on($,"paste",ne.pasteEvent),te.on($,"dragdrop",ne.pasteEvent),te.on($,"drop",ne.pasteEvent),te.on($,"cut",ne.cutEvent),te.on($,"complete",l.oncomplete),te.on($,"incomplete",l.onincomplete),te.on($,"cleared",l.oncleared),p||!0===l.inputEventOnly?$.removeAttribute("maxLength"):(te.on($,"keydown",ne.keydownEvent),te.on($,"keypress",ne.keypressEvent)),te.on($,"compositionstart",e.noop),te.on($,"compositionupdate",e.noop),te.on($,"compositionend",e.noop),te.on($,"keyup",e.noop),te.on($,"input",ne.inputFallBackEvent),te.on($,"beforeinput",e.noop)),te.on($,"setvalue",ne.setValueEvent),H=C().join(""),""!==$.inputmask._valueGet(!0)||!1===l.clearMaskOnLostFocus||n.activeElement===$)){var r=e.isFunction(l.onBeforeMask)?l.onBeforeMask.call(Z,$.inputmask._valueGet(!0),l)||$.inputmask._valueGet(!0):$.inputmask._valueGet(!0);""!==r&&L($,!0,!1,z?r.split("").reverse():r.split(""));var o=A().slice();H=o.join(""),!1===R(o)&&l.clearIncomplete&&d(),l.clearMaskOnLostFocus&&n.activeElement!==$&&(-1===v()?o=[]:N(o)),T($,o),n.activeElement===$&&I($,S(v()))}}($);break;case"format":return ie=(e.isFunction(l.onBeforeMask)?l.onBeforeMask.call(Z,r.value,l)||r.value:r.value).split(""),L(i,!0,!1,z?ie.reverse():ie),r.metadata?{value:z?A().slice().reverse().join(""):A().join(""),metadata:s.call(this,{action:"getmetadata"},o,l)}:z?A().slice().reverse().join(""):A().join("");case"isValid":r.value?(ie=r.value.split(""),L(i,!0,!0,z?ie.reverse():ie)):r.value=A().join("");for(var ae=A(),re=F(),oe=ae.length-1;oe>re&&!O(oe);oe--);return ae.splice(re,oe+1-re),R(ae)&&r.value===A().join("");case"getemptymask":return C().join("");case"remove":if($&&$.inputmask){Q=e($),$.inputmask._valueSet(l.autoUnmask?B($):$.inputmask._valueGet(!0)),te.off($);Object.getOwnPropertyDescriptor&&Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf($),"value")&&$.inputmask.__valueGet&&Object.defineProperty($,"value",{get:$.inputmask.__valueGet,set:$.inputmask.__valueSet,configurable:!0}):n.__lookupGetter__&&$.__lookupGetter__("value")&&$.inputmask.__valueGet&&($.__defineGetter__("value",$.inputmask.__valueGet),$.__defineSetter__("value",$.inputmask.__valueSet)),$.inputmask=i}return $;case"getmetadata":if(e.isArray(o.metadata)){var se=h(!0,0,!1).join("");return e.each(o.metadata,function(e,t){if(t.mask===se)return se=t,!1}),se}return o.metadata}}var l=navigator.userAgent,c=/mobile/i.test(l),u=/iemobile/i.test(l),f=/iphone/i.test(l)&&!u,p=/android/i.test(l)&&!u;return a.prototype={dataAttribute:"data-inputmask",defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",end:")"},alternatormarker:"|",escapeChar:"\\",mask:null,regex:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,removeMaskOnSubmit:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,alias:null,onKeyDown:e.noop,onBeforeMask:null,onBeforePaste:function(t,n){return e.isFunction(n.onBeforeMask)?n.onBeforeMask.call(this,t,n):t},onBeforeWrite:null,onUnMask:null,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",numericInput:!1,rightAlign:!1,undoOnEscape:!0,radixPoint:"",radixPointDefinitionSymbol:i,groupSeparator:"",keepStatic:null,positionCaretOnTab:!0,tabThrough:!1,supportsInputType:["text","tel","password"],ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123,0,229],isComplete:null,canClearPosition:e.noop,preValidation:null,postValidation:null,staticDefinitionSymbol:i,jitMasking:!1,nullable:!0,inputEventOnly:!1,noValuePatching:!1,positionCaretOnClick:"lvp",casing:null,inputmode:"verbatim",colorMask:!1,androidHack:!1,importDataAttributes:!0},definitions:{9:{validator:"[0-91-9]",cardinality:1,definitionSymbol:"*"},a:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,definitionSymbol:"*"},"*":{validator:"[0-91-9A-Za-zА-яЁёÀ-ÿµ]",cardinality:1}},aliases:{},masksCache:{},mask:function(l){function c(n,a,o,s){function l(e,a){null!==(a=a!==i?a:n.getAttribute(s+"-"+e))&&("string"==typeof a&&(0===e.indexOf("on")?a=t[a]:"false"===a?a=!1:"true"===a&&(a=!0)),o[e]=a)}if(!0===a.importDataAttributes){var c,u,f,p,h=n.getAttribute(s);if(h&&""!==h&&(h=h.replace(new RegExp("'","g"),'"'),u=JSON.parse("{"+h+"}")),u){f=i;for(p in u)if("alias"===p.toLowerCase()){f=u[p];break}}l("alias",f),o.alias&&r(o.alias,o,a);for(c in a){if(u){f=i;for(p in u)if(p.toLowerCase()===c.toLowerCase()){f=u[p];break}}l(c,f)}}return e.extend(!0,a,o),("rtl"===n.dir||a.rightAlign)&&(n.style.textAlign="right"),("rtl"===n.dir||a.numericInput)&&(n.dir="ltr",n.removeAttribute("dir"),a.isRTL=!0),a}var u=this;return"string"==typeof l&&(l=n.getElementById(l)||n.querySelectorAll(l)),l=l.nodeName?[l]:l,e.each(l,function(t,n){var r=e.extend(!0,{},u.opts);c(n,r,e.extend(!0,{},u.userOptions),u.dataAttribute);var l=o(r,u.noMasksCache);l!==i&&(n.inputmask!==i&&(n.inputmask.opts.autoUnmask=!0,n.inputmask.remove()),n.inputmask=new a(i,i,!0),n.inputmask.opts=r,n.inputmask.noMasksCache=u.noMasksCache,n.inputmask.userOptions=e.extend(!0,{},u.userOptions),n.inputmask.isRTL=r.isRTL||r.numericInput,n.inputmask.el=n,n.inputmask.maskset=l,e.data(n,"_inputmask_opts",r),s.call(n.inputmask,{action:"mask"}))}),l&&l[0]?l[0].inputmask||this:this},option:function(t,n){return"string"==typeof t?this.opts[t]:"object"==typeof t?(e.extend(this.userOptions,t),this.el&&!0!==n&&this.mask(this.el),this):void 0},unmaskedvalue:function(e){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"unmaskedvalue",value:e})},remove:function(){return s.call(this,{action:"remove"})},getemptymask:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"getemptymask"})},hasMaskedValue:function(){return!this.opts.autoUnmask},isComplete:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"isComplete"})},getmetadata:function(){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"getmetadata"})},isValid:function(e){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"isValid",value:e})},format:function(e,t){return this.maskset=this.maskset||o(this.opts,this.noMasksCache),s.call(this,{action:"format",value:e,metadata:t})},analyseMask:function(t,n,r){function o(e,t,n,i){this.matches=[],this.openGroup=e||!1,this.alternatorGroup=!1,this.isGroup=e||!1,this.isOptional=t||!1,this.isQuantifier=n||!1,this.isAlternator=i||!1,this.quantifier={min:1,max:1}}function s(t,o,s){s=s!==i?s:t.matches.length;var l=t.matches[s-1];if(n)0===o.indexOf("[")||b&&/\\d|\\s|\\w]/i.test(o)||"."===o?t.matches.splice(s++,0,{fn:new RegExp(o,r.casing?"i":""),cardinality:1,optionality:t.isOptional,newBlockMarker:l===i||l.def!==o,casing:null,def:o,placeholder:i,nativeDef:o}):(b&&(o=o[o.length-1]),e.each(o.split(""),function(e,n){l=t.matches[s-1],t.matches.splice(s++,0,{fn:null,cardinality:0,optionality:t.isOptional,newBlockMarker:l===i||l.def!==n&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||n,placeholder:r.staticDefinitionSymbol!==i?n:i,nativeDef:n})})),b=!1;else{var c=(r.definitions?r.definitions[o]:i)||a.prototype.definitions[o];if(c&&!b){for(var u=c.prevalidator,f=u?u.length:0,p=1;p<c.cardinality;p++){var h=f>=p?u[p-1]:[],m=h.validator,d=h.cardinality;t.matches.splice(s++,0,{fn:m?"string"==typeof m?new RegExp(m,r.casing?"i":""):new function(){this.test=m}:new RegExp("."),cardinality:d||1,optionality:t.isOptional,newBlockMarker:l===i||l.def!==(c.definitionSymbol||o),casing:c.casing,def:c.definitionSymbol||o,placeholder:c.placeholder,nativeDef:o}),l=t.matches[s-1]}t.matches.splice(s++,0,{fn:c.validator?"string"==typeof c.validator?new RegExp(c.validator,r.casing?"i":""):new function(){this.test=c.validator}:new RegExp("."),cardinality:c.cardinality,optionality:t.isOptional,newBlockMarker:l===i||l.def!==(c.definitionSymbol||o),casing:c.casing,def:c.definitionSymbol||o,placeholder:c.placeholder,nativeDef:o})}else t.matches.splice(s++,0,{fn:null,cardinality:0,optionality:t.isOptional,newBlockMarker:l===i||l.def!==o&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||o,placeholder:r.staticDefinitionSymbol!==i?o:i,nativeDef:o}),b=!1}}function l(t){t&&t.matches&&e.each(t.matches,function(e,a){var o=t.matches[e+1];(o===i||o.matches===i||!1===o.isQuantifier)&&a&&a.isGroup&&(a.isGroup=!1,n||(s(a,r.groupmarker.start,0),!0!==a.openGroup&&s(a,r.groupmarker.end))),l(a)})}function c(){if(E.length>0){if(m=E[E.length-1],s(m,p),m.isAlternator){d=E.pop();for(var e=0;e<d.matches.length;e++)d.matches[e].isGroup=!1;E.length>0?(m=E[E.length-1]).matches.push(d):P.matches.push(d)}}else s(P,p)}function u(e){e.matches=e.matches.reverse();for(var t in e.matches)if(e.matches.hasOwnProperty(t)){var n=parseInt(t);if(e.matches[t].isQuantifier&&e.matches[n+1]&&e.matches[n+1].isGroup){var a=e.matches[t];e.matches.splice(t,1),e.matches.splice(n+1,0,a)}e.matches[t].matches!==i?e.matches[t]=u(e.matches[t]):e.matches[t]=function(e){return e===r.optionalmarker.start?e=r.optionalmarker.end:e===r.optionalmarker.end?e=r.optionalmarker.start:e===r.groupmarker.start?e=r.groupmarker.end:e===r.groupmarker.end&&(e=r.groupmarker.start),e}(e.matches[t])}return e}var f,p,h,m,d,v,g,k=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,y=/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,b=!1,P=new o,E=[],C=[];for(n&&(r.optionalmarker.start=i,r.optionalmarker.end=i);f=n?y.exec(t):k.exec(t);){if(p=f[0],n)switch(p.charAt(0)){case"?":p="{0,1}";break;case"+":case"*":p="{"+p+"}"}if(b)c();else switch(p.charAt(0)){case r.escapeChar:b=!0,n&&c();break;case r.optionalmarker.end:case r.groupmarker.end:if(h=E.pop(),h.openGroup=!1,h!==i)if(E.length>0){if((m=E[E.length-1]).matches.push(h),m.isAlternator){d=E.pop();for(var A=0;A<d.matches.length;A++)d.matches[A].isGroup=!1,d.matches[A].alternatorGroup=!1;E.length>0?(m=E[E.length-1]).matches.push(d):P.matches.push(d)}}else P.matches.push(h);else c();break;case r.optionalmarker.start:E.push(new o(!1,!0));break;case r.groupmarker.start:E.push(new o(!0));break;case r.quantifiermarker.start:var _=new o(!1,!1,!0),x=(p=p.replace(/[{}]/g,"")).split(","),w=isNaN(x[0])?x[0]:parseInt(x[0]),M=1===x.length?w:isNaN(x[1])?x[1]:parseInt(x[1]);if("*"!==M&&"+"!==M||(w="*"===M?0:1),_.quantifier={min:w,max:M},E.length>0){var O=E[E.length-1].matches;(f=O.pop()).isGroup||((g=new o(!0)).matches.push(f),f=g),O.push(f),O.push(_)}else(f=P.matches.pop()).isGroup||(n&&null===f.fn&&"."===f.def&&(f.fn=new RegExp(f.def,r.casing?"i":"")),(g=new o(!0)).matches.push(f),f=g),P.matches.push(f),P.matches.push(_);break;case r.alternatormarker:if(E.length>0){var S=(m=E[E.length-1]).matches[m.matches.length-1];v=m.openGroup&&(S.matches===i||!1===S.isGroup&&!1===S.isAlternator)?E.pop():m.matches.pop()}else v=P.matches.pop();if(v.isAlternator)E.push(v);else if(v.alternatorGroup?(d=E.pop(),v.alternatorGroup=!1):d=new o(!1,!1,!1,!0),d.matches.push(v),E.push(d),v.openGroup){v.openGroup=!1;var D=new o(!0);D.alternatorGroup=!0,E.push(D)}break;default:c()}}for(;E.length>0;)h=E.pop(),P.matches.push(h);return P.matches.length>0&&(l(P),C.push(P)),(r.numericInput||r.isRTL)&&u(C[0]),C}},a.extendDefaults=function(t){e.extend(!0,a.prototype.defaults,t)},a.extendDefinitions=function(t){e.extend(!0,a.prototype.definitions,t)},a.extendAliases=function(t){e.extend(!0,a.prototype.aliases,t)},a.format=function(e,t,n){return a(t).format(e,n)},a.unmask=function(e,t){return a(t).unmaskedvalue(e)},a.isValid=function(e,t){return a(t).isValid(e)},a.remove=function(t){e.each(t,function(e,t){t.inputmask&&t.inputmask.remove()})},a.escapeRegex=function(e){var t=["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"];return e.replace(new RegExp("(\\"+t.join("|\\")+")","gim"),"\\$1")},a.keyCode={ALT:18,BACKSPACE:8,BACKSPACE_SAFARI:127,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91,X:88},a}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js
new file mode 100644
index 0000000..e31b684
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.numeric.extensions.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.numeric.extensions.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./inputmask"],e):"object"==typeof exports?module.exports=e(require("./dependencyLibs/inputmask.dependencyLib"),require("./inputmask")):e(window.dependencyLib||jQuery,window.Inputmask)}(function(e,i,t){function r(e,t){for(var r="",a=0;a<e.length;a++)i.prototype.definitions[e.charAt(a)]||t.definitions[e.charAt(a)]||t.optionalmarker.start===e.charAt(a)||t.optionalmarker.end===e.charAt(a)||t.quantifiermarker.start===e.charAt(a)||t.quantifiermarker.end===e.charAt(a)||t.groupmarker.start===e.charAt(a)||t.groupmarker.end===e.charAt(a)||t.alternatormarker===e.charAt(a)?r+="\\"+e.charAt(a):r+=e.charAt(a);return r}return i.extendAliases({numeric:{mask:function(e){if(0!==e.repeat&&isNaN(e.integerDigits)&&(e.integerDigits=e.repeat),e.repeat=0,e.groupSeparator===e.radixPoint&&("."===e.radixPoint?e.groupSeparator=",":","===e.radixPoint?e.groupSeparator=".":e.groupSeparator="")," "===e.groupSeparator&&(e.skipOptionalPartCharacter=t),e.autoGroup=e.autoGroup&&""!==e.groupSeparator,e.autoGroup&&("string"==typeof e.groupSize&&isFinite(e.groupSize)&&(e.groupSize=parseInt(e.groupSize)),isFinite(e.integerDigits))){var i=Math.floor(e.integerDigits/e.groupSize),a=e.integerDigits%e.groupSize;e.integerDigits=parseInt(e.integerDigits)+(0===a?i-1:i),e.integerDigits<1&&(e.integerDigits="*")}e.placeholder.length>1&&(e.placeholder=e.placeholder.charAt(0)),"radixFocus"===e.positionCaretOnClick&&""===e.placeholder&&!1===e.integerOptional&&(e.positionCaretOnClick="lvp"),e.definitions[";"]=e.definitions["~"],e.definitions[";"].definitionSymbol="~",!0===e.numericInput&&(e.positionCaretOnClick="radixFocus"===e.positionCaretOnClick?"lvp":e.positionCaretOnClick,e.digitsOptional=!1,isNaN(e.digits)&&(e.digits=2),e.decimalProtect=!1);var n="[+]";if(n+=r(e.prefix,e),!0===e.integerOptional?n+="~{1,"+e.integerDigits+"}":n+="~{"+e.integerDigits+"}",e.digits!==t){e.radixPointDefinitionSymbol=e.decimalProtect?":":e.radixPoint;var o=e.digits.toString().split(",");isFinite(o[0]&&o[1]&&isFinite(o[1]))?n+=e.radixPointDefinitionSymbol+";{"+e.digits+"}":(isNaN(e.digits)||parseInt(e.digits)>0)&&(e.digitsOptional?n+="["+e.radixPointDefinitionSymbol+";{1,"+e.digits+"}]":n+=e.radixPointDefinitionSymbol+";{"+e.digits+"}")}return n+=r(e.suffix,e),n+="[-]",e.greedy=!1,n},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,enforceDigitsOnBlur:!1,radixPoint:".",positionCaretOnClick:"radixFocus",groupSize:3,groupSeparator:"",autoGroup:!1,allowMinus:!0,negationSymbol:{front:"-",back:""},integerDigits:"+",integerOptional:!0,prefix:"",suffix:"",rightAlign:!0,decimalProtect:!0,min:null,max:null,step:1,insertMode:!0,autoUnmask:!1,unmaskAsNumber:!1,inputmode:"numeric",preValidation:function(i,r,a,n,o){if("-"===a||a===o.negationSymbol.front)return!0===o.allowMinus&&(o.isNegative=o.isNegative===t||!o.isNegative,""===i.join("")||{caret:r,dopost:!0});if(!1===n&&a===o.radixPoint&&o.digits!==t&&(isNaN(o.digits)||parseInt(o.digits)>0)){var p=e.inArray(o.radixPoint,i);if(-1!==p)return!0===o.numericInput?r===p:{caret:p+1}}return!0},postValidation:function(r,a,n){var o=n.suffix.split(""),p=n.prefix.split("");if(a.pos===t&&a.caret!==t&&!0!==a.dopost)return a;var l=a.caret!==t?a.caret:a.pos,s=r.slice();n.numericInput&&(l=s.length-l-1,s=s.reverse());var g=s[l];if(g===n.groupSeparator&&(g=s[l+=1]),l===s.length-n.suffix.length-1&&g===n.radixPoint)return a;g!==t&&g!==n.radixPoint&&g!==n.negationSymbol.front&&g!==n.negationSymbol.back&&(s[l]="?",n.prefix.length>0&&l>=(!1===n.isNegative?1:0)&&l<n.prefix.length-1+(!1===n.isNegative?1:0)?p[l-(!1===n.isNegative?1:0)]="?":n.suffix.length>0&&l>=s.length-n.suffix.length-(!1===n.isNegative?1:0)&&(o[l-(s.length-n.suffix.length-(!1===n.isNegative?1:0))]="?")),p=p.join(""),o=o.join("");var c=s.join("").replace(p,"");if(c=c.replace(o,""),c=c.replace(new RegExp(i.escapeRegex(n.groupSeparator),"g"),""),c=c.replace(new RegExp("[-"+i.escapeRegex(n.negationSymbol.front)+"]","g"),""),c=c.replace(new RegExp(i.escapeRegex(n.negationSymbol.back)+"$"),""),isNaN(n.placeholder)&&(c=c.replace(new RegExp(i.escapeRegex(n.placeholder),"g"),"")),c.length>1&&1!==c.indexOf(n.radixPoint)&&("0"===g&&(c=c.replace(/^\?/g,"")),c=c.replace(/^0/g,"")),c.charAt(0)===n.radixPoint&&""!==n.radixPoint&&!0!==n.numericInput&&(c="0"+c),""!==c){if(c=c.split(""),(!n.digitsOptional||n.enforceDigitsOnBlur&&"blur"===a.event)&&isFinite(n.digits)){var d=e.inArray(n.radixPoint,c),u=e.inArray(n.radixPoint,s);-1===d&&(c.push(n.radixPoint),d=c.length-1);for(var x=1;x<=n.digits;x++)n.digitsOptional&&(!n.enforceDigitsOnBlur||"blur"!==a.event)||c[d+x]!==t&&c[d+x]!==n.placeholder.charAt(0)?-1!==u&&s[u+x]!==t&&(c[d+x]=c[d+x]||s[u+x]):c[d+x]=a.placeholder||n.placeholder.charAt(0)}if(!0!==n.autoGroup||""===n.groupSeparator||g===n.radixPoint&&a.pos===t&&!a.dopost)c=c.join("");else{var f=c[c.length-1]===n.radixPoint&&a.c===n.radixPoint;c=i(function(e,i){var t="";if(t+="("+i.groupSeparator+"*{"+i.groupSize+"}){*}",""!==i.radixPoint){var r=e.join("").split(i.radixPoint);r[1]&&(t+=i.radixPoint+"*{"+r[1].match(/^\d*\??\d*/)[0].length+"}")}return t}(c,n),{numericInput:!0,jitMasking:!0,definitions:{"*":{validator:"[0-9?]",cardinality:1}}}).format(c.join("")),f&&(c+=n.radixPoint),c.charAt(0)===n.groupSeparator&&c.substr(1)}}if(n.isNegative&&"blur"===a.event&&(n.isNegative="0"!==c),c=p+c,c+=o,n.isNegative&&(c=n.negationSymbol.front+c,c+=n.negationSymbol.back),c=c.split(""),g!==t)if(g!==n.radixPoint&&g!==n.negationSymbol.front&&g!==n.negationSymbol.back)(l=e.inArray("?",c))>-1?c[l]=g:l=a.caret||0;else if(g===n.radixPoint||g===n.negationSymbol.front||g===n.negationSymbol.back){var m=e.inArray(g,c);-1!==m&&(l=m)}n.numericInput&&(l=c.length-l-1,c=c.reverse());var h={caret:g===t||a.pos!==t?l+(n.numericInput?-1:1):l,buffer:c,refreshFromBuffer:a.dopost||r.join("")!==c.join("")};return h.refreshFromBuffer?h:a},onBeforeWrite:function(r,a,n,o){if(r)switch(r.type){case"keydown":return o.postValidation(a,{caret:n,dopost:!0},o);case"blur":case"checkval":var p;if(function(e){e.parseMinMaxOptions===t&&(null!==e.min&&(e.min=e.min.toString().replace(new RegExp(i.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.min=e.min.replace(e.radixPoint,".")),e.min=isFinite(e.min)?parseFloat(e.min):NaN,isNaN(e.min)&&(e.min=Number.MIN_VALUE)),null!==e.max&&(e.max=e.max.toString().replace(new RegExp(i.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.max=e.max.replace(e.radixPoint,".")),e.max=isFinite(e.max)?parseFloat(e.max):NaN,isNaN(e.max)&&(e.max=Number.MAX_VALUE)),e.parseMinMaxOptions="done")}(o),null!==o.min||null!==o.max){if(p=o.onUnMask(a.join(""),t,e.extend({},o,{unmaskAsNumber:!0})),null!==o.min&&p<o.min)return o.isNegative=o.min<0,o.postValidation(o.min.toString().replace(".",o.radixPoint).split(""),{caret:n,dopost:!0,placeholder:"0"},o);if(null!==o.max&&p>o.max)return o.isNegative=o.max<0,o.postValidation(o.max.toString().replace(".",o.radixPoint).split(""),{caret:n,dopost:!0,placeholder:"0"},o)}return o.postValidation(a,{caret:n,placeholder:"0",event:"blur"},o);case"_checkval":return{caret:n}}},regex:{integerPart:function(e,t){return t?new RegExp("["+i.escapeRegex(e.negationSymbol.front)+"+]?"):new RegExp("["+i.escapeRegex(e.negationSymbol.front)+"+]?\\d+")},integerNPart:function(e){return new RegExp("[\\d"+i.escapeRegex(e.groupSeparator)+i.escapeRegex(e.placeholder.charAt(0))+"]+")}},definitions:{"~":{validator:function(e,r,a,n,o,p){var l=n?new RegExp("[0-9"+i.escapeRegex(o.groupSeparator)+"]").test(e):new RegExp("[0-9]").test(e);if(!0===l){if(!0!==o.numericInput&&r.validPositions[a]!==t&&"~"===r.validPositions[a].match.def&&!p){var s=r.buffer.join(""),g=(s=(s=s.replace(new RegExp("[-"+i.escapeRegex(o.negationSymbol.front)+"]","g"),"")).replace(new RegExp(i.escapeRegex(o.negationSymbol.back)+"$"),"")).split(o.radixPoint);g.length>1&&(g[1]=g[1].replace(/0/g,o.placeholder.charAt(0))),"0"===g[0]&&(g[0]=g[0].replace(/0/g,o.placeholder.charAt(0))),s=g[0]+o.radixPoint+g[1]||"";var c=r._buffer.join("");for(s===o.radixPoint&&(s=c);null===s.match(i.escapeRegex(c)+"$");)c=c.slice(1);l=(s=(s=s.replace(c,"")).split(""))[a]===t?{pos:a,remove:a}:{pos:a}}}else n||e!==o.radixPoint||r.validPositions[a-1]!==t||(r.buffer[a]="0",l={pos:a+1});return l},cardinality:1},"+":{validator:function(e,i,t,r,a){return a.allowMinus&&("-"===e||e===a.negationSymbol.front)},cardinality:1,placeholder:""},"-":{validator:function(e,i,t,r,a){return a.allowMinus&&e===a.negationSymbol.back},cardinality:1,placeholder:""},":":{validator:function(e,t,r,a,n){var o="["+i.escapeRegex(n.radixPoint)+"]",p=new RegExp(o).test(e);return p&&t.validPositions[r]&&t.validPositions[r].match.placeholder===n.radixPoint&&(p={caret:r+1}),p},cardinality:1,placeholder:function(e){return e.radixPoint}}},onUnMask:function(e,t,r){if(""===t&&!0===r.nullable)return t;var a=e.replace(r.prefix,"");return a=a.replace(r.suffix,""),a=a.replace(new RegExp(i.escapeRegex(r.groupSeparator),"g"),""),""!==r.placeholder.charAt(0)&&(a=a.replace(new RegExp(r.placeholder.charAt(0),"g"),"0")),r.unmaskAsNumber?(""!==r.radixPoint&&-1!==a.indexOf(r.radixPoint)&&(a=a.replace(i.escapeRegex.call(this,r.radixPoint),".")),a=a.replace(new RegExp("^"+i.escapeRegex(r.negationSymbol.front)),"-"),a=a.replace(new RegExp(i.escapeRegex(r.negationSymbol.back)+"$"),""),Number(a)):a},isComplete:function(e,t){var r=e.join("");if(e.slice().join("")!==r)return!1;var a=r.replace(t.prefix,"");return a=a.replace(t.suffix,""),a=a.replace(new RegExp(i.escapeRegex(t.groupSeparator),"g"),""),","===t.radixPoint&&(a=a.replace(i.escapeRegex(t.radixPoint),".")),isFinite(a)},onBeforeMask:function(e,r){if(r.isNegative=t,e=e.toString().charAt(e.length-1)===r.radixPoint?e.toString().substr(0,e.length-1):e.toString(),""!==r.radixPoint&&isFinite(e)){var a=e.split("."),n=""!==r.groupSeparator?parseInt(r.groupSize):0;2===a.length&&(a[0].length>n||a[1].length>n||a[0].length<=n&&a[1].length<n)&&(e=e.replace(".",r.radixPoint))}var o=e.match(/,/g),p=e.match(/\./g);if(e=p&&o?p.length>o.length?(e=e.replace(/\./g,"")).replace(",",r.radixPoint):o.length>p.length?(e=e.replace(/,/g,"")).replace(".",r.radixPoint):e.indexOf(".")<e.indexOf(",")?e.replace(/\./g,""):e.replace(/,/g,""):e.replace(new RegExp(i.escapeRegex(r.groupSeparator),"g"),""),0===r.digits&&(-1!==e.indexOf(".")?e=e.substring(0,e.indexOf(".")):-1!==e.indexOf(",")&&(e=e.substring(0,e.indexOf(",")))),""!==r.radixPoint&&isFinite(r.digits)&&-1!==e.indexOf(r.radixPoint)){var l=e.split(r.radixPoint)[1].match(new RegExp("\\d*"))[0];if(parseInt(r.digits)<l.toString().length){var s=Math.pow(10,parseInt(r.digits));e=e.replace(i.escapeRegex(r.radixPoint),"."),e=(e=Math.round(parseFloat(e)*s)/s).toString().replace(".",r.radixPoint)}}return e},canClearPosition:function(e,i,t,r,a){var n=e.validPositions[i],o=n.input!==a.radixPoint||null!==e.validPositions[i].match.fn&&!1===a.decimalProtect||n.input===a.radixPoint&&e.validPositions[i+1]&&null===e.validPositions[i+1].match.fn||isFinite(n.input)||i===t||n.input===a.groupSeparator||n.input===a.negationSymbol.front||n.input===a.negationSymbol.back;return!o||"+"!==n.match.nativeDef&&"-"!==n.match.nativeDef||(a.isNegative=!1),o},onKeyDown:function(t,r,a,n){var o=e(this);if(t.ctrlKey)switch(t.keyCode){case i.keyCode.UP:o.val(parseFloat(this.inputmask.unmaskedvalue())+parseInt(n.step)),o.trigger("setvalue");break;case i.keyCode.DOWN:o.val(parseFloat(this.inputmask.unmaskedvalue())-parseInt(n.step)),o.trigger("setvalue")}}},currency:{prefix:"$ ",groupSeparator:",",alias:"numeric",placeholder:"0",autoGroup:!0,digits:2,digitsOptional:!1,clearMaskOnLostFocus:!1},decimal:{alias:"numeric"},integer:{alias:"numeric",digits:0,radixPoint:""},percentage:{alias:"numeric",digits:2,digitsOptional:!0,radixPoint:".",placeholder:"0",autoGroup:!1,min:0,max:100,suffix:" %",allowMinus:!1}}),i}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js
new file mode 100644
index 0000000..7b8d2aa
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.phone.extensions.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.phone.extensions.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./inputmask"],e):"object"==typeof exports?module.exports=e(require("./dependencyLibs/inputmask.dependencyLib"),require("./inputmask")):e(window.dependencyLib||jQuery,window.Inputmask)}(function(e,r){function n(e,r){var n=(e.mask||e).replace(/#/g,"9").replace(/\)/,"9").replace(/[+()#-]/g,""),t=(r.mask||r).replace(/#/g,"9").replace(/\)/,"9").replace(/[+()#-]/g,""),a=(e.mask||e).split("#")[0],o=(r.mask||r).split("#")[0];return 0===o.indexOf(a)?-1:0===a.indexOf(o)?1:n.localeCompare(t)}var t=r.prototype.analyseMask;return r.prototype.analyseMask=function(r,n,a){function o(e,n,t){n=n||"",t=t||s,""!==n&&(t[n]={});for(var a="",p=t[n]||t,i=e.length-1;i>=0;i--)p[a=(r=e[i].mask||e[i]).substr(0,1)]=p[a]||[],p[a].unshift(r.substr(1)),e.splice(i,1);for(var u in p)p[u].length>500&&o(p[u].slice(),u,p)}function p(r){var n="",t=[];for(var o in r)e.isArray(r[o])?1===r[o].length?t.push(o+r[o]):t.push(o+a.groupmarker.start+r[o].join(a.groupmarker.end+a.alternatormarker+a.groupmarker.start)+a.groupmarker.end):t.push(o+p(r[o]));return 1===t.length?n+=t[0]:n+=a.groupmarker.start+t.join(a.groupmarker.end+a.alternatormarker+a.groupmarker.start)+a.groupmarker.end,n}var s={};return a.phoneCodes&&(a.phoneCodes&&a.phoneCodes.length>1e3&&(o((r=r.substr(1,r.length-2)).split(a.groupmarker.end+a.alternatormarker+a.groupmarker.start)),r=p(s)),r=r.replace(/9/g,"\\9")),t.call(this,r,n,a)},r.extendAliases({abstractphone:{groupmarker:{start:"<",end:">"},countrycode:"",phoneCodes:[],mask:function(e){return e.definitions={"#":r.prototype.definitions[9]},e.phoneCodes.sort(n)},keepStatic:!0,onBeforeMask:function(e,r){var n=e.replace(/^0{1,2}/,"").replace(/[\s]/g,"");return(n.indexOf(r.countrycode)>1||-1===n.indexOf(r.countrycode))&&(n="+"+r.countrycode+n),n},onUnMask:function(e,r,n){return e.replace(/[()#-]/g,"")},inputmode:"tel"}}),r}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js b/public/bower_components/inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js
new file mode 100644
index 0000000..0da3303
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/inputmask.regex.extensions.min.js
@@ -0,0 +1,9 @@
+/*!
+* inputmask.regex.extensions.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){"function"==typeof define&&define.amd?define(["./dependencyLibs/inputmask.dependencyLib","./inputmask"],e):"object"==typeof exports?module.exports=e(require("./dependencyLibs/inputmask.dependencyLib"),require("./inputmask")):e(window.dependencyLib||jQuery,window.Inputmask)}(function(e,r){return r.extendAliases({Regex:{mask:"r",greedy:!1,repeat:"*",regex:null,regexTokens:null,tokenizer:/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,quantifierFilter:/[0-9]+[^,]/,isComplete:function(e,r){return new RegExp(r.regex,r.casing?"i":"").test(e.join(""))},definitions:{r:{validator:function(r,t,a,i,n){function s(e,r){this.matches=[],this.isGroup=e||!1,this.isQuantifier=r||!1,this.quantifier={min:1,max:1},this.repeaterPart=void 0}function u(r,t){var a=!1;t&&(f+="(",l++);for(var i=0;i<r.matches.length;i++){var s=r.matches[i];if(!0===s.isGroup)a=u(s,!0);else if(!0===s.isQuantifier){var h=e.inArray(s,r.matches),c=r.matches[h-1],o=f;if(isNaN(s.quantifier.max)){for(;s.repeaterPart&&s.repeaterPart!==f&&s.repeaterPart.length>f.length&&!(a=u(c,!0)););(a=a||u(c,!0))&&(s.repeaterPart=f),f=o+s.quantifier.max}else{for(var m=0,g=s.quantifier.max-1;m<g&&!(a=u(c,!0));m++);f=o+"{"+s.quantifier.min+","+s.quantifier.max+"}"}}else if(void 0!==s.matches)for(var d=0;d<s.length&&!(a=u(s[d],t));d++);else{var x;if("["==s.charAt(0)){x=f,x+=s;for(b=0;b<l;b++)x+=")";a=(w=new RegExp("^("+x+")$",n.casing?"i":"")).test(p)}else for(var k=0,v=s.length;k<v;k++)if("\\"!==s.charAt(k)){x=f,x=(x+=s.substr(0,k+1)).replace(/\|$/,"");for(var b=0;b<l;b++)x+=")";var w=new RegExp("^("+x+")$",n.casing?"i":"");if(a=w.test(p))break}f+=s}if(a)break}return t&&(f+=")",l--),a}var p,h,c=t.buffer.slice(),f="",o=!1,l=0;null===n.regexTokens&&function(){var e,r,t=new s,a=[];for(n.regexTokens=[];e=n.tokenizer.exec(n.regex);)switch((r=e[0]).charAt(0)){case"(":a.push(new s(!0));break;case")":h=a.pop(),a.length>0?a[a.length-1].matches.push(h):t.matches.push(h);break;case"{":case"+":case"*":var i=new s(!1,!0),u=(r=r.replace(/[{}]/g,"")).split(","),p=isNaN(u[0])?u[0]:parseInt(u[0]),c=1===u.length?p:isNaN(u[1])?u[1]:parseInt(u[1]);if(i.quantifier={min:p,max:c},a.length>0){var f=a[a.length-1].matches;(e=f.pop()).isGroup||((h=new s(!0)).matches.push(e),e=h),f.push(e),f.push(i)}else(e=t.matches.pop()).isGroup||((h=new s(!0)).matches.push(e),e=h),t.matches.push(e),t.matches.push(i);break;default:a.length>0?a[a.length-1].matches.push(r):t.matches.push(r)}t.matches.length>0&&n.regexTokens.push(t)}(),c.splice(a,0,r),p=c.join("");for(var m=0;m<n.regexTokens.length;m++){var g=n.regexTokens[m];if(o=u(g,g.isGroup))break}return o},cardinality:1}}}}),r}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/inputmask/jquery.inputmask.min.js b/public/bower_components/inputmask/dist/min/inputmask/jquery.inputmask.min.js
new file mode 100644
index 0000000..651bdcb
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/inputmask/jquery.inputmask.min.js
@@ -0,0 +1,9 @@
+/*!
+* jquery.inputmask.min.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(t){"function"==typeof define&&define.amd?define(["jquery","./inputmask"],t):"object"==typeof exports?module.exports=t(require("jquery"),require("./inputmask")):t(jQuery,window.Inputmask)}(function(t,e){return void 0===t.fn.inputmask&&(t.fn.inputmask=function(i,n){var a,s=this[0];if(void 0===n&&(n={}),"string"==typeof i)switch(i){case"unmaskedvalue":return s&&s.inputmask?s.inputmask.unmaskedvalue():t(s).val();case"remove":return this.each(function(){this.inputmask&&this.inputmask.remove()});case"getemptymask":return s&&s.inputmask?s.inputmask.getemptymask():"";case"hasMaskedValue":return!(!s||!s.inputmask)&&s.inputmask.hasMaskedValue();case"isComplete":return!s||!s.inputmask||s.inputmask.isComplete();case"getmetadata":return s&&s.inputmask?s.inputmask.getmetadata():void 0;case"setvalue":t(s).val(n),s&&void 0===s.inputmask&&t(s).triggerHandler("setvalue");break;case"option":if("string"!=typeof n)return this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(n)});if(s&&void 0!==s.inputmask)return s.inputmask.option(n);break;default:return n.alias=i,a=new e(n),this.each(function(){a.mask(this)})}else{if("object"==typeof i)return a=new e(i),void 0===i.mask&&void 0===i.alias?this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(i);a.mask(this)}):this.each(function(){a.mask(this)});if(void 0===i)return this.each(function(){(a=new e(n)).mask(this)})}}),t.fn.inputmask}); \ No newline at end of file
diff --git a/public/bower_components/inputmask/dist/min/jquery.inputmask.bundle.min.js b/public/bower_components/inputmask/dist/min/jquery.inputmask.bundle.min.js
new file mode 100644
index 0000000..7e6a8a3
--- /dev/null
+++ b/public/bower_components/inputmask/dist/min/jquery.inputmask.bundle.min.js
@@ -0,0 +1,9 @@
+/*!
+* jquery.inputmask.bundle.js
+* https://github.com/RobinHerbots/Inputmask
+* Copyright (c) 2010 - 2017 Robin Herbots
+* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php)
+* Version: 3.3.11
+*/
+
+!function(e){function t(a){if(n[a])return n[a].exports;var i=n[a]={i:a,l:!1,exports:{}};return e[a].call(i.exports,i,i.exports,t),i.l=!0,i.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,a){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:a})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=3)}([function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(2)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e){return e})},function(e,t,n){"use strict";var a,i,r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(o){i=[n(0),n(10),n(11)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t,n,a){function i(t,n,o){if(!(this instanceof i))return new i(t,n,o);this.el=a,this.events={},this.maskset=a,this.refreshValue=!1,!0!==o&&(e.isPlainObject(t)?n=t:(n=n||{}).alias=t,this.opts=e.extend(!0,{},this.defaults,n),this.noMasksCache=n&&n.definitions!==a,this.userOptions=n||{},this.isRTL=this.opts.numericInput,r(this.opts.alias,n,this.opts))}function r(t,n,o){var s=i.prototype.aliases[t];return s?(s.alias&&r(s.alias,a,o),e.extend(!0,o,s),e.extend(!0,o,n),!0):(null===o.mask&&(o.mask=t),!1)}function s(t,n){function r(t,r,o){var s=!1;if(null!==t&&""!==t||((s=null!==o.regex)?t=(t=o.regex).replace(/^(\^)(.*)(\$)$/,"$2"):(s=!0,t=".*")),1===t.length&&!1===o.greedy&&0!==o.repeat&&(o.placeholder=""),o.repeat>0||"*"===o.repeat||"+"===o.repeat){var l="*"===o.repeat?0:"+"===o.repeat?1:o.repeat;t=o.groupmarker.start+t+o.groupmarker.end+o.quantifiermarker.start+l+","+o.repeat+o.quantifiermarker.end}var c,u=s?"regex_"+o.regex:o.numericInput?t.split("").reverse().join(""):t;return i.prototype.masksCache[u]===a||!0===n?(c={mask:t,maskToken:i.prototype.analyseMask(t,s,o),validPositions:{},_buffer:a,buffer:a,tests:{},metadata:r,maskLength:a},!0!==n&&(i.prototype.masksCache[u]=c,c=e.extend(!0,{},i.prototype.masksCache[u]))):c=e.extend(!0,{},i.prototype.masksCache[u]),c}if(e.isFunction(t.mask)&&(t.mask=t.mask(t)),e.isArray(t.mask)){if(t.mask.length>1){t.keepStatic=null===t.keepStatic||t.keepStatic;var o=t.groupmarker.start;return e.each(t.numericInput?t.mask.reverse():t.mask,function(n,i){o.length>1&&(o+=t.groupmarker.end+t.alternatormarker+t.groupmarker.start),i.mask===a||e.isFunction(i.mask)?o+=i:o+=i.mask}),o+=t.groupmarker.end,r(o,t.mask,t)}t.mask=t.mask.pop()}return t.mask&&t.mask.mask!==a&&!e.isFunction(t.mask.mask)?r(t.mask.mask,t.mask,t):r(t.mask,t.mask,t)}function l(r,s,c){function m(e,t,n){t=t||0;var i,r,o,s=[],l=0,u=v();do{!0===e&&h().validPositions[l]?(r=(o=h().validPositions[l]).match,i=o.locator.slice(),s.push(!0===n?o.input:!1===n?r.nativeDef:I(l,r))):(r=(o=b(l,i,l-1)).match,i=o.locator.slice(),(!1===c.jitMasking||l<u||"number"==typeof c.jitMasking&&isFinite(c.jitMasking)&&c.jitMasking>l)&&s.push(!1===n?r.nativeDef:I(l,r))),l++}while((Q===a||l<Q)&&(null!==r.fn||""!==r.def)||t>l);return""===s[s.length-1]&&s.pop(),h().maskLength=l+1,s}function h(){return s}function g(e){var t=h();t.buffer=a,!0!==e&&(t.validPositions={},t.p=0)}function v(e,t,n){var i=-1,r=-1,o=n||h().validPositions;e===a&&(e=-1);for(var s in o){var l=parseInt(s);o[l]&&(t||!0!==o[l].generatedInput)&&(l<=e&&(i=l),l>=e&&(r=l))}return-1!==i&&e-i>1||r<e?i:r}function y(t,n,i,r){var o,s=t,l=e.extend(!0,{},h().validPositions),u=!1;for(h().p=t,o=n-1;o>=s;o--)h().validPositions[o]!==a&&(!0!==i&&(!h().validPositions[o].match.optionality&&function(e){var t=h().validPositions[e];if(t!==a&&null===t.match.fn){var n=h().validPositions[e-1],i=h().validPositions[e+1];return n!==a&&i!==a}return!1}(o)||!1===c.canClearPosition(h(),o,v(),r,c))||delete h().validPositions[o]);for(g(!0),o=s+1;o<=v();){for(;h().validPositions[s]!==a;)s++;if(o<s&&(o=s+1),h().validPositions[o]===a&&M(o))o++;else{var p=b(o);!1===u&&l[s]&&l[s].match.def===p.match.def?(h().validPositions[s]=e.extend(!0,{},l[s]),h().validPositions[s].input=p.input,delete h().validPositions[o],o++):P(s,p.match.def)?!1!==R(s,p.input||I(o),!0)&&(delete h().validPositions[o],o++,u=!0):M(o)||(o++,s--),s++}}g(!0)}function k(e,t){for(var n,i=e,r=v(),o=h().validPositions[r]||S(0)[0],s=o.alternation!==a?o.locator[o.alternation].toString().split(","):[],l=0;l<i.length&&(!((n=i[l]).match&&(c.greedy&&!0!==n.match.optionalQuantifier||(!1===n.match.optionality||!1===n.match.newBlockMarker)&&!0!==n.match.optionalQuantifier)&&(o.alternation===a||o.alternation!==n.alternation||n.locator[o.alternation]!==a&&O(n.locator[o.alternation].toString().split(","),s)))||!0===t&&(null!==n.match.fn||/[0-9a-bA-Z]/.test(n.match.def)));l++);return n}function b(e,t,n){return h().validPositions[e]||k(S(e,t?t.slice():t,n))}function x(e){return h().validPositions[e]?h().validPositions[e]:S(e)[0]}function P(e,t){for(var n=!1,a=S(e),i=0;i<a.length;i++)if(a[i].match&&a[i].match.def===t){n=!0;break}return n}function S(t,n,i){function r(n,i,o,l){function p(o,l,g){function v(t,n){var a=0===e.inArray(t,n.matches);return a||e.each(n.matches,function(e,i){if(!0===i.isQuantifier&&(a=v(t,n.matches[e-1])))return!1}),a}function y(t,n,i){var r,o;if(h().validPositions[t-1]&&i&&h().tests[t])for(var s=h().validPositions[t-1].locator,l=h().tests[t][0].locator,c=0;c<i;c++)if(s[c]!==l[c])return s.slice(i+1);return(h().tests[t]||h().validPositions[t])&&e.each(h().tests[t]||[h().validPositions[t]],function(e,t){var s=i!==a?i:t.alternation,l=t.locator[s]!==a?t.locator[s].toString().indexOf(n):-1;(o===a||l<o)&&-1!==l&&(r=t,o=l)}),r?r.locator.slice((i!==a?i:r.alternation)+1):i!==a?y(t,n):a}if(u>1e4)throw"Inputmask: There is probably an error in your mask definition or in the code. Create an issue on github with an example of the mask you are using. "+h().mask;if(u===t&&o.matches===a)return f.push({match:o,locator:l.reverse(),cd:m}),!0;if(o.matches!==a){if(o.isGroup&&g!==o){if(o=p(n.matches[e.inArray(o,n.matches)+1],l))return!0}else if(o.isOptional){var k=o;if(o=r(o,i,l,g)){if(s=f[f.length-1].match,!v(s,k))return!0;d=!0,u=t}}else if(o.isAlternator){var b,x=o,P=[],S=f.slice(),w=l.length,A=i.length>0?i.shift():-1;if(-1===A||"string"==typeof A){var E,C=u,O=i.slice(),R=[];if("string"==typeof A)R=A.split(",");else for(E=0;E<x.matches.length;E++)R.push(E);for(var M=0;M<R.length;M++){if(E=parseInt(R[M]),f=[],i=y(u,E,w)||O.slice(),!0!==(o=p(x.matches[E]||n.matches[E],[E].concat(l),g)||o)&&o!==a&&R[R.length-1]<x.matches.length){var _=e.inArray(o,n.matches)+1;n.matches.length>_&&(o=p(n.matches[_],[_].concat(l.slice(1,l.length)),g))&&(R.push(_.toString()),e.each(f,function(e,t){t.alternation=l.length-1}))}b=f.slice(),u=C,f=[];for(var D=0;D<b.length;D++){var j=b[D],N=!1;j.alternation=j.alternation||w;for(var I=0;I<P.length;I++){var F=P[I];if("string"!=typeof A||-1!==e.inArray(j.locator[j.alternation].toString(),R)){if(function(e,t){return e.match.nativeDef===t.match.nativeDef||e.match.def===t.match.nativeDef||e.match.nativeDef===t.match.def}(j,F)){N=!0,j.alternation===F.alternation&&-1===F.locator[F.alternation].toString().indexOf(j.locator[j.alternation])&&(F.locator[F.alternation]=F.locator[F.alternation]+","+j.locator[j.alternation],F.alternation=j.alternation),j.match.nativeDef===F.match.def&&(j.locator[j.alternation]=F.locator[F.alternation],P.splice(P.indexOf(F),1,j));break}if(j.match.def===F.match.def){N=!1;break}if(function(e,n){return null===e.match.fn&&null!==n.match.fn&&n.match.fn.test(e.match.def,h(),t,!1,c,!1)}(j,F)||function(e,n){return null!==e.match.fn&&null!==n.match.fn&&n.match.fn.test(e.match.def.replace(/[\[\]]/g,""),h(),t,!1,c,!1)}(j,F)){j.alternation===F.alternation&&-1===j.locator[j.alternation].toString().indexOf(F.locator[F.alternation].toString().split("")[0])&&(j.na=j.na||j.locator[j.alternation].toString(),-1===j.na.indexOf(j.locator[j.alternation].toString().split("")[0])&&(j.na=j.na+","+j.locator[F.alternation].toString().split("")[0]),N=!0,j.locator[j.alternation]=F.locator[F.alternation].toString().split("")[0]+","+j.locator[j.alternation],P.splice(P.indexOf(F),0,j));break}}}N||P.push(j)}}"string"==typeof A&&(P=e.map(P,function(t,n){if(isFinite(n)){var i=t.alternation,r=t.locator[i].toString().split(",");t.locator[i]=a,t.alternation=a;for(var o=0;o<r.length;o++)-1!==e.inArray(r[o],R)&&(t.locator[i]!==a?(t.locator[i]+=",",t.locator[i]+=r[o]):t.locator[i]=parseInt(r[o]),t.alternation=i);if(t.locator[i]!==a)return t}})),f=S.concat(P),u=t,d=f.length>0,o=P.length>0,i=O.slice()}else o=p(x.matches[A]||n.matches[A],[A].concat(l),g);if(o)return!0}else if(o.isQuantifier&&g!==n.matches[e.inArray(o,n.matches)-1])for(var T=o,G=i.length>0?i.shift():0;G<(isNaN(T.quantifier.max)?G+1:T.quantifier.max)&&u<=t;G++){var B=n.matches[e.inArray(T,n.matches)-1];if(o=p(B,[G].concat(l),B)){if(s=f[f.length-1].match,s.optionalQuantifier=G>T.quantifier.min-1,v(s,B)){if(G>T.quantifier.min-1){d=!0,u=t;break}return!0}return!0}}else if(o=r(o,i,l,g))return!0}else u++}for(var g=i.length>0?i.shift():0;g<n.matches.length;g++)if(!0!==n.matches[g].isQuantifier){var v=p(n.matches[g],[g].concat(o),l);if(v&&u===t)return v;if(u>t)break}}function o(e){if(c.keepStatic&&t>0&&e.length>1+(""===e[e.length-1].match.def?1:0)&&!0!==e[0].match.optionality&&!0!==e[0].match.optionalQuantifier&&null===e[0].match.fn&&!/[0-9a-bA-Z]/.test(e[0].match.def)){if(h().validPositions[t-1]===a)return[k(e)];if(h().validPositions[t-1].alternation===e[0].alternation)return[k(e)];if(h().validPositions[t-1])return[k(e)]}return e}var s,l=h().maskToken,u=n?i:0,p=n?n.slice():[0],f=[],d=!1,m=n?n.join(""):"";if(t>-1){if(n===a){for(var g,v=t-1;(g=h().validPositions[v]||h().tests[v])===a&&v>-1;)v--;g!==a&&v>-1&&(p=function(t){var n=[];return e.isArray(t)||(t=[t]),t.length>0&&(t[0].alternation===a?0===(n=k(t.slice()).locator.slice()).length&&(n=t[0].locator.slice()):e.each(t,function(e,t){if(""!==t.def)if(0===n.length)n=t.locator.slice();else for(var a=0;a<n.length;a++)t.locator[a]&&-1===n[a].toString().indexOf(t.locator[a])&&(n[a]+=","+t.locator[a])})),n}(g),m=p.join(""),u=v)}if(h().tests[t]&&h().tests[t][0].cd===m)return o(h().tests[t]);for(var y=p.shift();y<l.length&&!(r(l[y],p,[y])&&u===t||u>t);y++);}return(0===f.length||d)&&f.push({match:{fn:null,cardinality:0,optionality:!0,casing:null,def:"",placeholder:""},locator:[],cd:m}),n!==a&&h().tests[t]?o(e.extend(!0,[],f)):(h().tests[t]=e.extend(!0,[],f),o(h().tests[t]))}function w(){return h()._buffer===a&&(h()._buffer=m(!1,1),h().buffer===a&&(h().buffer=h()._buffer.slice())),h()._buffer}function A(e){return h().buffer!==a&&!0!==e||(h().buffer=m(!0,v(),!0)),h().buffer}function E(e,t,n){var i,r;if(!0===e)g(),e=0,t=n.length;else for(i=e;i<t;i++)delete h().validPositions[i];for(r=e,i=e;i<t;i++)if(g(!0),n[i]!==c.skipOptionalPartCharacter){var o=R(r,n[i],!0,!0);!1!==o&&(g(!0),r=o.caret!==a?o.caret:o.pos+1)}}function C(t,n,a){switch(c.casing||n.casing){case"upper":t=t.toUpperCase();break;case"lower":t=t.toLowerCase();break;case"title":var r=h().validPositions[a-1];t=0===a||r&&r.input===String.fromCharCode(i.keyCode.SPACE)?t.toUpperCase():t.toLowerCase();break;default:if(e.isFunction(c.casing)){var o=Array.prototype.slice.call(arguments);o.push(h().validPositions),t=c.casing.apply(this,o)}}return t}function O(t,n,i){for(var r,o=c.greedy?n:n.slice(0,1),s=!1,l=i!==a?i.split(","):[],u=0;u<l.length;u++)-1!==(r=t.indexOf(l[u]))&&t.splice(r,1);for(var p=0;p<t.length;p++)if(-1!==e.inArray(t[p],o)){s=!0;break}return s}function R(t,n,r,o,s,l){function u(e){var t=Z?e.begin-e.end>1||e.begin-e.end==1:e.end-e.begin>1||e.end-e.begin==1;return t&&0===e.begin&&e.end===h().maskLength?"full":t}function p(n,i,r){var s=!1;return e.each(S(n),function(l,p){for(var d=p.match,m=i?1:0,k="",b=d.cardinality;b>m;b--)k+=j(n-(b-1));if(i&&(k+=i),A(!0),!1!==(s=null!=d.fn?d.fn.test(k,h(),n,r,c,u(t)):(i===d.def||i===c.skipOptionalPartCharacter)&&""!==d.def&&{c:I(n,d,!0)||d.def,pos:n})){var x=s.c!==a?s.c:i;x=x===c.skipOptionalPartCharacter&&null===d.fn?I(n,d,!0)||d.def:x;var P=n,S=A();if(s.remove!==a&&(e.isArray(s.remove)||(s.remove=[s.remove]),e.each(s.remove.sort(function(e,t){return t-e}),function(e,t){y(t,t+1,!0)})),s.insert!==a&&(e.isArray(s.insert)||(s.insert=[s.insert]),e.each(s.insert.sort(function(e,t){return e-t}),function(e,t){R(t.pos,t.c,!0,o)})),s.refreshFromBuffer){var w=s.refreshFromBuffer;if(E(!0===w?w:w.start,w.end,S),s.pos===a&&s.c===a)return s.pos=v(),!1;if((P=s.pos!==a?s.pos:n)!==n)return s=e.extend(s,R(P,x,!0,o)),!1}else if(!0!==s&&s.pos!==a&&s.pos!==n&&(P=s.pos,E(n,P,A().slice()),P!==n))return s=e.extend(s,R(P,x,!0)),!1;return(!0===s||s.pos!==a||s.c!==a)&&(l>0&&g(!0),f(P,e.extend({},p,{input:C(x,d,P)}),o,u(t))||(s=!1),!1)}}),s}function f(t,n,i,r){if(r||c.insertMode&&h().validPositions[t]!==a&&i===a){var o,s=e.extend(!0,{},h().validPositions),l=v(a,!0);for(o=t;o<=l;o++)delete h().validPositions[o];h().validPositions[t]=e.extend(!0,{},n);var u,p=!0,f=h().validPositions,m=!1,y=h().maskLength;for(o=u=t;o<=l;o++){var k=s[o];if(k!==a)for(var b=u;b<h().maskLength&&(null===k.match.fn&&f[o]&&(!0===f[o].match.optionalQuantifier||!0===f[o].match.optionality)||null!=k.match.fn);){if(b++,!1===m&&s[b]&&s[b].match.def===k.match.def)h().validPositions[b]=e.extend(!0,{},s[b]),h().validPositions[b].input=k.input,d(b),u=b,p=!0;else if(P(b,k.match.def)){var x=R(b,k.input,!0,!0);p=!1!==x,u=x.caret||x.insert?v():b,m=!0}else if(!(p=!0===k.generatedInput)&&b>=h().maskLength-1)break;if(h().maskLength<y&&(h().maskLength=y),p)break}if(!p)break}if(!p)return h().validPositions=e.extend(!0,{},s),g(!0),!1}else h().validPositions[t]=e.extend(!0,{},n);return g(!0),!0}function d(t){for(var n=t-1;n>-1&&!h().validPositions[n];n--);var i,r;for(n++;n<t;n++)h().validPositions[n]===a&&(!1===c.jitMasking||c.jitMasking>n)&&(""===(r=S(n,b(n-1).locator,n-1).slice())[r.length-1].match.def&&r.pop(),(i=k(r))&&(i.match.def===c.radixPointDefinitionSymbol||!M(n,!0)||e.inArray(c.radixPoint,A())<n&&i.match.fn&&i.match.fn.test(I(n),h(),n,!1,c))&&!1!==(x=p(n,I(n,i.match,!0)||(null==i.match.fn?i.match.def:""!==I(n)?I(n):A()[n]),!0))&&(h().validPositions[x.pos||n].generatedInput=!0))}r=!0===r;var m=t;t.begin!==a&&(m=Z&&!u(t)?t.end:t.begin);var x=!0,w=e.extend(!0,{},h().validPositions);if(e.isFunction(c.preValidation)&&!r&&!0!==o&&!0!==l&&(x=c.preValidation(A(),m,n,u(t),c)),!0===x){if(d(m),u(t)&&(V(a,i.keyCode.DELETE,t,!0,!0),m=h().p),m<h().maskLength&&(Q===a||m<Q)&&(x=p(m,n,r),(!r||!0===o)&&!1===x&&!0!==l)){var D=h().validPositions[m];if(!D||null!==D.match.fn||D.match.def!==n&&n!==c.skipOptionalPartCharacter){if((c.insertMode||h().validPositions[_(m)]===a)&&!M(m,!0))for(var N=m+1,F=_(m);N<=F;N++)if(!1!==(x=p(N,n,r))){!function(t,n){var i=h().validPositions[n];if(i)for(var r=i.locator,o=r.length,s=t;s<n;s++)if(h().validPositions[s]===a&&!M(s,!0)){var l=S(s).slice(),c=k(l,!0),u=-1;""===l[l.length-1].match.def&&l.pop(),e.each(l,function(e,t){for(var n=0;n<o;n++){if(t.locator[n]===a||!O(t.locator[n].toString().split(","),r[n].toString().split(","),t.na)){var i=r[n],s=c.locator[n],l=t.locator[n];i-s>Math.abs(i-l)&&(c=t);break}u<n&&(u=n,c=t)}}),(c=e.extend({},c,{input:I(s,c.match,!0)||c.match.def})).generatedInput=!0,f(s,c,!0),h().validPositions[n]=a,p(n,i.input,!0)}}(m,x.pos!==a?x.pos:N),m=N;break}}else x={caret:_(m)}}!1===x&&c.keepStatic&&!r&&!0!==s&&(x=function(t,n,i){var r,s,l,u,p,f,d,m,y=e.extend(!0,{},h().validPositions),k=!1,b=v();for(u=h().validPositions[b];b>=0;b--)if((l=h().validPositions[b])&&l.alternation!==a){if(r=b,s=h().validPositions[r].alternation,u.locator[l.alternation]!==l.locator[l.alternation])break;u=l}if(s!==a){m=parseInt(r);var x=u.locator[u.alternation||s]!==a?u.locator[u.alternation||s]:d[0];x.length>0&&(x=x.split(",")[0]);var P=h().validPositions[m],w=h().validPositions[m-1];e.each(S(m,w?w.locator:a,m-1),function(r,l){d=l.locator[s]?l.locator[s].toString().split(","):[];for(var u=0;u<d.length;u++){var b=[],S=0,w=0,A=!1;if(x<d[u]&&(l.na===a||-1===e.inArray(d[u],l.na.split(","))||-1===e.inArray(x.toString(),d))){h().validPositions[m]=e.extend(!0,{},l);var E=h().validPositions[m].locator;for(h().validPositions[m].locator[s]=parseInt(d[u]),null==l.match.fn?(P.input!==l.match.def&&(A=!0,!0!==P.generatedInput&&b.push(P.input)),w++,h().validPositions[m].generatedInput=!/[0-9a-bA-Z]/.test(l.match.def),h().validPositions[m].input=l.match.def):h().validPositions[m].input=P.input,p=m+1;p<v(a,!0)+1;p++)(f=h().validPositions[p])&&!0!==f.generatedInput&&/[0-9a-bA-Z]/.test(f.input)?b.push(f.input):p<t&&S++,delete h().validPositions[p];for(A&&b[0]===l.match.def&&b.shift(),g(!0),k=!0;b.length>0;){var C=b.shift();if(C!==c.skipOptionalPartCharacter&&!(k=R(v(a,!0)+1,C,!1,o,!0)))break}if(k){h().validPositions[m].locator=E;var O=v(t)+1;for(p=m+1;p<v()+1;p++)((f=h().validPositions[p])===a||null==f.match.fn)&&p<t+(w-S)&&w++;k=R((t+=w-S)>O?O:t,n,i,o,!0)}if(k)return!1;g(),h().validPositions=e.extend(!0,{},y)}}})}return k}(m,n,r)),!0===x&&(x={pos:m})}if(e.isFunction(c.postValidation)&&!1!==x&&!r&&!0!==o&&!0!==l){var T=c.postValidation(A(!0),x,c);if(T.refreshFromBuffer&&T.buffer){var G=T.refreshFromBuffer;E(!0===G?G:G.start,G.end,T.buffer)}x=!0===T?x:T}return x&&x.pos===a&&(x.pos=m),!1!==x&&!0!==l||(g(!0),h().validPositions=e.extend(!0,{},w)),x}function M(e,t){var n=b(e).match;if(""===n.def&&(n=x(e).match),null!=n.fn)return n.fn;if(!0!==t&&e>-1){var a=S(e);return a.length>1+(""===a[a.length-1].match.def?1:0)}return!1}function _(e,t){var n=h().maskLength;if(e>=n)return n;var a=e;for(S(n+1).length>1&&(m(!0,n+1,!0),n=h().maskLength);++a<n&&(!0===t&&(!0!==x(a).match.newBlockMarker||!M(a))||!0!==t&&!M(a)););return a}function D(e,t){var n,a=e;if(a<=0)return 0;for(;--a>0&&(!0===t&&!0!==x(a).match.newBlockMarker||!0!==t&&!M(a)&&((n=S(a)).length<2||2===n.length&&""===n[1].match.def)););return a}function j(e){return h().validPositions[e]===a?I(e):h().validPositions[e].input}function N(t,n,i,r,o){if(r&&e.isFunction(c.onBeforeWrite)){var s=c.onBeforeWrite.call(W,r,n,i,c);if(s){if(s.refreshFromBuffer){var l=s.refreshFromBuffer;E(!0===l?l:l.start,l.end,s.buffer||n),n=A(!0)}i!==a&&(i=s.caret!==a?s.caret:i)}}t!==a&&(t.inputmask._valueSet(n.join("")),i===a||r!==a&&"blur"===r.type?H(t,i,0===n.length):d&&r&&"input"===r.type?setTimeout(function(){G(t,i)},0):G(t,i),!0===o&&(X=!0,e(t).trigger("input")))}function I(t,n,i){if((n=n||x(t).match).placeholder!==a||!0===i)return e.isFunction(n.placeholder)?n.placeholder(c):n.placeholder;if(null===n.fn){if(t>-1&&h().validPositions[t]===a){var r,o=S(t),s=[];if(o.length>1+(""===o[o.length-1].match.def?1:0))for(var l=0;l<o.length;l++)if(!0!==o[l].match.optionality&&!0!==o[l].match.optionalQuantifier&&(null===o[l].match.fn||r===a||!1!==o[l].match.fn.test(r.match.def,h(),t,!0,c))&&(s.push(o[l]),null===o[l].match.fn&&(r=o[l]),s.length>1&&/[0-9a-bA-Z]/.test(s[0].match.def)))return c.placeholder.charAt(t%c.placeholder.length)}return n.def}return c.placeholder.charAt(t%c.placeholder.length)}function F(t,r,o,s,l){function u(e,t){return-1!==w().slice(e,_(e)).join("").indexOf(t)&&!M(e)&&x(e).match.nativeDef===t.charAt(t.length-1)}var p=s.slice(),f="",d=-1,m=a;if(g(),o||!0===c.autoUnmask)d=_(d);else{var y=w().slice(0,_(-1)).join(""),k=p.join("").match(new RegExp("^"+i.escapeRegex(y),"g"));k&&k.length>0&&(p.splice(0,k.length*y.length),d=_(d))}if(-1===d?(h().p=_(d),d=0):h().p=d,e.each(p,function(n,i){if(i!==a)if(h().validPositions[n]===a&&p[n]===I(n)&&M(n,!0)&&!1===R(n,p[n],!0,a,a,!0))h().p++;else{var r=new e.Event("_checkval");r.which=i.charCodeAt(0),f+=i;var s=v(a,!0),l=h().validPositions[s],y=b(s+1,l?l.locator.slice():a,s);if(!u(d,f)||o||c.autoUnmask){var k=o?n:null==y.match.fn&&y.match.optionality&&s+1<h().p?s+1:h().p;m=ae.keypressEvent.call(t,r,!0,!1,o,k),d=k+1,f=""}else m=ae.keypressEvent.call(t,r,!0,!1,!0,s+1);if(!1!==m&&!o&&e.isFunction(c.onBeforeWrite)){var x=m;if(m=c.onBeforeWrite.call(W,r,A(),m.forwardPosition,c),(m=e.extend(x,m))&&m.refreshFromBuffer){var P=m.refreshFromBuffer;E(!0===P?P:P.start,P.end,m.buffer),g(!0),m.caret&&(h().p=m.caret,m.forwardPosition=m.caret)}}}}),r){var P=a;n.activeElement===t&&m&&(P=c.numericInput?D(m.forwardPosition):m.forwardPosition),N(t,A(),P,l||new e.Event("checkval"),l&&"input"===l.type)}}function T(t){if(t){if(t.inputmask===a)return t.value;t.inputmask&&t.inputmask.refreshValue&&ae.setValueEvent.call(t)}var n=[],i=h().validPositions;for(var r in i)i[r].match&&null!=i[r].match.fn&&n.push(i[r].input);var o=0===n.length?"":(Z?n.reverse():n).join("");if(e.isFunction(c.onUnMask)){var s=(Z?A().slice().reverse():A()).join("");o=c.onUnMask.call(W,s,o,c)}return o}function G(e,i,r,o){function s(e){return!0===o||!Z||"number"!=typeof e||c.greedy&&""===c.placeholder||(e=A().join("").length-e),e}var l;if(i===a)return e.setSelectionRange?(i=e.selectionStart,r=e.selectionEnd):t.getSelection?(l=t.getSelection().getRangeAt(0)).commonAncestorContainer.parentNode!==e&&l.commonAncestorContainer!==e||(i=l.startOffset,r=l.endOffset):n.selection&&n.selection.createRange&&(r=(i=0-(l=n.selection.createRange()).duplicate().moveStart("character",-e.inputmask._valueGet().length))+l.text.length),{begin:s(i),end:s(r)};if(i.begin!==a&&(r=i.end,i=i.begin),"number"==typeof i){i=s(i),r="number"==typeof(r=s(r))?r:i;var p=parseInt(((e.ownerDocument.defaultView||t).getComputedStyle?(e.ownerDocument.defaultView||t).getComputedStyle(e,null):e.currentStyle).fontSize)*r;if(e.scrollLeft=p>e.scrollWidth?p:0,u||!1!==c.insertMode||i!==r||r++,e.setSelectionRange)e.selectionStart=i,e.selectionEnd=r;else if(t.getSelection){if(l=n.createRange(),e.firstChild===a||null===e.firstChild){var f=n.createTextNode("");e.appendChild(f)}l.setStart(e.firstChild,i<e.inputmask._valueGet().length?i:e.inputmask._valueGet().length),l.setEnd(e.firstChild,r<e.inputmask._valueGet().length?r:e.inputmask._valueGet().length),l.collapse(!0);var d=t.getSelection();d.removeAllRanges(),d.addRange(l)}else e.createTextRange&&((l=e.createTextRange()).collapse(!0),l.moveEnd("character",r),l.moveStart("character",i),l.select());H(e,{begin:i,end:r})}}function B(t){var n,i,r=A(),o=r.length,s=v(),l={},c=h().validPositions[s],u=c!==a?c.locator.slice():a;for(n=s+1;n<r.length;n++)u=(i=b(n,u,n-1)).locator.slice(),l[n]=e.extend(!0,{},i);var p=c&&c.alternation!==a?c.locator[c.alternation]:a;for(n=o-1;n>s&&(((i=l[n]).match.optionality||i.match.optionalQuantifier&&i.match.newBlockMarker||p&&(p!==l[n].locator[c.alternation]&&null!=i.match.fn||null===i.match.fn&&i.locator[c.alternation]&&O(i.locator[c.alternation].toString().split(","),p.toString().split(","))&&""!==S(n)[0].def))&&r[n]===I(n,i.match));n--)o--;return t?{l:o,def:l[o]?l[o].match:a}:o}function L(e){for(var t,n=B(),i=e.length,r=h().validPositions[v()];n<i&&!M(n,!0)&&(t=r!==a?b(n,r.locator.slice(""),r):x(n))&&!0!==t.match.optionality&&(!0!==t.match.optionalQuantifier&&!0!==t.match.newBlockMarker||n+1===i&&""===(r!==a?b(n+1,r.locator.slice(""),r):x(n+1)).match.def);)n++;for(;(t=h().validPositions[n-1])&&t&&t.match.optionality&&t.input===c.skipOptionalPartCharacter;)n--;return e.splice(n),e}function U(t){if(e.isFunction(c.isComplete))return c.isComplete(t,c);if("*"===c.repeat)return a;var n=!1,i=B(!0),r=D(i.l);if(i.def===a||i.def.newBlockMarker||i.def.optionality||i.def.optionalQuantifier){n=!0;for(var o=0;o<=r;o++){var s=b(o).match;if(null!==s.fn&&h().validPositions[o]===a&&!0!==s.optionality&&!0!==s.optionalQuantifier||null===s.fn&&t[o]!==I(o,s)){n=!1;break}}}return n}function V(t,n,r,o,s){if((c.numericInput||Z)&&(n===i.keyCode.BACKSPACE?n=i.keyCode.DELETE:n===i.keyCode.DELETE&&(n=i.keyCode.BACKSPACE),Z)){var l=r.end;r.end=r.begin,r.begin=l}n===i.keyCode.BACKSPACE&&(r.end-r.begin<1||!1===c.insertMode)?(r.begin=D(r.begin),h().validPositions[r.begin]!==a&&h().validPositions[r.begin].input===c.groupSeparator&&r.begin--):n===i.keyCode.DELETE&&r.begin===r.end&&(r.end=M(r.end,!0)&&h().validPositions[r.end]&&h().validPositions[r.end].input!==c.radixPoint?r.end+1:_(r.end)+1,h().validPositions[r.begin]!==a&&h().validPositions[r.begin].input===c.groupSeparator&&r.end++),y(r.begin,r.end,!1,o),!0!==o&&function(){if(c.keepStatic){for(var n=[],i=v(-1,!0),r=e.extend(!0,{},h().validPositions),o=h().validPositions[i];i>=0;i--){var s=h().validPositions[i];if(s){if(!0!==s.generatedInput&&/[0-9a-bA-Z]/.test(s.input)&&n.push(s.input),delete h().validPositions[i],s.alternation!==a&&s.locator[s.alternation]!==o.locator[s.alternation])break;o=s}}if(i>-1)for(h().p=_(v(-1,!0));n.length>0;){var l=new e.Event("keypress");l.which=n.pop().charCodeAt(0),ae.keypressEvent.call(t,l,!0,!1,!1,h().p)}else h().validPositions=e.extend(!0,{},r)}}();var u=v(r.begin,!0);if(u<r.begin)h().p=_(u);else if(!0!==o&&(h().p=r.begin,!0!==s))for(;h().p<u&&h().validPositions[h().p]===a;)h().p++}function K(a){function i(e){var t,i=n.createElement("span");for(var o in r)isNaN(o)&&-1!==o.indexOf("font")&&(i.style[o]=r[o]);i.style.textTransform=r.textTransform,i.style.letterSpacing=r.letterSpacing,i.style.position="absolute",i.style.height="auto",i.style.width="auto",i.style.visibility="hidden",i.style.whiteSpace="nowrap",n.body.appendChild(i);var s,l=a.inputmask._valueGet(),c=0;for(t=0,s=l.length;t<=s;t++){if(i.innerHTML+=l.charAt(t)||"_",i.offsetWidth>=e){var u=e-c,p=i.offsetWidth-e;i.innerHTML=l.charAt(t),t=(u-=i.offsetWidth/3)<p?t-1:t;break}c=i.offsetWidth}return n.body.removeChild(i),t}var r=(a.ownerDocument.defaultView||t).getComputedStyle(a,null),o=n.createElement("div");o.style.width=r.width,o.style.textAlign=r.textAlign,($=n.createElement("div")).className="im-colormask",a.parentNode.insertBefore($,a),a.parentNode.removeChild(a),$.appendChild(o),$.appendChild(a),a.style.left=o.offsetLeft+"px",e(a).on("click",function(e){return G(a,i(e.clientX)),ae.clickEvent.call(a,[e])}),e(a).on("keydown",function(e){e.shiftKey||!1===c.insertMode||setTimeout(function(){H(a)},0)})}function H(e,t,i){function r(){f||null!==s.fn&&l.input!==a?f&&(null!==s.fn&&l.input!==a||""===s.def)&&(f=!1,p+="</span>"):(f=!0,p+="<span class='im-static'>")}function o(a){!0!==a&&d!==t.begin||n.activeElement!==e||(p+="<span class='im-caret' style='border-right-width: 1px;border-right-style: solid;'></span>")}var s,l,u,p="",f=!1,d=0;if($!==a){var m=A();if(t===a?t=G(e):t.begin===a&&(t={begin:t,end:t}),!0!==i){var g=v();do{o(),h().validPositions[d]?(l=h().validPositions[d],s=l.match,u=l.locator.slice(),r(),p+=m[d]):(l=b(d,u,d-1),s=l.match,u=l.locator.slice(),(!1===c.jitMasking||d<g||"number"==typeof c.jitMasking&&isFinite(c.jitMasking)&&c.jitMasking>d)&&(r(),p+=I(d,s))),d++}while((Q===a||d<Q)&&(null!==s.fn||""!==s.def)||g>d||f);-1===p.indexOf("im-caret")&&o(!0),f&&r()}var y=$.getElementsByTagName("div")[0];y.innerHTML=p,e.inputmask.positionColorMask(e,y)}}s=s||this.maskset,c=c||this.opts;var z,q,Q,$,W=this,Y=this.el,Z=this.isRTL,J=!1,X=!1,ee=!1,te=!1,ne={on:function(t,n,r){var o=function(t){if(this.inputmask===a&&"FORM"!==this.nodeName){var n=e.data(this,"_inputmask_opts");n?new i(n).mask(this):ne.off(this)}else{if("setvalue"===t.type||"FORM"===this.nodeName||!(this.disabled||this.readOnly&&!("keydown"===t.type&&t.ctrlKey&&67===t.keyCode||!1===c.tabThrough&&t.keyCode===i.keyCode.TAB))){switch(t.type){case"input":if(!0===X)return X=!1,t.preventDefault();break;case"keydown":J=!1,X=!1;break;case"keypress":if(!0===J)return t.preventDefault();J=!0;break;case"click":if(p||f){var o=this,s=arguments;return setTimeout(function(){r.apply(o,s)},0),!1}}var l=r.apply(this,arguments);return!1===l&&(t.preventDefault(),t.stopPropagation()),l}t.preventDefault()}};t.inputmask.events[n]=t.inputmask.events[n]||[],t.inputmask.events[n].push(o),-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).on(n,o):e(t).on(n,o)},off:function(t,n){if(t.inputmask&&t.inputmask.events){var a;n?(a=[])[n]=t.inputmask.events[n]:a=t.inputmask.events,e.each(a,function(n,a){for(;a.length>0;){var i=a.pop();-1!==e.inArray(n,["submit","reset"])?null!==t.form&&e(t.form).off(n,i):e(t).off(n,i)}delete t.inputmask.events[n]})}}},ae={keydownEvent:function(t){var a=this,r=e(a),o=t.keyCode,s=G(a);if(o===i.keyCode.BACKSPACE||o===i.keyCode.DELETE||f&&o===i.keyCode.BACKSPACE_SAFARI||t.ctrlKey&&o===i.keyCode.X&&!function(e){var t=n.createElement("input"),a="on"+e,i=a in t;return i||(t.setAttribute(a,"return;"),i="function"==typeof t[a]),t=null,i}("cut"))t.preventDefault(),V(a,o,s),N(a,A(!0),h().p,t,a.inputmask._valueGet()!==A().join("")),a.inputmask._valueGet()===w().join("")?r.trigger("cleared"):!0===U(A())&&r.trigger("complete");else if(o===i.keyCode.END||o===i.keyCode.PAGE_DOWN){t.preventDefault();var l=_(v());c.insertMode||l!==h().maskLength||t.shiftKey||l--,G(a,t.shiftKey?s.begin:l,l,!0)}else o===i.keyCode.HOME&&!t.shiftKey||o===i.keyCode.PAGE_UP?(t.preventDefault(),G(a,0,t.shiftKey?s.begin:0,!0)):(c.undoOnEscape&&o===i.keyCode.ESCAPE||90===o&&t.ctrlKey)&&!0!==t.altKey?(F(a,!0,!1,z.split("")),r.trigger("click")):o!==i.keyCode.INSERT||t.shiftKey||t.ctrlKey?!0===c.tabThrough&&o===i.keyCode.TAB?(!0===t.shiftKey?(null===x(s.begin).match.fn&&(s.begin=_(s.begin)),s.end=D(s.begin,!0),s.begin=D(s.end,!0)):(s.begin=_(s.begin,!0),s.end=_(s.begin,!0),s.end<h().maskLength&&s.end--),s.begin<h().maskLength&&(t.preventDefault(),G(a,s.begin,s.end))):t.shiftKey||!1===c.insertMode&&(o===i.keyCode.RIGHT?setTimeout(function(){var e=G(a);G(a,e.begin)},0):o===i.keyCode.LEFT&&setTimeout(function(){var e=G(a);G(a,Z?e.begin+1:e.begin-1)},0)):(c.insertMode=!c.insertMode,G(a,c.insertMode||s.begin!==h().maskLength?s.begin:s.begin-1));c.onKeyDown.call(this,t,A(),G(a).begin,c),ee=-1!==e.inArray(o,c.ignorables)},keypressEvent:function(t,n,r,o,s){var l=this,u=e(l),p=t.which||t.charCode||t.keyCode;if(!(!0===n||t.ctrlKey&&t.altKey)&&(t.ctrlKey||t.metaKey||ee))return p===i.keyCode.ENTER&&z!==A().join("")&&(z=A().join(""),setTimeout(function(){u.trigger("change")},0)),!0;if(p){46===p&&!1===t.shiftKey&&""!==c.radixPoint&&(p=c.radixPoint.charCodeAt(0));var f,d=n?{begin:s,end:s}:G(l),m=String.fromCharCode(p);h().writeOutBuffer=!0;var v=R(d,m,o);if(!1!==v&&(g(!0),f=v.caret!==a?v.caret:n?v.pos+1:_(v.pos),h().p=f),!1!==r&&(setTimeout(function(){c.onKeyValidation.call(l,p,v,c)},0),h().writeOutBuffer&&!1!==v)){var y=A();N(l,y,c.numericInput&&v.caret===a?D(f):f,t,!0!==n),!0!==n&&setTimeout(function(){!0===U(y)&&u.trigger("complete")},0)}if(t.preventDefault(),n)return!1!==v&&(v.forwardPosition=f),v}},pasteEvent:function(n){var a,i=this,r=n.originalEvent||n,o=e(i),s=i.inputmask._valueGet(!0),l=G(i);Z&&(a=l.end,l.end=l.begin,l.begin=a);var u=s.substr(0,l.begin),p=s.substr(l.end,s.length);if(u===(Z?w().reverse():w()).slice(0,l.begin).join("")&&(u=""),p===(Z?w().reverse():w()).slice(l.end).join("")&&(p=""),Z&&(a=u,u=p,p=a),t.clipboardData&&t.clipboardData.getData)s=u+t.clipboardData.getData("Text")+p;else{if(!r.clipboardData||!r.clipboardData.getData)return!0;s=u+r.clipboardData.getData("text/plain")+p}var f=s;if(e.isFunction(c.onBeforePaste)){if(!1===(f=c.onBeforePaste.call(W,s,c)))return n.preventDefault();f||(f=s)}return F(i,!1,!1,Z?f.split("").reverse():f.toString().split("")),N(i,A(),_(v()),n,z!==A().join("")),!0===U(A())&&o.trigger("complete"),n.preventDefault()},inputFallBackEvent:function(t){var n=this,a=n.inputmask._valueGet();if(A().join("")!==a){var r=G(n);if(!1===function(t,n,a){if("."===n.charAt(a.begin-1)&&""!==c.radixPoint&&((n=n.split(""))[a.begin-1]=c.radixPoint.charAt(0),n=n.join("")),n.charAt(a.begin-1)===c.radixPoint&&n.length>A().length){var i=new e.Event("keypress");return i.which=c.radixPoint.charCodeAt(0),ae.keypressEvent.call(t,i,!0,!0,!1,a.begin-1),!1}}(n,a,r))return!1;if(a=a.replace(new RegExp("("+i.escapeRegex(w().join(""))+")*"),""),!1===function(t,n,a){if(p){var i=n.replace(A().join(""),"");if(1===i.length){var r=new e.Event("keypress");return r.which=i.charCodeAt(0),ae.keypressEvent.call(t,r,!0,!0,!1,h().validPositions[a.begin-1]?a.begin:a.begin-1),!1}}}(n,a,r))return!1;r.begin>a.length&&(G(n,a.length),r=G(n));var o=A().join(""),s=a.substr(0,r.begin),l=a.substr(r.begin),u=o.substr(0,r.begin),f=o.substr(r.begin),d=r,m="",g=!1;if(s!==u){d.begin=0;for(var v=(g=s.length>=u.length)?s.length:u.length,y=0;s.charAt(y)===u.charAt(y)&&y<v;y++)d.begin++;g&&(m+=s.slice(d.begin,d.end))}l!==f&&(l.length>f.length?g&&(d.end=d.begin):l.length<f.length?d.end+=f.length-l.length:l.charAt(0)!==f.charAt(0)&&d.end++),N(n,A(),d),m.length>0?e.each(m.split(""),function(t,a){var i=new e.Event("keypress");i.which=a.charCodeAt(0),ee=!1,ae.keypressEvent.call(n,i)}):(d.begin===d.end-1&&G(n,D(d.begin+1),d.end),t.keyCode=i.keyCode.DELETE,ae.keydownEvent.call(n,t)),t.preventDefault()}},setValueEvent:function(t){this.inputmask.refreshValue=!1;var n=this,a=n.inputmask._valueGet(!0);e.isFunction(c.onBeforeMask)&&(a=c.onBeforeMask.call(W,a,c)||a),a=a.split(""),F(n,!0,!1,Z?a.reverse():a),z=A().join(""),(c.clearMaskOnLostFocus||c.clearIncomplete)&&n.inputmask._valueGet()===w().join("")&&n.inputmask._valueSet("")},focusEvent:function(e){var t=this,n=t.inputmask._valueGet();c.showMaskOnFocus&&(!c.showMaskOnHover||c.showMaskOnHover&&""===n)&&(t.inputmask._valueGet()!==A().join("")?N(t,A(),_(v())):!1===te&&G(t,_(v()))),!0===c.positionCaretOnTab&&!1===te&&""!==n&&(N(t,A(),G(t)),ae.clickEvent.apply(t,[e,!0])),z=A().join("")},mouseleaveEvent:function(e){var t=this;if(te=!1,c.clearMaskOnLostFocus&&n.activeElement!==t){var a=A().slice(),i=t.inputmask._valueGet();i!==t.getAttribute("placeholder")&&""!==i&&(-1===v()&&i===w().join("")?a=[]:L(a),N(t,a))}},clickEvent:function(t,i){function r(t){if(""!==c.radixPoint){var n=h().validPositions;if(n[t]===a||n[t].input===I(t)){if(t<_(-1))return!0;var i=e.inArray(c.radixPoint,A());if(-1!==i){for(var r in n)if(i<r&&n[r].input!==I(r))return!1;return!0}}}return!1}var o=this;setTimeout(function(){if(n.activeElement===o){var e=G(o);if(i&&(Z?e.end=e.begin:e.begin=e.end),e.begin===e.end)switch(c.positionCaretOnClick){case"none":break;case"radixFocus":if(r(e.begin)){var t=A().join("").indexOf(c.radixPoint);G(o,c.numericInput?_(t):t);break}default:var s=e.begin,l=v(s,!0),u=_(l);if(s<u)G(o,M(s,!0)||M(s-1,!0)?s:_(s));else{var p=h().validPositions[l],f=b(u,p?p.match.locator:a,p),d=I(u,f.match);if(""!==d&&A()[u]!==d&&!0!==f.match.optionalQuantifier&&!0!==f.match.newBlockMarker||!M(u,!0)&&f.match.def===d){var m=_(u);(s>=m||s===u)&&(u=m)}G(o,u)}}}},0)},dblclickEvent:function(e){var t=this;setTimeout(function(){G(t,0,_(v()))},0)},cutEvent:function(a){var r=this,o=e(r),s=G(r),l=a.originalEvent||a,c=t.clipboardData||l.clipboardData,u=Z?A().slice(s.end,s.begin):A().slice(s.begin,s.end);c.setData("text",Z?u.reverse().join(""):u.join("")),n.execCommand&&n.execCommand("copy"),V(r,i.keyCode.DELETE,s),N(r,A(),h().p,a,z!==A().join("")),r.inputmask._valueGet()===w().join("")&&o.trigger("cleared")},blurEvent:function(t){var n=e(this),i=this;if(i.inputmask){var r=i.inputmask._valueGet(),o=A().slice();""!==r&&(c.clearMaskOnLostFocus&&(-1===v()&&r===w().join("")?o=[]:L(o)),!1===U(o)&&(setTimeout(function(){n.trigger("incomplete")},0),c.clearIncomplete&&(g(),o=c.clearMaskOnLostFocus?[]:w().slice())),N(i,o,a,t)),z!==A().join("")&&(z=o.join(""),n.trigger("change"))}},mouseenterEvent:function(e){var t=this;te=!0,n.activeElement!==t&&c.showMaskOnHover&&t.inputmask._valueGet()!==A().join("")&&N(t,A())},submitEvent:function(e){z!==A().join("")&&q.trigger("change"),c.clearMaskOnLostFocus&&-1===v()&&Y.inputmask._valueGet&&Y.inputmask._valueGet()===w().join("")&&Y.inputmask._valueSet(""),c.removeMaskOnSubmit&&(Y.inputmask._valueSet(Y.inputmask.unmaskedvalue(),!0),setTimeout(function(){N(Y,A())},0))},resetEvent:function(e){Y.inputmask.refreshValue=!0,setTimeout(function(){q.trigger("setvalue")},0)}};i.prototype.positionColorMask=function(e,t){e.style.left=t.offsetLeft+"px"};var ie;if(r!==a)switch(r.action){case"isComplete":return Y=r.el,U(A());case"unmaskedvalue":return Y!==a&&r.value===a||(ie=r.value,ie=(e.isFunction(c.onBeforeMask)?c.onBeforeMask.call(W,ie,c)||ie:ie).split(""),F(a,!1,!1,Z?ie.reverse():ie),e.isFunction(c.onBeforeWrite)&&c.onBeforeWrite.call(W,a,A(),0,c)),T(Y);case"mask":!function(t){ne.off(t);var i=function(t,i){var r=t.getAttribute("type"),s="INPUT"===t.tagName&&-1!==e.inArray(r,i.supportsInputType)||t.isContentEditable||"TEXTAREA"===t.tagName;if(!s)if("INPUT"===t.tagName){var l=n.createElement("input");l.setAttribute("type",r),s="text"===l.type,l=null}else s="partial";return!1!==s?function(t){function r(){return this.inputmask?this.inputmask.opts.autoUnmask?this.inputmask.unmaskedvalue():-1!==v()||!0!==i.nullable?n.activeElement===this&&i.clearMaskOnLostFocus?(Z?L(A().slice()).reverse():L(A().slice())).join(""):l.call(this):"":l.call(this)}function s(t){c.call(this,t),this.inputmask&&e(this).trigger("setvalue")}var l,c;if(!t.inputmask.__valueGet){if(!0!==i.noValuePatching){if(Object.getOwnPropertyDescriptor){"function"!=typeof Object.getPrototypeOf&&(Object.getPrototypeOf="object"===o("test".__proto__)?function(e){return e.__proto__}:function(e){return e.constructor.prototype});var u=Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(t),"value"):a;u&&u.get&&u.set?(l=u.get,c=u.set,Object.defineProperty(t,"value",{get:r,set:s,configurable:!0})):"INPUT"!==t.tagName&&(l=function(){return this.textContent},c=function(e){this.textContent=e},Object.defineProperty(t,"value",{get:r,set:s,configurable:!0}))}else n.__lookupGetter__&&t.__lookupGetter__("value")&&(l=t.__lookupGetter__("value"),c=t.__lookupSetter__("value"),t.__defineGetter__("value",r),t.__defineSetter__("value",s));t.inputmask.__valueGet=l,t.inputmask.__valueSet=c}t.inputmask._valueGet=function(e){return Z&&!0!==e?l.call(this.el).split("").reverse().join(""):l.call(this.el)},t.inputmask._valueSet=function(e,t){c.call(this.el,null===e||e===a?"":!0!==t&&Z?e.split("").reverse().join(""):e)},l===a&&(l=function(){return this.value},c=function(e){this.value=e},function(t){if(e.valHooks&&(e.valHooks[t]===a||!0!==e.valHooks[t].inputmaskpatch)){var n=e.valHooks[t]&&e.valHooks[t].get?e.valHooks[t].get:function(e){return e.value},r=e.valHooks[t]&&e.valHooks[t].set?e.valHooks[t].set:function(e,t){return e.value=t,e};e.valHooks[t]={get:function(e){if(e.inputmask){if(e.inputmask.opts.autoUnmask)return e.inputmask.unmaskedvalue();var t=n(e);return-1!==v(a,a,e.inputmask.maskset.validPositions)||!0!==i.nullable?t:""}return n(e)},set:function(t,n){var a,i=e(t);return a=r(t,n),t.inputmask&&i.trigger("setvalue"),a},inputmaskpatch:!0}}}(t.type),function(t){ne.on(t,"mouseenter",function(t){var n=e(this);this.inputmask._valueGet()!==A().join("")&&n.trigger("setvalue")})}(t))}}(t):t.inputmask=a,s}(t,c);if(!1!==i&&(Y=t,q=e(Y),-1===(Q=Y!==a?Y.maxLength:a)&&(Q=a),!0===c.colorMask&&K(Y),d&&(Y.hasOwnProperty("inputmode")&&(Y.inputmode=c.inputmode,Y.setAttribute("inputmode",c.inputmode)),"rtfm"===c.androidHack&&(!0!==c.colorMask&&K(Y),Y.type="password")),!0===i&&(ne.on(Y,"submit",ae.submitEvent),ne.on(Y,"reset",ae.resetEvent),ne.on(Y,"mouseenter",ae.mouseenterEvent),ne.on(Y,"blur",ae.blurEvent),ne.on(Y,"focus",ae.focusEvent),ne.on(Y,"mouseleave",ae.mouseleaveEvent),!0!==c.colorMask&&ne.on(Y,"click",ae.clickEvent),ne.on(Y,"dblclick",ae.dblclickEvent),ne.on(Y,"paste",ae.pasteEvent),ne.on(Y,"dragdrop",ae.pasteEvent),ne.on(Y,"drop",ae.pasteEvent),ne.on(Y,"cut",ae.cutEvent),ne.on(Y,"complete",c.oncomplete),ne.on(Y,"incomplete",c.onincomplete),ne.on(Y,"cleared",c.oncleared),d||!0===c.inputEventOnly?Y.removeAttribute("maxLength"):(ne.on(Y,"keydown",ae.keydownEvent),ne.on(Y,"keypress",ae.keypressEvent)),ne.on(Y,"compositionstart",e.noop),ne.on(Y,"compositionupdate",e.noop),ne.on(Y,"compositionend",e.noop),ne.on(Y,"keyup",e.noop),ne.on(Y,"input",ae.inputFallBackEvent),ne.on(Y,"beforeinput",e.noop)),ne.on(Y,"setvalue",ae.setValueEvent),z=w().join(""),""!==Y.inputmask._valueGet(!0)||!1===c.clearMaskOnLostFocus||n.activeElement===Y)){var r=e.isFunction(c.onBeforeMask)?c.onBeforeMask.call(W,Y.inputmask._valueGet(!0),c)||Y.inputmask._valueGet(!0):Y.inputmask._valueGet(!0);""!==r&&F(Y,!0,!1,Z?r.split("").reverse():r.split(""));var s=A().slice();z=s.join(""),!1===U(s)&&c.clearIncomplete&&g(),c.clearMaskOnLostFocus&&n.activeElement!==Y&&(-1===v()?s=[]:L(s)),N(Y,s),n.activeElement===Y&&G(Y,_(v()))}}(Y);break;case"format":return ie=(e.isFunction(c.onBeforeMask)?c.onBeforeMask.call(W,r.value,c)||r.value:r.value).split(""),F(a,!0,!1,Z?ie.reverse():ie),r.metadata?{value:Z?A().slice().reverse().join(""):A().join(""),metadata:l.call(this,{action:"getmetadata"},s,c)}:Z?A().slice().reverse().join(""):A().join("");case"isValid":r.value?(ie=r.value.split(""),F(a,!0,!0,Z?ie.reverse():ie)):r.value=A().join("");for(var re=A(),oe=B(),se=re.length-1;se>oe&&!M(se);se--);return re.splice(oe,se+1-oe),U(re)&&r.value===A().join("");case"getemptymask":return w().join("");case"remove":if(Y&&Y.inputmask){q=e(Y),Y.inputmask._valueSet(c.autoUnmask?T(Y):Y.inputmask._valueGet(!0)),ne.off(Y);Object.getOwnPropertyDescriptor&&Object.getPrototypeOf?Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Y),"value")&&Y.inputmask.__valueGet&&Object.defineProperty(Y,"value",{get:Y.inputmask.__valueGet,set:Y.inputmask.__valueSet,configurable:!0}):n.__lookupGetter__&&Y.__lookupGetter__("value")&&Y.inputmask.__valueGet&&(Y.__defineGetter__("value",Y.inputmask.__valueGet),Y.__defineSetter__("value",Y.inputmask.__valueSet)),Y.inputmask=a}return Y;case"getmetadata":if(e.isArray(s.metadata)){var le=m(!0,0,!1).join("");return e.each(s.metadata,function(e,t){if(t.mask===le)return le=t,!1}),le}return s.metadata}}var c=navigator.userAgent,u=/mobile/i.test(c),p=/iemobile/i.test(c),f=/iphone/i.test(c)&&!p,d=/android/i.test(c)&&!p;return i.prototype={dataAttribute:"data-inputmask",defaults:{placeholder:"_",optionalmarker:{start:"[",end:"]"},quantifiermarker:{start:"{",end:"}"},groupmarker:{start:"(",end:")"},alternatormarker:"|",escapeChar:"\\",mask:null,regex:null,oncomplete:e.noop,onincomplete:e.noop,oncleared:e.noop,repeat:0,greedy:!0,autoUnmask:!1,removeMaskOnSubmit:!1,clearMaskOnLostFocus:!0,insertMode:!0,clearIncomplete:!1,alias:null,onKeyDown:e.noop,onBeforeMask:null,onBeforePaste:function(t,n){return e.isFunction(n.onBeforeMask)?n.onBeforeMask.call(this,t,n):t},onBeforeWrite:null,onUnMask:null,showMaskOnFocus:!0,showMaskOnHover:!0,onKeyValidation:e.noop,skipOptionalPartCharacter:" ",numericInput:!1,rightAlign:!1,undoOnEscape:!0,radixPoint:"",radixPointDefinitionSymbol:a,groupSeparator:"",keepStatic:null,positionCaretOnTab:!0,tabThrough:!1,supportsInputType:["text","tel","password"],ignorables:[8,9,13,19,27,33,34,35,36,37,38,39,40,45,46,93,112,113,114,115,116,117,118,119,120,121,122,123,0,229],isComplete:null,canClearPosition:e.noop,preValidation:null,postValidation:null,staticDefinitionSymbol:a,jitMasking:!1,nullable:!0,inputEventOnly:!1,noValuePatching:!1,positionCaretOnClick:"lvp",casing:null,inputmode:"verbatim",colorMask:!1,androidHack:!1,importDataAttributes:!0},definitions:{9:{validator:"[0-91-9]",cardinality:1,definitionSymbol:"*"},a:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,definitionSymbol:"*"},"*":{validator:"[0-91-9A-Za-zА-яЁёÀ-ÿµ]",cardinality:1}},aliases:{},masksCache:{},mask:function(o){function c(n,i,o,s){if(!0===i.importDataAttributes){var l,c,u,p,f=function(e,i){null!==(i=i!==a?i:n.getAttribute(s+"-"+e))&&("string"==typeof i&&(0===e.indexOf("on")?i=t[i]:"false"===i?i=!1:"true"===i&&(i=!0)),o[e]=i)},d=n.getAttribute(s);if(d&&""!==d&&(d=d.replace(new RegExp("'","g"),'"'),c=JSON.parse("{"+d+"}")),c){u=a;for(p in c)if("alias"===p.toLowerCase()){u=c[p];break}}f("alias",u),o.alias&&r(o.alias,o,i);for(l in i){if(c){u=a;for(p in c)if(p.toLowerCase()===l.toLowerCase()){u=c[p];break}}f(l,u)}}return e.extend(!0,i,o),("rtl"===n.dir||i.rightAlign)&&(n.style.textAlign="right"),("rtl"===n.dir||i.numericInput)&&(n.dir="ltr",n.removeAttribute("dir"),i.isRTL=!0),i}var u=this;return"string"==typeof o&&(o=n.getElementById(o)||n.querySelectorAll(o)),o=o.nodeName?[o]:o,e.each(o,function(t,n){var r=e.extend(!0,{},u.opts);c(n,r,e.extend(!0,{},u.userOptions),u.dataAttribute);var o=s(r,u.noMasksCache);o!==a&&(n.inputmask!==a&&(n.inputmask.opts.autoUnmask=!0,n.inputmask.remove()),n.inputmask=new i(a,a,!0),n.inputmask.opts=r,n.inputmask.noMasksCache=u.noMasksCache,n.inputmask.userOptions=e.extend(!0,{},u.userOptions),n.inputmask.isRTL=r.isRTL||r.numericInput,n.inputmask.el=n,n.inputmask.maskset=o,e.data(n,"_inputmask_opts",r),l.call(n.inputmask,{action:"mask"}))}),o&&o[0]?o[0].inputmask||this:this},option:function(t,n){return"string"==typeof t?this.opts[t]:"object"===(void 0===t?"undefined":o(t))?(e.extend(this.userOptions,t),this.el&&!0!==n&&this.mask(this.el),this):void 0},unmaskedvalue:function(e){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"unmaskedvalue",value:e})},remove:function(){return l.call(this,{action:"remove"})},getemptymask:function(){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"getemptymask"})},hasMaskedValue:function(){return!this.opts.autoUnmask},isComplete:function(){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"isComplete"})},getmetadata:function(){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"getmetadata"})},isValid:function(e){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"isValid",value:e})},format:function(e,t){return this.maskset=this.maskset||s(this.opts,this.noMasksCache),l.call(this,{action:"format",value:e,metadata:t})},analyseMask:function(t,n,r){function o(e,t,n,a){this.matches=[],this.openGroup=e||!1,this.alternatorGroup=!1,this.isGroup=e||!1,this.isOptional=t||!1,this.isQuantifier=n||!1,this.isAlternator=a||!1,this.quantifier={min:1,max:1}}function s(t,o,s){s=s!==a?s:t.matches.length;var l=t.matches[s-1];if(n)0===o.indexOf("[")||b&&/\\d|\\s|\\w]/i.test(o)||"."===o?t.matches.splice(s++,0,{fn:new RegExp(o,r.casing?"i":""),cardinality:1,optionality:t.isOptional,newBlockMarker:l===a||l.def!==o,casing:null,def:o,placeholder:a,nativeDef:o}):(b&&(o=o[o.length-1]),e.each(o.split(""),function(e,n){l=t.matches[s-1],t.matches.splice(s++,0,{fn:null,cardinality:0,optionality:t.isOptional,newBlockMarker:l===a||l.def!==n&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||n,placeholder:r.staticDefinitionSymbol!==a?n:a,nativeDef:n})})),b=!1;else{var c=(r.definitions?r.definitions[o]:a)||i.prototype.definitions[o];if(c&&!b){for(var u=c.prevalidator,p=u?u.length:0,f=1;f<c.cardinality;f++){var d=p>=f?u[f-1]:[],m=d.validator,h=d.cardinality;t.matches.splice(s++,0,{fn:m?"string"==typeof m?new RegExp(m,r.casing?"i":""):new function(){this.test=m}:new RegExp("."),cardinality:h||1,optionality:t.isOptional,newBlockMarker:l===a||l.def!==(c.definitionSymbol||o),casing:c.casing,def:c.definitionSymbol||o,placeholder:c.placeholder,nativeDef:o}),l=t.matches[s-1]}t.matches.splice(s++,0,{fn:c.validator?"string"==typeof c.validator?new RegExp(c.validator,r.casing?"i":""):new function(){this.test=c.validator}:new RegExp("."),cardinality:c.cardinality,optionality:t.isOptional,newBlockMarker:l===a||l.def!==(c.definitionSymbol||o),casing:c.casing,def:c.definitionSymbol||o,placeholder:c.placeholder,nativeDef:o})}else t.matches.splice(s++,0,{fn:null,cardinality:0,optionality:t.isOptional,newBlockMarker:l===a||l.def!==o&&null!==l.fn,casing:null,def:r.staticDefinitionSymbol||o,placeholder:r.staticDefinitionSymbol!==a?o:a,nativeDef:o}),b=!1}}function l(t){t&&t.matches&&e.each(t.matches,function(e,i){var o=t.matches[e+1];(o===a||o.matches===a||!1===o.isQuantifier)&&i&&i.isGroup&&(i.isGroup=!1,n||(s(i,r.groupmarker.start,0),!0!==i.openGroup&&s(i,r.groupmarker.end))),l(i)})}function c(){if(P.length>0){if(m=P[P.length-1],s(m,f),m.isAlternator){h=P.pop();for(var e=0;e<h.matches.length;e++)h.matches[e].isGroup=!1;P.length>0?(m=P[P.length-1]).matches.push(h):x.matches.push(h)}}else s(x,f)}function u(e){e.matches=e.matches.reverse();for(var t in e.matches)if(e.matches.hasOwnProperty(t)){var n=parseInt(t);if(e.matches[t].isQuantifier&&e.matches[n+1]&&e.matches[n+1].isGroup){var i=e.matches[t];e.matches.splice(t,1),e.matches.splice(n+1,0,i)}e.matches[t].matches!==a?e.matches[t]=u(e.matches[t]):e.matches[t]=function(e){return e===r.optionalmarker.start?e=r.optionalmarker.end:e===r.optionalmarker.end?e=r.optionalmarker.start:e===r.groupmarker.start?e=r.groupmarker.end:e===r.groupmarker.end&&(e=r.groupmarker.start),e}(e.matches[t])}return e}var p,f,d,m,h,g,v,y=/(?:[?*+]|\{[0-9\+\*]+(?:,[0-9\+\*]*)?\})|[^.?*+^${[]()|\\]+|./g,k=/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,b=!1,x=new o,P=[],S=[];for(n&&(r.optionalmarker.start=a,r.optionalmarker.end=a);p=n?k.exec(t):y.exec(t);){if(f=p[0],n)switch(f.charAt(0)){case"?":f="{0,1}";break;case"+":case"*":f="{"+f+"}"}if(b)c();else switch(f.charAt(0)){case r.escapeChar:b=!0,n&&c();break;case r.optionalmarker.end:case r.groupmarker.end:if(d=P.pop(),d.openGroup=!1,d!==a)if(P.length>0){if((m=P[P.length-1]).matches.push(d),m.isAlternator){h=P.pop();for(var w=0;w<h.matches.length;w++)h.matches[w].isGroup=!1,h.matches[w].alternatorGroup=!1;P.length>0?(m=P[P.length-1]).matches.push(h):x.matches.push(h)}}else x.matches.push(d);else c();break;case r.optionalmarker.start:P.push(new o(!1,!0));break;case r.groupmarker.start:P.push(new o(!0));break;case r.quantifiermarker.start:var A=new o(!1,!1,!0),E=(f=f.replace(/[{}]/g,"")).split(","),C=isNaN(E[0])?E[0]:parseInt(E[0]),O=1===E.length?C:isNaN(E[1])?E[1]:parseInt(E[1]);if("*"!==O&&"+"!==O||(C="*"===O?0:1),A.quantifier={min:C,max:O},P.length>0){var R=P[P.length-1].matches;(p=R.pop()).isGroup||((v=new o(!0)).matches.push(p),p=v),R.push(p),R.push(A)}else(p=x.matches.pop()).isGroup||(n&&null===p.fn&&"."===p.def&&(p.fn=new RegExp(p.def,r.casing?"i":"")),(v=new o(!0)).matches.push(p),p=v),x.matches.push(p),x.matches.push(A);break;case r.alternatormarker:if(P.length>0){var M=(m=P[P.length-1]).matches[m.matches.length-1];g=m.openGroup&&(M.matches===a||!1===M.isGroup&&!1===M.isAlternator)?P.pop():m.matches.pop()}else g=x.matches.pop();if(g.isAlternator)P.push(g);else if(g.alternatorGroup?(h=P.pop(),g.alternatorGroup=!1):h=new o(!1,!1,!1,!0),h.matches.push(g),P.push(h),g.openGroup){g.openGroup=!1;var _=new o(!0);_.alternatorGroup=!0,P.push(_)}break;default:c()}}for(;P.length>0;)d=P.pop(),x.matches.push(d);return x.matches.length>0&&(l(x),S.push(x)),(r.numericInput||r.isRTL)&&u(S[0]),S}},i.extendDefaults=function(t){e.extend(!0,i.prototype.defaults,t)},i.extendDefinitions=function(t){e.extend(!0,i.prototype.definitions,t)},i.extendAliases=function(t){e.extend(!0,i.prototype.aliases,t)},i.format=function(e,t,n){return i(t).format(e,n)},i.unmask=function(e,t){return i(t).unmaskedvalue(e)},i.isValid=function(e,t){return i(t).isValid(e)},i.remove=function(t){e.each(t,function(e,t){t.inputmask&&t.inputmask.remove()})},i.escapeRegex=function(e){var t=["/",".","*","+","?","|","(",")","[","]","{","}","\\","$","^"];return e.replace(new RegExp("(\\"+t.join("|\\")+")","gim"),"\\$1")},i.keyCode={ALT:18,BACKSPACE:8,BACKSPACE_SAFARI:127,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91,X:88},i})},function(e,t){e.exports=jQuery},function(e,t,n){"use strict";function a(e){return e&&e.__esModule?e:{default:e}}n(4),n(9),n(12),n(13),n(14),n(15);var i=a(n(1)),r=a(n(0)),o=a(n(2));r.default===o.default&&n(16),window.Inputmask=i.default},function(e,t,n){var a=n(5);"string"==typeof a&&(a=[[e.i,a,""]]);var i={hmr:!0};i.transform=void 0;n(7)(a,i);a.locals&&(e.exports=a.locals)},function(e,t,n){(e.exports=n(6)(void 0)).push([e.i,"span.im-caret {\r\n -webkit-animation: 1s blink step-end infinite;\r\n animation: 1s blink step-end infinite;\r\n}\r\n\r\n@keyframes blink {\r\n from, to {\r\n border-right-color: black;\r\n }\r\n 50% {\r\n border-right-color: transparent;\r\n }\r\n}\r\n\r\n@-webkit-keyframes blink {\r\n from, to {\r\n border-right-color: black;\r\n }\r\n 50% {\r\n border-right-color: transparent;\r\n }\r\n}\r\n\r\nspan.im-static {\r\n color: grey;\r\n}\r\n\r\ndiv.im-colormask {\r\n display: inline-block;\r\n border-style: inset;\r\n border-width: 2px;\r\n -webkit-appearance: textfield;\r\n -moz-appearance: textfield;\r\n appearance: textfield;\r\n}\r\n\r\ndiv.im-colormask > input {\r\n position: absolute;\r\n display: inline-block;\r\n background-color: transparent;\r\n color: transparent;\r\n -webkit-appearance: caret;\r\n -moz-appearance: caret;\r\n appearance: caret;\r\n border-style: none;\r\n left: 0; /*calculated*/\r\n}\r\n\r\ndiv.im-colormask > input:focus {\r\n outline: none;\r\n}\r\n\r\ndiv.im-colormask > input::-moz-selection{\r\n background: none;\r\n}\r\n\r\ndiv.im-colormask > input::selection{\r\n background: none;\r\n}\r\ndiv.im-colormask > input::-moz-selection{\r\n background: none;\r\n}\r\n\r\ndiv.im-colormask > div {\r\n color: black;\r\n display: inline-block;\r\n width: 100px; /*calculated*/\r\n}",""])},function(e,t){function n(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=a(i),o=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[n].concat(o).concat([r]).join("\n")}return[n].join("\n")}function a(e){return"/*# "+("sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e)))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var a=n(t,e);return t[2]?"@media "+t[2]+"{"+a+"}":a}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var a={},i=0;i<this.length;i++){var r=this[i][0];"number"==typeof r&&(a[r]=!0)}for(i=0;i<e.length;i++){var o=e[i];"number"==typeof o[0]&&a[o[0]]||(n&&!o[2]?o[2]=n:n&&(o[2]="("+o[2]+") and ("+n+")"),t.push(o))}},t}},function(e,t,n){function a(e,t){for(var n=0;n<e.length;n++){var a=e[n],i=m[a.id];if(i){i.refs++;for(o=0;o<i.parts.length;o++)i.parts[o](a.parts[o]);for(;o<a.parts.length;o++)i.parts.push(u(a.parts[o],t))}else{for(var r=[],o=0;o<a.parts.length;o++)r.push(u(a.parts[o],t));m[a.id]={id:a.id,refs:1,parts:r}}}}function i(e,t){for(var n=[],a={},i=0;i<e.length;i++){var r=e[i],o=t.base?r[0]+t.base:r[0],s={css:r[1],media:r[2],sourceMap:r[3]};a[o]?a[o].parts.push(s):n.push(a[o]={id:o,parts:[s]})}return n}function r(e,t){var n=g(e.insertInto);if(!n)throw new Error("Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.");var a=k[k.length-1];if("top"===e.insertAt)a?a.nextSibling?n.insertBefore(t,a.nextSibling):n.appendChild(t):n.insertBefore(t,n.firstChild),k.push(t);else if("bottom"===e.insertAt)n.appendChild(t);else{if("object"!=typeof e.insertAt||!e.insertAt.before)throw new Error("[Style Loader]\n\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\n Must be 'top', 'bottom', or Object.\n (https://github.com/webpack-contrib/style-loader#insertat)\n");var i=g(e.insertInto+" "+e.insertAt.before);n.insertBefore(t,i)}}function o(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e);var t=k.indexOf(e);t>=0&&k.splice(t,1)}function s(e){var t=document.createElement("style");return e.attrs.type="text/css",c(t,e.attrs),r(e,t),t}function l(e){var t=document.createElement("link");return e.attrs.type="text/css",e.attrs.rel="stylesheet",c(t,e.attrs),r(e,t),t}function c(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function u(e,t){var n,a,i,r;if(t.transform&&e.css){if(!(r=t.transform(e.css)))return function(){};e.css=r}if(t.singleton){var c=y++;n=v||(v=s(t)),a=p.bind(null,n,c,!1),i=p.bind(null,n,c,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=l(t),a=d.bind(null,n,t),i=function(){o(n),n.href&&URL.revokeObjectURL(n.href)}):(n=s(t),a=f.bind(null,n),i=function(){o(n)});return a(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;a(e=t)}else i()}}function p(e,t,n,a){var i=n?"":a.css;if(e.styleSheet)e.styleSheet.cssText=x(t,i);else{var r=document.createTextNode(i),o=e.childNodes;o[t]&&e.removeChild(o[t]),o.length?e.insertBefore(r,o[t]):e.appendChild(r)}}function f(e,t){var n=t.css,a=t.media;if(a&&e.setAttribute("media",a),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}function d(e,t,n){var a=n.css,i=n.sourceMap,r=void 0===t.convertToAbsoluteUrls&&i;(t.convertToAbsoluteUrls||r)&&(a=b(a)),i&&(a+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(i))))+" */");var o=new Blob([a],{type:"text/css"}),s=e.href;e.href=URL.createObjectURL(o),s&&URL.revokeObjectURL(s)}var m={},h=function(e){var t;return function(){return void 0===t&&(t=e.apply(this,arguments)),t}}(function(){return window&&document&&document.all&&!window.atob}),g=function(e){var t={};return function(n){if(void 0===t[n]){var a=e.call(this,n);if(a instanceof window.HTMLIFrameElement)try{a=a.contentDocument.head}catch(e){a=null}t[n]=a}return t[n]}}(function(e){return document.querySelector(e)}),v=null,y=0,k=[],b=n(8);e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||(t.singleton=h()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=i(e,t);return a(n,t),function(e){for(var r=[],o=0;o<n.length;o++){var s=n[o];(l=m[s.id]).refs--,r.push(l)}e&&a(i(e,t),t);for(o=0;o<r.length;o++){var l=r[o];if(0===l.refs){for(var c=0;c<l.parts.length;c++)l.parts[c]();delete m[l.id]}}}};var x=function(){var e=[];return function(t,n){return e[t]=n,e.filter(Boolean).join("\n")}}()},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,a=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var i=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(i))return e;var r;return r=0===i.indexOf("//")?i:0===i.indexOf("/")?n+i:a+i.replace(/^\.\//,""),"url("+JSON.stringify(r)+")"})}},function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(0),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t){function n(e){return isNaN(e)||29===new Date(e,2,0).getDate()}return t.extendAliases({"dd/mm/yyyy":{mask:"1/2/y",placeholder:"dd/mm/yyyy",regex:{val1pre:new RegExp("[0-3]"),val1:new RegExp("0[1-9]|[12][0-9]|3[01]"),val2pre:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|[12][0-9]|3[01])"+n+"[01])")},val2:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|[12][0-9])"+n+"(0[1-9]|1[012]))|(30"+n+"(0[13-9]|1[012]))|(31"+n+"(0[13578]|1[02]))")}},leapday:"29/02/",separator:"/",yearrange:{minyear:1900,maxyear:2099},isInYearRange:function(e,t,n){if(isNaN(e))return!1;var a=parseInt(e.concat(t.toString().slice(e.length))),i=parseInt(e.concat(n.toString().slice(e.length)));return!isNaN(a)&&(t<=a&&a<=n)||!isNaN(i)&&(t<=i&&i<=n)},determinebaseyear:function(e,t,n){var a=(new Date).getFullYear();if(e>a)return e;if(t<a){for(var i=t.toString().slice(0,2),r=t.toString().slice(2,4);t<i+n;)i--;var o=i+r;return e>o?e:o}if(e<=a&&a<=t){for(var s=a.toString().slice(0,2);t<s+n;)s--;var l=s+n;return l<e?e:l}return a},onKeyDown:function(n,a,i,r){var o=e(this);if(n.ctrlKey&&n.keyCode===t.keyCode.RIGHT){var s=new Date;o.val(s.getDate().toString()+(s.getMonth()+1).toString()+s.getFullYear().toString()),o.trigger("setvalue")}},getFrontValue:function(e,t,n){for(var a=0,i=0,r=0;r<e.length&&"2"!==e.charAt(r);r++){var o=n.definitions[e.charAt(r)];o?(a+=i,i=o.cardinality):i++}return t.join("").substr(a,i)},postValidation:function(e,t,a){var i,r,o=e.join("");return 0===a.mask.indexOf("y")?(r=o.substr(0,4),i=o.substring(4,10)):(r=o.substring(6,10),i=o.substr(0,6)),t&&(i!==a.leapday||n(r))},definitions:{1:{validator:function(e,t,n,a,i){var r=i.regex.val1.test(e);return a||r||e.charAt(1)!==i.separator&&-1==="-./".indexOf(e.charAt(1))||!(r=i.regex.val1.test("0"+e.charAt(0)))?r:(t.buffer[n-1]="0",{refreshFromBuffer:{start:n-1,end:n},pos:n,c:e.charAt(0)})},cardinality:2,prevalidator:[{validator:function(e,t,n,a,i){var r=e;isNaN(t.buffer[n+1])||(r+=t.buffer[n+1]);var o=1===r.length?i.regex.val1pre.test(r):i.regex.val1.test(r);if(o&&t.validPositions[n]&&(i.regex.val2(i.separator).test(e+t.validPositions[n].input)||(t.validPositions[n].input="0"===e?"1":"0")),!a&&!o){if(o=i.regex.val1.test(e+"0"))return t.buffer[n]=e,t.buffer[++n]="0",{pos:n,c:"0"};if(o=i.regex.val1.test("0"+e))return t.buffer[n]="0",n++,{pos:n}}return o},cardinality:1}]},2:{validator:function(e,t,n,a,i){var r=i.getFrontValue(t.mask,t.buffer,i);-1!==r.indexOf(i.placeholder[0])&&(r="01"+i.separator);var o=i.regex.val2(i.separator).test(r+e);return a||o||e.charAt(1)!==i.separator&&-1==="-./".indexOf(e.charAt(1))||!(o=i.regex.val2(i.separator).test(r+"0"+e.charAt(0)))?o:(t.buffer[n-1]="0",{refreshFromBuffer:{start:n-1,end:n},pos:n,c:e.charAt(0)})},cardinality:2,prevalidator:[{validator:function(e,t,n,a,i){isNaN(t.buffer[n+1])||(e+=t.buffer[n+1]);var r=i.getFrontValue(t.mask,t.buffer,i);-1!==r.indexOf(i.placeholder[0])&&(r="01"+i.separator);var o=1===e.length?i.regex.val2pre(i.separator).test(r+e):i.regex.val2(i.separator).test(r+e);return o&&t.validPositions[n]&&(i.regex.val2(i.separator).test(e+t.validPositions[n].input)||(t.validPositions[n].input="0"===e?"1":"0")),a||o||!(o=i.regex.val2(i.separator).test(r+"0"+e))?o:(t.buffer[n]="0",n++,{pos:n})},cardinality:1}]},y:{validator:function(e,t,n,a,i){return i.isInYearRange(e,i.yearrange.minyear,i.yearrange.maxyear)},cardinality:4,prevalidator:[{validator:function(e,t,n,a,i){var r=i.isInYearRange(e,i.yearrange.minyear,i.yearrange.maxyear);if(!a&&!r){var o=i.determinebaseyear(i.yearrange.minyear,i.yearrange.maxyear,e+"0").toString().slice(0,1);if(r=i.isInYearRange(o+e,i.yearrange.minyear,i.yearrange.maxyear))return t.buffer[n++]=o.charAt(0),{pos:n};if(o=i.determinebaseyear(i.yearrange.minyear,i.yearrange.maxyear,e+"0").toString().slice(0,2),r=i.isInYearRange(o+e,i.yearrange.minyear,i.yearrange.maxyear))return t.buffer[n++]=o.charAt(0),t.buffer[n++]=o.charAt(1),{pos:n}}return r},cardinality:1},{validator:function(e,t,n,a,i){var r=i.isInYearRange(e,i.yearrange.minyear,i.yearrange.maxyear);if(!a&&!r){var o=i.determinebaseyear(i.yearrange.minyear,i.yearrange.maxyear,e).toString().slice(0,2);if(r=i.isInYearRange(e[0]+o[1]+e[1],i.yearrange.minyear,i.yearrange.maxyear))return t.buffer[n++]=o.charAt(1),{pos:n};if(o=i.determinebaseyear(i.yearrange.minyear,i.yearrange.maxyear,e).toString().slice(0,2),r=i.isInYearRange(o+e,i.yearrange.minyear,i.yearrange.maxyear))return t.buffer[n-1]=o.charAt(0),t.buffer[n++]=o.charAt(1),t.buffer[n++]=e.charAt(0),{refreshFromBuffer:{start:n-3,end:n},pos:n}}return r},cardinality:2},{validator:function(e,t,n,a,i){return i.isInYearRange(e,i.yearrange.minyear,i.yearrange.maxyear)},cardinality:3}]}},insertMode:!1,autoUnmask:!1},"mm/dd/yyyy":{placeholder:"mm/dd/yyyy",alias:"dd/mm/yyyy",regex:{val2pre:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+n+"[0-3])|(02"+n+"[0-2])")},val2:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+n+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+n+"30)|((0[13578]|1[02])"+n+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(n,a,i,r){var o=e(this);if(n.ctrlKey&&n.keyCode===t.keyCode.RIGHT){var s=new Date;o.val((s.getMonth()+1).toString()+s.getDate().toString()+s.getFullYear().toString()),o.trigger("setvalue")}}},"yyyy/mm/dd":{mask:"y/1/2",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",leapday:"/02/29",onKeyDown:function(n,a,i,r){var o=e(this);if(n.ctrlKey&&n.keyCode===t.keyCode.RIGHT){var s=new Date;o.val(s.getFullYear().toString()+(s.getMonth()+1).toString()+s.getDate().toString()),o.trigger("setvalue")}}},"dd.mm.yyyy":{mask:"1.2.y",placeholder:"dd.mm.yyyy",leapday:"29.02.",separator:".",alias:"dd/mm/yyyy"},"dd-mm-yyyy":{mask:"1-2-y",placeholder:"dd-mm-yyyy",leapday:"29-02-",separator:"-",alias:"dd/mm/yyyy"},"mm.dd.yyyy":{mask:"1.2.y",placeholder:"mm.dd.yyyy",leapday:"02.29.",separator:".",alias:"mm/dd/yyyy"},"mm-dd-yyyy":{mask:"1-2-y",placeholder:"mm-dd-yyyy",leapday:"02-29-",separator:"-",alias:"mm/dd/yyyy"},"yyyy.mm.dd":{mask:"y.1.2",placeholder:"yyyy.mm.dd",leapday:".02.29",separator:".",alias:"yyyy/mm/dd"},"yyyy-mm-dd":{mask:"y-1-2",placeholder:"yyyy-mm-dd",leapday:"-02-29",separator:"-",alias:"yyyy/mm/dd"},datetime:{mask:"1/2/y h:s",placeholder:"dd/mm/yyyy hh:mm",alias:"dd/mm/yyyy",regex:{hrspre:new RegExp("[012]"),hrs24:new RegExp("2[0-4]|1[3-9]"),hrs:new RegExp("[01][0-9]|2[0-4]"),ampm:new RegExp("^[a|p|A|P][m|M]"),mspre:new RegExp("[0-5]"),ms:new RegExp("[0-5][0-9]")},timeseparator:":",hourFormat:"24",definitions:{h:{validator:function(e,t,n,a,i){if("24"===i.hourFormat&&24===parseInt(e,10))return t.buffer[n-1]="0",t.buffer[n]="0",{refreshFromBuffer:{start:n-1,end:n},c:"0"};var r=i.regex.hrs.test(e);if(!a&&!r&&(e.charAt(1)===i.timeseparator||-1!=="-.:".indexOf(e.charAt(1)))&&(r=i.regex.hrs.test("0"+e.charAt(0))))return t.buffer[n-1]="0",t.buffer[n]=e.charAt(0),n++,{refreshFromBuffer:{start:n-2,end:n},pos:n,c:i.timeseparator};if(r&&"24"!==i.hourFormat&&i.regex.hrs24.test(e)){var o=parseInt(e,10);return 24===o?(t.buffer[n+5]="a",t.buffer[n+6]="m"):(t.buffer[n+5]="p",t.buffer[n+6]="m"),(o-=12)<10?(t.buffer[n]=o.toString(),t.buffer[n-1]="0"):(t.buffer[n]=o.toString().charAt(1),t.buffer[n-1]=o.toString().charAt(0)),{refreshFromBuffer:{start:n-1,end:n+6},c:t.buffer[n]}}return r},cardinality:2,prevalidator:[{validator:function(e,t,n,a,i){var r=i.regex.hrspre.test(e);return a||r||!(r=i.regex.hrs.test("0"+e))?r:(t.buffer[n]="0",n++,{pos:n})},cardinality:1}]},s:{validator:"[0-5][0-9]",cardinality:2,prevalidator:[{validator:function(e,t,n,a,i){var r=i.regex.mspre.test(e);return a||r||!(r=i.regex.ms.test("0"+e))?r:(t.buffer[n]="0",n++,{pos:n})},cardinality:1}]},t:{validator:function(e,t,n,a,i){return i.regex.ampm.test(e+"m")},casing:"lower",cardinality:1}},insertMode:!1,autoUnmask:!1},datetime12:{mask:"1/2/y h:s t\\m",placeholder:"dd/mm/yyyy hh:mm xm",alias:"datetime",hourFormat:"12"},"mm/dd/yyyy hh:mm xm":{mask:"1/2/y h:s t\\m",placeholder:"mm/dd/yyyy hh:mm xm",alias:"datetime12",regex:{val2pre:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+n+"[0-3])|(02"+n+"[0-2])")},val2:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+n+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+n+"30)|((0[13578]|1[02])"+n+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},leapday:"02/29/",onKeyDown:function(n,a,i,r){var o=e(this);if(n.ctrlKey&&n.keyCode===t.keyCode.RIGHT){var s=new Date;o.val((s.getMonth()+1).toString()+s.getDate().toString()+s.getFullYear().toString()),o.trigger("setvalue")}}},"hh:mm t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"h:s t":{mask:"h:s t\\m",placeholder:"hh:mm xm",alias:"datetime",hourFormat:"12"},"hh:mm:ss":{mask:"h:s:s",placeholder:"hh:mm:ss",alias:"datetime",autoUnmask:!1},"hh:mm":{mask:"h:s",placeholder:"hh:mm",alias:"datetime",autoUnmask:!1},date:{alias:"dd/mm/yyyy"},"mm/yyyy":{mask:"1/y",placeholder:"mm/yyyy",leapday:"donotuse",separator:"/",alias:"mm/dd/yyyy"},shamsi:{regex:{val2pre:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+n+"[0-3])")},val2:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+n+"(0[1-9]|[12][0-9]))|((0[1-9]|1[012])"+n+"30)|((0[1-6])"+n+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},yearrange:{minyear:1300,maxyear:1499},mask:"y/1/2",leapday:"/12/30",placeholder:"yyyy/mm/dd",alias:"mm/dd/yyyy",clearIncomplete:!0},"yyyy-mm-dd hh:mm:ss":{mask:"y-1-2 h:s:s",placeholder:"yyyy-mm-dd hh:mm:ss",alias:"datetime",separator:"-",leapday:"-02-29",regex:{val2pre:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[13-9]|1[012])"+n+"[0-3])|(02"+n+"[0-2])")},val2:function(e){var n=t.escapeRegex.call(this,e);return new RegExp("((0[1-9]|1[012])"+n+"(0[1-9]|[12][0-9]))|((0[13-9]|1[012])"+n+"30)|((0[13578]|1[02])"+n+"31)")},val1pre:new RegExp("[01]"),val1:new RegExp("0[1-9]|1[012]")},onKeyDown:function(e,t,n,a){}}}),t})},function(e,t,n){"use strict";var a;"function"==typeof Symbol&&Symbol.iterator;void 0!==(a=function(){return window}.call(t,n,t,e))&&(e.exports=a)},function(e,t,n){"use strict";var a;"function"==typeof Symbol&&Symbol.iterator;void 0!==(a=function(){return document}.call(t,n,t,e))&&(e.exports=a)},function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(0),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t){return t.extendDefinitions({A:{validator:"[A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,casing:"upper"},"&":{validator:"[0-9A-Za-zА-яЁёÀ-ÿµ]",cardinality:1,casing:"upper"},"#":{validator:"[0-9A-Fa-f]",cardinality:1,casing:"upper"}}),t.extendAliases({url:{definitions:{i:{validator:".",cardinality:1}},mask:"(\\http://)|(\\http\\s://)|(ftp://)|(ftp\\s://)i{+}",insertMode:!1,autoUnmask:!1,inputmode:"url"},ip:{mask:"i[i[i]].i[i[i]].i[i[i]].i[i[i]]",definitions:{i:{validator:function(e,t,n,a,i){return n-1>-1&&"."!==t.buffer[n-1]?(e=t.buffer[n-1]+e,e=n-2>-1&&"."!==t.buffer[n-2]?t.buffer[n-2]+e:"0"+e):e="00"+e,new RegExp("25[0-5]|2[0-4][0-9]|[01][0-9][0-9]").test(e)},cardinality:1}},onUnMask:function(e,t,n){return e},inputmode:"numeric"},email:{mask:"*{1,64}[.*{1,64}][.*{1,64}][.*{1,63}]@-{1,63}.-{1,63}[.-{1,63}][.-{1,63}]",greedy:!1,onBeforePaste:function(e,t){return(e=e.toLowerCase()).replace("mailto:","")},definitions:{"*":{validator:"[0-9A-Za-z!#$%&'*+/=?^_`{|}~-]",cardinality:1,casing:"lower"},"-":{validator:"[0-9A-Za-z-]",cardinality:1,casing:"lower"}},onUnMask:function(e,t,n){return e},inputmode:"email"},mac:{mask:"##:##:##:##:##:##"},vin:{mask:"V{13}9{4}",definitions:{V:{validator:"[A-HJ-NPR-Za-hj-npr-z\\d]",cardinality:1,casing:"upper"}},clearIncomplete:!0,autoUnmask:!0}}),t})},function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(0),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t,n){function a(e,n){for(var a="",i=0;i<e.length;i++)t.prototype.definitions[e.charAt(i)]||n.definitions[e.charAt(i)]||n.optionalmarker.start===e.charAt(i)||n.optionalmarker.end===e.charAt(i)||n.quantifiermarker.start===e.charAt(i)||n.quantifiermarker.end===e.charAt(i)||n.groupmarker.start===e.charAt(i)||n.groupmarker.end===e.charAt(i)||n.alternatormarker===e.charAt(i)?a+="\\"+e.charAt(i):a+=e.charAt(i);return a}return t.extendAliases({numeric:{mask:function(e){if(0!==e.repeat&&isNaN(e.integerDigits)&&(e.integerDigits=e.repeat),e.repeat=0,e.groupSeparator===e.radixPoint&&("."===e.radixPoint?e.groupSeparator=",":","===e.radixPoint?e.groupSeparator=".":e.groupSeparator="")," "===e.groupSeparator&&(e.skipOptionalPartCharacter=n),e.autoGroup=e.autoGroup&&""!==e.groupSeparator,e.autoGroup&&("string"==typeof e.groupSize&&isFinite(e.groupSize)&&(e.groupSize=parseInt(e.groupSize)),isFinite(e.integerDigits))){var t=Math.floor(e.integerDigits/e.groupSize),i=e.integerDigits%e.groupSize;e.integerDigits=parseInt(e.integerDigits)+(0===i?t-1:t),e.integerDigits<1&&(e.integerDigits="*")}e.placeholder.length>1&&(e.placeholder=e.placeholder.charAt(0)),"radixFocus"===e.positionCaretOnClick&&""===e.placeholder&&!1===e.integerOptional&&(e.positionCaretOnClick="lvp"),e.definitions[";"]=e.definitions["~"],e.definitions[";"].definitionSymbol="~",!0===e.numericInput&&(e.positionCaretOnClick="radixFocus"===e.positionCaretOnClick?"lvp":e.positionCaretOnClick,e.digitsOptional=!1,isNaN(e.digits)&&(e.digits=2),e.decimalProtect=!1);var r="[+]";if(r+=a(e.prefix,e),!0===e.integerOptional?r+="~{1,"+e.integerDigits+"}":r+="~{"+e.integerDigits+"}",e.digits!==n){e.radixPointDefinitionSymbol=e.decimalProtect?":":e.radixPoint;var o=e.digits.toString().split(",");isFinite(o[0]&&o[1]&&isFinite(o[1]))?r+=e.radixPointDefinitionSymbol+";{"+e.digits+"}":(isNaN(e.digits)||parseInt(e.digits)>0)&&(e.digitsOptional?r+="["+e.radixPointDefinitionSymbol+";{1,"+e.digits+"}]":r+=e.radixPointDefinitionSymbol+";{"+e.digits+"}")}return r+=a(e.suffix,e),r+="[-]",e.greedy=!1,r},placeholder:"",greedy:!1,digits:"*",digitsOptional:!0,enforceDigitsOnBlur:!1,radixPoint:".",positionCaretOnClick:"radixFocus",groupSize:3,groupSeparator:"",autoGroup:!1,allowMinus:!0,negationSymbol:{front:"-",back:""},integerDigits:"+",integerOptional:!0,prefix:"",suffix:"",rightAlign:!0,decimalProtect:!0,min:null,max:null,step:1,insertMode:!0,autoUnmask:!1,unmaskAsNumber:!1,inputmode:"numeric",preValidation:function(t,a,i,r,o){if("-"===i||i===o.negationSymbol.front)return!0===o.allowMinus&&(o.isNegative=o.isNegative===n||!o.isNegative,""===t.join("")||{caret:a,dopost:!0});if(!1===r&&i===o.radixPoint&&o.digits!==n&&(isNaN(o.digits)||parseInt(o.digits)>0)){var s=e.inArray(o.radixPoint,t);if(-1!==s)return!0===o.numericInput?a===s:{caret:s+1}}return!0},postValidation:function(a,i,r){var o=r.suffix.split(""),s=r.prefix.split("");if(i.pos===n&&i.caret!==n&&!0!==i.dopost)return i;var l=i.caret!==n?i.caret:i.pos,c=a.slice();r.numericInput&&(l=c.length-l-1,c=c.reverse());var u=c[l];if(u===r.groupSeparator&&(u=c[l+=1]),l===c.length-r.suffix.length-1&&u===r.radixPoint)return i;u!==n&&u!==r.radixPoint&&u!==r.negationSymbol.front&&u!==r.negationSymbol.back&&(c[l]="?",r.prefix.length>0&&l>=(!1===r.isNegative?1:0)&&l<r.prefix.length-1+(!1===r.isNegative?1:0)?s[l-(!1===r.isNegative?1:0)]="?":r.suffix.length>0&&l>=c.length-r.suffix.length-(!1===r.isNegative?1:0)&&(o[l-(c.length-r.suffix.length-(!1===r.isNegative?1:0))]="?")),s=s.join(""),o=o.join("");var p=c.join("").replace(s,"");if(p=p.replace(o,""),p=p.replace(new RegExp(t.escapeRegex(r.groupSeparator),"g"),""),p=p.replace(new RegExp("[-"+t.escapeRegex(r.negationSymbol.front)+"]","g"),""),p=p.replace(new RegExp(t.escapeRegex(r.negationSymbol.back)+"$"),""),isNaN(r.placeholder)&&(p=p.replace(new RegExp(t.escapeRegex(r.placeholder),"g"),"")),p.length>1&&1!==p.indexOf(r.radixPoint)&&("0"===u&&(p=p.replace(/^\?/g,"")),p=p.replace(/^0/g,"")),p.charAt(0)===r.radixPoint&&""!==r.radixPoint&&!0!==r.numericInput&&(p="0"+p),""!==p){if(p=p.split(""),(!r.digitsOptional||r.enforceDigitsOnBlur&&"blur"===i.event)&&isFinite(r.digits)){var f=e.inArray(r.radixPoint,p),d=e.inArray(r.radixPoint,c);-1===f&&(p.push(r.radixPoint),f=p.length-1);for(var m=1;m<=r.digits;m++)r.digitsOptional&&(!r.enforceDigitsOnBlur||"blur"!==i.event)||p[f+m]!==n&&p[f+m]!==r.placeholder.charAt(0)?-1!==d&&c[d+m]!==n&&(p[f+m]=p[f+m]||c[d+m]):p[f+m]=i.placeholder||r.placeholder.charAt(0)}if(!0!==r.autoGroup||""===r.groupSeparator||u===r.radixPoint&&i.pos===n&&!i.dopost)p=p.join("");else{var h=p[p.length-1]===r.radixPoint&&i.c===r.radixPoint;p=t(function(e,t){var n="";if(n+="("+t.groupSeparator+"*{"+t.groupSize+"}){*}",""!==t.radixPoint){var a=e.join("").split(t.radixPoint);a[1]&&(n+=t.radixPoint+"*{"+a[1].match(/^\d*\??\d*/)[0].length+"}")}return n}(p,r),{numericInput:!0,jitMasking:!0,definitions:{"*":{validator:"[0-9?]",cardinality:1}}}).format(p.join("")),h&&(p+=r.radixPoint),p.charAt(0)===r.groupSeparator&&p.substr(1)}}if(r.isNegative&&"blur"===i.event&&(r.isNegative="0"!==p),p=s+p,p+=o,r.isNegative&&(p=r.negationSymbol.front+p,p+=r.negationSymbol.back),p=p.split(""),u!==n)if(u!==r.radixPoint&&u!==r.negationSymbol.front&&u!==r.negationSymbol.back)(l=e.inArray("?",p))>-1?p[l]=u:l=i.caret||0;else if(u===r.radixPoint||u===r.negationSymbol.front||u===r.negationSymbol.back){var g=e.inArray(u,p);-1!==g&&(l=g)}r.numericInput&&(l=p.length-l-1,p=p.reverse());var v={caret:u===n||i.pos!==n?l+(r.numericInput?-1:1):l,buffer:p,refreshFromBuffer:i.dopost||a.join("")!==p.join("")};return v.refreshFromBuffer?v:i},onBeforeWrite:function(a,i,r,o){if(a)switch(a.type){case"keydown":return o.postValidation(i,{caret:r,dopost:!0},o);case"blur":case"checkval":var s;if(function(e){e.parseMinMaxOptions===n&&(null!==e.min&&(e.min=e.min.toString().replace(new RegExp(t.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.min=e.min.replace(e.radixPoint,".")),e.min=isFinite(e.min)?parseFloat(e.min):NaN,isNaN(e.min)&&(e.min=Number.MIN_VALUE)),null!==e.max&&(e.max=e.max.toString().replace(new RegExp(t.escapeRegex(e.groupSeparator),"g"),""),","===e.radixPoint&&(e.max=e.max.replace(e.radixPoint,".")),e.max=isFinite(e.max)?parseFloat(e.max):NaN,isNaN(e.max)&&(e.max=Number.MAX_VALUE)),e.parseMinMaxOptions="done")}(o),null!==o.min||null!==o.max){if(s=o.onUnMask(i.join(""),n,e.extend({},o,{unmaskAsNumber:!0})),null!==o.min&&s<o.min)return o.isNegative=o.min<0,o.postValidation(o.min.toString().replace(".",o.radixPoint).split(""),{caret:r,dopost:!0,placeholder:"0"},o);if(null!==o.max&&s>o.max)return o.isNegative=o.max<0,o.postValidation(o.max.toString().replace(".",o.radixPoint).split(""),{caret:r,dopost:!0,placeholder:"0"},o)}return o.postValidation(i,{caret:r,placeholder:"0",event:"blur"},o);case"_checkval":return{caret:r}}},regex:{integerPart:function(e,n){return n?new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?"):new RegExp("["+t.escapeRegex(e.negationSymbol.front)+"+]?\\d+")},integerNPart:function(e){return new RegExp("[\\d"+t.escapeRegex(e.groupSeparator)+t.escapeRegex(e.placeholder.charAt(0))+"]+")}},definitions:{"~":{validator:function(e,a,i,r,o,s){var l=r?new RegExp("[0-9"+t.escapeRegex(o.groupSeparator)+"]").test(e):new RegExp("[0-9]").test(e);if(!0===l){if(!0!==o.numericInput&&a.validPositions[i]!==n&&"~"===a.validPositions[i].match.def&&!s){var c=a.buffer.join(""),u=(c=(c=c.replace(new RegExp("[-"+t.escapeRegex(o.negationSymbol.front)+"]","g"),"")).replace(new RegExp(t.escapeRegex(o.negationSymbol.back)+"$"),"")).split(o.radixPoint);u.length>1&&(u[1]=u[1].replace(/0/g,o.placeholder.charAt(0))),"0"===u[0]&&(u[0]=u[0].replace(/0/g,o.placeholder.charAt(0))),c=u[0]+o.radixPoint+u[1]||"";var p=a._buffer.join("");for(c===o.radixPoint&&(c=p);null===c.match(t.escapeRegex(p)+"$");)p=p.slice(1);l=(c=(c=c.replace(p,"")).split(""))[i]===n?{pos:i,remove:i}:{pos:i}}}else r||e!==o.radixPoint||a.validPositions[i-1]!==n||(a.buffer[i]="0",l={pos:i+1});return l},cardinality:1},"+":{validator:function(e,t,n,a,i){return i.allowMinus&&("-"===e||e===i.negationSymbol.front)},cardinality:1,placeholder:""},"-":{validator:function(e,t,n,a,i){return i.allowMinus&&e===i.negationSymbol.back},cardinality:1,placeholder:""},":":{validator:function(e,n,a,i,r){var o="["+t.escapeRegex(r.radixPoint)+"]",s=new RegExp(o).test(e);return s&&n.validPositions[a]&&n.validPositions[a].match.placeholder===r.radixPoint&&(s={caret:a+1}),s},cardinality:1,placeholder:function(e){return e.radixPoint}}},onUnMask:function(e,n,a){if(""===n&&!0===a.nullable)return n;var i=e.replace(a.prefix,"");return i=i.replace(a.suffix,""),i=i.replace(new RegExp(t.escapeRegex(a.groupSeparator),"g"),""),""!==a.placeholder.charAt(0)&&(i=i.replace(new RegExp(a.placeholder.charAt(0),"g"),"0")),a.unmaskAsNumber?(""!==a.radixPoint&&-1!==i.indexOf(a.radixPoint)&&(i=i.replace(t.escapeRegex.call(this,a.radixPoint),".")),i=i.replace(new RegExp("^"+t.escapeRegex(a.negationSymbol.front)),"-"),i=i.replace(new RegExp(t.escapeRegex(a.negationSymbol.back)+"$"),""),Number(i)):i},isComplete:function(e,n){var a=e.join("");if(e.slice().join("")!==a)return!1;var i=a.replace(n.prefix,"");return i=i.replace(n.suffix,""),i=i.replace(new RegExp(t.escapeRegex(n.groupSeparator),"g"),""),","===n.radixPoint&&(i=i.replace(t.escapeRegex(n.radixPoint),".")),isFinite(i)},onBeforeMask:function(e,a){if(a.isNegative=n,e=e.toString().charAt(e.length-1)===a.radixPoint?e.toString().substr(0,e.length-1):e.toString(),""!==a.radixPoint&&isFinite(e)){var i=e.split("."),r=""!==a.groupSeparator?parseInt(a.groupSize):0;2===i.length&&(i[0].length>r||i[1].length>r||i[0].length<=r&&i[1].length<r)&&(e=e.replace(".",a.radixPoint))}var o=e.match(/,/g),s=e.match(/\./g);if(e=s&&o?s.length>o.length?(e=e.replace(/\./g,"")).replace(",",a.radixPoint):o.length>s.length?(e=e.replace(/,/g,"")).replace(".",a.radixPoint):e.indexOf(".")<e.indexOf(",")?e.replace(/\./g,""):e.replace(/,/g,""):e.replace(new RegExp(t.escapeRegex(a.groupSeparator),"g"),""),0===a.digits&&(-1!==e.indexOf(".")?e=e.substring(0,e.indexOf(".")):-1!==e.indexOf(",")&&(e=e.substring(0,e.indexOf(",")))),""!==a.radixPoint&&isFinite(a.digits)&&-1!==e.indexOf(a.radixPoint)){var l=e.split(a.radixPoint)[1].match(new RegExp("\\d*"))[0];if(parseInt(a.digits)<l.toString().length){var c=Math.pow(10,parseInt(a.digits));e=e.replace(t.escapeRegex(a.radixPoint),"."),e=(e=Math.round(parseFloat(e)*c)/c).toString().replace(".",a.radixPoint)}}return e},canClearPosition:function(e,t,n,a,i){var r=e.validPositions[t],o=r.input!==i.radixPoint||null!==e.validPositions[t].match.fn&&!1===i.decimalProtect||r.input===i.radixPoint&&e.validPositions[t+1]&&null===e.validPositions[t+1].match.fn||isFinite(r.input)||t===n||r.input===i.groupSeparator||r.input===i.negationSymbol.front||r.input===i.negationSymbol.back;return!o||"+"!==r.match.nativeDef&&"-"!==r.match.nativeDef||(i.isNegative=!1),o},onKeyDown:function(n,a,i,r){var o=e(this);if(n.ctrlKey)switch(n.keyCode){case t.keyCode.UP:o.val(parseFloat(this.inputmask.unmaskedvalue())+parseInt(r.step)),o.trigger("setvalue");break;case t.keyCode.DOWN:o.val(parseFloat(this.inputmask.unmaskedvalue())-parseInt(r.step)),o.trigger("setvalue")}}},currency:{prefix:"$ ",groupSeparator:",",alias:"numeric",placeholder:"0",autoGroup:!0,digits:2,digitsOptional:!1,clearMaskOnLostFocus:!1},decimal:{alias:"numeric"},integer:{alias:"numeric",digits:0,radixPoint:""},percentage:{alias:"numeric",digits:2,digitsOptional:!0,radixPoint:".",placeholder:"0",autoGroup:!1,min:0,max:100,suffix:" %",allowMinus:!1}}),t})},function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(0),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t){function n(e,t){var n=(e.mask||e).replace(/#/g,"9").replace(/\)/,"9").replace(/[+()#-]/g,""),a=(t.mask||t).replace(/#/g,"9").replace(/\)/,"9").replace(/[+()#-]/g,""),i=(e.mask||e).split("#")[0],r=(t.mask||t).split("#")[0];return 0===r.indexOf(i)?-1:0===i.indexOf(r)?1:n.localeCompare(a)}var a=t.prototype.analyseMask;return t.prototype.analyseMask=function(t,n,i){function r(e,n,a){n=n||"",a=a||s,""!==n&&(a[n]={});for(var i="",o=a[n]||a,l=e.length-1;l>=0;l--)o[i=(t=e[l].mask||e[l]).substr(0,1)]=o[i]||[],o[i].unshift(t.substr(1)),e.splice(l,1);for(var c in o)o[c].length>500&&r(o[c].slice(),c,o)}function o(t){var n="",a=[];for(var r in t)e.isArray(t[r])?1===t[r].length?a.push(r+t[r]):a.push(r+i.groupmarker.start+t[r].join(i.groupmarker.end+i.alternatormarker+i.groupmarker.start)+i.groupmarker.end):a.push(r+o(t[r]));return 1===a.length?n+=a[0]:n+=i.groupmarker.start+a.join(i.groupmarker.end+i.alternatormarker+i.groupmarker.start)+i.groupmarker.end,n}var s={};return i.phoneCodes&&(i.phoneCodes&&i.phoneCodes.length>1e3&&(r((t=t.substr(1,t.length-2)).split(i.groupmarker.end+i.alternatormarker+i.groupmarker.start)),t=o(s)),t=t.replace(/9/g,"\\9")),a.call(this,t,n,i)},t.extendAliases({abstractphone:{groupmarker:{start:"<",end:">"},countrycode:"",phoneCodes:[],mask:function(e){return e.definitions={"#":t.prototype.definitions[9]},e.phoneCodes.sort(n)},keepStatic:!0,onBeforeMask:function(e,t){var n=e.replace(/^0{1,2}/,"").replace(/[\s]/g,"");return(n.indexOf(t.countrycode)>1||-1===n.indexOf(t.countrycode))&&(n="+"+t.countrycode+n),n},onUnMask:function(e,t,n){return e.replace(/[()#-]/g,"")},inputmode:"tel"}}),t})},function(e,t,n){"use strict";var a,i,r;"function"==typeof Symbol&&Symbol.iterator;!function(o){i=[n(0),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t){return t.extendAliases({Regex:{mask:"r",greedy:!1,repeat:"*",regex:null,regexTokens:null,tokenizer:/\[\^?]?(?:[^\\\]]+|\\[\S\s]?)*]?|\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9][0-9]*|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|c[A-Za-z]|[\S\s]?)|\((?:\?[:=!]?)?|(?:[?*+]|\{[0-9]+(?:,[0-9]*)?\})\??|[^.?*+^${[()|\\]+|./g,quantifierFilter:/[0-9]+[^,]/,isComplete:function(e,t){return new RegExp(t.regex,t.casing?"i":"").test(e.join(""))},definitions:{r:{validator:function(t,n,a,i,r){function o(e,t){this.matches=[],this.isGroup=e||!1,this.isQuantifier=t||!1,this.quantifier={min:1,max:1},this.repeaterPart=void 0}function s(t,n){var a=!1;n&&(p+="(",d++);for(var i=0;i<t.matches.length;i++){var o=t.matches[i];if(!0===o.isGroup)a=s(o,!0);else if(!0===o.isQuantifier){var c=e.inArray(o,t.matches),u=t.matches[c-1],f=p;if(isNaN(o.quantifier.max)){for(;o.repeaterPart&&o.repeaterPart!==p&&o.repeaterPart.length>p.length&&!(a=s(u,!0)););(a=a||s(u,!0))&&(o.repeaterPart=p),p=f+o.quantifier.max}else{for(var m=0,h=o.quantifier.max-1;m<h&&!(a=s(u,!0));m++);p=f+"{"+o.quantifier.min+","+o.quantifier.max+"}"}}else if(void 0!==o.matches)for(var g=0;g<o.length&&!(a=s(o[g],n));g++);else{var v;if("["==o.charAt(0)){v=p,v+=o;for(b=0;b<d;b++)v+=")";a=(x=new RegExp("^("+v+")$",r.casing?"i":"")).test(l)}else for(var y=0,k=o.length;y<k;y++)if("\\"!==o.charAt(y)){v=p,v=(v+=o.substr(0,y+1)).replace(/\|$/,"");for(var b=0;b<d;b++)v+=")";var x=new RegExp("^("+v+")$",r.casing?"i":"");if(a=x.test(l))break}p+=o}if(a)break}return n&&(p+=")",d--),a}var l,c,u=n.buffer.slice(),p="",f=!1,d=0;null===r.regexTokens&&function(){var e,t,n=new o,a=[];for(r.regexTokens=[];e=r.tokenizer.exec(r.regex);)switch((t=e[0]).charAt(0)){case"(":a.push(new o(!0));break;case")":c=a.pop(),a.length>0?a[a.length-1].matches.push(c):n.matches.push(c);break;case"{":case"+":case"*":var i=new o(!1,!0),s=(t=t.replace(/[{}]/g,"")).split(","),l=isNaN(s[0])?s[0]:parseInt(s[0]),u=1===s.length?l:isNaN(s[1])?s[1]:parseInt(s[1]);if(i.quantifier={min:l,max:u},a.length>0){var p=a[a.length-1].matches;(e=p.pop()).isGroup||((c=new o(!0)).matches.push(e),e=c),p.push(e),p.push(i)}else(e=n.matches.pop()).isGroup||((c=new o(!0)).matches.push(e),e=c),n.matches.push(e),n.matches.push(i);break;default:a.length>0?a[a.length-1].matches.push(t):n.matches.push(t)}n.matches.length>0&&r.regexTokens.push(n)}(),u.splice(a,0,t),l=u.join("");for(var m=0;m<r.regexTokens.length;m++){var h=r.regexTokens[m];if(f=s(h,h.isGroup))break}return f},cardinality:1}}}}),t})},function(e,t,n){"use strict";var a,i,r,o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};!function(o){i=[n(2),n(1)],void 0!==(r="function"==typeof(a=o)?a.apply(t,i):a)&&(e.exports=r)}(function(e,t){return void 0===e.fn.inputmask&&(e.fn.inputmask=function(n,a){var i,r=this[0];if(void 0===a&&(a={}),"string"==typeof n)switch(n){case"unmaskedvalue":return r&&r.inputmask?r.inputmask.unmaskedvalue():e(r).val();case"remove":return this.each(function(){this.inputmask&&this.inputmask.remove()});case"getemptymask":return r&&r.inputmask?r.inputmask.getemptymask():"";case"hasMaskedValue":return!(!r||!r.inputmask)&&r.inputmask.hasMaskedValue();case"isComplete":return!r||!r.inputmask||r.inputmask.isComplete();case"getmetadata":return r&&r.inputmask?r.inputmask.getmetadata():void 0;case"setvalue":e(r).val(a),r&&void 0===r.inputmask&&e(r).triggerHandler("setvalue");break;case"option":if("string"!=typeof a)return this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(a)});if(r&&void 0!==r.inputmask)return r.inputmask.option(a);break;default:return a.alias=n,i=new t(a),this.each(function(){i.mask(this)})}else{if("object"==(void 0===n?"undefined":o(n)))return i=new t(n),void 0===n.mask&&void 0===n.alias?this.each(function(){if(void 0!==this.inputmask)return this.inputmask.option(n);i.mask(this)}):this.each(function(){i.mask(this)});if(void 0===n)return this.each(function(){(i=new t(a)).mask(this)})}}),e.fn.inputmask})}]); \ No newline at end of file