@bagelink/vue 0.0.955 → 0.0.959

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/dist/components/Accordion.d.ts +12 -0
  2. package/dist/components/Accordion.d.ts.map +1 -0
  3. package/dist/components/AccordionItem.d.ts +34 -0
  4. package/dist/components/AccordionItem.d.ts.map +1 -0
  5. package/dist/components/Alert.d.ts +34 -0
  6. package/dist/components/Alert.d.ts.map +1 -0
  7. package/dist/components/Avatar.d.ts +36 -0
  8. package/dist/components/Avatar.d.ts.map +1 -0
  9. package/dist/components/Badge.d.ts +22 -0
  10. package/dist/components/Badge.d.ts.map +1 -0
  11. package/dist/components/BglVideo.d.ts +20 -0
  12. package/dist/components/BglVideo.d.ts.map +1 -0
  13. package/dist/components/Btn.d.ts +99 -0
  14. package/dist/components/Btn.d.ts.map +1 -0
  15. package/dist/components/Card.d.ts +39 -0
  16. package/dist/components/Card.d.ts.map +1 -0
  17. package/dist/components/Carousel.d.ts +74 -0
  18. package/dist/components/Carousel.d.ts.map +1 -0
  19. package/dist/components/ComboBox.vue.d.ts +3 -3
  20. package/dist/components/Comments.vue.d.ts +2 -2
  21. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  22. package/dist/components/DataPreview.d.ts +42 -0
  23. package/dist/components/DataPreview.d.ts.map +1 -0
  24. package/dist/components/Drop.vue.d.ts +34 -0
  25. package/dist/components/Drop.vue.d.ts.map +1 -0
  26. package/dist/components/DropDown.vue.d.ts +17 -186
  27. package/dist/components/DropDown.vue.d.ts.map +1 -1
  28. package/dist/components/FileUploader.vue.d.ts +60 -0
  29. package/dist/components/FileUploader.vue.d.ts.map +1 -0
  30. package/dist/components/Flag.d.ts +20 -0
  31. package/dist/components/Flag.d.ts.map +1 -0
  32. package/dist/components/FormSchema.vue.d.ts +5 -4
  33. package/dist/components/LangText.vue.d.ts +2 -2
  34. package/dist/components/ListItem.d.ts +34 -0
  35. package/dist/components/ListItem.d.ts.map +1 -0
  36. package/dist/components/ListView.d.ts +13 -0
  37. package/dist/components/ListView.d.ts.map +1 -0
  38. package/dist/components/MapEmbed.d.ts +3 -0
  39. package/dist/components/MapEmbed.d.ts.map +1 -0
  40. package/dist/components/MaterialIcon.d.ts +26 -0
  41. package/dist/components/MaterialIcon.d.ts.map +1 -0
  42. package/dist/components/Modal.d.ts +46 -0
  43. package/dist/components/Modal.d.ts.map +1 -0
  44. package/dist/components/ModalBglForm.vue.d.ts +21 -20
  45. package/dist/components/ModalConfirm.d.ts +24 -0
  46. package/dist/components/ModalConfirm.d.ts.map +1 -0
  47. package/dist/components/ModalForm.d.ts +78 -0
  48. package/dist/components/ModalForm.d.ts.map +1 -0
  49. package/dist/components/NavBar.d.ts +64 -0
  50. package/dist/components/NavBar.d.ts.map +1 -0
  51. package/dist/components/PageTitle.d.ts +24 -0
  52. package/dist/components/PageTitle.d.ts.map +1 -0
  53. package/dist/components/PersonPreview.vue.d.ts +5 -4
  54. package/dist/components/PersonPreviewFormkit.vue.d.ts +4 -3
  55. package/dist/components/RTXEditor.vue.d.ts +3 -3
  56. package/dist/components/RouterWrapper.d.ts +3 -0
  57. package/dist/components/RouterWrapper.d.ts.map +1 -0
  58. package/dist/components/TabbedLayout.vue.d.ts +5 -4
  59. package/dist/components/TableSchema.d.ts +35 -0
  60. package/dist/components/TableSchema.d.ts.map +1 -0
  61. package/dist/components/TableSchema.vue.d.ts +2 -11
  62. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  63. package/dist/components/Title.d.ts +42 -0
  64. package/dist/components/Title.d.ts.map +1 -0
  65. package/dist/components/TopBar.d.ts +12 -0
  66. package/dist/components/TopBar.d.ts.map +1 -0
  67. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  68. package/dist/components/dashboard/Lineart.d.ts +20 -0
  69. package/dist/components/dashboard/Lineart.d.ts.map +1 -0
  70. package/dist/components/form/BglField.d.ts +25 -0
  71. package/dist/components/form/BglField.d.ts.map +1 -0
  72. package/dist/components/form/BglField.vue.d.ts +2 -6
  73. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  74. package/dist/components/form/BglForm.d.ts +75 -0
  75. package/dist/components/form/BglForm.d.ts.map +1 -0
  76. package/dist/components/form/BglMultiStepForm.vue.d.ts +3 -21
  77. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
  78. package/dist/components/form/ItemRef.vue.d.ts +5 -3
  79. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  80. package/dist/components/form/MaterialIcon.vue.d.ts +4 -3
  81. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  82. package/dist/components/form/inputs/CheckInput.d.ts +56 -0
  83. package/dist/components/form/inputs/CheckInput.d.ts.map +1 -0
  84. package/dist/components/form/inputs/Checkbox.d.ts +16 -0
  85. package/dist/components/form/inputs/Checkbox.d.ts.map +1 -0
  86. package/dist/components/form/inputs/ColorPicker.d.ts +48 -0
  87. package/dist/components/form/inputs/ColorPicker.d.ts.map +1 -0
  88. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  89. package/dist/components/form/inputs/DateInput.d.ts +64 -0
  90. package/dist/components/form/inputs/DateInput.d.ts.map +1 -0
  91. package/dist/components/form/inputs/DatePicker.d.ts +33 -0
  92. package/dist/components/form/inputs/DatePicker.d.ts.map +1 -0
  93. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  94. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  95. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  96. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  97. package/dist/components/form/inputs/FileUpload.d.ts +108 -0
  98. package/dist/components/form/inputs/FileUpload.d.ts.map +1 -0
  99. package/dist/components/form/inputs/FileUpload.vue.d.ts +2 -0
  100. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  101. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  102. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  103. package/dist/components/form/inputs/JSONInput.d.ts +53 -0
  104. package/dist/components/form/inputs/JSONInput.d.ts.map +1 -0
  105. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  106. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  107. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  108. package/dist/components/form/inputs/RadioGroup.d.ts +42 -0
  109. package/dist/components/form/inputs/RadioGroup.d.ts.map +1 -0
  110. package/dist/components/form/inputs/RadioGroup.vue.d.ts +2 -6
  111. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  112. package/dist/components/form/inputs/RadioPillsInput.d.ts +48 -0
  113. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +1 -0
  114. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  115. package/dist/components/form/inputs/RichText.d.ts +20 -0
  116. package/dist/components/form/inputs/RichText.d.ts.map +1 -0
  117. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +22 -0
  118. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +1 -0
  119. package/dist/components/form/inputs/RichText2/index.d.ts +24 -0
  120. package/dist/components/form/inputs/RichText2/index.d.ts.map +1 -0
  121. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  122. package/dist/components/form/inputs/SelectField.vue.d.ts +6 -8
  123. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  124. package/dist/components/form/inputs/SelectInput.d.ts +55 -0
  125. package/dist/components/form/inputs/SelectInput.d.ts.map +1 -0
  126. package/dist/components/form/inputs/SelectInput.vue.d.ts +2 -50
  127. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  128. package/dist/components/form/inputs/SignaturePad.d.ts +72 -0
  129. package/dist/components/form/inputs/SignaturePad.d.ts.map +1 -0
  130. package/dist/components/form/inputs/TableField.d.ts +45 -0
  131. package/dist/components/form/inputs/TableField.d.ts.map +1 -0
  132. package/dist/components/form/inputs/TelInput.d.ts +241 -0
  133. package/dist/components/form/inputs/TelInput.d.ts.map +1 -0
  134. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  135. package/dist/components/form/inputs/TextInput.d.ts +90 -0
  136. package/dist/components/form/inputs/TextInput.d.ts.map +1 -0
  137. package/dist/components/form/inputs/ToggleInput.d.ts +58 -0
  138. package/dist/components/form/inputs/ToggleInput.d.ts.map +1 -0
  139. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  140. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  141. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  142. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  143. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  144. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  145. package/dist/components/layout/BottomMenu.d.ts +27 -0
  146. package/dist/components/layout/BottomMenu.d.ts.map +1 -0
  147. package/dist/components/layout/Layout.d.ts +58 -0
  148. package/dist/components/layout/Layout.d.ts.map +1 -0
  149. package/dist/components/layout/SidebarMenu.d.ts +38 -0
  150. package/dist/components/layout/SidebarMenu.d.ts.map +1 -0
  151. package/dist/components/layout/TabbedLayout.d.ts +42 -0
  152. package/dist/components/layout/TabbedLayout.d.ts.map +1 -0
  153. package/dist/components/layout/Tabs.d.ts +31 -0
  154. package/dist/components/layout/Tabs.d.ts.map +1 -0
  155. package/dist/components/layout/TabsBody.d.ts +23 -0
  156. package/dist/components/layout/TabsBody.d.ts.map +1 -0
  157. package/dist/components/layout/TabsNav.d.ts +35 -0
  158. package/dist/components/layout/TabsNav.d.ts.map +1 -0
  159. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +4 -3
  160. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  161. package/dist/index.cjs +1540 -1421
  162. package/dist/index.mjs +1540 -1421
  163. package/dist/style.css +14 -0
  164. package/dist/utils/BagelFormUtils.d.ts +2 -30
  165. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  166. package/dist/utils/objects.d.ts +1 -0
  167. package/dist/vue.css +13814 -0
  168. package/package.json +1 -1
  169. package/src/components/form/BglField.vue +31 -3
  170. package/src/styles/layout.css +8 -0
  171. package/src/styles/mobilLayout.css +8 -0
  172. package/dist/components/AddressSaerch.vue.d.ts +0 -7
  173. package/dist/components/AddressSaerch.vue.d.ts.map +0 -1
  174. package/dist/components/Popover.vue.d.ts +0 -10
  175. package/dist/components/Popover.vue.d.ts.map +0 -1
  176. package/dist/components/sortable/Animation.d.ts +0 -43
  177. package/dist/components/sortable/Animation.d.ts.map +0 -1
  178. package/dist/components/sortable/BrowserInfo.d.ts +0 -7
  179. package/dist/components/sortable/BrowserInfo.d.ts.map +0 -1
  180. package/dist/components/sortable/EventDispatcher.d.ts +0 -13
  181. package/dist/components/sortable/EventDispatcher.d.ts.map +0 -1
  182. package/dist/components/sortable/PluginManager.d.ts +0 -27
  183. package/dist/components/sortable/PluginManager.d.ts.map +0 -1
  184. package/dist/components/sortable/Sortable.d.ts +0 -81
  185. package/dist/components/sortable/Sortable.d.ts.map +0 -1
  186. package/dist/components/sortable/index.d.ts +0 -5
  187. package/dist/components/sortable/index.d.ts.map +0 -1
  188. package/dist/components/sortable/utils.d.ts +0 -49
  189. package/dist/components/sortable/utils.d.ts.map +0 -1
  190. package/dist/composables/drag-n-drop/useDraggable.d.ts +0 -2
  191. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +0 -1
  192. package/dist/plugins/drag-n-drop/draggable.d.ts +0 -4
  193. package/dist/plugins/drag-n-drop/draggable.d.ts.map +0 -1
  194. package/dist/plugins/drag-n-drop/droppable.d.ts +0 -4
  195. package/dist/plugins/drag-n-drop/droppable.d.ts.map +0 -1
  196. package/dist/plugins/drag-n-drop/index.d.ts +0 -5
  197. package/dist/plugins/drag-n-drop/index.d.ts.map +0 -1
  198. package/dist/plugins/drag-n-drop/useDraggable.d.ts +0 -8
  199. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +0 -1
  200. package/dist/plugins/drag-n-drop/useDroppable.d.ts +0 -7
  201. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +0 -1
  202. package/dist/types/materialIcon.d.ts +0 -2
  203. package/dist/types/materialIcon.d.ts.map +0 -1
package/dist/index.cjs CHANGED
@@ -7555,10 +7555,9 @@ async function convertValueToCoords(state2, options) {
7555
7555
  crossAxis: 0,
7556
7556
  alignmentAxis: null
7557
7557
  } : {
7558
- mainAxis: 0,
7559
- crossAxis: 0,
7560
- alignmentAxis: null,
7561
- ...rawValue
7558
+ mainAxis: rawValue.mainAxis || 0,
7559
+ crossAxis: rawValue.crossAxis || 0,
7560
+ alignmentAxis: rawValue.alignmentAxis
7562
7561
  };
7563
7562
  if (alignment && typeof alignmentAxis === "number") {
7564
7563
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7663,7 +7662,11 @@ const shift$1 = function(options) {
7663
7662
  ...limitedCoords,
7664
7663
  data: {
7665
7664
  x: limitedCoords.x - x2,
7666
- y: limitedCoords.y - y2
7665
+ y: limitedCoords.y - y2,
7666
+ enabled: {
7667
+ [mainAxis]: checkMainAxis,
7668
+ [crossAxis]: checkCrossAxis
7669
+ }
7667
7670
  }
7668
7671
  };
7669
7672
  }
@@ -7677,6 +7680,7 @@ const size = function(options) {
7677
7680
  name: "size",
7678
7681
  options,
7679
7682
  async fn(state2) {
7683
+ var _state$middlewareData, _state$middlewareData2;
7680
7684
  const {
7681
7685
  placement,
7682
7686
  rects,
@@ -7712,10 +7716,11 @@ const size = function(options) {
7712
7716
  const noShift = !state2.middlewareData.shift;
7713
7717
  let availableHeight = overflowAvailableHeight;
7714
7718
  let availableWidth = overflowAvailableWidth;
7715
- if (isYAxis) {
7716
- availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7717
- } else {
7718
- availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7719
+ if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7720
+ availableWidth = maximumClippingWidth;
7721
+ }
7722
+ if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7723
+ availableHeight = maximumClippingHeight;
7719
7724
  }
7720
7725
  if (noShift && !alignment) {
7721
7726
  const xMin = max$1(overflow.left, 0);
@@ -9623,15 +9628,40 @@ const _sfc_main$L = /* @__PURE__ */ vue.defineComponent({
9623
9628
  emit2("update:modelValue", val);
9624
9629
  }
9625
9630
  });
9631
+ const objPathRegex = /[.\][]/;
9632
+ function setFieldData(key, val) {
9633
+ const data2 = { ...props2.modelValue };
9634
+ const keys4 = key.split(objPathRegex);
9635
+ let temp = data2;
9636
+ for (let i2 = 0; i2 < keys4.length - 1; i2++) {
9637
+ if (!temp[keys4[i2]]) {
9638
+ temp[keys4[i2]] = {};
9639
+ }
9640
+ temp = temp[keys4[i2]];
9641
+ }
9642
+ temp[keys4[keys4.length - 1]] = val;
9643
+ return data2;
9644
+ }
9645
+ function getFieldData(obj, key) {
9646
+ const keys4 = key.split(objPathRegex);
9647
+ let result2 = obj;
9648
+ for (const k2 of keys4) {
9649
+ if (result2 && k2 in result2) {
9650
+ result2 = result2[k2];
9651
+ } else {
9652
+ return void 0;
9653
+ }
9654
+ }
9655
+ return result2;
9656
+ }
9626
9657
  const fieldData = vue.computed({
9627
9658
  set: (val) => {
9628
9659
  if (!props2.field.id) return;
9629
- const data2 = { ...props2.modelValue };
9630
- data2[props2.field.id] = val;
9660
+ const data2 = setFieldData(props2.field.id, val);
9631
9661
  emit2("update:modelValue", data2);
9632
9662
  },
9633
9663
  get: () => {
9634
- if (props2.field.id) return props2.modelValue[props2.field.id];
9664
+ if (props2.field.id) return getFieldData(props2.modelValue, props2.field.id);
9635
9665
  return props2.field.defaultValue ?? "";
9636
9666
  }
9637
9667
  });
@@ -20689,6 +20719,12 @@ let Node$2 = class Node2 {
20689
20719
  this.content = content || Fragment.empty;
20690
20720
  }
20691
20721
  /**
20722
+ The array of this node's child nodes.
20723
+ */
20724
+ get children() {
20725
+ return this.content.content;
20726
+ }
20727
+ /**
20692
20728
  The size of this node, as defined by the integer-based [indexing
20693
20729
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20694
20730
  amount of characters. For other leaf nodes, it is one. For
@@ -21375,7 +21411,7 @@ function resolveName(stream, name) {
21375
21411
  let result2 = [];
21376
21412
  for (let typeName in types) {
21377
21413
  let type4 = types[typeName];
21378
- if (type4.groups.indexOf(name) > -1)
21414
+ if (type4.isInGroup(name))
21379
21415
  result2.push(type4);
21380
21416
  }
21381
21417
  if (result2.length == 0)
@@ -21613,6 +21649,13 @@ let NodeType$1 = class NodeType2 {
21613
21649
  return this.isLeaf || !!this.spec.atom;
21614
21650
  }
21615
21651
  /**
21652
+ Return true when this node type is part of the given
21653
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21654
+ */
21655
+ isInGroup(group) {
21656
+ return this.groups.indexOf(group) > -1;
21657
+ }
21658
+ /**
21616
21659
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21617
21660
  */
21618
21661
  get whitespace() {
@@ -22368,6 +22411,7 @@ class ParseContext {
22368
22411
  contentDOM = rule.contentElement;
22369
22412
  this.findAround(dom, contentDOM, true);
22370
22413
  this.addAll(contentDOM, marks);
22414
+ this.findAround(dom, contentDOM, false);
22371
22415
  }
22372
22416
  if (sync && this.sync(startIn))
22373
22417
  this.open--;
@@ -22543,7 +22587,7 @@ class ParseContext {
22543
22587
  return false;
22544
22588
  } else {
22545
22589
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22546
- if (!next || next.name != part && next.groups.indexOf(part) == -1)
22590
+ if (!next || next.name != part && !next.isInGroup(part))
22547
22591
  return false;
22548
22592
  depth--;
22549
22593
  }
@@ -23803,8 +23847,24 @@ function canJoin(doc2, pos) {
23803
23847
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23804
23848
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23805
23849
  }
23850
+ function canAppendWithSubstitutedLinebreaks(a2, b2) {
23851
+ if (!b2.content.size)
23852
+ a2.type.compatibleContent(b2.type);
23853
+ let match2 = a2.contentMatchAt(a2.childCount);
23854
+ let { linebreakReplacement } = a2.type.schema;
23855
+ for (let i2 = 0; i2 < b2.childCount; i2++) {
23856
+ let child = b2.child(i2);
23857
+ let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23858
+ match2 = match2.matchType(type3);
23859
+ if (!match2)
23860
+ return false;
23861
+ if (!a2.type.allowsMarks(child.marks))
23862
+ return false;
23863
+ }
23864
+ return match2.validEnd;
23865
+ }
23806
23866
  function joinable(a2, b2) {
23807
- return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23867
+ return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23808
23868
  }
23809
23869
  function joinPoint(doc2, pos, dir = -1) {
23810
23870
  let $pos = doc2.resolve(pos);
@@ -23829,8 +23889,31 @@ function joinPoint(doc2, pos, dir = -1) {
23829
23889
  }
23830
23890
  }
23831
23891
  function join(tr2, pos, depth) {
23832
- let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23833
- tr2.step(step);
23892
+ let convertNewlines = null;
23893
+ let { linebreakReplacement } = tr2.doc.type.schema;
23894
+ let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23895
+ if (linebreakReplacement && beforeType.inlineContent) {
23896
+ let pre = beforeType.whitespace == "pre";
23897
+ let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23898
+ if (pre && !supportLinebreak)
23899
+ convertNewlines = false;
23900
+ else if (!pre && supportLinebreak)
23901
+ convertNewlines = true;
23902
+ }
23903
+ let mapFrom = tr2.steps.length;
23904
+ if (convertNewlines === false) {
23905
+ let $after = tr2.doc.resolve(pos + depth);
23906
+ replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23907
+ }
23908
+ if (beforeType.inlineContent)
23909
+ clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23910
+ let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23911
+ tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23912
+ if (convertNewlines === true) {
23913
+ let $full = tr2.doc.resolve(start2);
23914
+ replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23915
+ }
23916
+ return tr2;
23834
23917
  }
23835
23918
  function insertPoint(doc2, pos, nodeType) {
23836
23919
  let $pos = doc2.resolve(pos);
@@ -24226,7 +24309,7 @@ function deleteRange$1(tr2, from2, to2) {
24226
24309
  return tr2.delete($from.before(depth), $to.after(depth));
24227
24310
  }
24228
24311
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24229
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24312
+ if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2 && $from.start(d2 - 1) == $to.start(d2 - 1) && $from.node(d2 - 1).canReplace($from.index(d2 - 1), $to.index(d2 - 1)))
24230
24313
  return tr2.delete($from.before(d2), to2);
24231
24314
  }
24232
24315
  tr2.delete(from2, to2);
@@ -26380,17 +26463,18 @@ class ViewDesc {
26380
26463
  // custom things with the selection. Note that this falls apart when
26381
26464
  // a selection starts in such a node and ends in another, in which
26382
26465
  // case we just use whatever domFromPos produces as a best effort.
26383
- setSelection(anchor, head, root2, force = false) {
26466
+ setSelection(anchor, head, view, force = false) {
26384
26467
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26385
26468
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26386
26469
  let child = this.children[i2], end2 = offset2 + child.size;
26387
26470
  if (from2 > offset2 && to2 < end2)
26388
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26471
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26389
26472
  offset2 = end2;
26390
26473
  }
26391
26474
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26392
26475
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26393
- let domSel = root2.getSelection();
26476
+ let domSel = view.root.getSelection();
26477
+ let selRange = view.domSelectionRange();
26394
26478
  let brKludge = false;
26395
26479
  if ((gecko || safari) && anchor == head) {
26396
26480
  let { node, offset: offset2 } = anchorDOM;
@@ -26413,12 +26497,12 @@ class ViewDesc {
26413
26497
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26414
26498
  }
26415
26499
  }
26416
- if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26417
- let after = domSel.focusNode.childNodes[domSel.focusOffset];
26500
+ if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26501
+ let after = selRange.focusNode.childNodes[selRange.focusOffset];
26418
26502
  if (after && after.contentEditable == "false")
26419
26503
  force = true;
26420
26504
  }
26421
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26505
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26422
26506
  return;
26423
26507
  let domSelExtended = false;
26424
26508
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26559,16 +26643,17 @@ class CompositionViewDesc extends ViewDesc {
26559
26643
  }
26560
26644
  }
26561
26645
  class MarkViewDesc extends ViewDesc {
26562
- constructor(parent, mark, dom, contentDOM) {
26646
+ constructor(parent, mark, dom, contentDOM, spec) {
26563
26647
  super(parent, [], dom, contentDOM);
26564
26648
  this.mark = mark;
26649
+ this.spec = spec;
26565
26650
  }
26566
26651
  static create(parent, mark, inline, view) {
26567
26652
  let custom2 = view.nodeViews[mark.type.name];
26568
26653
  let spec = custom2 && custom2(mark, view, inline);
26569
26654
  if (!spec || !spec.dom)
26570
26655
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26571
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26656
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26572
26657
  }
26573
26658
  parseRule() {
26574
26659
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26601,6 +26686,14 @@ class MarkViewDesc extends ViewDesc {
26601
26686
  copy2.children = nodes;
26602
26687
  return copy2;
26603
26688
  }
26689
+ ignoreMutation(mutation) {
26690
+ return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26691
+ }
26692
+ destroy() {
26693
+ if (this.spec.destroy)
26694
+ this.spec.destroy();
26695
+ super.destroy();
26696
+ }
26604
26697
  }
26605
26698
  class NodeViewDesc extends ViewDesc {
26606
26699
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26892,7 +26985,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26892
26985
  update(node, outerDeco, innerDeco, view) {
26893
26986
  if (this.dirty == NODE_DIRTY)
26894
26987
  return false;
26895
- if (this.spec.update) {
26988
+ if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26896
26989
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26897
26990
  if (result2)
26898
26991
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26909,8 +27002,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26909
27002
  deselectNode() {
26910
27003
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26911
27004
  }
26912
- setSelection(anchor, head, root2, force) {
26913
- this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
27005
+ setSelection(anchor, head, view, force) {
27006
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26914
27007
  }
26915
27008
  destroy() {
26916
27009
  if (this.spec.destroy)
@@ -27497,7 +27590,7 @@ function selectionToDOM(view, force = false) {
27497
27590
  if (!sel.empty && !sel.$from.parent.inlineContent)
27498
27591
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27499
27592
  }
27500
- view.docView.setSelection(anchor, head, view.root, force);
27593
+ view.docView.setSelection(anchor, head, view, force);
27501
27594
  if (brokenSelectBetweenUneditable) {
27502
27595
  if (resetEditableFrom)
27503
27596
  resetEditable(resetEditableFrom);
@@ -28133,11 +28226,14 @@ let _detachedDoc = null;
28133
28226
  function detachedDoc() {
28134
28227
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28135
28228
  }
28229
+ let _policy = null;
28136
28230
  function maybeWrapTrusted(html) {
28137
28231
  let trustedTypes = window.trustedTypes;
28138
28232
  if (!trustedTypes)
28139
28233
  return html;
28140
- return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28234
+ if (!_policy)
28235
+ _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28236
+ return _policy.createHTML(html);
28141
28237
  }
28142
28238
  function readHTML(html) {
28143
28239
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28269,9 +28365,7 @@ editHandlers.keydown = (view, _event) => {
28269
28365
  view.input.lastKeyCodeTime = Date.now();
28270
28366
  if (android && chrome && event.keyCode == 13)
28271
28367
  return;
28272
- if (view.domObserver.selectionChanged(view.domSelectionRange()))
28273
- view.domObserver.flush();
28274
- else if (event.keyCode != 229)
28368
+ if (event.keyCode != 229)
28275
28369
  view.domObserver.forceFlush();
28276
28370
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28277
28371
  let now = Date.now();
@@ -29649,9 +29743,6 @@ class DOMObserver {
29649
29743
  this.queue.push(mut);
29650
29744
  return this.queue;
29651
29745
  }
29652
- selectionChanged(sel) {
29653
- return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29654
- }
29655
29746
  flush() {
29656
29747
  let { view } = this;
29657
29748
  if (!view.docView || this.flushingSoon > -1)
@@ -29659,7 +29750,8 @@ class DOMObserver {
29659
29750
  let mutations = this.pendingRecords();
29660
29751
  if (mutations.length)
29661
29752
  this.queue = [];
29662
- let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29753
+ let sel = view.domSelectionRange();
29754
+ let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29663
29755
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29664
29756
  if (view.editable) {
29665
29757
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31099,7 +31191,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31099
31191
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31100
31192
  return false;
31101
31193
  if (dispatch)
31102
- dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31194
+ dispatch(state2.tr.join($pos.pos).scrollIntoView());
31103
31195
  return true;
31104
31196
  }
31105
31197
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31115,9 +31207,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31115
31207
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31116
31208
  wrap2 = Fragment.from(before.copy(wrap2));
31117
31209
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31118
- let joinAt = end2 + 2 * conn.length;
31119
- if (canJoin(tr2.doc, joinAt))
31120
- tr2.join(joinAt);
31210
+ let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31211
+ if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31212
+ tr2.join($joinAt.pos);
31121
31213
  dispatch(tr2.scrollIntoView());
31122
31214
  }
31123
31215
  return true;
@@ -31482,6 +31574,13 @@ class EventEmitter {
31482
31574
  }
31483
31575
  return this;
31484
31576
  }
31577
+ once(event, fn3) {
31578
+ const onceFn = (...args) => {
31579
+ this.off(event, onceFn);
31580
+ fn3.apply(this, args);
31581
+ };
31582
+ return this.on(event, onceFn);
31583
+ }
31485
31584
  removeAllListeners() {
31486
31585
  this.callbacks = {};
31487
31586
  }
@@ -31729,6 +31828,7 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31729
31828
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31730
31829
  code: callOrReturn(getExtensionField(extension, "code", context)),
31731
31830
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31831
+ linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31732
31832
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31733
31833
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31734
31834
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31811,6 +31911,13 @@ function isExtensionRulesEnabled(extension, enabled) {
31811
31911
  }
31812
31912
  return enabled;
31813
31913
  }
31914
+ function getHTMLFromFragment(fragment, schema) {
31915
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31916
+ const temporaryDocument = document.implementation.createHTMLDocument();
31917
+ const container = temporaryDocument.createElement("div");
31918
+ container.appendChild(documentFragment);
31919
+ return container.innerHTML;
31920
+ }
31814
31921
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31815
31922
  let textBefore = "";
31816
31923
  const sliceEndPos = $from.parentOffset;
@@ -31921,7 +32028,7 @@ function inputRulesPlugin(props2) {
31921
32028
  init() {
31922
32029
  return null;
31923
32030
  },
31924
- apply(tr2, prev) {
32031
+ apply(tr2, prev, state2) {
31925
32032
  const stored = tr2.getMeta(plugin);
31926
32033
  if (stored) {
31927
32034
  return stored;
@@ -31930,7 +32037,13 @@ function inputRulesPlugin(props2) {
31930
32037
  const isSimulatedInput = !!simulatedInputMeta;
31931
32038
  if (isSimulatedInput) {
31932
32039
  setTimeout(() => {
31933
- const { from: from2, text } = simulatedInputMeta;
32040
+ let { text } = simulatedInputMeta;
32041
+ if (typeof text === "string") {
32042
+ text = text;
32043
+ } else {
32044
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32045
+ }
32046
+ const { from: from2 } = simulatedInputMeta;
31934
32047
  const to2 = from2 + text.length;
31935
32048
  run$1({
31936
32049
  editor,
@@ -31999,6 +32112,109 @@ function inputRulesPlugin(props2) {
31999
32112
  });
32000
32113
  return plugin;
32001
32114
  }
32115
+ function getType$1(value) {
32116
+ return Object.prototype.toString.call(value).slice(8, -1);
32117
+ }
32118
+ function isPlainObject$1(value) {
32119
+ if (getType$1(value) !== "Object") {
32120
+ return false;
32121
+ }
32122
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32123
+ }
32124
+ function mergeDeep(target, source) {
32125
+ const output = { ...target };
32126
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32127
+ Object.keys(source).forEach((key) => {
32128
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32129
+ output[key] = mergeDeep(target[key], source[key]);
32130
+ } else {
32131
+ output[key] = source[key];
32132
+ }
32133
+ });
32134
+ }
32135
+ return output;
32136
+ }
32137
+ class Mark {
32138
+ constructor(config = {}) {
32139
+ this.type = "mark";
32140
+ this.name = "mark";
32141
+ this.parent = null;
32142
+ this.child = null;
32143
+ this.config = {
32144
+ name: this.name,
32145
+ defaultOptions: {}
32146
+ };
32147
+ this.config = {
32148
+ ...this.config,
32149
+ ...config
32150
+ };
32151
+ this.name = this.config.name;
32152
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32153
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32154
+ }
32155
+ this.options = this.config.defaultOptions;
32156
+ if (this.config.addOptions) {
32157
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
32158
+ name: this.name
32159
+ }));
32160
+ }
32161
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32162
+ name: this.name,
32163
+ options: this.options
32164
+ })) || {};
32165
+ }
32166
+ static create(config = {}) {
32167
+ return new Mark(config);
32168
+ }
32169
+ configure(options = {}) {
32170
+ const extension = this.extend({
32171
+ ...this.config,
32172
+ addOptions: () => {
32173
+ return mergeDeep(this.options, options);
32174
+ }
32175
+ });
32176
+ extension.name = this.name;
32177
+ extension.parent = this.parent;
32178
+ return extension;
32179
+ }
32180
+ extend(extendedConfig = {}) {
32181
+ const extension = new Mark(extendedConfig);
32182
+ extension.parent = this;
32183
+ this.child = extension;
32184
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32185
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32186
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32187
+ }
32188
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32189
+ name: extension.name
32190
+ }));
32191
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32192
+ name: extension.name,
32193
+ options: extension.options
32194
+ }));
32195
+ return extension;
32196
+ }
32197
+ static handleExit({ editor, mark }) {
32198
+ const { tr: tr2 } = editor.state;
32199
+ const currentPos = editor.state.selection.$from;
32200
+ const isAtEnd = currentPos.pos === currentPos.end();
32201
+ if (isAtEnd) {
32202
+ const currentMarks = currentPos.marks();
32203
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32204
+ if (!isInMark) {
32205
+ return false;
32206
+ }
32207
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32208
+ if (removeMark2) {
32209
+ tr2.removeStoredMark(removeMark2);
32210
+ }
32211
+ tr2.insertText(" ", currentPos.pos);
32212
+ editor.view.dispatch(tr2);
32213
+ return true;
32214
+ }
32215
+ return false;
32216
+ }
32217
+ }
32002
32218
  function isNumber$1(value) {
32003
32219
  return typeof value === "number";
32004
32220
  }
@@ -32085,7 +32301,12 @@ function pasteRulesPlugin(props2) {
32085
32301
  let isPastedFromProseMirror = false;
32086
32302
  let isDroppedFromProseMirror = false;
32087
32303
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32088
- let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32304
+ let dropEvent;
32305
+ try {
32306
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32307
+ } catch (e) {
32308
+ dropEvent = null;
32309
+ }
32089
32310
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32090
32311
  const tr2 = state2.tr;
32091
32312
  const chainableState = createChainableState({
@@ -32104,7 +32325,11 @@ function pasteRulesPlugin(props2) {
32104
32325
  if (!handler || !tr2.steps.length) {
32105
32326
  return;
32106
32327
  }
32107
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32328
+ try {
32329
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32330
+ } catch (e) {
32331
+ dropEvent = null;
32332
+ }
32108
32333
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32109
32334
  return tr2;
32110
32335
  };
@@ -32149,7 +32374,13 @@ function pasteRulesPlugin(props2) {
32149
32374
  return;
32150
32375
  }
32151
32376
  if (isSimulatedPaste) {
32152
- const { from: from3, text } = simulatedPasteMeta;
32377
+ let { text } = simulatedPasteMeta;
32378
+ if (typeof text === "string") {
32379
+ text = text;
32380
+ } else {
32381
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32382
+ }
32383
+ const { from: from3 } = simulatedPasteMeta;
32153
32384
  const to3 = from3 + text.length;
32154
32385
  const pasteEvt = createClipboardPasteEvent(text);
32155
32386
  return processEvent({
@@ -32423,28 +32654,6 @@ class ExtensionManager {
32423
32654
  });
32424
32655
  }
32425
32656
  }
32426
- function getType$1(value) {
32427
- return Object.prototype.toString.call(value).slice(8, -1);
32428
- }
32429
- function isPlainObject$1(value) {
32430
- if (getType$1(value) !== "Object") {
32431
- return false;
32432
- }
32433
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32434
- }
32435
- function mergeDeep(target, source) {
32436
- const output = { ...target };
32437
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32438
- Object.keys(source).forEach((key) => {
32439
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32440
- output[key] = mergeDeep(target[key], source[key]);
32441
- } else {
32442
- output[key] = source[key];
32443
- }
32444
- });
32445
- }
32446
- return output;
32447
- }
32448
32657
  class Extension {
32449
32658
  constructor(config = {}) {
32450
32659
  this.type = "extension";
@@ -32695,23 +32904,29 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32695
32904
  }
32696
32905
  function findMarkInSet(marks, type3, attributes = {}) {
32697
32906
  return marks.find((item) => {
32698
- return item.type === type3 && objectIncludes(item.attrs, attributes);
32907
+ return item.type === type3 && objectIncludes(
32908
+ // Only check equality for the attributes that are provided
32909
+ Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32910
+ attributes
32911
+ );
32699
32912
  });
32700
32913
  }
32701
32914
  function isMarkInSet(marks, type3, attributes = {}) {
32702
32915
  return !!findMarkInSet(marks, type3, attributes);
32703
32916
  }
32704
- function getMarkRange($pos, type3, attributes = {}) {
32917
+ function getMarkRange($pos, type3, attributes) {
32918
+ var _a2;
32705
32919
  if (!$pos || !type3) {
32706
32920
  return;
32707
32921
  }
32708
32922
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32709
- if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32923
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32710
32924
  start2 = $pos.parent.childBefore($pos.parentOffset);
32711
32925
  }
32712
- if (!start2.node) {
32926
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32713
32927
  return;
32714
32928
  }
32929
+ attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32715
32930
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32716
32931
  if (!mark) {
32717
32932
  return;
@@ -32720,8 +32935,7 @@ function getMarkRange($pos, type3, attributes = {}) {
32720
32935
  let startPos = $pos.start() + start2.offset;
32721
32936
  let endIndex = startIndex + 1;
32722
32937
  let endPos = startPos + start2.node.nodeSize;
32723
- findMarkInSet([...start2.node.marks], type3, attributes);
32724
- while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32938
+ while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32725
32939
  startIndex -= 1;
32726
32940
  startPos -= $pos.parent.child(startIndex).nodeSize;
32727
32941
  }
@@ -32862,6 +33076,9 @@ function elementFromString(value) {
32862
33076
  return removeWhitespaces(html);
32863
33077
  }
32864
33078
  function createNodeFromContent(content, schema, options) {
33079
+ if (content instanceof Node$2 || content instanceof Fragment) {
33080
+ return content;
33081
+ }
32865
33082
  options = {
32866
33083
  slice: true,
32867
33084
  parseOptions: {},
@@ -32956,7 +33173,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32956
33173
  var _a2;
32957
33174
  if (dispatch) {
32958
33175
  options = {
32959
- parseOptions: {},
33176
+ parseOptions: editor.options.parseOptions,
32960
33177
  updateSelection: true,
32961
33178
  applyInputRules: false,
32962
33179
  applyPasteRules: false,
@@ -32976,7 +33193,9 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32976
33193
  editor,
32977
33194
  error: e,
32978
33195
  disableCollaboration: () => {
32979
- console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33196
+ if (editor.storage.collaboration) {
33197
+ editor.storage.collaboration.isDisabled = true;
33198
+ }
32980
33199
  }
32981
33200
  });
32982
33201
  return false;
@@ -33002,6 +33221,14 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33002
33221
  if (isOnlyTextContent) {
33003
33222
  if (Array.isArray(value)) {
33004
33223
  newContent = value.map((v2) => v2.text || "").join("");
33224
+ } else if (value instanceof Fragment) {
33225
+ let text = "";
33226
+ value.forEach((node) => {
33227
+ if (node.text) {
33228
+ text += node.text;
33229
+ }
33230
+ });
33231
+ newContent = text;
33005
33232
  } else if (typeof value === "object" && !!value && !!value.text) {
33006
33233
  newContent = value.text;
33007
33234
  } else {
@@ -33337,13 +33564,6 @@ function findParentNodeClosestToPos($pos, predicate) {
33337
33564
  function findParentNode(predicate) {
33338
33565
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33339
33566
  }
33340
- function getHTMLFromFragment(fragment, schema) {
33341
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33342
- const temporaryDocument = document.implementation.createHTMLDocument();
33343
- const container = temporaryDocument.createElement("div");
33344
- container.appendChild(documentFragment);
33345
- return container.innerHTML;
33346
- }
33347
33567
  function getText(node, options) {
33348
33568
  const range2 = {
33349
33569
  from: 0,
@@ -33629,18 +33849,22 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33629
33849
  };
33630
33850
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33631
33851
  const type3 = getNodeType(typeOrName, state2.schema);
33852
+ let attributesToCopy;
33853
+ if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33854
+ attributesToCopy = state2.selection.$anchor.parent.attrs;
33855
+ }
33632
33856
  if (!type3.isTextblock) {
33633
33857
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33634
33858
  return false;
33635
33859
  }
33636
33860
  return chain().command(({ commands: commands2 }) => {
33637
- const canSetBlock = setBlockType(type3, attributes)(state2);
33861
+ const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33638
33862
  if (canSetBlock) {
33639
33863
  return true;
33640
33864
  }
33641
33865
  return commands2.clearNodes();
33642
33866
  }).command(({ state: updatedState }) => {
33643
- return setBlockType(type3, attributes)(updatedState, dispatch);
33867
+ return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33644
33868
  }).run();
33645
33869
  };
33646
33870
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -33999,18 +34223,59 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
33999
34223
  tr2.selection.ranges.forEach((range2) => {
34000
34224
  const from2 = range2.$from.pos;
34001
34225
  const to2 = range2.$to.pos;
34002
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34003
- if (nodeType && nodeType === node.type) {
34004
- tr2.setNodeMarkup(pos, void 0, {
34005
- ...node.attrs,
34226
+ let lastPos;
34227
+ let lastNode;
34228
+ let trimmedFrom;
34229
+ let trimmedTo;
34230
+ if (tr2.selection.empty) {
34231
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34232
+ if (nodeType && nodeType === node.type) {
34233
+ trimmedFrom = Math.max(pos, from2);
34234
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34235
+ lastPos = pos;
34236
+ lastNode = node;
34237
+ }
34238
+ });
34239
+ } else {
34240
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34241
+ if (pos < from2 && nodeType && nodeType === node.type) {
34242
+ trimmedFrom = Math.max(pos, from2);
34243
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34244
+ lastPos = pos;
34245
+ lastNode = node;
34246
+ }
34247
+ if (pos >= from2 && pos <= to2) {
34248
+ if (nodeType && nodeType === node.type) {
34249
+ tr2.setNodeMarkup(pos, void 0, {
34250
+ ...node.attrs,
34251
+ ...attributes
34252
+ });
34253
+ }
34254
+ if (markType && node.marks.length) {
34255
+ node.marks.forEach((mark) => {
34256
+ if (markType === mark.type) {
34257
+ const trimmedFrom2 = Math.max(pos, from2);
34258
+ const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34259
+ tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34260
+ ...mark.attrs,
34261
+ ...attributes
34262
+ }));
34263
+ }
34264
+ });
34265
+ }
34266
+ }
34267
+ });
34268
+ }
34269
+ if (lastNode) {
34270
+ if (lastPos !== void 0) {
34271
+ tr2.setNodeMarkup(lastPos, void 0, {
34272
+ ...lastNode.attrs,
34006
34273
  ...attributes
34007
34274
  });
34008
34275
  }
34009
- if (markType && node.marks.length) {
34010
- node.marks.forEach((mark) => {
34276
+ if (markType && lastNode.marks.length) {
34277
+ lastNode.marks.forEach((mark) => {
34011
34278
  if (markType === mark.type) {
34012
- const trimmedFrom = Math.max(pos, from2);
34013
- const trimmedTo = Math.min(pos + node.nodeSize, to2);
34014
34279
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34015
34280
  ...mark.attrs,
34016
34281
  ...attributes
@@ -34018,7 +34283,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34018
34283
  }
34019
34284
  });
34020
34285
  }
34021
- });
34286
+ }
34022
34287
  });
34023
34288
  }
34024
34289
  return true;
@@ -34100,6 +34365,26 @@ const Commands = Extension.create({
34100
34365
  };
34101
34366
  }
34102
34367
  });
34368
+ const Drop = Extension.create({
34369
+ name: "drop",
34370
+ addProseMirrorPlugins() {
34371
+ return [
34372
+ new Plugin({
34373
+ key: new PluginKey("tiptapDrop"),
34374
+ props: {
34375
+ handleDrop: (_2, e, slice4, moved2) => {
34376
+ this.editor.emit("drop", {
34377
+ editor: this.editor,
34378
+ event: e,
34379
+ slice: slice4,
34380
+ moved: moved2
34381
+ });
34382
+ }
34383
+ }
34384
+ })
34385
+ ];
34386
+ }
34387
+ });
34103
34388
  const Editable = Extension.create({
34104
34389
  name: "editable",
34105
34390
  addProseMirrorPlugins() {
@@ -34249,6 +34534,25 @@ const Keymap = Extension.create({
34249
34534
  ];
34250
34535
  }
34251
34536
  });
34537
+ const Paste = Extension.create({
34538
+ name: "paste",
34539
+ addProseMirrorPlugins() {
34540
+ return [
34541
+ new Plugin({
34542
+ key: new PluginKey("tiptapPaste"),
34543
+ props: {
34544
+ handlePaste: (_view, e, slice4) => {
34545
+ this.editor.emit("paste", {
34546
+ editor: this.editor,
34547
+ event: e,
34548
+ slice: slice4
34549
+ });
34550
+ }
34551
+ }
34552
+ })
34553
+ ];
34554
+ }
34555
+ });
34252
34556
  const Tabindex = Extension.create({
34253
34557
  name: "tabindex",
34254
34558
  addProseMirrorPlugins() {
@@ -34356,7 +34660,8 @@ class NodePos {
34356
34660
  const children2 = [];
34357
34661
  this.node.content.forEach((node, offset2) => {
34358
34662
  const isBlock = node.isBlock && !node.isTextblock;
34359
- const targetPos = this.pos + offset2 + 1;
34663
+ const isNonTextAtom = node.isAtom && !node.isText;
34664
+ const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34360
34665
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34361
34666
  if (!isBlock && $pos.depth <= this.depth) {
34362
34667
  return;
@@ -34425,30 +34730,14 @@ class NodePos {
34425
34730
  return nodes;
34426
34731
  }
34427
34732
  setAttribute(attributes) {
34428
- const oldSelection = this.editor.state.selection;
34429
- this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34733
+ const { tr: tr2 } = this.editor.state;
34734
+ tr2.setNodeMarkup(this.from, void 0, {
34735
+ ...this.node.attrs,
34736
+ ...attributes
34737
+ });
34738
+ this.editor.view.dispatch(tr2);
34430
34739
  }
34431
34740
  }
34432
- const DropPlugin = (onDrop) => {
34433
- return new Plugin({
34434
- key: new PluginKey("tiptapDrop"),
34435
- props: {
34436
- handleDrop: (_2, e, slice4, moved2) => {
34437
- onDrop(e, slice4, moved2);
34438
- }
34439
- }
34440
- });
34441
- };
34442
- const PastePlugin = (onPaste) => {
34443
- return new Plugin({
34444
- key: new PluginKey("tiptapPaste"),
34445
- props: {
34446
- handlePaste: (_view, e, slice4) => {
34447
- onPaste(e, slice4);
34448
- }
34449
- }
34450
- });
34451
- };
34452
34741
  const style = `.ProseMirror {
34453
34742
  position: relative;
34454
34743
  }
@@ -34591,12 +34880,8 @@ let Editor$1 = class Editor2 extends EventEmitter {
34591
34880
  this.on("focus", this.options.onFocus);
34592
34881
  this.on("blur", this.options.onBlur);
34593
34882
  this.on("destroy", this.options.onDestroy);
34594
- if (this.options.onPaste) {
34595
- this.registerPlugin(PastePlugin(this.options.onPaste));
34596
- }
34597
- if (this.options.onDrop) {
34598
- this.registerPlugin(DropPlugin(this.options.onDrop));
34599
- }
34883
+ this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34884
+ this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34600
34885
  window.setTimeout(() => {
34601
34886
  if (this.isDestroyed) {
34602
34887
  return;
@@ -34693,17 +34978,24 @@ let Editor$1 = class Editor2 extends EventEmitter {
34693
34978
  /**
34694
34979
  * Unregister a ProseMirror plugin.
34695
34980
  *
34696
- * @param nameOrPluginKey The plugins name
34981
+ * @param nameOrPluginKeyToRemove The plugins name
34697
34982
  * @returns The new editor state or undefined if the editor is destroyed
34698
34983
  */
34699
- unregisterPlugin(nameOrPluginKey) {
34984
+ unregisterPlugin(nameOrPluginKeyToRemove) {
34700
34985
  if (this.isDestroyed) {
34701
34986
  return void 0;
34702
34987
  }
34703
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34988
+ const prevPlugins = this.state.plugins;
34989
+ let plugins2 = prevPlugins;
34990
+ [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34991
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34992
+ plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34993
+ });
34994
+ if (prevPlugins.length === plugins2.length) {
34995
+ return void 0;
34996
+ }
34704
34997
  const state2 = this.state.reconfigure({
34705
- // @ts-ignore
34706
- plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34998
+ plugins: plugins2
34707
34999
  });
34708
35000
  this.view.updateState(state2);
34709
35001
  return state2;
@@ -34721,7 +35013,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34721
35013
  Commands,
34722
35014
  FocusEvents,
34723
35015
  Keymap,
34724
- Tabindex
35016
+ Tabindex,
35017
+ Drop,
35018
+ Paste
34725
35019
  ].filter((ext) => {
34726
35020
  if (typeof this.options.enableCoreExtensions === "object") {
34727
35021
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34751,6 +35045,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34751
35045
  * Creates a ProseMirror view.
34752
35046
  */
34753
35047
  createView() {
35048
+ var _a2;
34754
35049
  let doc2;
34755
35050
  try {
34756
35051
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34762,6 +35057,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34762
35057
  editor: this,
34763
35058
  error: e,
34764
35059
  disableCollaboration: () => {
35060
+ if (this.storage.collaboration) {
35061
+ this.storage.collaboration.isDisabled = true;
35062
+ }
34765
35063
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34766
35064
  this.createExtensionManager();
34767
35065
  }
@@ -34771,6 +35069,11 @@ let Editor$1 = class Editor2 extends EventEmitter {
34771
35069
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34772
35070
  this.view = new EditorView(this.options.element, {
34773
35071
  ...this.options.editorProps,
35072
+ attributes: {
35073
+ // add `role="textbox"` to the editor element
35074
+ role: "textbox",
35075
+ ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
35076
+ },
34774
35077
  dispatchTransaction: this.dispatchTransaction.bind(this),
34775
35078
  state: EditorState.create({
34776
35079
  doc: doc2,
@@ -35070,87 +35373,6 @@ function wrappingInputRule(config) {
35070
35373
  }
35071
35374
  });
35072
35375
  }
35073
- class Mark {
35074
- constructor(config = {}) {
35075
- this.type = "mark";
35076
- this.name = "mark";
35077
- this.parent = null;
35078
- this.child = null;
35079
- this.config = {
35080
- name: this.name,
35081
- defaultOptions: {}
35082
- };
35083
- this.config = {
35084
- ...this.config,
35085
- ...config
35086
- };
35087
- this.name = this.config.name;
35088
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35089
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35090
- }
35091
- this.options = this.config.defaultOptions;
35092
- if (this.config.addOptions) {
35093
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
35094
- name: this.name
35095
- }));
35096
- }
35097
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35098
- name: this.name,
35099
- options: this.options
35100
- })) || {};
35101
- }
35102
- static create(config = {}) {
35103
- return new Mark(config);
35104
- }
35105
- configure(options = {}) {
35106
- const extension = this.extend({
35107
- ...this.config,
35108
- addOptions: () => {
35109
- return mergeDeep(this.options, options);
35110
- }
35111
- });
35112
- extension.name = this.name;
35113
- extension.parent = this.parent;
35114
- return extension;
35115
- }
35116
- extend(extendedConfig = {}) {
35117
- const extension = new Mark(extendedConfig);
35118
- extension.parent = this;
35119
- this.child = extension;
35120
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35121
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35122
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35123
- }
35124
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35125
- name: extension.name
35126
- }));
35127
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35128
- name: extension.name,
35129
- options: extension.options
35130
- }));
35131
- return extension;
35132
- }
35133
- static handleExit({ editor, mark }) {
35134
- const { tr: tr2 } = editor.state;
35135
- const currentPos = editor.state.selection.$from;
35136
- const isAtEnd = currentPos.pos === currentPos.end();
35137
- if (isAtEnd) {
35138
- const currentMarks = currentPos.marks();
35139
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35140
- if (!isInMark) {
35141
- return false;
35142
- }
35143
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35144
- if (removeMark2) {
35145
- tr2.removeStoredMark(removeMark2);
35146
- }
35147
- tr2.insertText(" ", currentPos.pos);
35148
- editor.view.dispatch(tr2);
35149
- return true;
35150
- }
35151
- return false;
35152
- }
35153
- }
35154
35376
  let Node$1 = class Node3 {
35155
35377
  constructor(config = {}) {
35156
35378
  this.type = "node";
@@ -35980,7 +36202,7 @@ function drawCellSelection(state2) {
35980
36202
  return DecorationSet.create(state2.doc, cells);
35981
36203
  }
35982
36204
  function isCellBoundarySelection({ $from, $to }) {
35983
- if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36205
+ if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35984
36206
  return false;
35985
36207
  let afterFrom = $from.pos;
35986
36208
  let beforeTo = $to.pos;
@@ -36143,260 +36365,827 @@ function fixTable(state2, table, tablePos, tr2) {
36143
36365
  }
36144
36366
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36145
36367
  }
36146
- function pastedCells(slice4) {
36147
- if (!slice4.size)
36148
- return null;
36149
- let { content, openStart, openEnd } = slice4;
36150
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36151
- openStart--;
36152
- openEnd--;
36153
- content = content.child(0).content;
36368
+ function selectedRect(state2) {
36369
+ const sel = state2.selection;
36370
+ const $pos = selectionCell(state2);
36371
+ const table = $pos.node(-1);
36372
+ const tableStart = $pos.start(-1);
36373
+ const map4 = TableMap.get(table);
36374
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36375
+ sel.$anchorCell.pos - tableStart,
36376
+ sel.$headCell.pos - tableStart
36377
+ ) : map4.findCell($pos.pos - tableStart);
36378
+ return { ...rect, tableStart, map: map4, table };
36379
+ }
36380
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36381
+ let refColumn = col > 0 ? -1 : 0;
36382
+ if (columnIsHeader(map4, table, col + refColumn)) {
36383
+ refColumn = col == 0 || col == map4.width ? null : 0;
36154
36384
  }
36155
- const first2 = content.child(0);
36156
- const role = first2.type.spec.tableRole;
36157
- const schema = first2.type.schema, rows = [];
36158
- if (role == "row") {
36159
- for (let i2 = 0; i2 < content.childCount; i2++) {
36160
- let cells = content.child(i2).content;
36161
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36162
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36163
- if (left2 || right2)
36164
- cells = fitSlice(
36165
- tableNodeTypes(schema).row,
36166
- new Slice(cells, left2, right2)
36167
- ).content;
36168
- rows.push(cells);
36385
+ for (let row = 0; row < map4.height; row++) {
36386
+ const index2 = row * map4.width + col;
36387
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36388
+ const pos = map4.map[index2];
36389
+ const cell = table.nodeAt(pos);
36390
+ tr2.setNodeMarkup(
36391
+ tr2.mapping.map(tableStart + pos),
36392
+ null,
36393
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36394
+ );
36395
+ row += cell.attrs.rowspan - 1;
36396
+ } else {
36397
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36398
+ const pos = map4.positionAt(row, col, table);
36399
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36169
36400
  }
36170
- } else if (role == "cell" || role == "header_cell") {
36171
- rows.push(
36172
- openStart || openEnd ? fitSlice(
36173
- tableNodeTypes(schema).row,
36174
- new Slice(content, openStart, openEnd)
36175
- ).content : content
36176
- );
36177
- } else {
36178
- return null;
36179
36401
  }
36180
- return ensureRectangular(schema, rows);
36402
+ return tr2;
36181
36403
  }
36182
- function ensureRectangular(schema, rows) {
36183
- const widths = [];
36184
- for (let i2 = 0; i2 < rows.length; i2++) {
36185
- const row = rows[i2];
36186
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36187
- const { rowspan, colspan } = row.child(j2).attrs;
36188
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36189
- widths[r2] = (widths[r2] || 0) + colspan;
36190
- }
36191
- }
36192
- let width = 0;
36193
- for (let r2 = 0; r2 < widths.length; r2++)
36194
- width = Math.max(width, widths[r2]);
36195
- for (let r2 = 0; r2 < widths.length; r2++) {
36196
- if (r2 >= rows.length)
36197
- rows.push(Fragment.empty);
36198
- if (widths[r2] < width) {
36199
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36200
- const cells = [];
36201
- for (let i2 = widths[r2]; i2 < width; i2++) {
36202
- cells.push(empty2);
36203
- }
36204
- rows[r2] = rows[r2].append(Fragment.from(cells));
36205
- }
36404
+ function addColumnBefore(state2, dispatch) {
36405
+ if (!isInTable(state2))
36406
+ return false;
36407
+ if (dispatch) {
36408
+ const rect = selectedRect(state2);
36409
+ dispatch(addColumn(state2.tr, rect, rect.left));
36206
36410
  }
36207
- return { height: rows.length, width, rows };
36411
+ return true;
36208
36412
  }
36209
- function fitSlice(nodeType, slice4) {
36210
- const node = nodeType.createAndFill();
36211
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36212
- return tr2.doc;
36413
+ function addColumnAfter(state2, dispatch) {
36414
+ if (!isInTable(state2))
36415
+ return false;
36416
+ if (dispatch) {
36417
+ const rect = selectedRect(state2);
36418
+ dispatch(addColumn(state2.tr, rect, rect.right));
36419
+ }
36420
+ return true;
36213
36421
  }
36214
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36215
- if (width != newWidth) {
36216
- const added = [];
36217
- const newRows = [];
36218
- for (let row = 0; row < rows.length; row++) {
36219
- const frag = rows[row], cells = [];
36220
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36221
- let cell = frag.child(i2 % frag.childCount);
36222
- if (col + cell.attrs.colspan > newWidth)
36223
- cell = cell.type.createChecked(
36224
- removeColSpan(
36225
- cell.attrs,
36226
- cell.attrs.colspan,
36227
- col + cell.attrs.colspan - newWidth
36228
- ),
36229
- cell.content
36230
- );
36231
- cells.push(cell);
36232
- col += cell.attrs.colspan;
36233
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36234
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36235
- }
36236
- newRows.push(Fragment.from(cells));
36422
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36423
+ const mapStart = tr2.mapping.maps.length;
36424
+ for (let row = 0; row < map4.height; ) {
36425
+ const index2 = row * map4.width + col;
36426
+ const pos = map4.map[index2];
36427
+ const cell = table.nodeAt(pos);
36428
+ const attrs = cell.attrs;
36429
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36430
+ tr2.setNodeMarkup(
36431
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36432
+ null,
36433
+ removeColSpan(attrs, col - map4.colCount(pos))
36434
+ );
36435
+ } else {
36436
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36437
+ tr2.delete(start2, start2 + cell.nodeSize);
36237
36438
  }
36238
- rows = newRows;
36239
- width = newWidth;
36439
+ row += attrs.rowspan;
36240
36440
  }
36241
- if (height != newHeight) {
36242
- const newRows = [];
36243
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36244
- const cells = [], source = rows[i2 % height];
36245
- for (let j2 = 0; j2 < source.childCount; j2++) {
36246
- let cell = source.child(j2);
36247
- if (row + cell.attrs.rowspan > newHeight)
36248
- cell = cell.type.create(
36249
- {
36250
- ...cell.attrs,
36251
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36252
- },
36253
- cell.content
36254
- );
36255
- cells.push(cell);
36441
+ }
36442
+ function deleteColumn(state2, dispatch) {
36443
+ if (!isInTable(state2))
36444
+ return false;
36445
+ if (dispatch) {
36446
+ const rect = selectedRect(state2);
36447
+ const tr2 = state2.tr;
36448
+ if (rect.left == 0 && rect.right == rect.map.width)
36449
+ return false;
36450
+ for (let i2 = rect.right - 1; ; i2--) {
36451
+ removeColumn(tr2, rect, i2);
36452
+ if (i2 == rect.left)
36453
+ break;
36454
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36455
+ if (!table) {
36456
+ throw RangeError("No table found");
36256
36457
  }
36257
- newRows.push(Fragment.from(cells));
36458
+ rect.table = table;
36459
+ rect.map = TableMap.get(table);
36258
36460
  }
36259
- rows = newRows;
36260
- height = newHeight;
36461
+ dispatch(tr2);
36261
36462
  }
36262
- return { width, height, rows };
36463
+ return true;
36263
36464
  }
36264
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36265
- const schema = tr2.doc.type.schema;
36266
- const types = tableNodeTypes(schema);
36267
- let empty2;
36268
- let emptyHead;
36269
- if (width > map4.width) {
36270
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36271
- const rowNode = table.child(row);
36272
- rowEnd += rowNode.nodeSize;
36273
- const cells = [];
36274
- let add2;
36275
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36276
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36277
- else
36278
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36279
- for (let i2 = map4.width; i2 < width; i2++)
36280
- cells.push(add2);
36281
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36465
+ function rowIsHeader(map4, table, row) {
36466
+ var _a2;
36467
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
36468
+ for (let col = 0; col < map4.width; col++)
36469
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36470
+ return false;
36471
+ return true;
36472
+ }
36473
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
36474
+ var _a2;
36475
+ let rowPos = tableStart;
36476
+ for (let i2 = 0; i2 < row; i2++)
36477
+ rowPos += table.child(i2).nodeSize;
36478
+ const cells = [];
36479
+ let refRow = row > 0 ? -1 : 0;
36480
+ if (rowIsHeader(map4, table, row + refRow))
36481
+ refRow = row == 0 || row == map4.height ? null : 0;
36482
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36483
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36484
+ const pos = map4.map[index2];
36485
+ const attrs = table.nodeAt(pos).attrs;
36486
+ tr2.setNodeMarkup(tableStart + pos, null, {
36487
+ ...attrs,
36488
+ rowspan: attrs.rowspan + 1
36489
+ });
36490
+ col += attrs.colspan - 1;
36491
+ } else {
36492
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36493
+ const node = type3 == null ? void 0 : type3.createAndFill();
36494
+ if (node)
36495
+ cells.push(node);
36282
36496
  }
36283
36497
  }
36284
- if (height > map4.height) {
36285
- const cells = [];
36286
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36287
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36288
- cells.push(
36289
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36290
- );
36291
- }
36292
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36293
- for (let i2 = map4.height; i2 < height; i2++)
36294
- rows.push(emptyRow);
36295
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36498
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36499
+ return tr2;
36500
+ }
36501
+ function addRowBefore(state2, dispatch) {
36502
+ if (!isInTable(state2))
36503
+ return false;
36504
+ if (dispatch) {
36505
+ const rect = selectedRect(state2);
36506
+ dispatch(addRow(state2.tr, rect, rect.top));
36296
36507
  }
36297
- return !!(empty2 || emptyHead);
36508
+ return true;
36298
36509
  }
36299
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36300
- if (top2 == 0 || top2 == map4.height)
36510
+ function addRowAfter(state2, dispatch) {
36511
+ if (!isInTable(state2))
36301
36512
  return false;
36302
- let found2 = false;
36303
- for (let col = left2; col < right2; col++) {
36304
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
36305
- if (map4.map[index2 - map4.width] == pos) {
36306
- found2 = true;
36307
- const cell = table.nodeAt(pos);
36308
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36309
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36310
- ...cell.attrs,
36311
- rowspan: top2 - cellTop
36513
+ if (dispatch) {
36514
+ const rect = selectedRect(state2);
36515
+ dispatch(addRow(state2.tr, rect, rect.bottom));
36516
+ }
36517
+ return true;
36518
+ }
36519
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
36520
+ let rowPos = 0;
36521
+ for (let i2 = 0; i2 < row; i2++)
36522
+ rowPos += table.child(i2).nodeSize;
36523
+ const nextRow = rowPos + table.child(row).nodeSize;
36524
+ const mapFrom = tr2.mapping.maps.length;
36525
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
36526
+ const seen = /* @__PURE__ */ new Set();
36527
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36528
+ const pos = map4.map[index2];
36529
+ if (seen.has(pos))
36530
+ continue;
36531
+ seen.add(pos);
36532
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
36533
+ const attrs = table.nodeAt(pos).attrs;
36534
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36535
+ ...attrs,
36536
+ rowspan: attrs.rowspan - 1
36312
36537
  });
36313
- tr2.insert(
36314
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36315
- cell.type.createAndFill({
36316
- ...cell.attrs,
36317
- rowspan: cellTop + cell.attrs.rowspan - top2
36318
- })
36538
+ col += attrs.colspan - 1;
36539
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36540
+ const cell = table.nodeAt(pos);
36541
+ const attrs = cell.attrs;
36542
+ const copy2 = cell.type.create(
36543
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36544
+ cell.content
36319
36545
  );
36320
- col += cell.attrs.colspan - 1;
36546
+ const newPos = map4.positionAt(row + 1, col, table);
36547
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36548
+ col += attrs.colspan - 1;
36321
36549
  }
36322
36550
  }
36323
- return found2;
36324
36551
  }
36325
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36326
- if (left2 == 0 || left2 == map4.width)
36552
+ function deleteRow(state2, dispatch) {
36553
+ if (!isInTable(state2))
36327
36554
  return false;
36328
- let found2 = false;
36329
- for (let row = top2; row < bottom2; row++) {
36330
- const index2 = row * map4.width + left2, pos = map4.map[index2];
36331
- if (map4.map[index2 - 1] == pos) {
36332
- found2 = true;
36333
- const cell = table.nodeAt(pos);
36334
- const cellLeft = map4.colCount(pos);
36335
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36336
- tr2.setNodeMarkup(
36337
- updatePos,
36338
- null,
36339
- removeColSpan(
36340
- cell.attrs,
36341
- left2 - cellLeft,
36342
- cell.attrs.colspan - (left2 - cellLeft)
36343
- )
36344
- );
36345
- tr2.insert(
36346
- updatePos + cell.nodeSize,
36347
- cell.type.createAndFill(
36348
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
36349
- )
36350
- );
36351
- row += cell.attrs.rowspan - 1;
36555
+ if (dispatch) {
36556
+ const rect = selectedRect(state2), tr2 = state2.tr;
36557
+ if (rect.top == 0 && rect.bottom == rect.map.height)
36558
+ return false;
36559
+ for (let i2 = rect.bottom - 1; ; i2--) {
36560
+ removeRow(tr2, rect, i2);
36561
+ if (i2 == rect.top)
36562
+ break;
36563
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36564
+ if (!table) {
36565
+ throw RangeError("No table found");
36566
+ }
36567
+ rect.table = table;
36568
+ rect.map = TableMap.get(rect.table);
36352
36569
  }
36570
+ dispatch(tr2);
36353
36571
  }
36354
- return found2;
36572
+ return true;
36355
36573
  }
36356
- function insertCells(state2, dispatch, tableStart, rect, cells) {
36357
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36358
- if (!table) {
36359
- throw new Error("No table found");
36360
- }
36361
- let map4 = TableMap.get(table);
36362
- const { top: top2, left: left2 } = rect;
36363
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36364
- const tr2 = state2.tr;
36365
- let mapFrom = 0;
36366
- function recomp() {
36367
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36368
- if (!table) {
36369
- throw new Error("No table found");
36370
- }
36371
- map4 = TableMap.get(table);
36372
- mapFrom = tr2.mapping.maps.length;
36574
+ function isEmpty(cell) {
36575
+ const c2 = cell.content;
36576
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36577
+ }
36578
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36579
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36580
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36581
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36582
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36583
+ return true;
36584
+ indexLeft += width;
36585
+ indexRight += width;
36373
36586
  }
36374
- if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
36375
- recomp();
36376
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
36377
- recomp();
36378
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
36379
- recomp();
36380
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
36381
- recomp();
36382
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
36383
- recomp();
36384
- for (let row = top2; row < bottom2; row++) {
36385
- const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
36386
- tr2.replace(
36387
- tr2.mapping.slice(mapFrom).map(from2 + tableStart),
36388
- tr2.mapping.slice(mapFrom).map(to2 + tableStart),
36389
- new Slice(cells.rows[row - top2], 0, 0)
36390
- );
36587
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
36588
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36589
+ return true;
36590
+ indexTop++;
36591
+ indexBottom++;
36391
36592
  }
36392
- recomp();
36393
- tr2.setSelection(
36394
- new CellSelection(
36395
- tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
36396
- tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
36397
- )
36398
- );
36399
- dispatch(tr2);
36593
+ return false;
36594
+ }
36595
+ function mergeCells(state2, dispatch) {
36596
+ const sel = state2.selection;
36597
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36598
+ return false;
36599
+ const rect = selectedRect(state2), { map: map4 } = rect;
36600
+ if (cellsOverlapRectangle(map4, rect))
36601
+ return false;
36602
+ if (dispatch) {
36603
+ const tr2 = state2.tr;
36604
+ const seen = {};
36605
+ let content = Fragment.empty;
36606
+ let mergedPos;
36607
+ let mergedCell;
36608
+ for (let row = rect.top; row < rect.bottom; row++) {
36609
+ for (let col = rect.left; col < rect.right; col++) {
36610
+ const cellPos = map4.map[row * map4.width + col];
36611
+ const cell = rect.table.nodeAt(cellPos);
36612
+ if (seen[cellPos] || !cell)
36613
+ continue;
36614
+ seen[cellPos] = true;
36615
+ if (mergedPos == null) {
36616
+ mergedPos = cellPos;
36617
+ mergedCell = cell;
36618
+ } else {
36619
+ if (!isEmpty(cell))
36620
+ content = content.append(cell.content);
36621
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36622
+ tr2.delete(mapped, mapped + cell.nodeSize);
36623
+ }
36624
+ }
36625
+ }
36626
+ if (mergedPos == null || mergedCell == null) {
36627
+ return true;
36628
+ }
36629
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36630
+ ...addColSpan(
36631
+ mergedCell.attrs,
36632
+ mergedCell.attrs.colspan,
36633
+ rect.right - rect.left - mergedCell.attrs.colspan
36634
+ ),
36635
+ rowspan: rect.bottom - rect.top
36636
+ });
36637
+ if (content.size) {
36638
+ const end2 = mergedPos + 1 + mergedCell.content.size;
36639
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36640
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36641
+ }
36642
+ tr2.setSelection(
36643
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36644
+ );
36645
+ dispatch(tr2);
36646
+ }
36647
+ return true;
36648
+ }
36649
+ function splitCell(state2, dispatch) {
36650
+ const nodeTypes = tableNodeTypes(state2.schema);
36651
+ return splitCellWithType(({ node }) => {
36652
+ return nodeTypes[node.type.spec.tableRole];
36653
+ })(state2, dispatch);
36654
+ }
36655
+ function splitCellWithType(getCellType) {
36656
+ return (state2, dispatch) => {
36657
+ var _a2;
36658
+ const sel = state2.selection;
36659
+ let cellNode;
36660
+ let cellPos;
36661
+ if (!(sel instanceof CellSelection)) {
36662
+ cellNode = cellWrapping(sel.$from);
36663
+ if (!cellNode)
36664
+ return false;
36665
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36666
+ } else {
36667
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
36668
+ return false;
36669
+ cellNode = sel.$anchorCell.nodeAfter;
36670
+ cellPos = sel.$anchorCell.pos;
36671
+ }
36672
+ if (cellNode == null || cellPos == null) {
36673
+ return false;
36674
+ }
36675
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36676
+ return false;
36677
+ }
36678
+ if (dispatch) {
36679
+ let baseAttrs = cellNode.attrs;
36680
+ const attrs = [];
36681
+ const colwidth = baseAttrs.colwidth;
36682
+ if (baseAttrs.rowspan > 1)
36683
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
36684
+ if (baseAttrs.colspan > 1)
36685
+ baseAttrs = { ...baseAttrs, colspan: 1 };
36686
+ const rect = selectedRect(state2), tr2 = state2.tr;
36687
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36688
+ attrs.push(
36689
+ colwidth ? {
36690
+ ...baseAttrs,
36691
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36692
+ } : baseAttrs
36693
+ );
36694
+ let lastCell;
36695
+ for (let row = rect.top; row < rect.bottom; row++) {
36696
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
36697
+ if (row == rect.top)
36698
+ pos += cellNode.nodeSize;
36699
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36700
+ if (col == rect.left && row == rect.top)
36701
+ continue;
36702
+ tr2.insert(
36703
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36704
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36705
+ );
36706
+ }
36707
+ }
36708
+ tr2.setNodeMarkup(
36709
+ cellPos,
36710
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36711
+ attrs[0]
36712
+ );
36713
+ if (sel instanceof CellSelection)
36714
+ tr2.setSelection(
36715
+ new CellSelection(
36716
+ tr2.doc.resolve(sel.$anchorCell.pos),
36717
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
36718
+ )
36719
+ );
36720
+ dispatch(tr2);
36721
+ }
36722
+ return true;
36723
+ };
36724
+ }
36725
+ function setCellAttr(name, value) {
36726
+ return function(state2, dispatch) {
36727
+ if (!isInTable(state2))
36728
+ return false;
36729
+ const $cell = selectionCell(state2);
36730
+ if ($cell.nodeAfter.attrs[name] === value)
36731
+ return false;
36732
+ if (dispatch) {
36733
+ const tr2 = state2.tr;
36734
+ if (state2.selection instanceof CellSelection)
36735
+ state2.selection.forEachCell((node, pos) => {
36736
+ if (node.attrs[name] !== value)
36737
+ tr2.setNodeMarkup(pos, null, {
36738
+ ...node.attrs,
36739
+ [name]: value
36740
+ });
36741
+ });
36742
+ else
36743
+ tr2.setNodeMarkup($cell.pos, null, {
36744
+ ...$cell.nodeAfter.attrs,
36745
+ [name]: value
36746
+ });
36747
+ dispatch(tr2);
36748
+ }
36749
+ return true;
36750
+ };
36751
+ }
36752
+ function deprecated_toggleHeader(type3) {
36753
+ return function(state2, dispatch) {
36754
+ if (!isInTable(state2))
36755
+ return false;
36756
+ if (dispatch) {
36757
+ const types = tableNodeTypes(state2.schema);
36758
+ const rect = selectedRect(state2), tr2 = state2.tr;
36759
+ const cells = rect.map.cellsInRect(
36760
+ type3 == "column" ? {
36761
+ left: rect.left,
36762
+ top: 0,
36763
+ right: rect.right,
36764
+ bottom: rect.map.height
36765
+ } : type3 == "row" ? {
36766
+ left: 0,
36767
+ top: rect.top,
36768
+ right: rect.map.width,
36769
+ bottom: rect.bottom
36770
+ } : rect
36771
+ );
36772
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36773
+ for (let i2 = 0; i2 < cells.length; i2++)
36774
+ if (nodes[i2].type == types.header_cell)
36775
+ tr2.setNodeMarkup(
36776
+ rect.tableStart + cells[i2],
36777
+ types.cell,
36778
+ nodes[i2].attrs
36779
+ );
36780
+ if (tr2.steps.length == 0)
36781
+ for (let i2 = 0; i2 < cells.length; i2++)
36782
+ tr2.setNodeMarkup(
36783
+ rect.tableStart + cells[i2],
36784
+ types.header_cell,
36785
+ nodes[i2].attrs
36786
+ );
36787
+ dispatch(tr2);
36788
+ }
36789
+ return true;
36790
+ };
36791
+ }
36792
+ function isHeaderEnabledByType(type3, rect, types) {
36793
+ const cellPositions = rect.map.cellsInRect({
36794
+ left: 0,
36795
+ top: 0,
36796
+ right: type3 == "row" ? rect.map.width : 1,
36797
+ bottom: type3 == "column" ? rect.map.height : 1
36798
+ });
36799
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
36800
+ const cell = rect.table.nodeAt(cellPositions[i2]);
36801
+ if (cell && cell.type !== types.header_cell) {
36802
+ return false;
36803
+ }
36804
+ }
36805
+ return true;
36806
+ }
36807
+ function toggleHeader(type3, options) {
36808
+ options = options || { useDeprecatedLogic: false };
36809
+ if (options.useDeprecatedLogic)
36810
+ return deprecated_toggleHeader(type3);
36811
+ return function(state2, dispatch) {
36812
+ if (!isInTable(state2))
36813
+ return false;
36814
+ if (dispatch) {
36815
+ const types = tableNodeTypes(state2.schema);
36816
+ const rect = selectedRect(state2), tr2 = state2.tr;
36817
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36818
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
36819
+ "column",
36820
+ rect,
36821
+ types
36822
+ );
36823
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36824
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36825
+ const cellsRect = type3 == "column" ? {
36826
+ left: 0,
36827
+ top: selectionStartsAt,
36828
+ right: 1,
36829
+ bottom: rect.map.height
36830
+ } : type3 == "row" ? {
36831
+ left: selectionStartsAt,
36832
+ top: 0,
36833
+ right: rect.map.width,
36834
+ bottom: 1
36835
+ } : rect;
36836
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36837
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36838
+ const cellPos = relativeCellPos + rect.tableStart;
36839
+ const cell = tr2.doc.nodeAt(cellPos);
36840
+ if (cell) {
36841
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36842
+ }
36843
+ });
36844
+ dispatch(tr2);
36845
+ }
36846
+ return true;
36847
+ };
36848
+ }
36849
+ toggleHeader("row", {
36850
+ useDeprecatedLogic: true
36851
+ });
36852
+ toggleHeader("column", {
36853
+ useDeprecatedLogic: true
36854
+ });
36855
+ var toggleHeaderCell = toggleHeader("cell", {
36856
+ useDeprecatedLogic: true
36857
+ });
36858
+ function findNextCell($cell, dir) {
36859
+ if (dir < 0) {
36860
+ const before = $cell.nodeBefore;
36861
+ if (before)
36862
+ return $cell.pos - before.nodeSize;
36863
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36864
+ const rowNode = $cell.node(-1).child(row);
36865
+ const lastChild2 = rowNode.lastChild;
36866
+ if (lastChild2) {
36867
+ return rowEnd - 1 - lastChild2.nodeSize;
36868
+ }
36869
+ rowEnd -= rowNode.nodeSize;
36870
+ }
36871
+ } else {
36872
+ if ($cell.index() < $cell.parent.childCount - 1) {
36873
+ return $cell.pos + $cell.nodeAfter.nodeSize;
36874
+ }
36875
+ const table = $cell.node(-1);
36876
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36877
+ const rowNode = table.child(row);
36878
+ if (rowNode.childCount)
36879
+ return rowStart + 1;
36880
+ rowStart += rowNode.nodeSize;
36881
+ }
36882
+ }
36883
+ return null;
36884
+ }
36885
+ function goToNextCell(direction) {
36886
+ return function(state2, dispatch) {
36887
+ if (!isInTable(state2))
36888
+ return false;
36889
+ const cell = findNextCell(selectionCell(state2), direction);
36890
+ if (cell == null)
36891
+ return false;
36892
+ if (dispatch) {
36893
+ const $cell = state2.doc.resolve(cell);
36894
+ dispatch(
36895
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36896
+ );
36897
+ }
36898
+ return true;
36899
+ };
36900
+ }
36901
+ function deleteTable(state2, dispatch) {
36902
+ const $pos = state2.selection.$anchor;
36903
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
36904
+ const node = $pos.node(d2);
36905
+ if (node.type.spec.tableRole == "table") {
36906
+ if (dispatch)
36907
+ dispatch(
36908
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36909
+ );
36910
+ return true;
36911
+ }
36912
+ }
36913
+ return false;
36914
+ }
36915
+ function deleteCellSelection(state2, dispatch) {
36916
+ const sel = state2.selection;
36917
+ if (!(sel instanceof CellSelection))
36918
+ return false;
36919
+ if (dispatch) {
36920
+ const tr2 = state2.tr;
36921
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36922
+ sel.forEachCell((cell, pos) => {
36923
+ if (!cell.content.eq(baseContent))
36924
+ tr2.replace(
36925
+ tr2.mapping.map(pos + 1),
36926
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36927
+ new Slice(baseContent, 0, 0)
36928
+ );
36929
+ });
36930
+ if (tr2.docChanged)
36931
+ dispatch(tr2);
36932
+ }
36933
+ return true;
36934
+ }
36935
+ function pastedCells(slice4) {
36936
+ if (!slice4.size)
36937
+ return null;
36938
+ let { content, openStart, openEnd } = slice4;
36939
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36940
+ openStart--;
36941
+ openEnd--;
36942
+ content = content.child(0).content;
36943
+ }
36944
+ const first2 = content.child(0);
36945
+ const role = first2.type.spec.tableRole;
36946
+ const schema = first2.type.schema, rows = [];
36947
+ if (role == "row") {
36948
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36949
+ let cells = content.child(i2).content;
36950
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36951
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36952
+ if (left2 || right2)
36953
+ cells = fitSlice(
36954
+ tableNodeTypes(schema).row,
36955
+ new Slice(cells, left2, right2)
36956
+ ).content;
36957
+ rows.push(cells);
36958
+ }
36959
+ } else if (role == "cell" || role == "header_cell") {
36960
+ rows.push(
36961
+ openStart || openEnd ? fitSlice(
36962
+ tableNodeTypes(schema).row,
36963
+ new Slice(content, openStart, openEnd)
36964
+ ).content : content
36965
+ );
36966
+ } else {
36967
+ return null;
36968
+ }
36969
+ return ensureRectangular(schema, rows);
36970
+ }
36971
+ function ensureRectangular(schema, rows) {
36972
+ const widths = [];
36973
+ for (let i2 = 0; i2 < rows.length; i2++) {
36974
+ const row = rows[i2];
36975
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36976
+ const { rowspan, colspan } = row.child(j2).attrs;
36977
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36978
+ widths[r2] = (widths[r2] || 0) + colspan;
36979
+ }
36980
+ }
36981
+ let width = 0;
36982
+ for (let r2 = 0; r2 < widths.length; r2++)
36983
+ width = Math.max(width, widths[r2]);
36984
+ for (let r2 = 0; r2 < widths.length; r2++) {
36985
+ if (r2 >= rows.length)
36986
+ rows.push(Fragment.empty);
36987
+ if (widths[r2] < width) {
36988
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36989
+ const cells = [];
36990
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36991
+ cells.push(empty2);
36992
+ }
36993
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36994
+ }
36995
+ }
36996
+ return { height: rows.length, width, rows };
36997
+ }
36998
+ function fitSlice(nodeType, slice4) {
36999
+ const node = nodeType.createAndFill();
37000
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
37001
+ return tr2.doc;
37002
+ }
37003
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
37004
+ if (width != newWidth) {
37005
+ const added = [];
37006
+ const newRows = [];
37007
+ for (let row = 0; row < rows.length; row++) {
37008
+ const frag = rows[row], cells = [];
37009
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
37010
+ let cell = frag.child(i2 % frag.childCount);
37011
+ if (col + cell.attrs.colspan > newWidth)
37012
+ cell = cell.type.createChecked(
37013
+ removeColSpan(
37014
+ cell.attrs,
37015
+ cell.attrs.colspan,
37016
+ col + cell.attrs.colspan - newWidth
37017
+ ),
37018
+ cell.content
37019
+ );
37020
+ cells.push(cell);
37021
+ col += cell.attrs.colspan;
37022
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
37023
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
37024
+ }
37025
+ newRows.push(Fragment.from(cells));
37026
+ }
37027
+ rows = newRows;
37028
+ width = newWidth;
37029
+ }
37030
+ if (height != newHeight) {
37031
+ const newRows = [];
37032
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
37033
+ const cells = [], source = rows[i2 % height];
37034
+ for (let j2 = 0; j2 < source.childCount; j2++) {
37035
+ let cell = source.child(j2);
37036
+ if (row + cell.attrs.rowspan > newHeight)
37037
+ cell = cell.type.create(
37038
+ {
37039
+ ...cell.attrs,
37040
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
37041
+ },
37042
+ cell.content
37043
+ );
37044
+ cells.push(cell);
37045
+ }
37046
+ newRows.push(Fragment.from(cells));
37047
+ }
37048
+ rows = newRows;
37049
+ height = newHeight;
37050
+ }
37051
+ return { width, height, rows };
37052
+ }
37053
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
37054
+ const schema = tr2.doc.type.schema;
37055
+ const types = tableNodeTypes(schema);
37056
+ let empty2;
37057
+ let emptyHead;
37058
+ if (width > map4.width) {
37059
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
37060
+ const rowNode = table.child(row);
37061
+ rowEnd += rowNode.nodeSize;
37062
+ const cells = [];
37063
+ let add2;
37064
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
37065
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
37066
+ else
37067
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
37068
+ for (let i2 = map4.width; i2 < width; i2++)
37069
+ cells.push(add2);
37070
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
37071
+ }
37072
+ }
37073
+ if (height > map4.height) {
37074
+ const cells = [];
37075
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
37076
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
37077
+ cells.push(
37078
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37079
+ );
37080
+ }
37081
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37082
+ for (let i2 = map4.height; i2 < height; i2++)
37083
+ rows.push(emptyRow);
37084
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37085
+ }
37086
+ return !!(empty2 || emptyHead);
37087
+ }
37088
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37089
+ if (top2 == 0 || top2 == map4.height)
37090
+ return false;
37091
+ let found2 = false;
37092
+ for (let col = left2; col < right2; col++) {
37093
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
37094
+ if (map4.map[index2 - map4.width] == pos) {
37095
+ found2 = true;
37096
+ const cell = table.nodeAt(pos);
37097
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37098
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37099
+ ...cell.attrs,
37100
+ rowspan: top2 - cellTop
37101
+ });
37102
+ tr2.insert(
37103
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37104
+ cell.type.createAndFill({
37105
+ ...cell.attrs,
37106
+ rowspan: cellTop + cell.attrs.rowspan - top2
37107
+ })
37108
+ );
37109
+ col += cell.attrs.colspan - 1;
37110
+ }
37111
+ }
37112
+ return found2;
37113
+ }
37114
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37115
+ if (left2 == 0 || left2 == map4.width)
37116
+ return false;
37117
+ let found2 = false;
37118
+ for (let row = top2; row < bottom2; row++) {
37119
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
37120
+ if (map4.map[index2 - 1] == pos) {
37121
+ found2 = true;
37122
+ const cell = table.nodeAt(pos);
37123
+ const cellLeft = map4.colCount(pos);
37124
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37125
+ tr2.setNodeMarkup(
37126
+ updatePos,
37127
+ null,
37128
+ removeColSpan(
37129
+ cell.attrs,
37130
+ left2 - cellLeft,
37131
+ cell.attrs.colspan - (left2 - cellLeft)
37132
+ )
37133
+ );
37134
+ tr2.insert(
37135
+ updatePos + cell.nodeSize,
37136
+ cell.type.createAndFill(
37137
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
37138
+ )
37139
+ );
37140
+ row += cell.attrs.rowspan - 1;
37141
+ }
37142
+ }
37143
+ return found2;
37144
+ }
37145
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
37146
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37147
+ if (!table) {
37148
+ throw new Error("No table found");
37149
+ }
37150
+ let map4 = TableMap.get(table);
37151
+ const { top: top2, left: left2 } = rect;
37152
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37153
+ const tr2 = state2.tr;
37154
+ let mapFrom = 0;
37155
+ function recomp() {
37156
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37157
+ if (!table) {
37158
+ throw new Error("No table found");
37159
+ }
37160
+ map4 = TableMap.get(table);
37161
+ mapFrom = tr2.mapping.maps.length;
37162
+ }
37163
+ if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37164
+ recomp();
37165
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
37166
+ recomp();
37167
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
37168
+ recomp();
37169
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
37170
+ recomp();
37171
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
37172
+ recomp();
37173
+ for (let row = top2; row < bottom2; row++) {
37174
+ const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
37175
+ tr2.replace(
37176
+ tr2.mapping.slice(mapFrom).map(from2 + tableStart),
37177
+ tr2.mapping.slice(mapFrom).map(to2 + tableStart),
37178
+ new Slice(cells.rows[row - top2], 0, 0)
37179
+ );
37180
+ }
37181
+ recomp();
37182
+ tr2.setSelection(
37183
+ new CellSelection(
37184
+ tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
37185
+ tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
37186
+ )
37187
+ );
37188
+ dispatch(tr2);
36400
37189
  }
36401
37190
  var handleKeyDown$1 = keydownHandler({
36402
37191
  ArrowLeft: arrow$3("horiz", -1),
@@ -36477,28 +37266,8 @@ function shiftArrow(axis2, dir) {
36477
37266
  state2,
36478
37267
  dispatch,
36479
37268
  new CellSelection(cellSel.$anchorCell, $head)
36480
- );
36481
- };
36482
- }
36483
- function deleteCellSelection(state2, dispatch) {
36484
- const sel = state2.selection;
36485
- if (!(sel instanceof CellSelection))
36486
- return false;
36487
- if (dispatch) {
36488
- const tr2 = state2.tr;
36489
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36490
- sel.forEachCell((cell, pos) => {
36491
- if (!cell.content.eq(baseContent))
36492
- tr2.replace(
36493
- tr2.mapping.map(pos + 1),
36494
- tr2.mapping.map(pos + cell.nodeSize - 1),
36495
- new Slice(baseContent, 0, 0)
36496
- );
36497
- });
36498
- if (tr2.docChanged)
36499
- dispatch(tr2);
36500
- }
36501
- return true;
37269
+ );
37270
+ };
36502
37271
  }
36503
37272
  function handleTripleClick(view, pos) {
36504
37273
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
@@ -36638,28 +37407,37 @@ function cellUnderMouse(view, event) {
36638
37407
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
36639
37408
  }
36640
37409
  var TableView$1 = class TableView2 {
36641
- constructor(node, cellMinWidth) {
37410
+ constructor(node, defaultCellMinWidth) {
36642
37411
  this.node = node;
36643
- this.cellMinWidth = cellMinWidth;
37412
+ this.defaultCellMinWidth = defaultCellMinWidth;
36644
37413
  this.dom = document.createElement("div");
36645
37414
  this.dom.className = "tableWrapper";
36646
37415
  this.table = this.dom.appendChild(document.createElement("table"));
37416
+ this.table.style.setProperty(
37417
+ "--default-cell-min-width",
37418
+ `${defaultCellMinWidth}px`
37419
+ );
36647
37420
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
36648
- updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37421
+ updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36649
37422
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
36650
37423
  }
36651
37424
  update(node) {
36652
37425
  if (node.type != this.node.type)
36653
37426
  return false;
36654
37427
  this.node = node;
36655
- updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37428
+ updateColumnsOnResize(
37429
+ node,
37430
+ this.colgroup,
37431
+ this.table,
37432
+ this.defaultCellMinWidth
37433
+ );
36656
37434
  return true;
36657
37435
  }
36658
37436
  ignoreMutation(record) {
36659
37437
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
36660
37438
  }
36661
37439
  };
36662
- function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37440
+ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36663
37441
  var _a2;
36664
37442
  let totalWidth = 0;
36665
37443
  let fixedWidth = true;
@@ -36672,14 +37450,17 @@ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol,
36672
37450
  for (let j2 = 0; j2 < colspan; j2++, col++) {
36673
37451
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
36674
37452
  const cssWidth = hasWidth ? hasWidth + "px" : "";
36675
- totalWidth += hasWidth || cellMinWidth;
37453
+ totalWidth += hasWidth || defaultCellMinWidth;
36676
37454
  if (!hasWidth)
36677
37455
  fixedWidth = false;
36678
37456
  if (!nextDOM) {
36679
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37457
+ const col2 = document.createElement("col");
37458
+ col2.style.width = cssWidth;
37459
+ colgroup.appendChild(col2);
36680
37460
  } else {
36681
- if (nextDOM.style.width != cssWidth)
37461
+ if (nextDOM.style.width != cssWidth) {
36682
37462
  nextDOM.style.width = cssWidth;
37463
+ }
36683
37464
  nextDOM = nextDOM.nextSibling;
36684
37465
  }
36685
37466
  }
@@ -36703,6 +37484,7 @@ var columnResizingPluginKey = new PluginKey(
36703
37484
  function columnResizing({
36704
37485
  handleWidth = 5,
36705
37486
  cellMinWidth = 25,
37487
+ defaultCellMinWidth = 100,
36706
37488
  View = TableView$1,
36707
37489
  lastColumnResizable = true
36708
37490
  } = {}) {
@@ -36715,7 +37497,7 @@ function columnResizing({
36715
37497
  const tableName = tableNodeTypes(state2.schema).table.name;
36716
37498
  if (View && nodeViews) {
36717
37499
  nodeViews[tableName] = (node, view) => {
36718
- return new View(node, cellMinWidth, view);
37500
+ return new View(node, defaultCellMinWidth, view);
36719
37501
  };
36720
37502
  }
36721
37503
  return new ResizeState(-1, false);
@@ -36731,19 +37513,13 @@ function columnResizing({
36731
37513
  },
36732
37514
  handleDOMEvents: {
36733
37515
  mousemove: (view, event) => {
36734
- handleMouseMove(
36735
- view,
36736
- event,
36737
- handleWidth,
36738
- cellMinWidth,
36739
- lastColumnResizable
36740
- );
37516
+ handleMouseMove(view, event, handleWidth, lastColumnResizable);
36741
37517
  },
36742
37518
  mouseleave: (view) => {
36743
37519
  handleMouseLeave(view);
36744
37520
  },
36745
37521
  mousedown: (view, event) => {
36746
- handleMouseDown2(view, event, cellMinWidth);
37522
+ handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36747
37523
  }
36748
37524
  },
36749
37525
  decorations: (state2) => {
@@ -36779,7 +37555,7 @@ var ResizeState = class _ResizeState {
36779
37555
  return state2;
36780
37556
  }
36781
37557
  };
36782
- function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37558
+ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36783
37559
  const pluginState = columnResizingPluginKey.getState(view.state);
36784
37560
  if (!pluginState)
36785
37561
  return;
@@ -36800,722 +37576,198 @@ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResiz
36800
37576
  const map4 = TableMap.get(table);
36801
37577
  const tableStart = $cell.start(-1);
36802
37578
  const col = map4.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1;
36803
- if (col == map4.width - 1) {
36804
- return;
36805
- }
36806
- }
36807
- updateHandle(view, cell);
36808
- }
36809
- }
36810
- }
36811
- function handleMouseLeave(view) {
36812
- const pluginState = columnResizingPluginKey.getState(view.state);
36813
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36814
- updateHandle(view, -1);
36815
- }
36816
- function handleMouseDown2(view, event, cellMinWidth) {
36817
- var _a2;
36818
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36819
- const pluginState = columnResizingPluginKey.getState(view.state);
36820
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36821
- return false;
36822
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36823
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36824
- view.dispatch(
36825
- view.state.tr.setMeta(columnResizingPluginKey, {
36826
- setDragging: { startX: event.clientX, startWidth: width }
36827
- })
36828
- );
36829
- function finish(event2) {
36830
- win.removeEventListener("mouseup", finish);
36831
- win.removeEventListener("mousemove", move);
36832
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36833
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36834
- updateColumnWidth(
36835
- view,
36836
- pluginState2.activeHandle,
36837
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36838
- );
36839
- view.dispatch(
36840
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36841
- );
36842
- }
36843
- }
36844
- function move(event2) {
36845
- if (!event2.which)
36846
- return finish(event2);
36847
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36848
- if (!pluginState2)
36849
- return;
36850
- if (pluginState2.dragging) {
36851
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36852
- displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36853
- }
36854
- }
36855
- win.addEventListener("mouseup", finish);
36856
- win.addEventListener("mousemove", move);
36857
- event.preventDefault();
36858
- return true;
36859
- }
36860
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
36861
- const width = colwidth && colwidth[colwidth.length - 1];
36862
- if (width)
36863
- return width;
36864
- const dom = view.domAtPos(cellPos);
36865
- const node = dom.node.childNodes[dom.offset];
36866
- let domWidth = node.offsetWidth, parts = colspan;
36867
- if (colwidth) {
36868
- for (let i2 = 0; i2 < colspan; i2++)
36869
- if (colwidth[i2]) {
36870
- domWidth -= colwidth[i2];
36871
- parts--;
36872
- }
36873
- }
36874
- return domWidth / parts;
36875
- }
36876
- function domCellAround(target) {
36877
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
36878
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36879
- return target;
36880
- }
36881
- function edgeCell(view, event, side, handleWidth) {
36882
- const offset2 = side == "right" ? -handleWidth : handleWidth;
36883
- const found2 = view.posAtCoords({
36884
- left: event.clientX + offset2,
36885
- top: event.clientY
36886
- });
36887
- if (!found2)
36888
- return -1;
36889
- const { pos } = found2;
36890
- const $cell = cellAround(view.state.doc.resolve(pos));
36891
- if (!$cell)
36892
- return -1;
36893
- if (side == "right")
36894
- return $cell.pos;
36895
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36896
- const index2 = map4.map.indexOf($cell.pos - start2);
36897
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36898
- }
36899
- function draggedWidth(dragging, event, cellMinWidth) {
36900
- const offset2 = event.clientX - dragging.startX;
36901
- return Math.max(cellMinWidth, dragging.startWidth + offset2);
36902
- }
36903
- function updateHandle(view, value) {
36904
- view.dispatch(
36905
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36906
- );
36907
- }
36908
- function updateColumnWidth(view, cell, width) {
36909
- const $cell = view.state.doc.resolve(cell);
36910
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36911
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36912
- const tr2 = view.state.tr;
36913
- for (let row = 0; row < map4.height; row++) {
36914
- const mapIndex = row * map4.width + col;
36915
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36916
- continue;
36917
- const pos = map4.map[mapIndex];
36918
- const attrs = table.nodeAt(pos).attrs;
36919
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36920
- if (attrs.colwidth && attrs.colwidth[index2] == width)
36921
- continue;
36922
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36923
- colwidth[index2] = width;
36924
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36925
- }
36926
- if (tr2.docChanged)
36927
- view.dispatch(tr2);
36928
- }
36929
- function displayColumnWidth(view, cell, width, cellMinWidth) {
36930
- const $cell = view.state.doc.resolve(cell);
36931
- const table = $cell.node(-1), start2 = $cell.start(-1);
36932
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36933
- let dom = view.domAtPos($cell.start(-1)).node;
36934
- while (dom && dom.nodeName != "TABLE") {
36935
- dom = dom.parentNode;
36936
- }
36937
- if (!dom)
36938
- return;
36939
- updateColumnsOnResize(
36940
- table,
36941
- dom.firstChild,
36942
- dom,
36943
- cellMinWidth,
36944
- col,
36945
- width
36946
- );
36947
- }
36948
- function zeroes(n2) {
36949
- return Array(n2).fill(0);
36950
- }
36951
- function handleDecorations(state2, cell) {
36952
- const decorations = [];
36953
- const $cell = state2.doc.resolve(cell);
36954
- const table = $cell.node(-1);
36955
- if (!table) {
36956
- return DecorationSet.empty;
36957
- }
36958
- const map4 = TableMap.get(table);
36959
- const start2 = $cell.start(-1);
36960
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36961
- for (let row = 0; row < map4.height; row++) {
36962
- const index2 = col + row * map4.width;
36963
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36964
- const cellPos = map4.map[index2];
36965
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36966
- const dom = document.createElement("div");
36967
- dom.className = "column-resize-handle";
36968
- decorations.push(Decoration.widget(pos, dom));
36969
- }
36970
- }
36971
- return DecorationSet.create(state2.doc, decorations);
36972
- }
36973
- function selectedRect(state2) {
36974
- const sel = state2.selection;
36975
- const $pos = selectionCell(state2);
36976
- const table = $pos.node(-1);
36977
- const tableStart = $pos.start(-1);
36978
- const map4 = TableMap.get(table);
36979
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36980
- sel.$anchorCell.pos - tableStart,
36981
- sel.$headCell.pos - tableStart
36982
- ) : map4.findCell($pos.pos - tableStart);
36983
- return { ...rect, tableStart, map: map4, table };
36984
- }
36985
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36986
- let refColumn = col > 0 ? -1 : 0;
36987
- if (columnIsHeader(map4, table, col + refColumn)) {
36988
- refColumn = col == 0 || col == map4.width ? null : 0;
36989
- }
36990
- for (let row = 0; row < map4.height; row++) {
36991
- const index2 = row * map4.width + col;
36992
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36993
- const pos = map4.map[index2];
36994
- const cell = table.nodeAt(pos);
36995
- tr2.setNodeMarkup(
36996
- tr2.mapping.map(tableStart + pos),
36997
- null,
36998
- addColSpan(cell.attrs, col - map4.colCount(pos))
36999
- );
37000
- row += cell.attrs.rowspan - 1;
37001
- } else {
37002
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
37003
- const pos = map4.positionAt(row, col, table);
37004
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
37005
- }
37006
- }
37007
- return tr2;
37008
- }
37009
- function addColumnBefore(state2, dispatch) {
37010
- if (!isInTable(state2))
37011
- return false;
37012
- if (dispatch) {
37013
- const rect = selectedRect(state2);
37014
- dispatch(addColumn(state2.tr, rect, rect.left));
37015
- }
37016
- return true;
37017
- }
37018
- function addColumnAfter(state2, dispatch) {
37019
- if (!isInTable(state2))
37020
- return false;
37021
- if (dispatch) {
37022
- const rect = selectedRect(state2);
37023
- dispatch(addColumn(state2.tr, rect, rect.right));
37024
- }
37025
- return true;
37026
- }
37027
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
37028
- const mapStart = tr2.mapping.maps.length;
37029
- for (let row = 0; row < map4.height; ) {
37030
- const index2 = row * map4.width + col;
37031
- const pos = map4.map[index2];
37032
- const cell = table.nodeAt(pos);
37033
- const attrs = cell.attrs;
37034
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
37035
- tr2.setNodeMarkup(
37036
- tr2.mapping.slice(mapStart).map(tableStart + pos),
37037
- null,
37038
- removeColSpan(attrs, col - map4.colCount(pos))
37039
- );
37040
- } else {
37041
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
37042
- tr2.delete(start2, start2 + cell.nodeSize);
37043
- }
37044
- row += attrs.rowspan;
37045
- }
37046
- }
37047
- function deleteColumn(state2, dispatch) {
37048
- if (!isInTable(state2))
37049
- return false;
37050
- if (dispatch) {
37051
- const rect = selectedRect(state2);
37052
- const tr2 = state2.tr;
37053
- if (rect.left == 0 && rect.right == rect.map.width)
37054
- return false;
37055
- for (let i2 = rect.right - 1; ; i2--) {
37056
- removeColumn(tr2, rect, i2);
37057
- if (i2 == rect.left)
37058
- break;
37059
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37060
- if (!table) {
37061
- throw RangeError("No table found");
37062
- }
37063
- rect.table = table;
37064
- rect.map = TableMap.get(table);
37065
- }
37066
- dispatch(tr2);
37067
- }
37068
- return true;
37069
- }
37070
- function rowIsHeader(map4, table, row) {
37071
- var _a2;
37072
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
37073
- for (let col = 0; col < map4.width; col++)
37074
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37075
- return false;
37076
- return true;
37077
- }
37078
- function addRow(tr2, { map: map4, tableStart, table }, row) {
37079
- var _a2;
37080
- let rowPos = tableStart;
37081
- for (let i2 = 0; i2 < row; i2++)
37082
- rowPos += table.child(i2).nodeSize;
37083
- const cells = [];
37084
- let refRow = row > 0 ? -1 : 0;
37085
- if (rowIsHeader(map4, table, row + refRow))
37086
- refRow = row == 0 || row == map4.height ? null : 0;
37087
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37088
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37089
- const pos = map4.map[index2];
37090
- const attrs = table.nodeAt(pos).attrs;
37091
- tr2.setNodeMarkup(tableStart + pos, null, {
37092
- ...attrs,
37093
- rowspan: attrs.rowspan + 1
37094
- });
37095
- col += attrs.colspan - 1;
37096
- } else {
37097
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37098
- const node = type3 == null ? void 0 : type3.createAndFill();
37099
- if (node)
37100
- cells.push(node);
37101
- }
37102
- }
37103
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37104
- return tr2;
37105
- }
37106
- function addRowBefore(state2, dispatch) {
37107
- if (!isInTable(state2))
37108
- return false;
37109
- if (dispatch) {
37110
- const rect = selectedRect(state2);
37111
- dispatch(addRow(state2.tr, rect, rect.top));
37112
- }
37113
- return true;
37114
- }
37115
- function addRowAfter(state2, dispatch) {
37116
- if (!isInTable(state2))
37117
- return false;
37118
- if (dispatch) {
37119
- const rect = selectedRect(state2);
37120
- dispatch(addRow(state2.tr, rect, rect.bottom));
37121
- }
37122
- return true;
37123
- }
37124
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
37125
- let rowPos = 0;
37126
- for (let i2 = 0; i2 < row; i2++)
37127
- rowPos += table.child(i2).nodeSize;
37128
- const nextRow = rowPos + table.child(row).nodeSize;
37129
- const mapFrom = tr2.mapping.maps.length;
37130
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
37131
- const seen = /* @__PURE__ */ new Set();
37132
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37133
- const pos = map4.map[index2];
37134
- if (seen.has(pos))
37135
- continue;
37136
- seen.add(pos);
37137
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
37138
- const attrs = table.nodeAt(pos).attrs;
37139
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37140
- ...attrs,
37141
- rowspan: attrs.rowspan - 1
37142
- });
37143
- col += attrs.colspan - 1;
37144
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37145
- const cell = table.nodeAt(pos);
37146
- const attrs = cell.attrs;
37147
- const copy2 = cell.type.create(
37148
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37149
- cell.content
37150
- );
37151
- const newPos = map4.positionAt(row + 1, col, table);
37152
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37153
- col += attrs.colspan - 1;
37154
- }
37155
- }
37156
- }
37157
- function deleteRow(state2, dispatch) {
37158
- if (!isInTable(state2))
37159
- return false;
37160
- if (dispatch) {
37161
- const rect = selectedRect(state2), tr2 = state2.tr;
37162
- if (rect.top == 0 && rect.bottom == rect.map.height)
37163
- return false;
37164
- for (let i2 = rect.bottom - 1; ; i2--) {
37165
- removeRow(tr2, rect, i2);
37166
- if (i2 == rect.top)
37167
- break;
37168
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37169
- if (!table) {
37170
- throw RangeError("No table found");
37171
- }
37172
- rect.table = table;
37173
- rect.map = TableMap.get(rect.table);
37174
- }
37175
- dispatch(tr2);
37176
- }
37177
- return true;
37178
- }
37179
- function isEmpty(cell) {
37180
- const c2 = cell.content;
37181
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37182
- }
37183
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37184
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37185
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37186
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37187
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37188
- return true;
37189
- indexLeft += width;
37190
- indexRight += width;
37191
- }
37192
- for (let i2 = rect.left; i2 < rect.right; i2++) {
37193
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37194
- return true;
37195
- indexTop++;
37196
- indexBottom++;
37197
- }
37198
- return false;
37199
- }
37200
- function mergeCells(state2, dispatch) {
37201
- const sel = state2.selection;
37202
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37203
- return false;
37204
- const rect = selectedRect(state2), { map: map4 } = rect;
37205
- if (cellsOverlapRectangle(map4, rect))
37206
- return false;
37207
- if (dispatch) {
37208
- const tr2 = state2.tr;
37209
- const seen = {};
37210
- let content = Fragment.empty;
37211
- let mergedPos;
37212
- let mergedCell;
37213
- for (let row = rect.top; row < rect.bottom; row++) {
37214
- for (let col = rect.left; col < rect.right; col++) {
37215
- const cellPos = map4.map[row * map4.width + col];
37216
- const cell = rect.table.nodeAt(cellPos);
37217
- if (seen[cellPos] || !cell)
37218
- continue;
37219
- seen[cellPos] = true;
37220
- if (mergedPos == null) {
37221
- mergedPos = cellPos;
37222
- mergedCell = cell;
37223
- } else {
37224
- if (!isEmpty(cell))
37225
- content = content.append(cell.content);
37226
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37227
- tr2.delete(mapped, mapped + cell.nodeSize);
37228
- }
37229
- }
37230
- }
37231
- if (mergedPos == null || mergedCell == null) {
37232
- return true;
37233
- }
37234
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37235
- ...addColSpan(
37236
- mergedCell.attrs,
37237
- mergedCell.attrs.colspan,
37238
- rect.right - rect.left - mergedCell.attrs.colspan
37239
- ),
37240
- rowspan: rect.bottom - rect.top
37241
- });
37242
- if (content.size) {
37243
- const end2 = mergedPos + 1 + mergedCell.content.size;
37244
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37245
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37246
- }
37247
- tr2.setSelection(
37248
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37249
- );
37250
- dispatch(tr2);
37251
- }
37252
- return true;
37253
- }
37254
- function splitCell(state2, dispatch) {
37255
- const nodeTypes = tableNodeTypes(state2.schema);
37256
- return splitCellWithType(({ node }) => {
37257
- return nodeTypes[node.type.spec.tableRole];
37258
- })(state2, dispatch);
37259
- }
37260
- function splitCellWithType(getCellType) {
37261
- return (state2, dispatch) => {
37262
- var _a2;
37263
- const sel = state2.selection;
37264
- let cellNode;
37265
- let cellPos;
37266
- if (!(sel instanceof CellSelection)) {
37267
- cellNode = cellWrapping(sel.$from);
37268
- if (!cellNode)
37269
- return false;
37270
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37271
- } else {
37272
- if (sel.$anchorCell.pos != sel.$headCell.pos)
37273
- return false;
37274
- cellNode = sel.$anchorCell.nodeAfter;
37275
- cellPos = sel.$anchorCell.pos;
37276
- }
37277
- if (cellNode == null || cellPos == null) {
37278
- return false;
37279
- }
37280
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37281
- return false;
37282
- }
37283
- if (dispatch) {
37284
- let baseAttrs = cellNode.attrs;
37285
- const attrs = [];
37286
- const colwidth = baseAttrs.colwidth;
37287
- if (baseAttrs.rowspan > 1)
37288
- baseAttrs = { ...baseAttrs, rowspan: 1 };
37289
- if (baseAttrs.colspan > 1)
37290
- baseAttrs = { ...baseAttrs, colspan: 1 };
37291
- const rect = selectedRect(state2), tr2 = state2.tr;
37292
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37293
- attrs.push(
37294
- colwidth ? {
37295
- ...baseAttrs,
37296
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37297
- } : baseAttrs
37298
- );
37299
- let lastCell;
37300
- for (let row = rect.top; row < rect.bottom; row++) {
37301
- let pos = rect.map.positionAt(row, rect.left, rect.table);
37302
- if (row == rect.top)
37303
- pos += cellNode.nodeSize;
37304
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37305
- if (col == rect.left && row == rect.top)
37306
- continue;
37307
- tr2.insert(
37308
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37309
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37310
- );
37579
+ if (col == map4.width - 1) {
37580
+ return;
37311
37581
  }
37312
37582
  }
37313
- tr2.setNodeMarkup(
37314
- cellPos,
37315
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37316
- attrs[0]
37317
- );
37318
- if (sel instanceof CellSelection)
37319
- tr2.setSelection(
37320
- new CellSelection(
37321
- tr2.doc.resolve(sel.$anchorCell.pos),
37322
- lastCell ? tr2.doc.resolve(lastCell) : void 0
37323
- )
37324
- );
37325
- dispatch(tr2);
37583
+ updateHandle(view, cell);
37326
37584
  }
37327
- return true;
37328
- };
37585
+ }
37329
37586
  }
37330
- function setCellAttr(name, value) {
37331
- return function(state2, dispatch) {
37332
- if (!isInTable(state2))
37333
- return false;
37334
- const $cell = selectionCell(state2);
37335
- if ($cell.nodeAfter.attrs[name] === value)
37336
- return false;
37337
- if (dispatch) {
37338
- const tr2 = state2.tr;
37339
- if (state2.selection instanceof CellSelection)
37340
- state2.selection.forEachCell((node, pos) => {
37341
- if (node.attrs[name] !== value)
37342
- tr2.setNodeMarkup(pos, null, {
37343
- ...node.attrs,
37344
- [name]: value
37345
- });
37346
- });
37347
- else
37348
- tr2.setNodeMarkup($cell.pos, null, {
37349
- ...$cell.nodeAfter.attrs,
37350
- [name]: value
37351
- });
37352
- dispatch(tr2);
37353
- }
37354
- return true;
37355
- };
37587
+ function handleMouseLeave(view) {
37588
+ const pluginState = columnResizingPluginKey.getState(view.state);
37589
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37590
+ updateHandle(view, -1);
37356
37591
  }
37357
- function deprecated_toggleHeader(type3) {
37358
- return function(state2, dispatch) {
37359
- if (!isInTable(state2))
37360
- return false;
37361
- if (dispatch) {
37362
- const types = tableNodeTypes(state2.schema);
37363
- const rect = selectedRect(state2), tr2 = state2.tr;
37364
- const cells = rect.map.cellsInRect(
37365
- type3 == "column" ? {
37366
- left: rect.left,
37367
- top: 0,
37368
- right: rect.right,
37369
- bottom: rect.map.height
37370
- } : type3 == "row" ? {
37371
- left: 0,
37372
- top: rect.top,
37373
- right: rect.map.width,
37374
- bottom: rect.bottom
37375
- } : rect
37592
+ function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37593
+ var _a2;
37594
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37595
+ const pluginState = columnResizingPluginKey.getState(view.state);
37596
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37597
+ return false;
37598
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37599
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37600
+ view.dispatch(
37601
+ view.state.tr.setMeta(columnResizingPluginKey, {
37602
+ setDragging: { startX: event.clientX, startWidth: width }
37603
+ })
37604
+ );
37605
+ function finish(event2) {
37606
+ win.removeEventListener("mouseup", finish);
37607
+ win.removeEventListener("mousemove", move);
37608
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37609
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37610
+ updateColumnWidth(
37611
+ view,
37612
+ pluginState2.activeHandle,
37613
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37614
+ );
37615
+ view.dispatch(
37616
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37376
37617
  );
37377
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37378
- for (let i2 = 0; i2 < cells.length; i2++)
37379
- if (nodes[i2].type == types.header_cell)
37380
- tr2.setNodeMarkup(
37381
- rect.tableStart + cells[i2],
37382
- types.cell,
37383
- nodes[i2].attrs
37384
- );
37385
- if (tr2.steps.length == 0)
37386
- for (let i2 = 0; i2 < cells.length; i2++)
37387
- tr2.setNodeMarkup(
37388
- rect.tableStart + cells[i2],
37389
- types.header_cell,
37390
- nodes[i2].attrs
37391
- );
37392
- dispatch(tr2);
37393
- }
37394
- return true;
37395
- };
37396
- }
37397
- function isHeaderEnabledByType(type3, rect, types) {
37398
- const cellPositions = rect.map.cellsInRect({
37399
- left: 0,
37400
- top: 0,
37401
- right: type3 == "row" ? rect.map.width : 1,
37402
- bottom: type3 == "column" ? rect.map.height : 1
37403
- });
37404
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
37405
- const cell = rect.table.nodeAt(cellPositions[i2]);
37406
- if (cell && cell.type !== types.header_cell) {
37407
- return false;
37408
37618
  }
37409
37619
  }
37410
- return true;
37411
- }
37412
- function toggleHeader(type3, options) {
37413
- options = options || { useDeprecatedLogic: false };
37414
- if (options.useDeprecatedLogic)
37415
- return deprecated_toggleHeader(type3);
37416
- return function(state2, dispatch) {
37417
- if (!isInTable(state2))
37418
- return false;
37419
- if (dispatch) {
37420
- const types = tableNodeTypes(state2.schema);
37421
- const rect = selectedRect(state2), tr2 = state2.tr;
37422
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37423
- const isHeaderColumnEnabled = isHeaderEnabledByType(
37424
- "column",
37425
- rect,
37426
- types
37620
+ function move(event2) {
37621
+ if (!event2.which)
37622
+ return finish(event2);
37623
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37624
+ if (!pluginState2)
37625
+ return;
37626
+ if (pluginState2.dragging) {
37627
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37628
+ displayColumnWidth(
37629
+ view,
37630
+ pluginState2.activeHandle,
37631
+ dragged,
37632
+ defaultCellMinWidth
37427
37633
  );
37428
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37429
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37430
- const cellsRect = type3 == "column" ? {
37431
- left: 0,
37432
- top: selectionStartsAt,
37433
- right: 1,
37434
- bottom: rect.map.height
37435
- } : type3 == "row" ? {
37436
- left: selectionStartsAt,
37437
- top: 0,
37438
- right: rect.map.width,
37439
- bottom: 1
37440
- } : rect;
37441
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37442
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37443
- const cellPos = relativeCellPos + rect.tableStart;
37444
- const cell = tr2.doc.nodeAt(cellPos);
37445
- if (cell) {
37446
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37447
- }
37448
- });
37449
- dispatch(tr2);
37450
37634
  }
37451
- return true;
37452
- };
37635
+ }
37636
+ displayColumnWidth(
37637
+ view,
37638
+ pluginState.activeHandle,
37639
+ width,
37640
+ defaultCellMinWidth
37641
+ );
37642
+ win.addEventListener("mouseup", finish);
37643
+ win.addEventListener("mousemove", move);
37644
+ event.preventDefault();
37645
+ return true;
37453
37646
  }
37454
- toggleHeader("row", {
37455
- useDeprecatedLogic: true
37456
- });
37457
- toggleHeader("column", {
37458
- useDeprecatedLogic: true
37459
- });
37460
- var toggleHeaderCell = toggleHeader("cell", {
37461
- useDeprecatedLogic: true
37462
- });
37463
- function findNextCell($cell, dir) {
37464
- if (dir < 0) {
37465
- const before = $cell.nodeBefore;
37466
- if (before)
37467
- return $cell.pos - before.nodeSize;
37468
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37469
- const rowNode = $cell.node(-1).child(row);
37470
- const lastChild2 = rowNode.lastChild;
37471
- if (lastChild2) {
37472
- return rowEnd - 1 - lastChild2.nodeSize;
37647
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
37648
+ const width = colwidth && colwidth[colwidth.length - 1];
37649
+ if (width)
37650
+ return width;
37651
+ const dom = view.domAtPos(cellPos);
37652
+ const node = dom.node.childNodes[dom.offset];
37653
+ let domWidth = node.offsetWidth, parts = colspan;
37654
+ if (colwidth) {
37655
+ for (let i2 = 0; i2 < colspan; i2++)
37656
+ if (colwidth[i2]) {
37657
+ domWidth -= colwidth[i2];
37658
+ parts--;
37473
37659
  }
37474
- rowEnd -= rowNode.nodeSize;
37475
- }
37476
- } else {
37477
- if ($cell.index() < $cell.parent.childCount - 1) {
37478
- return $cell.pos + $cell.nodeAfter.nodeSize;
37479
- }
37480
- const table = $cell.node(-1);
37481
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37482
- const rowNode = table.child(row);
37483
- if (rowNode.childCount)
37484
- return rowStart + 1;
37485
- rowStart += rowNode.nodeSize;
37486
- }
37487
37660
  }
37488
- return null;
37661
+ return domWidth / parts;
37489
37662
  }
37490
- function goToNextCell(direction) {
37491
- return function(state2, dispatch) {
37492
- if (!isInTable(state2))
37493
- return false;
37494
- const cell = findNextCell(selectionCell(state2), direction);
37495
- if (cell == null)
37496
- return false;
37497
- if (dispatch) {
37498
- const $cell = state2.doc.resolve(cell);
37499
- dispatch(
37500
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37501
- );
37502
- }
37503
- return true;
37504
- };
37663
+ function domCellAround(target) {
37664
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
37665
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37666
+ return target;
37505
37667
  }
37506
- function deleteTable(state2, dispatch) {
37507
- const $pos = state2.selection.$anchor;
37508
- for (let d2 = $pos.depth; d2 > 0; d2--) {
37509
- const node = $pos.node(d2);
37510
- if (node.type.spec.tableRole == "table") {
37511
- if (dispatch)
37512
- dispatch(
37513
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37668
+ function edgeCell(view, event, side, handleWidth) {
37669
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
37670
+ const found2 = view.posAtCoords({
37671
+ left: event.clientX + offset2,
37672
+ top: event.clientY
37673
+ });
37674
+ if (!found2)
37675
+ return -1;
37676
+ const { pos } = found2;
37677
+ const $cell = cellAround(view.state.doc.resolve(pos));
37678
+ if (!$cell)
37679
+ return -1;
37680
+ if (side == "right")
37681
+ return $cell.pos;
37682
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37683
+ const index2 = map4.map.indexOf($cell.pos - start2);
37684
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37685
+ }
37686
+ function draggedWidth(dragging, event, resizeMinWidth) {
37687
+ const offset2 = event.clientX - dragging.startX;
37688
+ return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37689
+ }
37690
+ function updateHandle(view, value) {
37691
+ view.dispatch(
37692
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37693
+ );
37694
+ }
37695
+ function updateColumnWidth(view, cell, width) {
37696
+ const $cell = view.state.doc.resolve(cell);
37697
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37698
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37699
+ const tr2 = view.state.tr;
37700
+ for (let row = 0; row < map4.height; row++) {
37701
+ const mapIndex = row * map4.width + col;
37702
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37703
+ continue;
37704
+ const pos = map4.map[mapIndex];
37705
+ const attrs = table.nodeAt(pos).attrs;
37706
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37707
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
37708
+ continue;
37709
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37710
+ colwidth[index2] = width;
37711
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37712
+ }
37713
+ if (tr2.docChanged)
37714
+ view.dispatch(tr2);
37715
+ }
37716
+ function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37717
+ const $cell = view.state.doc.resolve(cell);
37718
+ const table = $cell.node(-1), start2 = $cell.start(-1);
37719
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37720
+ let dom = view.domAtPos($cell.start(-1)).node;
37721
+ while (dom && dom.nodeName != "TABLE") {
37722
+ dom = dom.parentNode;
37723
+ }
37724
+ if (!dom)
37725
+ return;
37726
+ updateColumnsOnResize(
37727
+ table,
37728
+ dom.firstChild,
37729
+ dom,
37730
+ defaultCellMinWidth,
37731
+ col,
37732
+ width
37733
+ );
37734
+ }
37735
+ function zeroes(n2) {
37736
+ return Array(n2).fill(0);
37737
+ }
37738
+ function handleDecorations(state2, cell) {
37739
+ var _a2;
37740
+ const decorations = [];
37741
+ const $cell = state2.doc.resolve(cell);
37742
+ const table = $cell.node(-1);
37743
+ if (!table) {
37744
+ return DecorationSet.empty;
37745
+ }
37746
+ const map4 = TableMap.get(table);
37747
+ const start2 = $cell.start(-1);
37748
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37749
+ for (let row = 0; row < map4.height; row++) {
37750
+ const index2 = col + row * map4.width;
37751
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37752
+ const cellPos = map4.map[index2];
37753
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37754
+ const dom = document.createElement("div");
37755
+ dom.className = "column-resize-handle";
37756
+ if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37757
+ decorations.push(
37758
+ Decoration.node(
37759
+ start2 + cellPos,
37760
+ start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37761
+ {
37762
+ class: "column-resize-dragging"
37763
+ }
37764
+ )
37514
37765
  );
37515
- return true;
37766
+ }
37767
+ decorations.push(Decoration.widget(pos, dom));
37516
37768
  }
37517
37769
  }
37518
- return false;
37770
+ return DecorationSet.create(state2.doc, decorations);
37519
37771
  }
37520
37772
  function tableEditing({
37521
37773
  allowTableNodeSelection = false
@@ -37560,33 +37812,46 @@ function tableEditing({
37560
37812
  }
37561
37813
  });
37562
37814
  }
37815
+ function getColStyleDeclaration(minWidth, width) {
37816
+ if (width) {
37817
+ return ["width", `${Math.max(width, minWidth)}px`];
37818
+ }
37819
+ return ["min-width", `${minWidth}px`];
37820
+ }
37563
37821
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37822
+ var _a2;
37564
37823
  let totalWidth = 0;
37565
37824
  let fixedWidth = true;
37566
37825
  let nextDOM = colgroup.firstChild;
37567
37826
  const row = node.firstChild;
37568
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37569
- const { colspan, colwidth } = row.child(i2).attrs;
37570
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37571
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37572
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37573
- totalWidth += hasWidth || cellMinWidth;
37574
- if (!hasWidth) {
37575
- fixedWidth = false;
37576
- }
37577
- if (!nextDOM) {
37578
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37579
- } else {
37580
- if (nextDOM.style.width !== cssWidth) {
37581
- nextDOM.style.width = cssWidth;
37827
+ if (row !== null) {
37828
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37829
+ const { colspan, colwidth } = row.child(i2).attrs;
37830
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37831
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37832
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37833
+ totalWidth += hasWidth || cellMinWidth;
37834
+ if (!hasWidth) {
37835
+ fixedWidth = false;
37836
+ }
37837
+ if (!nextDOM) {
37838
+ const colElement = document.createElement("col");
37839
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37840
+ colElement.style.setProperty(propertyKey, propertyValue);
37841
+ colgroup.appendChild(colElement);
37842
+ } else {
37843
+ if (nextDOM.style.width !== cssWidth) {
37844
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37845
+ nextDOM.style.setProperty(propertyKey, propertyValue);
37846
+ }
37847
+ nextDOM = nextDOM.nextSibling;
37582
37848
  }
37583
- nextDOM = nextDOM.nextSibling;
37584
37849
  }
37585
37850
  }
37586
37851
  }
37587
37852
  while (nextDOM) {
37588
37853
  const after = nextDOM.nextSibling;
37589
- nextDOM.parentNode.removeChild(nextDOM);
37854
+ (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37590
37855
  nextDOM = after;
37591
37856
  }
37592
37857
  if (fixedWidth) {
@@ -37632,12 +37897,15 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37632
37897
  const { colspan, colwidth } = row.child(i2).attrs;
37633
37898
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37634
37899
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37635
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37636
37900
  totalWidth += hasWidth || cellMinWidth;
37637
37901
  if (!hasWidth) {
37638
37902
  fixedWidth = false;
37639
37903
  }
37640
- cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37904
+ const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37905
+ cols.push([
37906
+ "col",
37907
+ { style: `${property}: ${value}` }
37908
+ ]);
37641
37909
  }
37642
37910
  }
37643
37911
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -37846,6 +38114,7 @@ const Table = Node$1.create({
37846
38114
  columnResizing({
37847
38115
  handleWidth: this.options.handleWidth,
37848
38116
  cellMinWidth: this.options.cellMinWidth,
38117
+ defaultCellMinWidth: this.options.cellMinWidth,
37849
38118
  View: this.options.View,
37850
38119
  lastColumnResizable: this.options.lastColumnResizable
37851
38120
  })
@@ -37886,7 +38155,7 @@ const TableCell = Node$1.create({
37886
38155
  default: null,
37887
38156
  parseHTML: (element) => {
37888
38157
  const colwidth = element.getAttribute("colwidth");
37889
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38158
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37890
38159
  return value;
37891
38160
  }
37892
38161
  }
@@ -37923,7 +38192,7 @@ const TableHeader = Node$1.create({
37923
38192
  default: null,
37924
38193
  parseHTML: (element) => {
37925
38194
  const colwidth = element.getAttribute("colwidth");
37926
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38195
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37927
38196
  return value;
37928
38197
  }
37929
38198
  }
@@ -38240,6 +38509,10 @@ const Bold = Mark.create({
38240
38509
  tag: "b",
38241
38510
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38242
38511
  },
38512
+ {
38513
+ style: "font-weight=400",
38514
+ clearMark: (mark) => mark.type.name === this.name
38515
+ },
38243
38516
  {
38244
38517
  style: "font-weight",
38245
38518
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38293,73 +38566,8 @@ const Bold = Mark.create({
38293
38566
  ];
38294
38567
  }
38295
38568
  });
38296
- const ListItem$2 = Node$1.create({
38297
- name: "listItem",
38298
- addOptions() {
38299
- return {
38300
- HTMLAttributes: {},
38301
- bulletListTypeName: "bulletList",
38302
- orderedListTypeName: "orderedList"
38303
- };
38304
- },
38305
- content: "paragraph block*",
38306
- defining: true,
38307
- parseHTML() {
38308
- return [
38309
- {
38310
- tag: "li"
38311
- }
38312
- ];
38313
- },
38314
- renderHTML({ HTMLAttributes }) {
38315
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38316
- },
38317
- addKeyboardShortcuts() {
38318
- return {
38319
- Enter: () => this.editor.commands.splitListItem(this.name),
38320
- Tab: () => this.editor.commands.sinkListItem(this.name),
38321
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38322
- };
38323
- }
38324
- });
38325
- const TextStyle$1 = Mark.create({
38326
- name: "textStyle",
38327
- priority: 101,
38328
- addOptions() {
38329
- return {
38330
- HTMLAttributes: {}
38331
- };
38332
- },
38333
- parseHTML() {
38334
- return [
38335
- {
38336
- tag: "span",
38337
- getAttrs: (element) => {
38338
- const hasStyles = element.hasAttribute("style");
38339
- if (!hasStyles) {
38340
- return false;
38341
- }
38342
- return {};
38343
- }
38344
- }
38345
- ];
38346
- },
38347
- renderHTML({ HTMLAttributes }) {
38348
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38349
- },
38350
- addCommands() {
38351
- return {
38352
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38353
- const attributes = getMarkAttributes(state2, this.type);
38354
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38355
- if (hasStyles) {
38356
- return true;
38357
- }
38358
- return commands2.unsetMark(this.name);
38359
- }
38360
- };
38361
- }
38362
- });
38569
+ const ListItemName$1 = "listItem";
38570
+ const TextStyleName$1 = "textStyle";
38363
38571
  const inputRegex$3 = /^\s*([-+*])\s$/;
38364
38572
  const BulletList = Node$1.create({
38365
38573
  name: "bulletList",
@@ -38387,7 +38595,7 @@ const BulletList = Node$1.create({
38387
38595
  return {
38388
38596
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38389
38597
  if (this.options.keepAttributes) {
38390
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38598
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38391
38599
  }
38392
38600
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38393
38601
  }
@@ -38410,7 +38618,7 @@ const BulletList = Node$1.create({
38410
38618
  keepMarks: this.options.keepMarks,
38411
38619
  keepAttributes: this.options.keepAttributes,
38412
38620
  getAttributes: () => {
38413
- return this.editor.getAttributes(TextStyle$1.name);
38621
+ return this.editor.getAttributes(TextStyleName$1);
38414
38622
  },
38415
38623
  editor: this.editor
38416
38624
  });
@@ -38420,8 +38628,8 @@ const BulletList = Node$1.create({
38420
38628
  ];
38421
38629
  }
38422
38630
  });
38423
- const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38424
- const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38631
+ const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38632
+ const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38425
38633
  const Code = Mark.create({
38426
38634
  name: "code",
38427
38635
  addOptions() {
@@ -39048,6 +39256,7 @@ const HardBreak = Node$1.create({
39048
39256
  inline: true,
39049
39257
  group: "inline",
39050
39258
  selectable: false,
39259
+ linebreakReplacement: true,
39051
39260
  parseHTML() {
39052
39261
  return [
39053
39262
  { tag: "br" }
@@ -39809,6 +40018,10 @@ const Italic = Mark.create({
39809
40018
  tag: "i",
39810
40019
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39811
40020
  },
40021
+ {
40022
+ style: "font-style=normal",
40023
+ clearMark: (mark) => mark.type.name === this.name
40024
+ },
39812
40025
  {
39813
40026
  style: "font-style=italic"
39814
40027
  }
@@ -39861,35 +40074,6 @@ const Italic = Mark.create({
39861
40074
  ];
39862
40075
  }
39863
40076
  });
39864
- const ListItem$1 = Node$1.create({
39865
- name: "listItem",
39866
- addOptions() {
39867
- return {
39868
- HTMLAttributes: {},
39869
- bulletListTypeName: "bulletList",
39870
- orderedListTypeName: "orderedList"
39871
- };
39872
- },
39873
- content: "paragraph block*",
39874
- defining: true,
39875
- parseHTML() {
39876
- return [
39877
- {
39878
- tag: "li"
39879
- }
39880
- ];
39881
- },
39882
- renderHTML({ HTMLAttributes }) {
39883
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39884
- },
39885
- addKeyboardShortcuts() {
39886
- return {
39887
- Enter: () => this.editor.commands.splitListItem(this.name),
39888
- Tab: () => this.editor.commands.sinkListItem(this.name),
39889
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39890
- };
39891
- }
39892
- });
39893
40077
  const ListItem = Node$1.create({
39894
40078
  name: "listItem",
39895
40079
  addOptions() {
@@ -39919,44 +40103,8 @@ const ListItem = Node$1.create({
39919
40103
  };
39920
40104
  }
39921
40105
  });
39922
- const TextStyle = Mark.create({
39923
- name: "textStyle",
39924
- priority: 101,
39925
- addOptions() {
39926
- return {
39927
- HTMLAttributes: {}
39928
- };
39929
- },
39930
- parseHTML() {
39931
- return [
39932
- {
39933
- tag: "span",
39934
- getAttrs: (element) => {
39935
- const hasStyles = element.hasAttribute("style");
39936
- if (!hasStyles) {
39937
- return false;
39938
- }
39939
- return {};
39940
- }
39941
- }
39942
- ];
39943
- },
39944
- renderHTML({ HTMLAttributes }) {
39945
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39946
- },
39947
- addCommands() {
39948
- return {
39949
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39950
- const attributes = getMarkAttributes(state2, this.type);
39951
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39952
- if (hasStyles) {
39953
- return true;
39954
- }
39955
- return commands2.unsetMark(this.name);
39956
- }
39957
- };
39958
- }
39959
- });
40106
+ const ListItemName = "listItem";
40107
+ const TextStyleName = "textStyle";
39960
40108
  const inputRegex$1 = /^(\d+)\.\s$/;
39961
40109
  const OrderedList = Node$1.create({
39962
40110
  name: "orderedList",
@@ -40001,7 +40149,7 @@ const OrderedList = Node$1.create({
40001
40149
  return {
40002
40150
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40003
40151
  if (this.options.keepAttributes) {
40004
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40152
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
40005
40153
  }
40006
40154
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40007
40155
  }
@@ -40025,7 +40173,7 @@ const OrderedList = Node$1.create({
40025
40173
  type: this.type,
40026
40174
  keepMarks: this.options.keepMarks,
40027
40175
  keepAttributes: this.options.keepAttributes,
40028
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40176
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
40029
40177
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40030
40178
  editor: this.editor
40031
40179
  });
@@ -40180,7 +40328,7 @@ const StarterKit = Extension.create({
40180
40328
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40181
40329
  }
40182
40330
  if (this.options.listItem !== false) {
40183
- extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40331
+ extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40184
40332
  }
40185
40333
  if (this.options.orderedList !== false) {
40186
40334
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42855,6 +43003,9 @@ class BubbleMenuView {
42855
43003
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42856
43004
  return;
42857
43005
  }
43006
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43007
+ return;
43008
+ }
42858
43009
  this.hide();
42859
43010
  };
42860
43011
  this.tippyBlurHandler = (event) => {
@@ -42887,6 +43038,7 @@ class BubbleMenuView {
42887
43038
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42888
43039
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42889
43040
  editor: this.editor,
43041
+ element: this.element,
42890
43042
  view: view2,
42891
43043
  state: state2,
42892
43044
  oldState,
@@ -42901,12 +43053,14 @@ class BubbleMenuView {
42901
43053
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42902
43054
  if (isNodeSelection(state2.selection)) {
42903
43055
  let node = view2.nodeDOM(from2);
42904
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42905
- if (nodeViewWrapper) {
42906
- node = nodeViewWrapper.firstChild;
42907
- }
42908
43056
  if (node) {
42909
- return node.getBoundingClientRect();
43057
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
43058
+ if (nodeViewWrapper) {
43059
+ node = nodeViewWrapper.firstChild;
43060
+ }
43061
+ if (node) {
43062
+ return node.getBoundingClientRect();
43063
+ }
42910
43064
  }
42911
43065
  }
42912
43066
  return posToDOMRect(view2, from2, to2);
@@ -43041,6 +43195,9 @@ class FloatingMenuView {
43041
43195
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43042
43196
  return;
43043
43197
  }
43198
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43199
+ return;
43200
+ }
43044
43201
  this.hide();
43045
43202
  };
43046
43203
  this.tippyBlurHandler = (event) => {
@@ -43301,21 +43458,8 @@ const EditorContent = vue.defineComponent({
43301
43458
  if (!editor) {
43302
43459
  return;
43303
43460
  }
43304
- if (!editor.isDestroyed) {
43305
- editor.view.setProps({
43306
- nodeViews: {}
43307
- });
43308
- }
43309
43461
  editor.contentComponent = null;
43310
43462
  editor.appContext = null;
43311
- if (!editor.options.element.firstChild) {
43312
- return;
43313
- }
43314
- const newElement = document.createElement("div");
43315
- newElement.append(...editor.options.element.childNodes);
43316
- editor.setOptions({
43317
- element: newElement
43318
- });
43319
43463
  });
43320
43464
  return { rootEl: rootEl2 };
43321
43465
  },
@@ -44443,7 +44587,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44443
44587
  });
44444
44588
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44445
44589
  /*!
44446
- * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44590
+ * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44447
44591
  * (c) 2024 Szymon Nowak | Released under the MIT license
44448
44592
  */
44449
44593
  class Point {
@@ -44527,7 +44671,7 @@ class SignatureEventTarget {
44527
44671
  constructor() {
44528
44672
  try {
44529
44673
  this._et = new EventTarget();
44530
- } catch (error) {
44674
+ } catch (_a2) {
44531
44675
  this._et = document;
44532
44676
  }
44533
44677
  }
@@ -44641,13 +44785,16 @@ class SignaturePad extends SignatureEventTarget {
44641
44785
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44642
44786
  };
44643
44787
  this._handlePointerDown = (event) => {
44644
- if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44788
+ if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44645
44789
  return;
44646
44790
  }
44647
44791
  event.preventDefault();
44648
44792
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44649
44793
  };
44650
44794
  this._handlePointerMove = (event) => {
44795
+ if (!event.isPrimary) {
44796
+ return;
44797
+ }
44651
44798
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44652
44799
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44653
44800
  return;
@@ -44656,7 +44803,7 @@ class SignaturePad extends SignatureEventTarget {
44656
44803
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44657
44804
  };
44658
44805
  this._handlePointerUp = (event) => {
44659
- if (this._isLeftButtonPressed(event)) {
44806
+ if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44660
44807
  return;
44661
44808
  }
44662
44809
  event.preventDefault();
@@ -48434,6 +48581,11 @@ function buildURL(url, params, options) {
48434
48581
  return url;
48435
48582
  }
48436
48583
  const _encode = options && options.encode || encode;
48584
+ if (utils$1.isFunction(options)) {
48585
+ options = {
48586
+ serialize: options
48587
+ };
48588
+ }
48437
48589
  const serializeFn = options && options.serialize;
48438
48590
  let serializedParams;
48439
48591
  if (serializeFn) {
@@ -48620,7 +48772,7 @@ function stringifySafely(rawValue, parser, encoder) {
48620
48772
  }
48621
48773
  }
48622
48774
  }
48623
- return (encoder || JSON.stringify)(rawValue);
48775
+ return (0, JSON.stringify)(rawValue);
48624
48776
  }
48625
48777
  const defaults = {
48626
48778
  transitional: transitionalDefaults,
@@ -49113,45 +49265,13 @@ const progressEventDecorator = (total, throttled) => {
49113
49265
  }), throttled[1]];
49114
49266
  };
49115
49267
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49116
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49117
- // Standard browser envs have full support of the APIs needed to test
49118
- // whether the request URL is of the same origin as current location.
49119
- function standardBrowserEnv() {
49120
- const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49121
- const urlParsingNode = document.createElement("a");
49122
- let originURL;
49123
- function resolveURL(url) {
49124
- let href = url;
49125
- if (msie) {
49126
- urlParsingNode.setAttribute("href", href);
49127
- href = urlParsingNode.href;
49128
- }
49129
- urlParsingNode.setAttribute("href", href);
49130
- return {
49131
- href: urlParsingNode.href,
49132
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49133
- host: urlParsingNode.host,
49134
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49135
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49136
- hostname: urlParsingNode.hostname,
49137
- port: urlParsingNode.port,
49138
- pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49139
- };
49140
- }
49141
- originURL = resolveURL(window.location.href);
49142
- return function isURLSameOrigin2(requestURL) {
49143
- const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49144
- return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49145
- };
49146
- }()
49147
- ) : (
49148
- // Non standard browser envs (web workers, react-native) lack needed support.
49149
- /* @__PURE__ */ function nonStandardBrowserEnv() {
49150
- return function isURLSameOrigin2() {
49151
- return true;
49152
- };
49153
- }()
49154
- );
49268
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49269
+ url = new URL(url, platform.origin);
49270
+ return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49271
+ })(
49272
+ new URL(platform.origin),
49273
+ platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49274
+ ) : () => true;
49155
49275
  const cookies = platform.hasStandardBrowserEnv ? (
49156
49276
  // Standard browser envs support document.cookie
49157
49277
  {
@@ -49199,7 +49319,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49199
49319
  function mergeConfig(config1, config2) {
49200
49320
  config2 = config2 || {};
49201
49321
  const config = {};
49202
- function getMergedValue(target, source, caseless) {
49322
+ function getMergedValue(target, source, prop3, caseless) {
49203
49323
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49204
49324
  return utils$1.merge.call({ caseless }, target, source);
49205
49325
  } else if (utils$1.isPlainObject(source)) {
@@ -49209,11 +49329,11 @@ function mergeConfig(config1, config2) {
49209
49329
  }
49210
49330
  return source;
49211
49331
  }
49212
- function mergeDeepProperties(a2, b2, caseless) {
49332
+ function mergeDeepProperties(a2, b2, prop3, caseless) {
49213
49333
  if (!utils$1.isUndefined(b2)) {
49214
- return getMergedValue(a2, b2, caseless);
49334
+ return getMergedValue(a2, b2, prop3, caseless);
49215
49335
  } else if (!utils$1.isUndefined(a2)) {
49216
- return getMergedValue(void 0, a2, caseless);
49336
+ return getMergedValue(void 0, a2, prop3, caseless);
49217
49337
  }
49218
49338
  }
49219
49339
  function valueFromConfig2(a2, b2) {
@@ -49264,7 +49384,7 @@ function mergeConfig(config1, config2) {
49264
49384
  socketPath: defaultToConfig2,
49265
49385
  responseEncoding: defaultToConfig2,
49266
49386
  validateStatus: mergeDirectKeys,
49267
- headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49387
+ headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49268
49388
  };
49269
49389
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49270
49390
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49464,7 +49584,7 @@ const composeSignals = (signals, timeout) => {
49464
49584
  };
49465
49585
  const streamChunk = function* (chunk, chunkSize) {
49466
49586
  let len = chunk.byteLength;
49467
- if (!chunkSize || len < chunkSize) {
49587
+ if (len < chunkSize) {
49468
49588
  yield chunk;
49469
49589
  return;
49470
49590
  }
@@ -49794,7 +49914,7 @@ function dispatchRequest(config) {
49794
49914
  return Promise.reject(reason);
49795
49915
  });
49796
49916
  }
49797
- const VERSION = "1.7.7";
49917
+ const VERSION = "1.7.9";
49798
49918
  const validators$1 = {};
49799
49919
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49800
49920
  validators$1[type3] = function validator2(thing) {
@@ -49825,6 +49945,12 @@ validators$1.transitional = function transitional(validator2, version2, message2
49825
49945
  return validator2 ? validator2(value, opt, opts) : true;
49826
49946
  };
49827
49947
  };
49948
+ validators$1.spelling = function spelling(correctSpelling) {
49949
+ return (value, opt) => {
49950
+ console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49951
+ return true;
49952
+ };
49953
+ };
49828
49954
  function assertOptions(options, schema, allowUnknown) {
49829
49955
  if (typeof options !== "object") {
49830
49956
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49873,8 +49999,8 @@ class Axios {
49873
49999
  return await this._request(configOrUrl, config);
49874
50000
  } catch (err) {
49875
50001
  if (err instanceof Error) {
49876
- let dummy;
49877
- Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
50002
+ let dummy = {};
50003
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49878
50004
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49879
50005
  try {
49880
50006
  if (!err.stack) {
@@ -49916,6 +50042,10 @@ class Axios {
49916
50042
  }, true);
49917
50043
  }
49918
50044
  }
50045
+ validator.assertOptions(config, {
50046
+ baseUrl: validators.spelling("baseURL"),
50047
+ withXsrfToken: validators.spelling("withXSRFToken")
50048
+ }, true);
49919
50049
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49920
50050
  let contextHeaders = headers && utils$1.merge(
49921
50051
  headers.common,
@@ -50212,7 +50342,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50212
50342
  axios$1.getAdapter = adapters.getAdapter;
50213
50343
  axios$1.HttpStatusCode = HttpStatusCode;
50214
50344
  axios$1.default = axios$1;
50215
- const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "[24-689]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]]]], "BL": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "(?:[2-8]\\d|90)\\d{8}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|90[25])[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|622)[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "60\\d{8}|(?:1\\d|[39])\\d{9}", [10, 11], [["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:1[49]|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "[56]94\\d{6}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[56]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "590\\d{6}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["[45]|6(?:0[23]|[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-6]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "596\\d{6}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[569]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|80\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2689]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-39]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-5]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[013569]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72)\\d{4}|8\\d{5}(?:\\d{3})?", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[478]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[35-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[35-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50345
+ const metadata = { "version": 4, "country_calling_codes": { "1": ["US", "AG", "AI", "AS", "BB", "BM", "BS", "CA", "DM", "DO", "GD", "GU", "JM", "KN", "KY", "LC", "MP", "MS", "PR", "SX", "TC", "TT", "VC", "VG", "VI"], "7": ["RU", "KZ"], "20": ["EG"], "27": ["ZA"], "30": ["GR"], "31": ["NL"], "32": ["BE"], "33": ["FR"], "34": ["ES"], "36": ["HU"], "39": ["IT", "VA"], "40": ["RO"], "41": ["CH"], "43": ["AT"], "44": ["GB", "GG", "IM", "JE"], "45": ["DK"], "46": ["SE"], "47": ["NO", "SJ"], "48": ["PL"], "49": ["DE"], "51": ["PE"], "52": ["MX"], "53": ["CU"], "54": ["AR"], "55": ["BR"], "56": ["CL"], "57": ["CO"], "58": ["VE"], "60": ["MY"], "61": ["AU", "CC", "CX"], "62": ["ID"], "63": ["PH"], "64": ["NZ"], "65": ["SG"], "66": ["TH"], "81": ["JP"], "82": ["KR"], "84": ["VN"], "86": ["CN"], "90": ["TR"], "91": ["IN"], "92": ["PK"], "93": ["AF"], "94": ["LK"], "95": ["MM"], "98": ["IR"], "211": ["SS"], "212": ["MA", "EH"], "213": ["DZ"], "216": ["TN"], "218": ["LY"], "220": ["GM"], "221": ["SN"], "222": ["MR"], "223": ["ML"], "224": ["GN"], "225": ["CI"], "226": ["BF"], "227": ["NE"], "228": ["TG"], "229": ["BJ"], "230": ["MU"], "231": ["LR"], "232": ["SL"], "233": ["GH"], "234": ["NG"], "235": ["TD"], "236": ["CF"], "237": ["CM"], "238": ["CV"], "239": ["ST"], "240": ["GQ"], "241": ["GA"], "242": ["CG"], "243": ["CD"], "244": ["AO"], "245": ["GW"], "246": ["IO"], "247": ["AC"], "248": ["SC"], "249": ["SD"], "250": ["RW"], "251": ["ET"], "252": ["SO"], "253": ["DJ"], "254": ["KE"], "255": ["TZ"], "256": ["UG"], "257": ["BI"], "258": ["MZ"], "260": ["ZM"], "261": ["MG"], "262": ["RE", "YT"], "263": ["ZW"], "264": ["NA"], "265": ["MW"], "266": ["LS"], "267": ["BW"], "268": ["SZ"], "269": ["KM"], "290": ["SH", "TA"], "291": ["ER"], "297": ["AW"], "298": ["FO"], "299": ["GL"], "350": ["GI"], "351": ["PT"], "352": ["LU"], "353": ["IE"], "354": ["IS"], "355": ["AL"], "356": ["MT"], "357": ["CY"], "358": ["FI", "AX"], "359": ["BG"], "370": ["LT"], "371": ["LV"], "372": ["EE"], "373": ["MD"], "374": ["AM"], "375": ["BY"], "376": ["AD"], "377": ["MC"], "378": ["SM"], "380": ["UA"], "381": ["RS"], "382": ["ME"], "383": ["XK"], "385": ["HR"], "386": ["SI"], "387": ["BA"], "389": ["MK"], "420": ["CZ"], "421": ["SK"], "423": ["LI"], "500": ["FK"], "501": ["BZ"], "502": ["GT"], "503": ["SV"], "504": ["HN"], "505": ["NI"], "506": ["CR"], "507": ["PA"], "508": ["PM"], "509": ["HT"], "590": ["GP", "BL", "MF"], "591": ["BO"], "592": ["GY"], "593": ["EC"], "594": ["GF"], "595": ["PY"], "596": ["MQ"], "597": ["SR"], "598": ["UY"], "599": ["CW", "BQ"], "670": ["TL"], "672": ["NF"], "673": ["BN"], "674": ["NR"], "675": ["PG"], "676": ["TO"], "677": ["SB"], "678": ["VU"], "679": ["FJ"], "680": ["PW"], "681": ["WF"], "682": ["CK"], "683": ["NU"], "685": ["WS"], "686": ["KI"], "687": ["NC"], "688": ["TV"], "689": ["PF"], "690": ["TK"], "691": ["FM"], "692": ["MH"], "850": ["KP"], "852": ["HK"], "853": ["MO"], "855": ["KH"], "856": ["LA"], "880": ["BD"], "886": ["TW"], "960": ["MV"], "961": ["LB"], "962": ["JO"], "963": ["SY"], "964": ["IQ"], "965": ["KW"], "966": ["SA"], "967": ["YE"], "968": ["OM"], "970": ["PS"], "971": ["AE"], "972": ["IL"], "973": ["BH"], "974": ["QA"], "975": ["BT"], "976": ["MN"], "977": ["NP"], "992": ["TJ"], "993": ["TM"], "994": ["AZ"], "995": ["GE"], "996": ["KG"], "998": ["UZ"] }, "countries": { "AC": ["247", "00", "(?:[01589]\\d|[46])\\d{4}", [5, 6]], "AD": ["376", "00", "(?:1|6\\d)\\d{7}|[135-9]\\d{5}", [6, 8, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["[135-9]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["1"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]]], "AE": ["971", "00", "(?:[4-7]\\d|9[0-689])\\d{7}|800\\d{2,9}|[2-4679]\\d{7}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{2,9})", "$1 $2", ["60|8"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[236]|[479][2-8]"], "0$1"], ["(\\d{3})(\\d)(\\d{5})", "$1 $2 $3", ["[479]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AF": ["93", "00", "[2-7]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"]], "0"], "AG": ["1", "011", "(?:268|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([457]\\d{6})$|1", "268$1", 0, "268"], "AI": ["1", "011", "(?:264|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2457]\\d{6})$|1", "264$1", 0, "264"], "AL": ["355", "00", "(?:700\\d\\d|900)\\d{3}|8\\d{5,7}|(?:[2-5]|6\\d)\\d{7}", [6, 7, 8, 9], [["(\\d{3})(\\d{3,4})", "$1 $2", ["80|9"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["4[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2358][2-5]|4"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["[23578]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["6"], "0$1"]], "0"], "AM": ["374", "00", "(?:[1-489]\\d|55|60|77)\\d{6}", [8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[89]0"], "0 $1"], ["(\\d{3})(\\d{5})", "$1 $2", ["2|3[12]"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["1|47"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[3-9]"], "0$1"]], "0"], "AO": ["244", "00", "[29]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[29]"]]]], "AR": ["54", "00", "(?:11|[89]\\d\\d)\\d{8}|[2368]\\d{9}", [10, 11], [["(\\d{4})(\\d{2})(\\d{4})", "$1 $2-$3", ["2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9])", "2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8]))|2(?:2[24-9]|3[1-59]|47)", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5[56][46]|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|58|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|54(?:4|5[13-7]|6[89])|86[3-6]))|2(?:2[24-9]|3[1-59]|47)|38(?:[58][78]|7[378])|3(?:454|85[56])[46]|3(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["1"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[68]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2-$3", ["[23]"], "0$1", 1], ["(\\d)(\\d{4})(\\d{2})(\\d{4})", "$2 15-$3-$4", ["9(?:2[2-469]|3[3-578])", "9(?:2(?:2[024-9]|3[0-59]|47|6[245]|9[02-8])|3(?:3[28]|4[03-9]|5[2-46-8]|7[1-578]|8[2-9]))", "9(?:2(?:[23]02|6(?:[25]|4[6-8])|9(?:[02356]|4[02568]|72|8[23]))|3(?:3[28]|4(?:[04679]|3[5-8]|5[4-68]|8[2379])|5(?:[2467]|3[237]|8[2-5])|7[1-578]|8(?:[2469]|3[2578]|5[4-8]|7[36-8]|8[5-8])))|92(?:2[24-9]|3[1-59]|47)", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3[78]|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8[23])|7[1-578]|8(?:[2469]|3[278]|5(?:[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4[35][56]|58[45]|8(?:[38]5|54|76))[4-6]", "9(?:2(?:[23]02|6(?:[25]|4(?:64|[78]))|9(?:[02356]|4(?:[0268]|5[2-6])|72|8[23]))|3(?:3[28]|4(?:[04679]|3(?:5(?:4[0-25689]|[56])|[78])|5(?:4[46]|8)|8[2379])|5(?:[2467]|3[237]|8(?:[23]|4(?:[45]|60)|5(?:4[0-39]|5|64)))|7[1-578]|8(?:[2469]|3[278]|5(?:4(?:4|5[13-7]|6[89])|[56][46]|[78])|7[378]|8(?:6[3-6]|[78]))))|92(?:2[24-9]|3[1-59]|47)|93(?:4(?:36|5[56])|8(?:[38]5|76))[4-6]"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d)(\\d{2})(\\d{4})(\\d{4})", "$2 15-$3-$4", ["91"], "0$1", 0, "$1 $2 $3-$4"], ["(\\d{3})(\\d{3})(\\d{5})", "$1-$2-$3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{4})", "$2 15-$3-$4", ["9"], "0$1", 0, "$1 $2 $3-$4"]], "0", 0, "0?(?:(11|2(?:2(?:02?|[13]|2[13-79]|4[1-6]|5[2457]|6[124-8]|7[1-4]|8[13-6]|9[1267])|3(?:02?|1[467]|2[03-6]|3[13-8]|[49][2-6]|5[2-8]|[67])|4(?:7[3-578]|9)|6(?:[0136]|2[24-6]|4[6-8]?|5[15-8])|80|9(?:0[1-3]|[19]|2\\d|3[1-6]|4[02568]?|5[2-4]|6[2-46]|72?|8[23]?))|3(?:3(?:2[79]|6|8[2578])|4(?:0[0-24-9]|[12]|3[5-8]?|4[24-7]|5[4-68]?|6[02-9]|7[126]|8[2379]?|9[1-36-8])|5(?:1|2[1245]|3[237]?|4[1-46-9]|6[2-4]|7[1-6]|8[2-5]?)|6[24]|7(?:[069]|1[1568]|2[15]|3[145]|4[13]|5[14-8]|7[2-57]|8[126])|8(?:[01]|2[15-7]|3[2578]?|4[13-6]|5[4-8]?|6[1-357-9]|7[36-8]?|8[5-8]?|9[124])))15)?", "9$1"], "AS": ["1", "011", "(?:[58]\\d\\d|684|900)\\d{7}", [10], 0, "1", 0, "([267]\\d{6})$|1", "684$1", 0, "684"], "AT": ["43", "00", "1\\d{3,12}|2\\d{6,12}|43(?:(?:0\\d|5[02-9])\\d{3,9}|2\\d{4,5}|[3467]\\d{4}|8\\d{4,6}|9\\d{4,7})|5\\d{4,12}|8\\d{7,12}|9\\d{8,12}|(?:[367]\\d|4[0-24-9])\\d{4,11}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{3,12})", "$1 $2", ["1(?:11|[2-9])"], "0$1"], ["(\\d{3})(\\d{2})", "$1 $2", ["517"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["5[079]"], "0$1"], ["(\\d{3})(\\d{3,10})", "$1 $2", ["(?:31|4)6|51|6(?:5[0-3579]|[6-9])|7(?:20|32|8)|[89]"], "0$1"], ["(\\d{4})(\\d{3,9})", "$1 $2", ["[2-467]|5[2-6]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,7})", "$1 $2 $3", ["5"], "0$1"]], "0"], "AU": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{7}(?:\\d(?:\\d{2})?)?|8[0-24-9]\\d{7})|[2-478]\\d{8}|1\\d{4,7}", [5, 6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{3,4})", "$1 $2", ["16"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["16"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["14|4"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[2378]"], "(0$1)"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:30|[89])"]]], "0", 0, "(183[12])|0", 0, 0, 0, [["(?:(?:(?:2(?:[0-26-9]\\d|3[0-8]|4[02-9]|5[0135-9])|7(?:[013-57-9]\\d|2[0-8]))\\d|3(?:(?:[0-3589]\\d|6[1-9]|7[0-35-9])\\d|4(?:[0-578]\\d|90)))\\d\\d|8(?:51(?:0(?:0[03-9]|[12479]\\d|3[2-9]|5[0-8]|6[1-9]|8[0-7])|1(?:[0235689]\\d|1[0-69]|4[0-589]|7[0-47-9])|2(?:0[0-79]|[18][13579]|2[14-9]|3[0-46-9]|[4-6]\\d|7[89]|9[0-4])|3\\d\\d)|(?:6[0-8]|[78]\\d)\\d{3}|9(?:[02-9]\\d{3}|1(?:(?:[0-58]\\d|6[0135-9])\\d|7(?:0[0-24-9]|[1-9]\\d)|9(?:[0-46-9]\\d|5[0-79])))))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, ["163\\d{2,6}", [5, 6, 7, 8, 9]], ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "AW": ["297", "00", "(?:[25-79]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[25-9]"]]]], "AX": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "2\\d{4,9}|35\\d{4,5}|(?:60\\d\\d|800)\\d{4,6}|7\\d{5,11}|(?:[14]\\d|3[0-46-9]|50)\\d{4,8}", [5, 6, 7, 8, 9, 10, 11, 12], 0, "0", 0, 0, 0, 0, "18", 0, "00"], "AZ": ["994", "00", "365\\d{6}|(?:[124579]\\d|60|88)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[28]|2|365|46", "1[28]|2|365[45]|46", "1[28]|2|365(?:4|5[02])|46"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[13-9]"], "0$1"]], "0"], "BA": ["387", "00", "6\\d{8}|(?:[35689]\\d|49|70)\\d{6}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[1-3]|[7-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2-$3", ["[3-5]|6[56]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["6"], "0$1"]], "0"], "BB": ["1", "011", "(?:246|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "246$1", 0, "246"], "BD": ["880", "00", "[1-469]\\d{9}|8[0-79]\\d{7,8}|[2-79]\\d{8}|[2-9]\\d{7}|[3-9]\\d{6}|[57-9]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{2})(\\d{4,6})", "$1-$2", ["31[5-8]|[459]1"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1-$2", ["3(?:[67]|8[013-9])|4(?:6[168]|7|[89][18])|5(?:6[128]|9)|6(?:[15]|28|4[14])|7[2-589]|8(?:0[014-9]|[12])|9[358]|(?:3[2-5]|4[235]|5[2-578]|6[0389]|76|8[3-7]|9[24])1|(?:44|66)[01346-9]"], "0$1"], ["(\\d{4})(\\d{3,6})", "$1-$2", ["[13-9]|2[23]"], "0$1"], ["(\\d)(\\d{7,8})", "$1-$2", ["2"], "0$1"]], "0"], "BE": ["32", "00", "4\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:80|9)0"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[239]|4[23]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[15-8]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4"], "0$1"]], "0"], "BF": ["226", "00", "[025-7]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[025-7]"]]]], "BG": ["359", "00", "00800\\d{7}|[2-7]\\d{6,7}|[89]\\d{6,8}|2\\d{5}", [6, 7, 8, 9, 12], [["(\\d)(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["43[1-6]|70[1-9]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["[356]|4[124-7]|7[1-9]|8[1-6]|9[1-7]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:70|8)0"], "0$1"], ["(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3", ["43[1-7]|7"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[48]|9[08]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"]], "0"], "BH": ["973", "00", "[136-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[13679]|8[02-4679]"]]]], "BI": ["257", "00", "(?:[267]\\d|31)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2367]"]]]], "BJ": ["229", "00", "(?:01\\d|[24-689])\\d{7}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["0"]]]], "BL": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:2[7-9]|3[3-7]|5[12]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "BM": ["1", "011", "(?:441|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "441$1", 0, "441"], "BN": ["673", "00", "[2-578]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-578]"]]]], "BO": ["591", "00(?:1\\d)?", "8001\\d{5}|(?:[2-467]\\d|50)\\d{6}", [8, 9], [["(\\d)(\\d{7})", "$1 $2", ["[235]|4[46]"]], ["(\\d{8})", "$1", ["[67]"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["8"]]], "0", 0, "0(1\\d)?"], "BQ": ["599", "00", "(?:[34]1|7\\d)\\d{5}", [7], 0, 0, 0, 0, 0, 0, "[347]"], "BR": ["55", "00(?:1[245]|2[1-35]|31|4[13]|[56]5|99)", "(?:[1-46-9]\\d\\d|5(?:[0-46-9]\\d|5[0-46-9]))\\d{8}|[1-9]\\d{9}|[3589]\\d{8}|[34]\\d{7}", [8, 9, 10, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["300|4(?:0[02]|37)", "4(?:02|37)0|[34]00"]], ["(\\d{3})(\\d{2,3})(\\d{4})", "$1 $2 $3", ["(?:[358]|90)0"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2-$3", ["(?:[14689][1-9]|2[12478]|3[1-578]|5[13-5]|7[13-579])[2-57]"], "($1)"], ["(\\d{2})(\\d{5})(\\d{4})", "$1 $2-$3", ["[16][1-9]|[2-57-9]"], "($1)"]], "0", 0, "(?:0|90)(?:(1[245]|2[1-35]|31|4[13]|[56]5|99)(\\d{10,11}))?", "$2"], "BS": ["1", "011", "(?:242|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([3-8]\\d{6})$|1", "242$1", 0, "242"], "BT": ["975", "00", "[17]\\d{7}|[2-8]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-68]|7[246]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[67]|7"]]]], "BW": ["267", "00", "(?:0800|(?:[37]|800)\\d)\\d{6}|(?:[2-6]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["90"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[24-6]|3[15-9]"]], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37]"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["8"]]]], "BY": ["375", "810", "(?:[12]\\d|33|44|902)\\d{7}|8(?:0[0-79]\\d{5,7}|[1-7]\\d{9})|8(?:1[0-489]|[5-79]\\d)\\d{7}|8[1-79]\\d{6,7}|8[0-79]\\d{5}|8\\d{5}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3})", "$1 $2", ["800"], "8 $1"], ["(\\d{3})(\\d{2})(\\d{2,4})", "$1 $2 $3", ["800"], "8 $1"], ["(\\d{4})(\\d{2})(\\d{3})", "$1 $2-$3", ["1(?:5[169]|6[3-5]|7[179])|2(?:1[35]|2[34]|3[3-5])", "1(?:5[169]|6(?:3[1-3]|4|5[125])|7(?:1[3-9]|7[0-24-6]|9[2-7]))|2(?:1[35]|2[34]|3[3-5])"], "8 0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["1(?:[56]|7[467])|2[1-3]"], "8 0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-4]"], "8 0$1"], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[89]"], "8 $1"]], "8", 0, "0|80?", 0, 0, 0, 0, "8~10"], "BZ": ["501", "00", "(?:0800\\d|[2-8])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-8]"]], ["(\\d)(\\d{3})(\\d{4})(\\d{3})", "$1-$2-$3-$4", ["0"]]]], "CA": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [7, 10], 0, "1", 0, 0, 0, 0, 0, [["(?:2(?:04|[23]6|[48]9|50|63)|3(?:06|43|54|6[578]|82)|4(?:03|1[68]|[26]8|3[178]|50|74)|5(?:06|1[49]|48|79|8[147])|6(?:04|[18]3|39|47|72)|7(?:0[59]|42|53|78|8[02])|8(?:[06]7|19|25|7[39])|9(?:0[25]|42))[2-9]\\d{6}", [10]], ["", [10]], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}", [10]], ["900[2-9]\\d{6}", [10]], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|(?:5(?:00|2[125-9]|33|44|66|77|88)|6(?:22|33))[2-9]\\d{6}", [10]], 0, ["310\\d{4}", [7]], 0, ["600[2-9]\\d{6}", [10]]]], "CC": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:02|31|60|89)|1(?:18|76)|223)|91(?:0(?:1[0-2]|29)|1(?:[28]2|50|79)|2(?:10|64)|3(?:[06]8|22)|4[29]8|62\\d|70[23]|959))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CD": ["243", "00", "(?:(?:[189]|5\\d)\\d|2)\\d{7}|[1-68]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[1-6]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["5"], "0$1"]], "0"], "CF": ["236", "00", "(?:[27]\\d{3}|8776)\\d{4}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[278]"]]]], "CG": ["242", "00", "222\\d{6}|(?:0\\d|80)\\d{7}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[02]"]]]], "CH": ["41", "00", "8\\d{11}|[2-9]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8[047]|90"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]|81"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["8"], "0$1"]], "0"], "CI": ["225", "00", "[02]\\d{9}", [10], [["(\\d{2})(\\d{2})(\\d)(\\d{5})", "$1 $2 $3 $4", ["2"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3 $4", ["0"]]]], "CK": ["682", "00", "[2-578]\\d{4}", [5], [["(\\d{2})(\\d{3})", "$1 $2", ["[2-578]"]]]], "CL": ["56", "(?:0|1(?:1[0-69]|2[02-5]|5[13-58]|69|7[0167]|8[018]))0", "12300\\d{6}|6\\d{9,10}|[2-9]\\d{8}", [9, 10, 11], [["(\\d{5})(\\d{4})", "$1 $2", ["219", "2196"], "($1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["44"]], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2[1-36]"], "($1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["9[2-9]"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["3[2-5]|[47]|5[1-3578]|6[13-57]|8(?:0[1-9]|[1-9])"], "($1)"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["60|8"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{3})(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["60"]]]], "CM": ["237", "00", "[26]\\d{8}|88\\d{6,7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["88"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[26]|88"]]]], "CN": ["86", "00|1(?:[12]\\d|79)\\d\\d00", "(?:(?:1[03-689]|2\\d)\\d\\d|6)\\d{8}|1\\d{10}|[126]\\d{6}(?:\\d(?:\\d{2})?)?|86\\d{5,6}|(?:[3-579]\\d|8[0-57-9])\\d{5,9}", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5,6})", "$1 $2", ["(?:10|2[0-57-9])[19]|3(?:[157]|35|49|9[1-68])|4(?:1[124-9]|2[179]|6[47-9]|7|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:07|1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3|4[13]|5[1-5]|7[0-79]|9[0-35-9])|(?:4[35]|59|85)[1-9]", "(?:10|2[0-57-9])(?:1[02]|9[56])|8078|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))1", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|80781|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))12", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|807812|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123", "10(?:1(?:0|23)|9[56])|2[0-57-9](?:1(?:00|23)|9[56])|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:1[124-9]|2[179]|[35][1-9]|6[47-9]|7\\d|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:078|1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|3\\d|4[13]|5[1-5]|7[0-79]|9[0-35-9]))123"], "0$1"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["3(?:[157]|35|49|9[1-68])|4(?:[17]|2[179]|6[47-9]|8[23])|5(?:[1357]|2[37]|4[36]|6[1-46]|80)|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]|4[13]|5[1-5])|(?:4[35]|59|85)[1-9]", "(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[1-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))[19]", "85[23](?:10|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:10|9[56])", "85[23](?:100|95)|(?:3(?:[157]\\d|35|49|9[1-68])|4(?:[17]\\d|2[179]|[35][1-9]|6[47-9]|8[23])|5(?:[1357]\\d|2[37]|4[36]|6[1-46]|80|9[1-9])|6(?:3[1-5]|6[0238]|9[12])|7(?:01|[1579]\\d|2[248]|3[014-9]|4[3-6]|6[023689])|8(?:1[236-8]|2[5-7]|[37]\\d|5[14-9]|8[36-8]|9[1-8])|9(?:0[1-3689]|1[1-79]|[379]\\d|4[13]|5[1-5]))(?:100|9[56])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["(?:4|80)0"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|2(?:[02-57-9]|1[1-9])", "10|2(?:[02-57-9]|1[1-9])", "10[0-79]|2(?:[02-57-9]|1[1-79])|(?:10|21)8(?:0[1-9]|[1-9])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["3(?:[3-59]|7[02-68])|4(?:[26-8]|3[3-9]|5[2-9])|5(?:3[03-9]|[468]|7[028]|9[2-46-9])|6|7(?:[0-247]|3[04-9]|5[0-4689]|6[2368])|8(?:[1-358]|9[1-7])|9(?:[013479]|5[1-5])|(?:[34]1|55|79|87)[02-9]"], "0$1", 1], ["(\\d{3})(\\d{7,8})", "$1 $2", ["9"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["80"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[3-578]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["1[3-9]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["[12]"], "0$1", 1]], "0", 0, "(1(?:[12]\\d|79)\\d\\d)|0", 0, 0, 0, 0, "00"], "CO": ["57", "00(?:4(?:[14]4|56)|[579])", "(?:46|60\\d\\d)\\d{6}|(?:1\\d|[39])\\d{9}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["46"]], ["(\\d{3})(\\d{7})", "$1 $2", ["6|90"], "($1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3[0-357]|91"]], ["(\\d)(\\d{3})(\\d{7})", "$1-$2-$3", ["1"], "0$1", 0, "$1 $2 $3"]], "0", 0, "0([3579]|4(?:[14]4|56))?"], "CR": ["506", "00", "(?:8\\d|90)\\d{8}|(?:[24-8]\\d{3}|3005)\\d{4}", [8, 10], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[3-9]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["[89]"]]], 0, 0, "(19(?:0[0-2468]|1[09]|20|66|77|99))"], "CU": ["53", "119", "(?:[2-7]|8\\d\\d)\\d{7}|[2-47]\\d{6}|[34]\\d{5}", [6, 7, 8, 10], [["(\\d{2})(\\d{4,6})", "$1 $2", ["2[1-4]|[34]"], "(0$1)"], ["(\\d)(\\d{6,7})", "$1 $2", ["7"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["[56]"], "0$1"], ["(\\d{3})(\\d{7})", "$1 $2", ["8"], "0$1"]], "0"], "CV": ["238", "0", "(?:[2-59]\\d\\d|800)\\d{4}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2-589]"]]]], "CW": ["599", "00", "(?:[34]1|60|(?:7|9\\d)\\d)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[3467]"]], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["9[4-8]"]]], 0, 0, 0, 0, 0, "[69]"], "CX": ["61", "001[14-689]|14(?:1[14]|34|4[17]|[56]6|7[47]|88)0011", "1(?:[0-79]\\d{8}(?:\\d{2})?|8[0-24-9]\\d{7})|[148]\\d{8}|1\\d{5,7}", [6, 7, 8, 9, 10, 12], 0, "0", 0, "([59]\\d{7})$|0", "8$1", 0, 0, [["8(?:51(?:0(?:01|30|59|88)|1(?:17|46|75)|2(?:22|35))|91(?:00[6-9]|1(?:[28]1|49|78)|2(?:09|63)|3(?:12|26|75)|4(?:56|97)|64\\d|7(?:0[01]|1[0-2])|958))\\d{3}", [9]], ["4(?:79[01]|83[0-389]|94[0-4])\\d{5}|4(?:[0-36]\\d|4[047-9]|5[0-25-9]|7[02-8]|8[0-24-9]|9[0-37-9])\\d{6}", [9]], ["180(?:0\\d{3}|2)\\d{3}", [7, 10]], ["190[0-26]\\d{6}", [10]], 0, 0, 0, 0, ["14(?:5(?:1[0458]|[23][458])|71\\d)\\d{4}", [9]], ["13(?:00\\d{6}(?:\\d{2})?|45[0-4]\\d{3})|13\\d{4}", [6, 8, 10, 12]]], "0011"], "CY": ["357", "00", "(?:[279]\\d|[58]0)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[257-9]"]]]], "CZ": ["420", "00", "(?:[2-578]\\d|60)\\d{7}|9\\d{8,11}", [9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]|9[015-7]"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["96"]], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]]], "DE": ["49", "00", "[2579]\\d{5,14}|49(?:[34]0|69|8\\d)\\d\\d?|49(?:37|49|60|7[089]|9\\d)\\d{1,3}|49(?:2[024-9]|3[2-689]|7[1-7])\\d{1,8}|(?:1|[368]\\d|4[0-8])\\d{3,13}|49(?:[015]\\d|2[13]|31|[46][1-8])\\d{1,9}", [4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15], [["(\\d{2})(\\d{3,13})", "$1 $2", ["3[02]|40|[68]9"], "0$1"], ["(\\d{3})(\\d{3,12})", "$1 $2", ["2(?:0[1-389]|1[124]|2[18]|3[14])|3(?:[35-9][15]|4[015])|906|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1", "2(?:0[1-389]|12[0-8])|3(?:[35-9][15]|4[015])|906|2(?:[13][14]|2[18])|(?:2[4-9]|4[2-9]|[579][1-9]|[68][1-8])1"], "0$1"], ["(\\d{4})(\\d{2,11})", "$1 $2", ["[24-6]|3(?:[3569][02-46-9]|4[2-4679]|7[2-467]|8[2-46-8])|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]", "[24-6]|3(?:3(?:0[1-467]|2[127-9]|3[124578]|7[1257-9]|8[1256]|9[145])|4(?:2[135]|4[13578]|9[1346])|5(?:0[14]|2[1-3589]|6[1-4]|7[13468]|8[13568])|6(?:2[1-489]|3[124-6]|6[13]|7[12579]|8[1-356]|9[135])|7(?:2[1-7]|4[145]|6[1-5]|7[1-4])|8(?:21|3[1468]|6|7[1467]|8[136])|9(?:0[12479]|2[1358]|4[134679]|6[1-9]|7[136]|8[147]|9[1468]))|70[2-8]|8(?:0[2-9]|[1-8])|90[7-9]|[79][1-9]|3[68]4[1347]|3(?:47|60)[1356]|3(?:3[46]|46|5[49])[1246]|3[4579]3[1357]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["138"], "0$1"], ["(\\d{5})(\\d{2,10})", "$1 $2", ["3"], "0$1"], ["(\\d{3})(\\d{5,11})", "$1 $2", ["181"], "0$1"], ["(\\d{3})(\\d)(\\d{4,10})", "$1 $2 $3", ["1(?:3|80)|9"], "0$1"], ["(\\d{3})(\\d{7,8})", "$1 $2", ["1[67]"], "0$1"], ["(\\d{3})(\\d{7,12})", "$1 $2", ["8"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["185", "1850", "18500"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["18[68]"], "0$1"], ["(\\d{4})(\\d{7})", "$1 $2", ["15[1279]"], "0$1"], ["(\\d{5})(\\d{6})", "$1 $2", ["15[03568]", "15(?:[0568]|31)"], "0$1"], ["(\\d{3})(\\d{8})", "$1 $2", ["18"], "0$1"], ["(\\d{3})(\\d{2})(\\d{7,8})", "$1 $2 $3", ["1(?:6[023]|7)"], "0$1"], ["(\\d{4})(\\d{2})(\\d{7})", "$1 $2 $3", ["15[279]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{8})", "$1 $2 $3", ["15"], "0$1"]], "0"], "DJ": ["253", "00", "(?:2\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[27]"]]]], "DK": ["45", "00", "[2-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-9]"]]]], "DM": ["1", "011", "(?:[58]\\d\\d|767|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "767$1", 0, "767"], "DO": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "8001|8[024]9"], "DZ": ["213", "00", "(?:[1-4]|[5-79]\\d|80)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["9"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-8]"], "0$1"]], "0"], "EC": ["593", "00", "1\\d{9,10}|(?:[2-7]|9\\d)\\d{7}", [8, 9, 10, 11], [["(\\d)(\\d{3})(\\d{4})", "$1 $2-$3", ["[2-7]"], "(0$1)", 0, "$1-$2-$3"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1"]]], "0"], "EE": ["372", "00", "8\\d{9}|[4578]\\d{7}|(?:[3-8]\\d|90)\\d{5}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[369]|4[3-8]|5(?:[0-2]|5[0-478]|6[45])|7[1-9]|88", "[369]|4[3-8]|5(?:[02]|1(?:[0-8]|95)|5[0-478]|6(?:4[0-4]|5[1-589]))|7[1-9]|88"]], ["(\\d{4})(\\d{3,4})", "$1 $2", ["[45]|8(?:00|[1-49])", "[45]|8(?:00[1-9]|[1-49])"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "EG": ["20", "00", "[189]\\d{8,9}|[24-6]\\d{8}|[135]\\d{7}", [8, 9, 10], [["(\\d)(\\d{7,8})", "$1 $2", ["[23]"], "0$1"], ["(\\d{2})(\\d{6,7})", "$1 $2", ["1[35]|[4-6]|8[2468]|9[235-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{8})", "$1 $2", ["1"], "0$1"]], "0"], "EH": ["212", "00", "[5-8]\\d{8}", [9], 0, "0", 0, 0, 0, 0, "528[89]"], "ER": ["291", "00", "[178]\\d{6}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[178]"], "0$1"]], "0"], "ES": ["34", "00", "[5-9]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[89]00"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-9]"]]]], "ET": ["251", "00", "(?:11|[2-579]\\d)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-579]"], "0$1"]], "0"], "FI": ["358", "00|99(?:[01469]|5(?:[14]1|3[23]|5[59]|77|88|9[09]))", "[1-35689]\\d{4}|7\\d{10,11}|(?:[124-7]\\d|3[0-46-9])\\d{8}|[1-9]\\d{5,8}", [5, 6, 7, 8, 9, 10, 11, 12], [["(\\d{5})", "$1", ["20[2-59]"], "0$1"], ["(\\d{3})(\\d{3,7})", "$1 $2", ["(?:[1-3]0|[68])0|70[07-9]"], "0$1"], ["(\\d{2})(\\d{4,8})", "$1 $2", ["[14]|2[09]|50|7[135]"], "0$1"], ["(\\d{2})(\\d{6,10})", "$1 $2", ["7"], "0$1"], ["(\\d)(\\d{4,9})", "$1 $2", ["(?:19|[2568])[1-8]|3(?:0[1-9]|[1-9])|9"], "0$1"]], "0", 0, 0, 0, 0, "1[03-79]|[2-9]", 0, "00"], "FJ": ["679", "0(?:0|52)", "45\\d{5}|(?:0800\\d|[235-9])\\d{6}", [7, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[235-9]|45"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "FK": ["500", "00", "[2-7]\\d{4}", [5]], "FM": ["691", "00", "(?:[39]\\d\\d|820)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[389]"]]]], "FO": ["298", "00", "[2-9]\\d{5}", [6], [["(\\d{6})", "$1", ["[2-9]"]]], 0, 0, "(10(?:01|[12]0|88))"], "FR": ["33", "00", "[1-9]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0 $1"], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["[1-79]"], "0$1"]], "0"], "GA": ["241", "00", "(?:[067]\\d|11)\\d{6}|[2-7]\\d{6}", [7, 8], [["(\\d)(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-7]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["11|[67]"], "0$1"]], 0, 0, "0(11\\d{6}|60\\d{6}|61\\d{6}|6[256]\\d{6}|7[467]\\d{6})", "$1"], "GB": ["44", "00", "[1-357-9]\\d{9}|[18]\\d{8}|8\\d{6}", [7, 9, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["800", "8001", "80011", "800111", "8001111"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["845", "8454", "84546", "845464"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["800"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["1(?:38|5[23]|69|76|94)", "1(?:(?:38|69)7|5(?:24|39)|768|946)", "1(?:3873|5(?:242|39[4-6])|(?:697|768)[347]|9467)"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["1(?:[2-69][02-9]|[78])"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[25]|7(?:0|6[02-9])", "[25]|7(?:0|6(?:[03-9]|2[356]))"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1389]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["(?:1(?:1(?:3(?:[0-58]\\d\\d|73[0-35])|4(?:(?:[0-5]\\d|70)\\d|69[7-9])|(?:(?:5[0-26-9]|[78][0-49])\\d|6(?:[0-4]\\d|50))\\d)|(?:2(?:(?:0[024-9]|2[3-9]|3[3-79]|4[1-689]|[58][02-9]|6[0-47-9]|7[013-9]|9\\d)\\d|1(?:[0-7]\\d|8[0-3]))|(?:3(?:0\\d|1[0-8]|[25][02-9]|3[02-579]|[468][0-46-9]|7[1-35-79]|9[2-578])|4(?:0[03-9]|[137]\\d|[28][02-57-9]|4[02-69]|5[0-8]|[69][0-79])|5(?:0[1-35-9]|[16]\\d|2[024-9]|3[015689]|4[02-9]|5[03-9]|7[0-35-9]|8[0-468]|9[0-57-9])|6(?:0[034689]|1\\d|2[0-35689]|[38][013-9]|4[1-467]|5[0-69]|6[13-9]|7[0-8]|9[0-24578])|7(?:0[0246-9]|2\\d|3[0236-8]|4[03-9]|5[0-46-9]|6[013-9]|7[0-35-9]|8[024-9]|9[02-9])|8(?:0[35-9]|2[1-57-9]|3[02-578]|4[0-578]|5[124-9]|6[2-69]|7\\d|8[02-9]|9[02569])|9(?:0[02-589]|[18]\\d|2[02-689]|3[1-57-9]|4[2-9]|5[0-579]|6[2-47-9]|7[0-24578]|9[2-57]))\\d)\\d)|2(?:0[013478]|3[0189]|4[017]|8[0-46-9]|9[0-2])\\d{3})\\d{4}|1(?:2(?:0(?:46[1-4]|87[2-9])|545[1-79]|76(?:2\\d|3[1-8]|6[1-6])|9(?:7(?:2[0-4]|3[2-5])|8(?:2[2-8]|7[0-47-9]|8[3-5])))|3(?:6(?:38[2-5]|47[23])|8(?:47[04-9]|64[0157-9]))|4(?:044[1-7]|20(?:2[23]|8\\d)|6(?:0(?:30|5[2-57]|6[1-8]|7[2-8])|140)|8(?:052|87[1-3]))|5(?:2(?:4(?:3[2-79]|6\\d)|76\\d)|6(?:26[06-9]|686))|6(?:06(?:4\\d|7[4-79])|295[5-7]|35[34]\\d|47(?:24|61)|59(?:5[08]|6[67]|74)|9(?:55[0-4]|77[23]))|7(?:26(?:6[13-9]|7[0-7])|(?:442|688)\\d|50(?:2[0-3]|[3-68]2|76))|8(?:27[56]\\d|37(?:5[2-5]|8[239])|843[2-58])|9(?:0(?:0(?:6[1-8]|85)|52\\d)|3583|4(?:66[1-8]|9(?:2[01]|81))|63(?:23|3[1-4])|9561))\\d{3}", [9, 10]], ["7(?:457[0-57-9]|700[01]|911[028])\\d{5}|7(?:[1-3]\\d\\d|4(?:[0-46-9]\\d|5[0-689])|5(?:0[0-8]|[13-9]\\d|2[0-35-9])|7(?:0[1-9]|[1-7]\\d|8[02-9]|9[0-689])|8(?:[014-9]\\d|[23][0-8])|9(?:[024-9]\\d|1[02-9]|3[0-689]))\\d{6}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[2-49]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]], 0, " x"], "GD": ["1", "011", "(?:473|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "473$1", 0, "473"], "GE": ["995", "00", "(?:[3-57]\\d\\d|800)\\d{6}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["32"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[57]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[348]"], "0$1"]], "0"], "GF": ["594", "00", "(?:[56]94\\d|7093)\\d{5}|(?:80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]|9[47]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[89]"], "0$1"]], "0"], "GG": ["44", "00", "(?:1481|[357-9]\\d{3})\\d{6}|8\\d{6}(?:\\d{2})?", [7, 9, 10], 0, "0", 0, "([25-9]\\d{5})$|0", "1481$1", 0, 0, [["1481[25-9]\\d{5}", [10]], ["7(?:(?:781|839)\\d|911[17])\\d{5}", [10]], ["80[08]\\d{7}|800\\d{6}|8001111"], ["(?:8(?:4[2-5]|7[0-3])|9(?:[01]\\d|8[0-3]))\\d{7}|845464\\d", [7, 10]], ["70\\d{8}", [10]], 0, ["(?:3[0347]|55)\\d{8}", [10]], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}", [10]], ["56\\d{8}", [10]]]], "GH": ["233", "00", "(?:[235]\\d{3}|800)\\d{5}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[235]"], "0$1"]], "0"], "GI": ["350", "00", "(?:[25]\\d|60)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["2"]]]], "GL": ["299", "00", "(?:19|[2-689]\\d|70)\\d{4}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["19|[2-9]"]]]], "GM": ["220", "00", "[2-9]\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "GN": ["224", "00", "722\\d{6}|(?:3|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["3"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[67]"]]]], "GP": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0", 0, 0, 0, 0, 0, [["590(?:0[1-68]|[14][0-24-9]|2[0-68]|3[1-9]|5[3-579]|[68][0-689]|7[08]|9\\d)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "GQ": ["240", "00", "222\\d{6}|(?:3\\d|55|[89]0)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235]"]], ["(\\d{3})(\\d{6})", "$1 $2", ["[89]"]]]], "GR": ["30", "00", "5005000\\d{3}|8\\d{9,11}|(?:[269]\\d|70)\\d{8}", [10, 11, 12], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["21|7"]], ["(\\d{4})(\\d{6})", "$1 $2", ["2(?:2|3[2-57-9]|4[2-469]|5[2-59]|6[2-9]|7[2-69]|8[2-49])|5"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2689]"]], ["(\\d{3})(\\d{3,4})(\\d{5})", "$1 $2 $3", ["8"]]]], "GT": ["502", "00", "80\\d{6}|(?:1\\d{3}|[2-7])\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[2-8]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "GU": ["1", "011", "(?:[58]\\d\\d|671|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "671$1", 0, "671"], "GW": ["245", "00", "[49]\\d{8}|4\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["40"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"]]]], "GY": ["592", "001", "(?:[2-8]\\d{3}|9008)\\d{3}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "HK": ["852", "00(?:30|5[09]|[126-9]?)", "8[0-46-9]\\d{6,7}|9\\d{4,7}|(?:[2-7]|9\\d{3})\\d{7}", [5, 6, 7, 8, 9, 11], [["(\\d{3})(\\d{2,5})", "$1 $2", ["900", "9003"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[2-7]|8[1-4]|9(?:0[1-9]|[1-8])"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{3})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["9"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "HN": ["504", "00", "8\\d{10}|[237-9]\\d{7}", [8, 11], [["(\\d{4})(\\d{4})", "$1-$2", ["[237-9]"]]]], "HR": ["385", "00", "(?:[24-69]\\d|3[0-79])\\d{7}|80\\d{5,7}|[1-79]\\d{7}|6\\d{5,6}", [6, 7, 8, 9], [["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["6[01]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{4})(\\d{3})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6|7[245]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-57]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"]], "0"], "HT": ["509", "00", "(?:[2-489]\\d|55)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[2-589]"]]]], "HU": ["36", "00", "[235-7]\\d{8}|[1-9]\\d{7}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27][2-9]|3[2-7]|4[24-9]|5[2-79]|6|8[2-57-9]|9[2-69]"], "(06 $1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "06 $1"]], "06"], "ID": ["62", "00[89]", "00[1-9]\\d{9,14}|(?:[1-36]|8\\d{5})\\d{6}|00\\d{9}|[1-9]\\d{8,10}|[2-9]\\d{7}", [7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["15"]], ["(\\d{2})(\\d{5,9})", "$1 $2", ["2[124]|[36]1"], "(0$1)"], ["(\\d{3})(\\d{5,7})", "$1 $2", ["800"], "0$1"], ["(\\d{3})(\\d{5,8})", "$1 $2", ["[2-79]"], "(0$1)"], ["(\\d{3})(\\d{3,4})(\\d{3})", "$1-$2-$3", ["8[1-35-9]"], "0$1"], ["(\\d{3})(\\d{6,8})", "$1 $2", ["1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["804"], "0$1"], ["(\\d{3})(\\d)(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["80"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1-$2-$3", ["8"], "0$1"]], "0"], "IE": ["353", "00", "(?:1\\d|[2569])\\d{6,8}|4\\d{6,9}|7\\d{8}|8\\d{8,9}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["2[24-9]|47|58|6[237-9]|9[35-9]"], "(0$1)"], ["(\\d{3})(\\d{5})", "$1 $2", ["[45]0"], "(0$1)"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2569]|4[1-69]|7[14]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["70"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["81"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["4"], "(0$1)"], ["(\\d{2})(\\d)(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "IL": ["972", "0(?:0|1[2-9])", "1\\d{6}(?:\\d{3,5})?|[57]\\d{8}|[1-489]\\d{7}", [7, 8, 9, 10, 11, 12], [["(\\d{4})(\\d{3})", "$1-$2", ["125"]], ["(\\d{4})(\\d{2})(\\d{2})", "$1-$2-$3", ["121"]], ["(\\d)(\\d{3})(\\d{4})", "$1-$2-$3", ["[2-489]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1-$2-$3", ["12"]], ["(\\d{4})(\\d{6})", "$1-$2", ["159"]], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3-$4", ["1[7-9]"]], ["(\\d{3})(\\d{1,2})(\\d{3})(\\d{4})", "$1-$2 $3-$4", ["15"]]], "0"], "IM": ["44", "00", "1624\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([25-8]\\d{5})$|0", "1624$1", 0, "74576|(?:16|7[56])24"], "IN": ["91", "00", "(?:000800|[2-9]\\d\\d)\\d{7}|1\\d{7,12}", [8, 9, 10, 11, 12, 13], [["(\\d{8})", "$1", ["5(?:0|2[23]|3[03]|[67]1|88)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|888)", "5(?:0|2(?:21|3)|3(?:0|3[23])|616|717|8888)"], 0, 1], ["(\\d{4})(\\d{4,5})", "$1 $2", ["180", "1800"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["140"], 0, 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["11|2[02]|33|4[04]|79[1-7]|80[2-46]", "11|2[02]|33|4[04]|79(?:[1-6]|7[19])|80(?:[2-4]|6[0-589])", "11|2[02]|33|4[04]|79(?:[124-6]|3(?:[02-9]|1[0-24-9])|7(?:1|9[1-6]))|80(?:[2-4]|6[0-589])"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1(?:2[0-249]|3[0-25]|4[145]|[68]|7[1257])|2(?:1[257]|3[013]|4[01]|5[0137]|6[0158]|78|8[1568])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|5[12]|[78]1)|6(?:12|[2-4]1|5[17]|6[13]|80)|7(?:12|3[134]|4[47]|61|88)|8(?:16|2[014]|3[126]|6[136]|7[078]|8[34]|91)|(?:43|59|75)[15]|(?:1[59]|29|67|72)[14]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|674|7(?:(?:2[14]|3[34]|5[15])[2-6]|61[346]|88[0-8])|8(?:70[2-6]|84[235-7]|91[3-7])|(?:1(?:29|60|8[06])|261|552|6(?:12|[2-47]1|5[17]|6[13]|80)|7(?:12|31|4[47])|8(?:16|2[014]|3[126]|6[136]|7[78]|83))[2-7]", "1(?:2[0-24]|3[0-25]|4[145]|[59][14]|6[1-9]|7[1257]|8[1-57-9])|2(?:1[257]|3[013]|4[01]|5[0137]|6[058]|78|8[1568]|9[14])|3(?:26|4[1-3]|5[34]|6[01489]|7[02-46]|8[159])|4(?:1[36]|2[1-47]|3[15]|5[12]|6[0-26-9]|7[0-24-9]|8[013-57]|9[014-7])|5(?:1[025]|22|[36][25]|4[28]|[578]1|9[15])|6(?:12(?:[2-6]|7[0-8])|74[2-7])|7(?:(?:2[14]|5[15])[2-6]|3171|61[346]|88(?:[2-7]|82))|8(?:70[2-6]|84(?:[2356]|7[19])|91(?:[3-6]|7[19]))|73[134][2-6]|(?:74[47]|8(?:16|2[014]|3[126]|6[136]|7[78]|83))(?:[2-6]|7[19])|(?:1(?:29|60|8[06])|261|552|6(?:[2-4]1|5[17]|6[13]|7(?:1|4[0189])|80)|7(?:12|88[01]))[2-7]"], "0$1", 1], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2[2457-9]|3[2-5]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1[013-9]|28|3[129]|4[1-35689]|5[29]|6[02-5]|70)|807", "1(?:[2-479]|5[0235-9])|[2-5]|6(?:1[1358]|2(?:[2457]|84|95)|3(?:[2-4]|55)|4[235-7]|5[2-689]|6[24578]|7[235689]|8[1-6])|7(?:1(?:[013-8]|9[6-9])|28[6-8]|3(?:17|2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4|5[0-367])|70[13-7])|807[19]", "1(?:[2-479]|5(?:[0236-9]|5[013-9]))|[2-5]|6(?:2(?:84|95)|355|83)|73179|807(?:1|9[1-3])|(?:1552|6(?:1[1358]|2[2457]|3[2-4]|4[235-7]|5[2-689]|6[24578]|7[235689]|8[124-6])\\d|7(?:1(?:[013-8]\\d|9[6-9])|28[6-8]|3(?:2[0-49]|9[2-57])|4(?:1[2-4]|[29][0-7]|3[0-8]|[56]\\d|8[0-24-7])|5(?:2[1-3]|9[0-6])|6(?:0[5689]|2[5-9]|3[02-8]|4\\d|5[0-367])|70[13-7]))[2-7]"], "0$1", 1], ["(\\d{5})(\\d{5})", "$1 $2", ["[6-9]"], "0$1", 1], ["(\\d{4})(\\d{2,4})(\\d{4})", "$1 $2 $3", ["1(?:6|8[06])", "1(?:6|8[06]0)"], 0, 1], ["(\\d{4})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["18"], 0, 1]], "0"], "IO": ["246", "00", "3\\d{6}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["3"]]]], "IQ": ["964", "00", "(?:1|7\\d\\d)\\d{7}|[2-6]\\d{7,8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-6]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "IR": ["98", "00", "[1-9]\\d{9}|(?:[1-8]\\d\\d|9)\\d{3,4}", [4, 5, 6, 7, 10], [["(\\d{4,5})", "$1", ["96"], "0$1"], ["(\\d{2})(\\d{4,5})", "$1 $2", ["(?:1[137]|2[13-68]|3[1458]|4[145]|5[1468]|6[16]|7[1467]|8[13467])[12689]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["[1-8]"], "0$1"]], "0"], "IS": ["354", "00|1(?:0(?:01|[12]0)|100)", "(?:38\\d|[4-9])\\d{6}", [7, 9], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "IT": ["39", "00", "0\\d{5,10}|1\\d{8,10}|3(?:[0-8]\\d{7,10}|9\\d{7,8})|(?:43|55|70)\\d{8}|8\\d{5}(?:\\d{2,4})?", [6, 7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{4,6})", "$1 $2", ["0[26]"]], ["(\\d{3})(\\d{3,6})", "$1 $2", ["0[13-57-9][0159]|8(?:03|4[17]|9[2-5])", "0[13-57-9][0159]|8(?:03|4[17]|9(?:2|3[04]|[45][0-4]))"]], ["(\\d{4})(\\d{2,6})", "$1 $2", ["0(?:[13-579][2-46-8]|8[236-8])"]], ["(\\d{4})(\\d{4})", "$1 $2", ["894"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[26]|5"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["1(?:44|[679])|[378]|43"]], ["(\\d{3})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["0[13-57-9][0159]|14"]], ["(\\d{2})(\\d{4})(\\d{5})", "$1 $2 $3", ["0[26]"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["3"]]], 0, 0, 0, 0, 0, 0, [["0669[0-79]\\d{1,6}|0(?:1(?:[0159]\\d|[27][1-5]|31|4[1-4]|6[1356]|8[2-57])|2\\d\\d|3(?:[0159]\\d|2[1-4]|3[12]|[48][1-6]|6[2-59]|7[1-7])|4(?:[0159]\\d|[23][1-9]|4[245]|6[1-5]|7[1-4]|81)|5(?:[0159]\\d|2[1-5]|3[2-6]|4[1-79]|6[4-6]|7[1-578]|8[3-8])|6(?:[0-57-9]\\d|6[0-8])|7(?:[0159]\\d|2[12]|3[1-7]|4[2-46]|6[13569]|7[13-6]|8[1-59])|8(?:[0159]\\d|2[3-578]|3[1-356]|[6-8][1-5])|9(?:[0159]\\d|[238][1-5]|4[12]|6[1-8]|7[1-6]))\\d{2,7}", [6, 7, 8, 9, 10, 11]], ["3[2-9]\\d{7,8}|(?:31|43)\\d{8}", [9, 10]], ["80(?:0\\d{3}|3)\\d{3}", [6, 9]], ["(?:0878\\d{3}|89(?:2\\d|3[04]|4(?:[0-4]|[5-9]\\d\\d)|5[0-4]))\\d\\d|(?:1(?:44|6[346])|89(?:38|5[5-9]|9))\\d{6}", [6, 8, 9, 10]], ["1(?:78\\d|99)\\d{6}", [9, 10]], ["3[2-8]\\d{9,10}", [11, 12]], 0, 0, ["55\\d{8}", [10]], ["84(?:[08]\\d{3}|[17])\\d{3}", [6, 9]]]], "JE": ["44", "00", "1534\\d{6}|(?:[3578]\\d|90)\\d{8}", [10], 0, "0", 0, "([0-24-8]\\d{5})$|0", "1534$1", 0, 0, [["1534[0-24-8]\\d{5}"], ["7(?:(?:(?:50|82)9|937)\\d|7(?:00[378]|97\\d))\\d{5}"], ["80(?:07(?:35|81)|8901)\\d{4}"], ["(?:8(?:4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|90(?:066[59]|1810|71(?:07|55)))\\d{4}"], ["701511\\d{4}"], 0, ["(?:3(?:0(?:07(?:35|81)|8901)|3\\d{4}|4(?:4(?:4(?:05|42|69)|703)|5(?:041|800))|7(?:0002|1206))|55\\d{4})\\d{4}"], ["76(?:464|652)\\d{5}|76(?:0[0-28]|2[356]|34|4[01347]|5[49]|6[0-369]|77|8[14]|9[139])\\d{6}"], ["56\\d{8}"]]], "JM": ["1", "011", "(?:[58]\\d\\d|658|900)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "658|876"], "JO": ["962", "00", "(?:(?:[2689]|7\\d)\\d|32|53)\\d{6}", [8, 9], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2356]|87"], "(0$1)"], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["70"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["7"], "0$1"]], "0"], "JP": ["81", "010", "00[1-9]\\d{6,14}|[257-9]\\d{9}|(?:00|[1-9]\\d\\d)\\d{6}", [8, 9, 10, 11, 12, 13, 14, 15, 16, 17], [["(\\d{3})(\\d{3})(\\d{3})", "$1-$2-$3", ["(?:12|57|99)0"], "0$1"], ["(\\d{4})(\\d)(\\d{4})", "$1-$2-$3", ["1(?:26|3[79]|4[56]|5[4-68]|6[3-5])|499|5(?:76|97)|746|8(?:3[89]|47|51)|9(?:80|9[16])", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:76|97)9|7468|8(?:3(?:8[7-9]|96)|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]", "1(?:267|3(?:7[247]|9[278])|466|5(?:47|58|64)|6(?:3[245]|48|5[4-68]))|499[2468]|5(?:769|979[2-69])|7468|8(?:3(?:8[7-9]|96[2457-9])|477|51[2-9])|9(?:802|9(?:1[23]|69))|1(?:45|58)[67]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["60"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2-$3", ["[36]|4(?:2[09]|7[01])", "[36]|4(?:2(?:0|9[02-69])|7(?:0[019]|1))"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["1(?:1|5[45]|77|88|9[69])|2(?:2[1-37]|3[0-269]|4[59]|5|6[24]|7[1-358]|8[1369]|9[0-38])|4(?:[28][1-9]|3[0-57]|[45]|6[248]|7[2-579]|9[29])|5(?:2|3[0459]|4[0-369]|5[29]|8[02389]|9[0-389])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9[2-6])|8(?:2[124589]|3[26-9]|49|51|6|7[0-468]|8[68]|9[019])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9[1-489])", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2(?:[127]|3[014-9])|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9[19])|62|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|8[1-9]|9[29])|5(?:2|3(?:[045]|9[0-8])|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0-2469])|3(?:[29]|60)|49|51|6(?:[0-24]|36|5[0-3589]|7[23]|9[01459])|7[0-468]|8[68])|9(?:[23][1-9]|4[15]|5[138]|6[1-3]|7[156]|8[189]|9(?:[1289]|3[34]|4[0178]))|(?:264|837)[016-9]|2(?:57|93)[015-9]|(?:25[0468]|422|838)[01]|(?:47[59]|59[89]|8(?:6[68]|9))[019]", "1(?:1|5(?:4[018]|5[017])|77|88|9[69])|2(?:2[127]|3[0-269]|4[59]|5(?:[1-3]|5[0-69]|9(?:17|99))|6(?:2|4[016-9])|7(?:[1-35]|8[0189])|8(?:[16]|3[0134]|9[0-5])|9(?:[028]|17))|4(?:2(?:[13-79]|8[014-6])|3[0-57]|[45]|6[248]|7[2-47]|9[29])|5(?:2|3(?:[045]|9(?:[0-58]|6[4-9]|7[0-35689]))|4[0-369]|5[29]|8[02389]|9[0-3])|7(?:2[02-46-9]|34|[58]|6[0249]|7[57]|9(?:[23]|4[0-59]|5[01569]|6[0167]))|8(?:2(?:[1258]|4[0-39]|9[0169])|3(?:[29]|60|7(?:[017-9]|6[6-8]))|49|51|6(?:[0-24]|36[2-57-9]|5(?:[0-389]|5[23])|6(?:[01]|9[178])|7(?:2[2-468]|3[78])|9[0145])|7[0-468]|8[68])|9(?:4[15]|5[138]|7[156]|8[189]|9(?:[1289]|3(?:31|4[357])|4[0178]))|(?:8294|96)[1-3]|2(?:57|93)[015-9]|(?:223|8699)[014-9]|(?:25[0468]|422|838)[01]|(?:48|8292|9[23])[1-9]|(?:47[59]|59[89]|8(?:68|9))[019]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3", ["[14]|[289][2-9]|5[3-9]|7[2-4679]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2-$3", ["800"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[257-9]"], "0$1"]], "0", 0, "(000[259]\\d{6})$|(?:(?:003768)0?)|0", "$1"], "KE": ["254", "000", "(?:[17]\\d\\d|900)\\d{6}|(?:2|80)0\\d{6,7}|[4-6]\\d{6,8}", [7, 8, 9, 10], [["(\\d{2})(\\d{5,7})", "$1 $2", ["[24-6]"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[17]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0"], "KG": ["996", "00", "8\\d{9}|[235-9]\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["3(?:1[346]|[24-79])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-79]|88"], "0$1"], ["(\\d{3})(\\d{3})(\\d)(\\d{2,3})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "KH": ["855", "00[14-9]", "1\\d{9}|[1-9]\\d{7,8}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "KI": ["686", "00", "(?:[37]\\d|6[0-79])\\d{6}|(?:[2-48]\\d|50)\\d{3}", [5, 8], 0, "0"], "KM": ["269", "00", "[3478]\\d{6}", [7], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[3478]"]]]], "KN": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "869$1", 0, "869"], "KP": ["850", "00|99", "85\\d{6}|(?:19\\d|[2-7])\\d{7}", [8, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-7]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"]], "0"], "KR": ["82", "00(?:[125689]|3(?:[46]5|91)|7(?:00|27|3|55|6[126]))", "00[1-9]\\d{8,11}|(?:[12]|5\\d{3})\\d{7}|[13-6]\\d{9}|(?:[1-6]\\d|80)\\d{7}|[3-6]\\d{4,5}|(?:00|7)0\\d{8}", [5, 6, 8, 9, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3,4})", "$1-$2", ["(?:3[1-3]|[46][1-4]|5[1-5])1"], "0$1"], ["(\\d{4})(\\d{4})", "$1-$2", ["1"]], ["(\\d)(\\d{3,4})(\\d{4})", "$1-$2-$3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1-$2-$3", ["[36]0|8"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1-$2-$3", ["[1346]|5[1-5]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2-$3", ["[57]"], "0$1"], ["(\\d{2})(\\d{5})(\\d{4})", "$1-$2-$3", ["5"], "0$1"]], "0", 0, "0(8(?:[1-46-8]|5\\d\\d))?"], "KW": ["965", "00", "18\\d{5}|(?:[2569]\\d|41)\\d{6}", [7, 8], [["(\\d{4})(\\d{3,4})", "$1 $2", ["[169]|2(?:[235]|4[1-35-9])|52"]], ["(\\d{3})(\\d{5})", "$1 $2", ["[245]"]]]], "KY": ["1", "011", "(?:345|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "345$1", 0, "345"], "KZ": ["7", "810", "(?:33622|8\\d{8})\\d{5}|[78]\\d{9}", [10, 14], 0, "8", 0, 0, 0, 0, "33|7", 0, "8~10"], "LA": ["856", "00", "[23]\\d{9}|3\\d{8}|(?:[235-8]\\d|41)\\d{6}", [8, 9, 10], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2[13]|3[14]|[4-8]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["30[0135-9]"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0"], "LB": ["961", "00", "[27-9]\\d{7}|[13-9]\\d{6}", [7, 8], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[13-69]|7(?:[2-57]|62|8[0-7]|9[04-9])|8[02-9]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[27-9]"]]], "0"], "LC": ["1", "011", "(?:[58]\\d\\d|758|900)\\d{7}", [10], 0, "1", 0, "([2-8]\\d{6})$|1", "758$1", 0, "758"], "LI": ["423", "00", "[68]\\d{8}|(?:[2378]\\d|90)\\d{5}", [7, 9], [["(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3", ["[2379]|8(?:0[09]|7)", "[2379]|8(?:0(?:02|9)|7)"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["69"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]]], "0", 0, "(1001)|0"], "LK": ["94", "00", "[1-9]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[1-689]"], "0$1"]], "0"], "LR": ["231", "00", "(?:[245]\\d|33|77|88)\\d{7}|(?:2\\d|[4-6])\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["4[67]|[56]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-578]"], "0$1"]], "0"], "LS": ["266", "00", "(?:[256]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2568]"]]]], "LT": ["370", "00", "(?:[3469]\\d|52|[78]0)\\d{6}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["52[0-7]"], "(0-$1)", 1], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0 $1", 1], ["(\\d{2})(\\d{6})", "$1 $2", ["37|4(?:[15]|6[1-8])"], "(0-$1)", 1], ["(\\d{3})(\\d{5})", "$1 $2", ["[3-6]"], "(0-$1)", 1]], "0", 0, "[08]"], "LU": ["352", "00", "35[013-9]\\d{4,8}|6\\d{8}|35\\d{2,4}|(?:[2457-9]\\d|3[0-46-9])\\d{2,9}", [4, 5, 6, 7, 8, 9, 10, 11], [["(\\d{2})(\\d{3})", "$1 $2", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["2(?:0[2-689]|[2-9])|[3-57]|8(?:0[2-9]|[13-9])|9(?:0[89]|[2-579])"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["20[2-689]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4", ["2(?:[0367]|4[3-8])"]], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["80[01]|90[015]"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3 $4", ["20"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})(\\d{1,2})", "$1 $2 $3 $4 $5", ["2(?:[0367]|4[3-8])"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{1,5})", "$1 $2 $3 $4", ["[3-57]|8[13-9]|9(?:0[89]|[2-579])|(?:2|80)[2-9]"]]], 0, 0, "(15(?:0[06]|1[12]|[35]5|4[04]|6[26]|77|88|99)\\d)"], "LV": ["371", "00", "(?:[268]\\d|90)\\d{6}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[269]|8[01]"]]]], "LY": ["218", "00", "[2-9]\\d{8}", [9], [["(\\d{2})(\\d{7})", "$1-$2", ["[2-9]"], "0$1"]], "0"], "MA": ["212", "00", "[5-8]\\d{8}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5[45]"], "0$1"], ["(\\d{4})(\\d{5})", "$1-$2", ["5(?:2[2-46-9]|3[3-9]|9)|8(?:0[89]|92)"], "0$1"], ["(\\d{2})(\\d{7})", "$1-$2", ["8"], "0$1"], ["(\\d{3})(\\d{6})", "$1-$2", ["[5-7]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["5(?:2(?:[0-25-79]\\d|3[1-578]|4[02-46-8]|8[0235-7])|3(?:[0-47]\\d|5[02-9]|6[02-8]|8[014-9]|9[3-9])|(?:4[067]|5[03])\\d)\\d{5}"], ["(?:6(?:[0-79]\\d|8[0-247-9])|7(?:[0167]\\d|2[0-4]|5[01]|8[0-3]))\\d{6}"], ["80[0-7]\\d{6}"], ["89\\d{7}"], 0, 0, 0, 0, ["(?:592(?:4[0-2]|93)|80[89]\\d\\d)\\d{4}"]]], "MC": ["377", "00", "(?:[3489]|6\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["4"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[389]"]], ["(\\d)(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4 $5", ["6"], "0$1"]], "0"], "MD": ["373", "00", "(?:[235-7]\\d|[89]0)\\d{6}", [8], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["22|3"], "0$1"], ["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["[25-7]"], "0$1"]], "0"], "ME": ["382", "00", "(?:20|[3-79]\\d)\\d{6}|80\\d{6,7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[2-9]"], "0$1"]], "0"], "MF": ["590", "00", "(?:590\\d|7090)\\d{5}|(?:69|80|9\\d)\\d{7}", [9], 0, "0", 0, 0, 0, 0, 0, [["590(?:0[079]|[14]3|[27][79]|3[03-7]|5[0-268]|87)\\d{4}"], ["(?:69(?:0\\d\\d|1(?:2[2-9]|3[0-5])|4(?:0[89]|1[2-6]|9\\d)|6(?:1[016-9]|5[0-4]|[67]\\d))|7090[0-4])\\d{4}"], ["80[0-5]\\d{6}"], 0, 0, 0, 0, 0, ["9(?:(?:39[5-7]|76[018])\\d|475[0-5])\\d{4}"]]], "MG": ["261", "00", "[23]\\d{8}", [9], [["(\\d{2})(\\d{2})(\\d{3})(\\d{2})", "$1 $2 $3 $4", ["[23]"], "0$1"]], "0", 0, "([24-9]\\d{6})$|0", "20$1"], "MH": ["692", "011", "329\\d{4}|(?:[256]\\d|45)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1-$2", ["[2-6]"]]], "1"], "MK": ["389", "00", "[2-578]\\d{7}", [8], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2|34[47]|4(?:[37]7|5[47]|64)"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[347]"], "0$1"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[58]"], "0$1"]], "0"], "ML": ["223", "00", "[24-9]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24-9]"]]]], "MM": ["95", "00", "1\\d{5,7}|95\\d{6}|(?:[4-7]|9[0-46-9])\\d{6,8}|(?:2|8\\d)\\d{5,8}", [6, 7, 8, 9, 10], [["(\\d)(\\d{2})(\\d{3})", "$1 $2 $3", ["16|2"], "0$1"], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["4(?:[2-46]|5[3-5])|5|6(?:[1-689]|7[235-7])|7(?:[0-4]|5[2-7])|8[1-5]|(?:60|86)[23]"], "0$1"], ["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[12]|452|678|86", "[12]|452|6788|86"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[4-7]|8[1-35]"], "0$1"], ["(\\d)(\\d{3})(\\d{4,6})", "$1 $2 $3", ["9(?:2[0-4]|[35-9]|4[137-9])"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["92"], "0$1"], ["(\\d)(\\d{5})(\\d{4})", "$1 $2 $3", ["9"], "0$1"]], "0"], "MN": ["976", "001", "[12]\\d{7,9}|[5-9]\\d{7}", [8, 9, 10], [["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["[12]1"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[5-9]"]], ["(\\d{3})(\\d{5,6})", "$1 $2", ["[12]2[1-3]"], "0$1"], ["(\\d{4})(\\d{5,6})", "$1 $2", ["[12](?:27|3[2-8]|4[2-68]|5[1-4689])", "[12](?:27|3[2-8]|4[2-68]|5[1-4689])[0-3]"], "0$1"], ["(\\d{5})(\\d{4,5})", "$1 $2", ["[12]"], "0$1"]], "0"], "MO": ["853", "00", "0800\\d{3}|(?:28|[68]\\d)\\d{6}", [7, 8], [["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[268]"]]]], "MP": ["1", "011", "[58]\\d{9}|(?:67|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "670$1", 0, "670"], "MQ": ["596", "00", "(?:596\\d|7091)\\d{5}|(?:69|[89]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-79]|8(?:0[6-9]|[36])"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "MR": ["222", "00", "(?:[2-4]\\d\\d|800)\\d{5}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-48]"]]]], "MS": ["1", "011", "(?:[58]\\d\\d|664|900)\\d{7}", [10], 0, "1", 0, "([34]\\d{6})$|1", "664$1", 0, "664"], "MT": ["356", "00", "3550\\d{4}|(?:[2579]\\d\\d|800)\\d{5}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[2357-9]"]]]], "MU": ["230", "0(?:0|[24-7]0|3[03])", "(?:[57]|8\\d\\d)\\d{7}|[2-468]\\d{6}", [7, 8, 10], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-46]|8[013]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[57]"]], ["(\\d{5})(\\d{5})", "$1 $2", ["8"]]], 0, 0, 0, 0, 0, 0, 0, "020"], "MV": ["960", "0(?:0|19)", "(?:800|9[0-57-9]\\d)\\d{7}|[34679]\\d{6}", [7, 10], [["(\\d{3})(\\d{4})", "$1-$2", ["[34679]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MW": ["265", "00", "(?:[1289]\\d|31|77)\\d{7}|1\\d{6}", [7, 9], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["1[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[137-9]"], "0$1"]], "0"], "MX": ["52", "0[09]", "[2-9]\\d{9}", [10], [["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["33|5[56]|81"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[2-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "MY": ["60", "00", "1\\d{8,9}|(?:3\\d|[4-9])\\d{7}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1-$2 $3", ["[4-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1-$2 $3", ["1(?:[02469]|[378][1-9]|53)|8", "1(?:[02469]|[37][1-9]|53|8(?:[1-46-9]|5[7-9]))|8"], "0$1"], ["(\\d)(\\d{4})(\\d{4})", "$1-$2 $3", ["3"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{4})", "$1-$2-$3-$4", ["1(?:[367]|80)"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1-$2 $3", ["15"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4})", "$1-$2 $3", ["1"], "0$1"]], "0"], "MZ": ["258", "00", "(?:2|8\\d)\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2|8[2-79]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["8"]]]], "NA": ["264", "00", "[68]\\d{7,8}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["88"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["87"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "NC": ["687", "00", "(?:050|[2-57-9]\\d\\d)\\d{3}", [6], [["(\\d{2})(\\d{2})(\\d{2})", "$1.$2.$3", ["[02-57-9]"]]]], "NE": ["227", "00", "[027-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["08"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[089]|2[013]|7[0467]"]]]], "NF": ["672", "00", "[13]\\d{5}", [6], [["(\\d{2})(\\d{4})", "$1 $2", ["1[0-3]"]], ["(\\d)(\\d{5})", "$1 $2", ["[13]"]]], 0, 0, "([0-258]\\d{4})$", "3$1"], "NG": ["234", "009", "38\\d{6}|[78]\\d{9,13}|(?:20|9\\d)\\d{8}", [8, 10, 11, 12, 13, 14], [["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["3"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[7-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["20[129]"], "0$1"], ["(\\d{4})(\\d{2})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{3})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["[78]"], "0$1"], ["(\\d{3})(\\d{5})(\\d{5,6})", "$1 $2 $3", ["[78]"], "0$1"]], "0"], "NI": ["505", "00", "(?:1800|[25-8]\\d{3})\\d{4}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[125-8]"]]]], "NL": ["31", "00", "(?:[124-7]\\d\\d|3(?:[02-9]\\d|1[0-8]))\\d{6}|8\\d{6,9}|9\\d{6,10}|1\\d{4,5}", [5, 6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{4,7})", "$1 $2", ["[89]0"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["66"], "0$1"], ["(\\d)(\\d{8})", "$1 $2", ["6"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["1[16-8]|2[259]|3[124]|4[17-9]|5[124679]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-578]|91"], "0$1"], ["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3", ["9"], "0$1"]], "0"], "NO": ["47", "00", "(?:0|[2-9]\\d{3})\\d{4}", [5, 8], [["(\\d{3})(\\d{2})(\\d{3})", "$1 $2 $3", ["8"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[2-79]"]]], 0, 0, 0, 0, 0, "[02-689]|7[0-8]"], "NP": ["977", "00", "(?:1\\d|9)\\d{9}|[1-9]\\d{7}", [8, 10, 11], [["(\\d)(\\d{7})", "$1-$2", ["1[2-6]"], "0$1"], ["(\\d{2})(\\d{6})", "$1-$2", ["1[01]|[2-8]|9(?:[1-59]|[67][2-6])"], "0$1"], ["(\\d{3})(\\d{7})", "$1-$2", ["9"]]], "0"], "NR": ["674", "00", "(?:444|(?:55|8\\d)\\d|666)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[4-68]"]]]], "NU": ["683", "00", "(?:[4-7]|888\\d)\\d{3}", [4, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["8"]]]], "NZ": ["64", "0(?:0|161)", "[1289]\\d{9}|50\\d{5}(?:\\d{2,3})?|[27-9]\\d{7,8}|(?:[34]\\d|6[0-35-9])\\d{6}|8\\d{4,6}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,8})", "$1 $2", ["8[1-79]"], "0$1"], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["50[036-8]|8|90", "50(?:[0367]|88)|8|90"], "0$1"], ["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["24|[346]|7[2-57-9]|9[2-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:10|74)|[589]"], "0$1"], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["1|2[028]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,5})", "$1 $2 $3", ["2(?:[169]|7[0-35-9])|7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "00"], "OM": ["968", "00", "(?:1505|[279]\\d{3}|500)\\d{4}|800\\d{5,6}", [7, 8, 9], [["(\\d{3})(\\d{4,6})", "$1 $2", ["[58]"]], ["(\\d{2})(\\d{6})", "$1 $2", ["2"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[179]"]]]], "PA": ["507", "00", "(?:00800|8\\d{3})\\d{6}|[68]\\d{7}|[1-57-9]\\d{6}", [7, 8, 10, 11], [["(\\d{3})(\\d{4})", "$1-$2", ["[1-57-9]"]], ["(\\d{4})(\\d{4})", "$1-$2", ["[68]"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]]], "PE": ["51", "00|19(?:1[124]|77|90)00", "(?:[14-8]|9\\d)\\d{7}", [8, 9], [["(\\d{3})(\\d{5})", "$1 $2", ["80"], "(0$1)"], ["(\\d)(\\d{7})", "$1 $2", ["1"], "(0$1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[4-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"]]], "0", 0, 0, 0, 0, 0, 0, "00", " Anexo "], "PF": ["689", "00", "4\\d{5}(?:\\d{2})?|8\\d{7,8}", [6, 8, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["44"]], ["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["4|8[7-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "PG": ["675", "00|140[1-3]", "(?:180|[78]\\d{3})\\d{4}|(?:[2-589]\\d|64)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["18|[2-69]|85"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[78]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "PH": ["63", "00", "(?:[2-7]|9\\d)\\d{8}|2\\d{5}|(?:1800|8)\\d{7,9}", [6, 8, 9, 10, 11, 12, 13], [["(\\d)(\\d{5})", "$1 $2", ["2"], "(0$1)"], ["(\\d{4})(\\d{4,6})", "$1 $2", ["3(?:23|39|46)|4(?:2[3-6]|[35]9|4[26]|76)|544|88[245]|(?:52|64|86)2", "3(?:230|397|461)|4(?:2(?:35|[46]4|51)|396|4(?:22|63)|59[347]|76[15])|5(?:221|446)|642[23]|8(?:622|8(?:[24]2|5[13]))"], "(0$1)"], ["(\\d{5})(\\d{4})", "$1 $2", ["346|4(?:27|9[35])|883", "3469|4(?:279|9(?:30|56))|8834"], "(0$1)"], ["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["2"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|8[2-8]"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]], ["(\\d{4})(\\d{1,2})(\\d{3})(\\d{4})", "$1 $2 $3 $4", ["1"]]], "0"], "PK": ["92", "00", "122\\d{6}|[24-8]\\d{10,11}|9(?:[013-9]\\d{8,10}|2(?:[01]\\d\\d|2(?:[06-8]\\d|1[01]))\\d{7})|(?:[2-8]\\d{3}|92(?:[0-7]\\d|8[1-9]))\\d{6}|[24-9]\\d{8}|[89]\\d{7}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,7})", "$1 $2 $3", ["[89]0"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["1"]], ["(\\d{3})(\\d{6,7})", "$1 $2", ["2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:2[2-8]|3[27-9]|4[2-6]|6[3569]|9[25-8])", "9(?:2[3-8]|98)|(?:2(?:3[2358]|4[2-4]|9[2-8])|45[3479]|54[2-467]|60[468]|72[236]|8(?:2[2-689]|3[23578]|4[3478]|5[2356])|9(?:22|3[27-9]|4[2-6]|6[3569]|9[25-7]))[2-9]"], "(0$1)"], ["(\\d{2})(\\d{7,8})", "$1 $2", ["(?:2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91)[2-9]"], "(0$1)"], ["(\\d{5})(\\d{5})", "$1 $2", ["58"], "(0$1)"], ["(\\d{3})(\\d{7})", "$1 $2", ["3"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["2[125]|4[0-246-9]|5[1-35-7]|6[1-8]|7[14]|8[16]|91"], "(0$1)"], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[24-9]"], "(0$1)"]], "0"], "PL": ["48", "00", "(?:6|8\\d\\d)\\d{7}|[1-9]\\d{6}(?:\\d{2})?|[26]\\d{5}", [6, 7, 8, 9, 10], [["(\\d{5})", "$1", ["19"]], ["(\\d{3})(\\d{3})", "$1 $2", ["11|20|64"]], ["(\\d{2})(\\d{2})(\\d{3})", "$1 $2 $3", ["(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])1", "(?:1[2-8]|2[2-69]|3[2-4]|4[1-468]|5[24-689]|6[1-3578]|7[14-7]|8[1-79]|9[145])19"]], ["(\\d{3})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["64"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["21|39|45|5[0137]|6[0469]|7[02389]|8(?:0[14]|8)"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["1[2-8]|[2-7]|8[1-79]|9[145]"]], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["8"]]]], "PM": ["508", "00", "[45]\\d{5}|(?:708|8\\d\\d)\\d{6}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[45]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"], "0$1"]], "0"], "PR": ["1", "011", "(?:[589]\\d\\d|787)\\d{7}", [10], 0, "1", 0, 0, 0, 0, "787|939"], "PS": ["970", "00", "[2489]2\\d{6}|(?:1\\d|5)\\d{8}", [8, 9, 10], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["[2489]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "PT": ["351", "00", "1693\\d{5}|(?:[26-9]\\d|30)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["2[12]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["16|[236-9]"]]]], "PW": ["680", "01[12]", "(?:[24-8]\\d\\d|345|900)\\d{4}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-9]"]]]], "PY": ["595", "00", "59\\d{4,6}|9\\d{5,10}|(?:[2-46-8]\\d|5[0-8])\\d{4,7}", [6, 7, 8, 9, 10, 11], [["(\\d{3})(\\d{3,6})", "$1 $2", ["[2-9]0"], "0$1"], ["(\\d{2})(\\d{5})", "$1 $2", ["[26]1|3[289]|4[1246-8]|7[1-3]|8[1-36]"], "(0$1)"], ["(\\d{3})(\\d{4,5})", "$1 $2", ["2[279]|3[13-5]|4[359]|5|6(?:[34]|7[1-46-8])|7[46-8]|85"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2[14-68]|3[26-9]|4[1246-8]|6(?:1|75)|7[1-35]|8[1-36]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["87"]], ["(\\d{3})(\\d{6})", "$1 $2", ["9(?:[5-79]|8[1-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-8]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["9"]]], "0"], "QA": ["974", "00", "800\\d{4}|(?:2|800)\\d{6}|(?:0080|[3-7])\\d{7}", [7, 8, 9, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["2[16]|8"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[3-7]"]]]], "RE": ["262", "00", "709\\d{6}|(?:26|[689]\\d)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, [["26(?:2\\d\\d|3(?:0\\d|1[0-6]))\\d{4}"], ["(?:69(?:2\\d\\d|3(?:[06][0-6]|1[013]|2[0-2]|3[0-39]|4\\d|5[0-5]|7[0-37]|8[0-8]|9[0-479]))|7092[0-3])\\d{4}"], ["80\\d{7}"], ["89[1-37-9]\\d{6}"], 0, 0, 0, 0, ["9(?:399[0-3]|479[0-5]|76(?:2[278]|3[0-37]))\\d{4}"], ["8(?:1[019]|2[0156]|84|90)\\d{6}"]]], "RO": ["40", "00", "(?:[236-8]\\d|90)\\d{7}|[23]\\d{5}", [6, 9], [["(\\d{3})(\\d{3})", "$1 $2", ["2[3-6]", "2[3-6]\\d9"], "0$1"], ["(\\d{2})(\\d{4})", "$1 $2", ["219|31"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[23]1"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[236-9]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, " int "], "RS": ["381", "00", "38[02-9]\\d{6,9}|6\\d{7,9}|90\\d{4,8}|38\\d{5,6}|(?:7\\d\\d|800)\\d{3,9}|(?:[12]\\d|3[0-79])\\d{5,10}", [6, 7, 8, 9, 10, 11, 12], [["(\\d{3})(\\d{3,9})", "$1 $2", ["(?:2[389]|39)0|[7-9]"], "0$1"], ["(\\d{2})(\\d{5,10})", "$1 $2", ["[1-36]"], "0$1"]], "0"], "RU": ["7", "810", "8\\d{13}|[347-9]\\d{9}", [10, 14], [["(\\d{4})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-8]|2[1-9])", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:1[23]|[2-9]2))", "7(?:1(?:[0-356]2|4[29]|7|8[27])|2(?:13[03-69]|62[013-9]))|72[1-57-9]2"], "8 ($1)", 1], ["(\\d{5})(\\d)(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["7(?:1[0-68]|2[1-9])", "7(?:1(?:[06][3-6]|[18]|2[35]|[3-5][3-5])|2(?:[13][3-5]|[24-689]|7[457]))", "7(?:1(?:0(?:[356]|4[023])|[18]|2(?:3[013-9]|5)|3[45]|43[013-79]|5(?:3[1-8]|4[1-7]|5)|6(?:3[0-35-9]|[4-6]))|2(?:1(?:3[178]|[45])|[24-689]|3[35]|7[457]))|7(?:14|23)4[0-8]|71(?:33|45)[1-79]"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "8 ($1)", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[349]|8(?:[02-7]|1[1-8])"], "8 ($1)", 1], ["(\\d{4})(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["8"], "8 ($1)"]], "8", 0, 0, 0, 0, "3[04-689]|[489]", 0, "8~10"], "RW": ["250", "00", "(?:06|[27]\\d\\d|[89]00)\\d{6}", [8, 9], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[7-9]"], "0$1"]], "0"], "SA": ["966", "00", "92\\d{7}|(?:[15]|8\\d)\\d{8}", [9, 10], [["(\\d{4})(\\d{5})", "$1 $2", ["9"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["5"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["81"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]]], "0"], "SB": ["677", "0[01]", "[6-9]\\d{6}|[1-6]\\d{4}", [5, 7], [["(\\d{2})(\\d{5})", "$1 $2", ["6[89]|7|8[4-9]|9(?:[1-8]|9[0-8])"]]]], "SC": ["248", "010|0[0-2]", "(?:[2489]\\d|64)\\d{5}", [7], [["(\\d)(\\d{3})(\\d{3})", "$1 $2 $3", ["[246]|9[57]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "SD": ["249", "00", "[19]\\d{8}", [9], [["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "SE": ["46", "00", "(?:[26]\\d\\d|9)\\d{9}|[1-9]\\d{8}|[1-689]\\d{7}|[1-4689]\\d{6}|2\\d{5}", [6, 7, 8, 9, 10, 12], [["(\\d{2})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["20"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{4})", "$1-$2", ["9(?:00|39|44|9)"], "0$1", 0, "$1 $2"], ["(\\d{2})(\\d{3})(\\d{2})", "$1-$2 $3", ["[12][136]|3[356]|4[0246]|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3"], ["(\\d)(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2,3})(\\d{2})", "$1-$2 $3", ["1[2457]|2(?:[247-9]|5[0138])|3[0247-9]|4[1357-9]|5[0-35-9]|6(?:[125689]|4[02-57]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3"], ["(\\d{3})(\\d{2,3})(\\d{3})", "$1-$2 $3", ["9(?:00|39|44)"], "0$1", 0, "$1 $2 $3"], ["(\\d{2})(\\d{2,3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["1[13689]|2[0136]|3[1356]|4[0246]|54|6[03]|90[1-9]"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["10|7"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1-$2 $3 $4", ["8"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1-$2 $3 $4", ["[13-5]|2(?:[247-9]|5[0138])|6(?:[124-689]|7[0-2])|9(?:[125-8]|3[02-5]|4[0-3])"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{2})(\\d{3})", "$1-$2 $3 $4", ["9"], "0$1", 0, "$1 $2 $3 $4"], ["(\\d{3})(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1-$2 $3 $4 $5", ["[26]"], "0$1", 0, "$1 $2 $3 $4 $5"]], "0"], "SG": ["65", "0[0-3]\\d", "(?:(?:1\\d|8)\\d\\d|7000)\\d{7}|[3689]\\d{7}", [8, 10, 11], [["(\\d{4})(\\d{4})", "$1 $2", ["[369]|8(?:0[1-9]|[1-9])"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"]], ["(\\d{4})(\\d{4})(\\d{3})", "$1 $2 $3", ["7"]], ["(\\d{4})(\\d{3})(\\d{4})", "$1 $2 $3", ["1"]]]], "SH": ["290", "00", "(?:[256]\\d|8)\\d{3}", [4, 5], 0, 0, 0, 0, 0, 0, "[256]"], "SI": ["386", "00|10(?:22|66|88|99)", "[1-7]\\d{7}|8\\d{4,7}|90\\d{4,6}", [5, 6, 7, 8], [["(\\d{2})(\\d{3,6})", "$1 $2", ["8[09]|9"], "0$1"], ["(\\d{3})(\\d{5})", "$1 $2", ["59|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[37][01]|4[0139]|51|6"], "0$1"], ["(\\d)(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[1-57]"], "(0$1)"]], "0", 0, 0, 0, 0, 0, 0, "00"], "SJ": ["47", "00", "0\\d{4}|(?:[489]\\d|79)\\d{6}", [5, 8], 0, 0, 0, 0, 0, 0, "79"], "SK": ["421", "00", "[2-689]\\d{8}|[2-59]\\d{6}|[2-5]\\d{5}", [6, 7, 9], [["(\\d)(\\d{2})(\\d{3,4})", "$1 $2 $3", ["21"], "0$1"], ["(\\d{2})(\\d{2})(\\d{2,3})", "$1 $2 $3", ["[3-5][1-8]1", "[3-5][1-8]1[67]"], "0$1"], ["(\\d)(\\d{3})(\\d{3})(\\d{2})", "$1/$2 $3 $4", ["2"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[689]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1/$2 $3 $4", ["[3-5]"], "0$1"]], "0"], "SL": ["232", "00", "(?:[237-9]\\d|66)\\d{6}", [8], [["(\\d{2})(\\d{6})", "$1 $2", ["[236-9]"], "(0$1)"]], "0"], "SM": ["378", "00", "(?:0549|[5-7]\\d)\\d{6}", [8, 10], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[5-7]"]], ["(\\d{4})(\\d{6})", "$1 $2", ["0"]]], 0, 0, "([89]\\d{5})$", "0549$1"], "SN": ["221", "00", "(?:[378]\\d|93)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[379]"]]]], "SO": ["252", "00", "[346-9]\\d{8}|[12679]\\d{7}|[1-5]\\d{6}|[1348]\\d{5}", [6, 7, 8, 9], [["(\\d{2})(\\d{4})", "$1 $2", ["8[125]"]], ["(\\d{6})", "$1", ["[134]"]], ["(\\d)(\\d{6})", "$1 $2", ["[15]|2[0-79]|3[0-46-8]|4[0-7]"]], ["(\\d)(\\d{7})", "$1 $2", ["(?:2|90)4|[67]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[348]|64|79|90"]], ["(\\d{2})(\\d{5,7})", "$1 $2", ["1|28|6[0-35-9]|77|9[2-9]"]]], "0"], "SR": ["597", "00", "(?:[2-5]|68|[78]\\d)\\d{5}", [6, 7], [["(\\d{2})(\\d{2})(\\d{2})", "$1-$2-$3", ["56"]], ["(\\d{3})(\\d{3})", "$1-$2", ["[2-5]"]], ["(\\d{3})(\\d{4})", "$1-$2", ["[6-8]"]]]], "SS": ["211", "00", "[19]\\d{8}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[19]"], "0$1"]], "0"], "ST": ["239", "00", "(?:22|9\\d)\\d{5}", [7], [["(\\d{3})(\\d{4})", "$1 $2", ["[29]"]]]], "SV": ["503", "00", "[267]\\d{7}|(?:80\\d|900)\\d{4}(?:\\d{4})?", [7, 8, 11], [["(\\d{3})(\\d{4})", "$1 $2", ["[89]"]], ["(\\d{4})(\\d{4})", "$1 $2", ["[267]"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["[89]"]]]], "SX": ["1", "011", "7215\\d{6}|(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "(5\\d{6})$|1", "721$1", 0, "721"], "SY": ["963", "00", "[1-359]\\d{8}|[1-5]\\d{7}", [8, 9], [["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-4]|5[1-3]"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[59]"], "0$1", 1]], "0"], "SZ": ["268", "00", "0800\\d{4}|(?:[237]\\d|900)\\d{6}", [8, 9], [["(\\d{4})(\\d{4})", "$1 $2", ["[0237]"]], ["(\\d{5})(\\d{4})", "$1 $2", ["9"]]]], "TA": ["290", "00", "8\\d{3}", [4], 0, 0, 0, 0, 0, 0, "8"], "TC": ["1", "011", "(?:[58]\\d\\d|649|900)\\d{7}", [10], 0, "1", 0, "([2-479]\\d{6})$|1", "649$1", 0, "649"], "TD": ["235", "00|16", "(?:22|[689]\\d|77)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[26-9]"]]], 0, 0, 0, 0, 0, 0, 0, "00"], "TG": ["228", "00", "[279]\\d{7}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[279]"]]]], "TH": ["66", "00[1-9]", "(?:001800|[2-57]|[689]\\d)\\d{7}|1\\d{7,9}", [8, 9, 10, 13], [["(\\d)(\\d{3})(\\d{4})", "$1 $2 $3", ["2"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[13-9]"], "0$1"], ["(\\d{4})(\\d{3})(\\d{3})", "$1 $2 $3", ["1"]]], "0"], "TJ": ["992", "810", "[0-57-9]\\d{8}", [9], [["(\\d{6})(\\d)(\\d{2})", "$1 $2 $3", ["331", "3317"]], ["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["44[02-479]|[34]7"]], ["(\\d{4})(\\d)(\\d{4})", "$1 $2 $3", ["3(?:[1245]|3[12])"]], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[0-57-9]"]]], 0, 0, 0, 0, 0, 0, 0, "8~10"], "TK": ["690", "00", "[2-47]\\d{3,6}", [4, 5, 6, 7]], "TL": ["670", "00", "7\\d{7}|(?:[2-47]\\d|[89]0)\\d{5}", [7, 8], [["(\\d{3})(\\d{4})", "$1 $2", ["[2-489]|70"]], ["(\\d{4})(\\d{4})", "$1 $2", ["7"]]]], "TM": ["993", "810", "(?:[1-6]\\d|71)\\d{6}", [8], [["(\\d{2})(\\d{2})(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["12"], "(8 $1)"], ["(\\d{3})(\\d)(\\d{2})(\\d{2})", "$1 $2-$3-$4", ["[1-5]"], "(8 $1)"], ["(\\d{2})(\\d{6})", "$1 $2", ["[67]"], "8 $1"]], "8", 0, 0, 0, 0, 0, 0, "8~10"], "TN": ["216", "00", "[2-57-9]\\d{7}", [8], [["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-57-9]"]]]], "TO": ["676", "00", "(?:0800|(?:[5-8]\\d\\d|999)\\d)\\d{3}|[2-8]\\d{4}", [5, 7], [["(\\d{2})(\\d{3})", "$1-$2", ["[2-4]|50|6[09]|7[0-24-69]|8[05]"]], ["(\\d{4})(\\d{3})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[5-9]"]]]], "TR": ["90", "00", "4\\d{6}|8\\d{11,12}|(?:[2-58]\\d\\d|900)\\d{7}", [7, 10, 12, 13], [["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["512|8[01589]|90"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["5(?:[0-59]|61)", "5(?:[0-59]|61[06])", "5(?:[0-59]|61[06]1)"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[24][1-8]|3[1-9]"], "(0$1)", 1], ["(\\d{3})(\\d{3})(\\d{6,7})", "$1 $2 $3", ["80"], "0$1", 1]], "0"], "TT": ["1", "011", "(?:[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-46-8]\\d{6})$|1", "868$1", 0, "868"], "TV": ["688", "00", "(?:2|7\\d\\d|90)\\d{4}", [5, 6, 7], [["(\\d{2})(\\d{3})", "$1 $2", ["2"]], ["(\\d{2})(\\d{4})", "$1 $2", ["90"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "TW": ["886", "0(?:0[25-79]|19)", "[2-689]\\d{8}|7\\d{9,10}|[2-8]\\d{7}|2\\d{6}", [7, 8, 9, 10, 11], [["(\\d{2})(\\d)(\\d{4})", "$1 $2 $3", ["202"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[258]0"], "0$1"], ["(\\d)(\\d{3,4})(\\d{4})", "$1 $2 $3", ["[23568]|4(?:0[02-48]|[1-47-9])|7[1-9]", "[23568]|4(?:0[2-48]|[1-47-9])|(?:400|7)[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{2})(\\d{4})(\\d{4,5})", "$1 $2 $3", ["7"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, 0, "#"], "TZ": ["255", "00[056]", "(?:[25-8]\\d|41|90)\\d{7}", [9], [["(\\d{3})(\\d{2})(\\d{4})", "$1 $2 $3", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[24]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["5"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[67]"], "0$1"]], "0"], "UA": ["380", "00", "[89]\\d{9}|[3-9]\\d{8}", [9, 10], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["6[12][29]|(?:3[1-8]|4[136-8]|5[12457]|6[49])2|(?:56|65)[24]", "6[12][29]|(?:35|4[1378]|5[12457]|6[49])2|(?:56|65)[24]|(?:3[1-46-8]|46)2[013-9]"], "0$1"], ["(\\d{4})(\\d{5})", "$1 $2", ["3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6[0135689]|7[4-6])|6(?:[12][3-7]|[459])", "3[1-8]|4(?:[1367]|[45][6-9]|8[4-6])|5(?:[1-5]|6(?:[015689]|3[02389])|7[4-6])|6(?:[12][3-7]|[459])"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[3-7]|89|9[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[89]"], "0$1"]], "0", 0, 0, 0, 0, 0, 0, "0~0"], "UG": ["256", "00[057]", "800\\d{6}|(?:[29]0|[347]\\d)\\d{7}", [9], [["(\\d{4})(\\d{5})", "$1 $2", ["202", "2024"], "0$1"], ["(\\d{3})(\\d{6})", "$1 $2", ["[27-9]|4(?:6[45]|[7-9])"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[34]"], "0$1"]], "0"], "US": ["1", "011", "[2-9]\\d{9}|3\\d{6}", [10], [["(\\d{3})(\\d{4})", "$1-$2", ["310"], 0, 1], ["(\\d{3})(\\d{3})(\\d{4})", "($1) $2-$3", ["[2-9]"], 0, 1, "$1-$2-$3"]], "1", 0, 0, 0, 0, 0, [["(?:3052(?:0[0-8]|[1-9]\\d)|5056(?:[0-35-9]\\d|4[468])|7302[0-4]\\d)\\d{4}|(?:305[3-9]|472[24]|505[2-57-9]|7306|983[2-47-9])\\d{6}|(?:2(?:0[1-35-9]|1[02-9]|2[03-57-9]|3[1459]|4[08]|5[1-46]|6[0279]|7[0269]|8[13])|3(?:0[1-47-9]|1[02-9]|2[0135-79]|3[0-24679]|4[167]|5[0-2]|6[01349]|8[056])|4(?:0[124-9]|1[02-579]|2[3-5]|3[0245]|4[023578]|58|6[349]|7[0589]|8[04])|5(?:0[1-47-9]|1[0235-8]|20|3[0149]|4[01]|5[179]|6[1-47]|7[0-5]|8[0256])|6(?:0[1-35-9]|1[024-9]|2[03689]|3[016]|4[0156]|5[01679]|6[0-279]|78|8[0-29])|7(?:0[1-46-8]|1[2-9]|2[04-8]|3[1247]|4[037]|5[47]|6[02359]|7[0-59]|8[156])|8(?:0[1-68]|1[02-8]|2[068]|3[0-2589]|4[03578]|5[046-9]|6[02-5]|7[028])|9(?:0[1346-9]|1[02-9]|2[0589]|3[0146-8]|4[01357-9]|5[12469]|7[0-389]|8[04-69]))[2-9]\\d{6}"], [""], ["8(?:00|33|44|55|66|77|88)[2-9]\\d{6}"], ["900[2-9]\\d{6}"], ["52(?:3(?:[2-46-9][02-9]\\d|5(?:[02-46-9]\\d|5[0-46-9]))|4(?:[2-478][02-9]\\d|5(?:[034]\\d|2[024-9]|5[0-46-9])|6(?:0[1-9]|[2-9]\\d)|9(?:[05-9]\\d|2[0-5]|49)))\\d{4}|52[34][2-9]1[02-9]\\d{4}|5(?:00|2[125-9]|33|44|66|77|88)[2-9]\\d{6}"], 0, 0, 0, ["305209\\d{4}"]]], "UY": ["598", "0(?:0|1[3-9]\\d)", "0004\\d{2,9}|[1249]\\d{7}|(?:[49]\\d|80)\\d{5}", [6, 7, 8, 9, 10, 11, 12, 13], [["(\\d{3})(\\d{3,4})", "$1 $2", ["0"]], ["(\\d{3})(\\d{4})", "$1 $2", ["[49]0|8"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["9"], "0$1"], ["(\\d{4})(\\d{4})", "$1 $2", ["[124]"]], ["(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3", ["0"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{2,4})", "$1 $2 $3 $4", ["0"]]], "0", 0, 0, 0, 0, 0, 0, "00", " int. "], "UZ": ["998", "00", "(?:20|33|[5-79]\\d|88)\\d{7}", [9], [["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["[235-9]"]]]], "VA": ["39", "00", "0\\d{5,10}|3[0-8]\\d{7,10}|55\\d{8}|8\\d{5}(?:\\d{2,4})?|(?:1\\d|39)\\d{7,8}", [6, 7, 8, 9, 10, 11, 12], 0, 0, 0, 0, 0, 0, "06698"], "VC": ["1", "011", "(?:[58]\\d\\d|784|900)\\d{7}", [10], 0, "1", 0, "([2-7]\\d{6})$|1", "784$1", 0, "784"], "VE": ["58", "00", "[68]00\\d{7}|(?:[24]\\d|[59]0)\\d{8}", [10], [["(\\d{3})(\\d{7})", "$1-$2", ["[24-689]"], "0$1"]], "0"], "VG": ["1", "011", "(?:284|[58]\\d\\d|900)\\d{7}", [10], 0, "1", 0, "([2-578]\\d{6})$|1", "284$1", 0, "284"], "VI": ["1", "011", "[58]\\d{9}|(?:34|90)0\\d{7}", [10], 0, "1", 0, "([2-9]\\d{6})$|1", "340$1", 0, "340"], "VN": ["84", "00", "[12]\\d{9}|[135-9]\\d{8}|[16]\\d{7}|[16-8]\\d{6}", [7, 8, 9, 10], [["(\\d{2})(\\d{5})", "$1 $2", ["80"], "0$1", 1], ["(\\d{4})(\\d{4,6})", "$1 $2", ["1"], 0, 1], ["(\\d{2})(\\d{3})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["6"], "0$1", 1], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[357-9]"], "0$1", 1], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["2[48]"], "0$1", 1], ["(\\d{3})(\\d{4})(\\d{3})", "$1 $2 $3", ["2"], "0$1", 1]], "0"], "VU": ["678", "00", "[57-9]\\d{6}|(?:[238]\\d|48)\\d{3}", [5, 7], [["(\\d{3})(\\d{4})", "$1 $2", ["[57-9]"]]]], "WF": ["681", "00", "(?:40|72|8\\d{4})\\d{4}|[89]\\d{5}", [6, 9], [["(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3", ["[47-9]"]], ["(\\d{3})(\\d{2})(\\d{2})(\\d{2})", "$1 $2 $3 $4", ["8"]]]], "WS": ["685", "0", "(?:[2-6]|8\\d{5})\\d{4}|[78]\\d{6}|[68]\\d{5}", [5, 6, 7, 10], [["(\\d{5})", "$1", ["[2-5]|6[1-9]"]], ["(\\d{3})(\\d{3,7})", "$1 $2", ["[68]"]], ["(\\d{2})(\\d{5})", "$1 $2", ["7"]]]], "XK": ["383", "00", "2\\d{7,8}|3\\d{7,11}|(?:4\\d\\d|[89]00)\\d{5}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{5})", "$1 $2", ["[89]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3})", "$1 $2 $3", ["[2-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["2|39"], "0$1"], ["(\\d{2})(\\d{7,10})", "$1 $2", ["3"], "0$1"]], "0"], "YE": ["967", "00", "(?:1|7\\d)\\d{7}|[1-7]\\d{6}", [7, 8, 9], [["(\\d)(\\d{3})(\\d{3,4})", "$1 $2 $3", ["[1-6]|7(?:[24-6]|8[0-7])"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["7"], "0$1"]], "0"], "YT": ["262", "00", "7093\\d{5}|(?:80|9\\d)\\d{7}|(?:26|63)9\\d{6}", [9], 0, "0", 0, 0, 0, 0, 0, [["269(?:0[0-467]|15|5[0-4]|6\\d|[78]0)\\d{4}"], ["(?:639(?:0[0-79]|1[019]|[267]\\d|3[09]|40|5[05-9]|9[04-79])|7093[5-7])\\d{4}"], ["80\\d{7}"], 0, 0, 0, 0, 0, ["9(?:(?:39|47)8[01]|769\\d)\\d{4}"]]], "ZA": ["27", "00", "[1-79]\\d{8}|8\\d{4,9}", [5, 6, 7, 8, 9, 10], [["(\\d{2})(\\d{3,4})", "$1 $2", ["8[1-4]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{2,3})", "$1 $2 $3", ["8[1-4]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["860"], "0$1"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["[1-9]"], "0$1"], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["8"], "0$1"]], "0"], "ZM": ["260", "00", "800\\d{6}|(?:21|63|[79]\\d)\\d{7}", [9], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[28]"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["[79]"], "0$1"]], "0"], "ZW": ["263", "00", "2(?:[0-57-9]\\d{6,8}|6[0-24-9]\\d{6,7})|[38]\\d{9}|[35-8]\\d{8}|[3-6]\\d{7}|[1-689]\\d{6}|[1-3569]\\d{5}|[1356]\\d{4}", [5, 6, 7, 8, 9, 10], [["(\\d{3})(\\d{3,5})", "$1 $2", ["2(?:0[45]|2[278]|[49]8)|3(?:[09]8|17)|6(?:[29]8|37|75)|[23][78]|(?:33|5[15]|6[68])[78]"], "0$1"], ["(\\d)(\\d{3})(\\d{2,4})", "$1 $2 $3", ["[49]"], "0$1"], ["(\\d{3})(\\d{4})", "$1 $2", ["80"], "0$1"], ["(\\d{2})(\\d{7})", "$1 $2", ["24|8[13-59]|(?:2[05-79]|39|5[45]|6[15-8])2", "2(?:02[014]|4|[56]20|[79]2)|392|5(?:42|525)|6(?:[16-8]21|52[013])|8[13-59]"], "(0$1)"], ["(\\d{2})(\\d{3})(\\d{4})", "$1 $2 $3", ["7"], "0$1"], ["(\\d{3})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["2(?:1[39]|2[0157]|[378]|[56][14])|3(?:12|29)", "2(?:1[39]|2[0157]|[378]|[56][14])|3(?:123|29)"], "0$1"], ["(\\d{4})(\\d{6})", "$1 $2", ["8"], "0$1"], ["(\\d{2})(\\d{3,5})", "$1 $2", ["1|2(?:0[0-36-9]|12|29|[56])|3(?:1[0-689]|[24-6])|5(?:[0236-9]|1[2-4])|6(?:[013-59]|7[0-46-9])|(?:33|55|6[68])[0-69]|(?:29|3[09]|62)[0-79]"], "0$1"], ["(\\d{2})(\\d{3})(\\d{3,4})", "$1 $2 $3", ["29[013-9]|39|54"], "0$1"], ["(\\d{4})(\\d{3,5})", "$1 $2", ["(?:25|54)8", "258|5483"], "0$1"]], "0"] }, "nonGeographic": { "800": ["800", 0, "(?:00|[1-9]\\d)\\d{6}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["\\d"]]], 0, 0, 0, 0, 0, 0, [0, 0, ["(?:00|[1-9]\\d)\\d{6}"]]], "808": ["808", 0, "[1-9]\\d{7}", [8], [["(\\d{4})(\\d{4})", "$1 $2", ["[1-9]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, 0, ["[1-9]\\d{7}"]]], "870": ["870", 0, "7\\d{11}|[235-7]\\d{8}", [9, 12], [["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["[235-7]"]]], 0, 0, 0, 0, 0, 0, [0, ["(?:[356]|774[45])\\d{8}|7[6-8]\\d{7}"], 0, 0, 0, 0, 0, 0, ["2\\d{8}", [9]]]], "878": ["878", 0, "10\\d{10}", [12], [["(\\d{2})(\\d{5})(\\d{5})", "$1 $2 $3", ["1"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["10\\d{10}"]]], "881": ["881", 0, "6\\d{9}|[0-36-9]\\d{8}", [9, 10], [["(\\d)(\\d{3})(\\d{5})", "$1 $2 $3", ["[0-37-9]"]], ["(\\d)(\\d{3})(\\d{5,6})", "$1 $2 $3", ["6"]]], 0, 0, 0, 0, 0, 0, [0, ["6\\d{9}|[0-36-9]\\d{8}"]]], "882": ["882", 0, "[13]\\d{6}(?:\\d{2,5})?|[19]\\d{7}|(?:[25]\\d\\d|4)\\d{7}(?:\\d{2})?", [7, 8, 9, 10, 11, 12], [["(\\d{2})(\\d{5})", "$1 $2", ["16|342"]], ["(\\d{2})(\\d{6})", "$1 $2", ["49"]], ["(\\d{2})(\\d{2})(\\d{4})", "$1 $2 $3", ["1[36]|9"]], ["(\\d{2})(\\d{4})(\\d{3})", "$1 $2 $3", ["3[23]"]], ["(\\d{2})(\\d{3,4})(\\d{4})", "$1 $2 $3", ["16"]], ["(\\d{2})(\\d{4})(\\d{4})", "$1 $2 $3", ["10|23|3(?:[15]|4[57])|4|51"]], ["(\\d{3})(\\d{4})(\\d{4})", "$1 $2 $3", ["34"]], ["(\\d{2})(\\d{4,5})(\\d{5})", "$1 $2 $3", ["[1-35]"]]], 0, 0, 0, 0, 0, 0, [0, ["342\\d{4}|(?:337|49)\\d{6}|(?:3(?:2|47|7\\d{3})|50\\d{3})\\d{7}", [7, 8, 9, 10, 12]], 0, 0, 0, ["348[57]\\d{7}", [11]], 0, 0, ["1(?:3(?:0[0347]|[13][0139]|2[035]|4[013568]|6[0459]|7[06]|8[15-8]|9[0689])\\d{4}|6\\d{5,10})|(?:345\\d|9[89])\\d{6}|(?:10|2(?:3|85\\d)|3(?:[15]|[69]\\d\\d)|4[15-8]|51)\\d{8}"]]], "883": ["883", 0, "(?:[1-4]\\d|51)\\d{6,10}", [8, 9, 10, 11, 12], [["(\\d{3})(\\d{3})(\\d{2,8})", "$1 $2 $3", ["[14]|2[24-689]|3[02-689]|51[24-9]"]], ["(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3", ["510"]], ["(\\d{3})(\\d{3})(\\d{4})", "$1 $2 $3", ["21"]], ["(\\d{4})(\\d{4})(\\d{4})", "$1 $2 $3", ["51[13]"]], ["(\\d{3})(\\d{3})(\\d{3})(\\d{3})", "$1 $2 $3 $4", ["[235]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, 0, 0, ["(?:2(?:00\\d\\d|10)|(?:370[1-9]|51\\d0)\\d)\\d{7}|51(?:00\\d{5}|[24-9]0\\d{4,7})|(?:1[0-79]|2[24-689]|3[02-689]|4[0-4])0\\d{5,9}"]]], "888": ["888", 0, "\\d{11}", [11], [["(\\d{3})(\\d{3})(\\d{5})", "$1 $2 $3"]], 0, 0, 0, 0, 0, 0, [0, 0, 0, 0, 0, 0, ["\\d{11}"]]], "979": ["979", 0, "[1359]\\d{8}", [9], [["(\\d)(\\d{4})(\\d{4})", "$1 $2 $3", ["[1359]"]]], 0, 0, 0, 0, 0, 0, [0, 0, 0, ["[1359]\\d{8}"]]] } };
50216
50346
  function withMetadataArgument(func, _arguments) {
50217
50347
  var args = Array.prototype.slice.call(_arguments);
50218
50348
  args.push(metadata);
@@ -51825,9 +51955,8 @@ function _arrayLikeToArray$1(arr, len) {
51825
51955
  return arr2;
51826
51956
  }
51827
51957
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51828
- var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51958
+ var countries = _ref.countries, metadata2 = _ref.metadata;
51829
51959
  metadata2 = new Metadata(metadata2);
51830
- var matchingCountries = [];
51831
51960
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51832
51961
  var country = _step.value;
51833
51962
  metadata2.country(country);
@@ -51839,19 +51968,9 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51839
51968
  phone: nationalPhoneNumber,
51840
51969
  country
51841
51970
  }, void 0, metadata2.metadata)) {
51842
- if (defaultCountry) {
51843
- if (country === defaultCountry) {
51844
- return country;
51845
- }
51846
- matchingCountries.push(country);
51847
- } else {
51848
- return country;
51849
- }
51971
+ return country;
51850
51972
  }
51851
51973
  }
51852
- if (matchingCountries.length > 0) {
51853
- return matchingCountries[0];
51854
- }
51855
51974
  }
51856
51975
  function getCountryByCallingCode(callingCode, _ref) {
51857
51976
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;