@bagelink/vue 0.0.957 → 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 (199) 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 +1518 -1424
  162. package/dist/index.mjs +1518 -1424
  163. package/dist/utils/BagelFormUtils.d.ts +2 -30
  164. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  165. package/dist/utils/objects.d.ts +1 -0
  166. package/dist/vue.css +13814 -0
  167. package/package.json +1 -1
  168. package/dist/components/AddressSaerch.vue.d.ts +0 -7
  169. package/dist/components/AddressSaerch.vue.d.ts.map +0 -1
  170. package/dist/components/Popover.vue.d.ts +0 -10
  171. package/dist/components/Popover.vue.d.ts.map +0 -1
  172. package/dist/components/sortable/Animation.d.ts +0 -43
  173. package/dist/components/sortable/Animation.d.ts.map +0 -1
  174. package/dist/components/sortable/BrowserInfo.d.ts +0 -7
  175. package/dist/components/sortable/BrowserInfo.d.ts.map +0 -1
  176. package/dist/components/sortable/EventDispatcher.d.ts +0 -13
  177. package/dist/components/sortable/EventDispatcher.d.ts.map +0 -1
  178. package/dist/components/sortable/PluginManager.d.ts +0 -27
  179. package/dist/components/sortable/PluginManager.d.ts.map +0 -1
  180. package/dist/components/sortable/Sortable.d.ts +0 -81
  181. package/dist/components/sortable/Sortable.d.ts.map +0 -1
  182. package/dist/components/sortable/index.d.ts +0 -5
  183. package/dist/components/sortable/index.d.ts.map +0 -1
  184. package/dist/components/sortable/utils.d.ts +0 -49
  185. package/dist/components/sortable/utils.d.ts.map +0 -1
  186. package/dist/composables/drag-n-drop/useDraggable.d.ts +0 -2
  187. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +0 -1
  188. package/dist/plugins/drag-n-drop/draggable.d.ts +0 -4
  189. package/dist/plugins/drag-n-drop/draggable.d.ts.map +0 -1
  190. package/dist/plugins/drag-n-drop/droppable.d.ts +0 -4
  191. package/dist/plugins/drag-n-drop/droppable.d.ts.map +0 -1
  192. package/dist/plugins/drag-n-drop/index.d.ts +0 -5
  193. package/dist/plugins/drag-n-drop/index.d.ts.map +0 -1
  194. package/dist/plugins/drag-n-drop/useDraggable.d.ts +0 -8
  195. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +0 -1
  196. package/dist/plugins/drag-n-drop/useDroppable.d.ts +0 -7
  197. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +0 -1
  198. package/dist/types/materialIcon.d.ts +0 -2
  199. package/dist/types/materialIcon.d.ts.map +0 -1
package/dist/index.mjs CHANGED
@@ -7553,10 +7553,9 @@ async function convertValueToCoords(state2, options) {
7553
7553
  crossAxis: 0,
7554
7554
  alignmentAxis: null
7555
7555
  } : {
7556
- mainAxis: 0,
7557
- crossAxis: 0,
7558
- alignmentAxis: null,
7559
- ...rawValue
7556
+ mainAxis: rawValue.mainAxis || 0,
7557
+ crossAxis: rawValue.crossAxis || 0,
7558
+ alignmentAxis: rawValue.alignmentAxis
7560
7559
  };
7561
7560
  if (alignment && typeof alignmentAxis === "number") {
7562
7561
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7661,7 +7660,11 @@ const shift$1 = function(options) {
7661
7660
  ...limitedCoords,
7662
7661
  data: {
7663
7662
  x: limitedCoords.x - x2,
7664
- y: limitedCoords.y - y2
7663
+ y: limitedCoords.y - y2,
7664
+ enabled: {
7665
+ [mainAxis]: checkMainAxis,
7666
+ [crossAxis]: checkCrossAxis
7667
+ }
7665
7668
  }
7666
7669
  };
7667
7670
  }
@@ -7675,6 +7678,7 @@ const size = function(options) {
7675
7678
  name: "size",
7676
7679
  options,
7677
7680
  async fn(state2) {
7681
+ var _state$middlewareData, _state$middlewareData2;
7678
7682
  const {
7679
7683
  placement,
7680
7684
  rects,
@@ -7710,10 +7714,11 @@ const size = function(options) {
7710
7714
  const noShift = !state2.middlewareData.shift;
7711
7715
  let availableHeight = overflowAvailableHeight;
7712
7716
  let availableWidth = overflowAvailableWidth;
7713
- if (isYAxis) {
7714
- availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7715
- } else {
7716
- availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7717
+ if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7718
+ availableWidth = maximumClippingWidth;
7719
+ }
7720
+ if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7721
+ availableHeight = maximumClippingHeight;
7717
7722
  }
7718
7723
  if (noShift && !alignment) {
7719
7724
  const xMin = max$1(overflow.left, 0);
@@ -20712,6 +20717,12 @@ let Node$2 = class Node2 {
20712
20717
  this.content = content || Fragment.empty;
20713
20718
  }
20714
20719
  /**
20720
+ The array of this node's child nodes.
20721
+ */
20722
+ get children() {
20723
+ return this.content.content;
20724
+ }
20725
+ /**
20715
20726
  The size of this node, as defined by the integer-based [indexing
20716
20727
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20717
20728
  amount of characters. For other leaf nodes, it is one. For
@@ -21398,7 +21409,7 @@ function resolveName(stream, name) {
21398
21409
  let result2 = [];
21399
21410
  for (let typeName in types) {
21400
21411
  let type4 = types[typeName];
21401
- if (type4.groups.indexOf(name) > -1)
21412
+ if (type4.isInGroup(name))
21402
21413
  result2.push(type4);
21403
21414
  }
21404
21415
  if (result2.length == 0)
@@ -21636,6 +21647,13 @@ let NodeType$1 = class NodeType2 {
21636
21647
  return this.isLeaf || !!this.spec.atom;
21637
21648
  }
21638
21649
  /**
21650
+ Return true when this node type is part of the given
21651
+ [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21652
+ */
21653
+ isInGroup(group) {
21654
+ return this.groups.indexOf(group) > -1;
21655
+ }
21656
+ /**
21639
21657
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21640
21658
  */
21641
21659
  get whitespace() {
@@ -22391,6 +22409,7 @@ class ParseContext {
22391
22409
  contentDOM = rule.contentElement;
22392
22410
  this.findAround(dom, contentDOM, true);
22393
22411
  this.addAll(contentDOM, marks);
22412
+ this.findAround(dom, contentDOM, false);
22394
22413
  }
22395
22414
  if (sync && this.sync(startIn))
22396
22415
  this.open--;
@@ -22566,7 +22585,7 @@ class ParseContext {
22566
22585
  return false;
22567
22586
  } else {
22568
22587
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22569
- if (!next || next.name != part && next.groups.indexOf(part) == -1)
22588
+ if (!next || next.name != part && !next.isInGroup(part))
22570
22589
  return false;
22571
22590
  depth--;
22572
22591
  }
@@ -23826,8 +23845,24 @@ function canJoin(doc2, pos) {
23826
23845
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23827
23846
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23828
23847
  }
23848
+ function canAppendWithSubstitutedLinebreaks(a2, b2) {
23849
+ if (!b2.content.size)
23850
+ a2.type.compatibleContent(b2.type);
23851
+ let match2 = a2.contentMatchAt(a2.childCount);
23852
+ let { linebreakReplacement } = a2.type.schema;
23853
+ for (let i2 = 0; i2 < b2.childCount; i2++) {
23854
+ let child = b2.child(i2);
23855
+ let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23856
+ match2 = match2.matchType(type3);
23857
+ if (!match2)
23858
+ return false;
23859
+ if (!a2.type.allowsMarks(child.marks))
23860
+ return false;
23861
+ }
23862
+ return match2.validEnd;
23863
+ }
23829
23864
  function joinable(a2, b2) {
23830
- return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23865
+ return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23831
23866
  }
23832
23867
  function joinPoint(doc2, pos, dir = -1) {
23833
23868
  let $pos = doc2.resolve(pos);
@@ -23852,8 +23887,31 @@ function joinPoint(doc2, pos, dir = -1) {
23852
23887
  }
23853
23888
  }
23854
23889
  function join(tr2, pos, depth) {
23855
- let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23856
- tr2.step(step);
23890
+ let convertNewlines = null;
23891
+ let { linebreakReplacement } = tr2.doc.type.schema;
23892
+ let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23893
+ if (linebreakReplacement && beforeType.inlineContent) {
23894
+ let pre = beforeType.whitespace == "pre";
23895
+ let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23896
+ if (pre && !supportLinebreak)
23897
+ convertNewlines = false;
23898
+ else if (!pre && supportLinebreak)
23899
+ convertNewlines = true;
23900
+ }
23901
+ let mapFrom = tr2.steps.length;
23902
+ if (convertNewlines === false) {
23903
+ let $after = tr2.doc.resolve(pos + depth);
23904
+ replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23905
+ }
23906
+ if (beforeType.inlineContent)
23907
+ clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23908
+ let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23909
+ tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23910
+ if (convertNewlines === true) {
23911
+ let $full = tr2.doc.resolve(start2);
23912
+ replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23913
+ }
23914
+ return tr2;
23857
23915
  }
23858
23916
  function insertPoint(doc2, pos, nodeType) {
23859
23917
  let $pos = doc2.resolve(pos);
@@ -24249,7 +24307,7 @@ function deleteRange$1(tr2, from2, to2) {
24249
24307
  return tr2.delete($from.before(depth), $to.after(depth));
24250
24308
  }
24251
24309
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24252
- if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24310
+ 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)))
24253
24311
  return tr2.delete($from.before(d2), to2);
24254
24312
  }
24255
24313
  tr2.delete(from2, to2);
@@ -26403,17 +26461,18 @@ class ViewDesc {
26403
26461
  // custom things with the selection. Note that this falls apart when
26404
26462
  // a selection starts in such a node and ends in another, in which
26405
26463
  // case we just use whatever domFromPos produces as a best effort.
26406
- setSelection(anchor, head, root2, force = false) {
26464
+ setSelection(anchor, head, view, force = false) {
26407
26465
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26408
26466
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26409
26467
  let child = this.children[i2], end2 = offset2 + child.size;
26410
26468
  if (from2 > offset2 && to2 < end2)
26411
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26469
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26412
26470
  offset2 = end2;
26413
26471
  }
26414
26472
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26415
26473
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26416
- let domSel = root2.getSelection();
26474
+ let domSel = view.root.getSelection();
26475
+ let selRange = view.domSelectionRange();
26417
26476
  let brKludge = false;
26418
26477
  if ((gecko || safari) && anchor == head) {
26419
26478
  let { node, offset: offset2 } = anchorDOM;
@@ -26436,12 +26495,12 @@ class ViewDesc {
26436
26495
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26437
26496
  }
26438
26497
  }
26439
- if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26440
- let after = domSel.focusNode.childNodes[domSel.focusOffset];
26498
+ if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26499
+ let after = selRange.focusNode.childNodes[selRange.focusOffset];
26441
26500
  if (after && after.contentEditable == "false")
26442
26501
  force = true;
26443
26502
  }
26444
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26503
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26445
26504
  return;
26446
26505
  let domSelExtended = false;
26447
26506
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26582,16 +26641,17 @@ class CompositionViewDesc extends ViewDesc {
26582
26641
  }
26583
26642
  }
26584
26643
  class MarkViewDesc extends ViewDesc {
26585
- constructor(parent, mark, dom, contentDOM) {
26644
+ constructor(parent, mark, dom, contentDOM, spec) {
26586
26645
  super(parent, [], dom, contentDOM);
26587
26646
  this.mark = mark;
26647
+ this.spec = spec;
26588
26648
  }
26589
26649
  static create(parent, mark, inline, view) {
26590
26650
  let custom2 = view.nodeViews[mark.type.name];
26591
26651
  let spec = custom2 && custom2(mark, view, inline);
26592
26652
  if (!spec || !spec.dom)
26593
26653
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26594
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26654
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26595
26655
  }
26596
26656
  parseRule() {
26597
26657
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26624,6 +26684,14 @@ class MarkViewDesc extends ViewDesc {
26624
26684
  copy2.children = nodes;
26625
26685
  return copy2;
26626
26686
  }
26687
+ ignoreMutation(mutation) {
26688
+ return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26689
+ }
26690
+ destroy() {
26691
+ if (this.spec.destroy)
26692
+ this.spec.destroy();
26693
+ super.destroy();
26694
+ }
26627
26695
  }
26628
26696
  class NodeViewDesc extends ViewDesc {
26629
26697
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26915,7 +26983,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26915
26983
  update(node, outerDeco, innerDeco, view) {
26916
26984
  if (this.dirty == NODE_DIRTY)
26917
26985
  return false;
26918
- if (this.spec.update) {
26986
+ if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26919
26987
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26920
26988
  if (result2)
26921
26989
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26932,8 +27000,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26932
27000
  deselectNode() {
26933
27001
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26934
27002
  }
26935
- setSelection(anchor, head, root2, force) {
26936
- this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
27003
+ setSelection(anchor, head, view, force) {
27004
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26937
27005
  }
26938
27006
  destroy() {
26939
27007
  if (this.spec.destroy)
@@ -27520,7 +27588,7 @@ function selectionToDOM(view, force = false) {
27520
27588
  if (!sel.empty && !sel.$from.parent.inlineContent)
27521
27589
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27522
27590
  }
27523
- view.docView.setSelection(anchor, head, view.root, force);
27591
+ view.docView.setSelection(anchor, head, view, force);
27524
27592
  if (brokenSelectBetweenUneditable) {
27525
27593
  if (resetEditableFrom)
27526
27594
  resetEditable(resetEditableFrom);
@@ -28156,11 +28224,14 @@ let _detachedDoc = null;
28156
28224
  function detachedDoc() {
28157
28225
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28158
28226
  }
28227
+ let _policy = null;
28159
28228
  function maybeWrapTrusted(html) {
28160
28229
  let trustedTypes = window.trustedTypes;
28161
28230
  if (!trustedTypes)
28162
28231
  return html;
28163
- return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28232
+ if (!_policy)
28233
+ _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28234
+ return _policy.createHTML(html);
28164
28235
  }
28165
28236
  function readHTML(html) {
28166
28237
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28292,9 +28363,7 @@ editHandlers.keydown = (view, _event) => {
28292
28363
  view.input.lastKeyCodeTime = Date.now();
28293
28364
  if (android && chrome && event.keyCode == 13)
28294
28365
  return;
28295
- if (view.domObserver.selectionChanged(view.domSelectionRange()))
28296
- view.domObserver.flush();
28297
- else if (event.keyCode != 229)
28366
+ if (event.keyCode != 229)
28298
28367
  view.domObserver.forceFlush();
28299
28368
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28300
28369
  let now = Date.now();
@@ -29672,9 +29741,6 @@ class DOMObserver {
29672
29741
  this.queue.push(mut);
29673
29742
  return this.queue;
29674
29743
  }
29675
- selectionChanged(sel) {
29676
- return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29677
- }
29678
29744
  flush() {
29679
29745
  let { view } = this;
29680
29746
  if (!view.docView || this.flushingSoon > -1)
@@ -29682,7 +29748,8 @@ class DOMObserver {
29682
29748
  let mutations = this.pendingRecords();
29683
29749
  if (mutations.length)
29684
29750
  this.queue = [];
29685
- let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29751
+ let sel = view.domSelectionRange();
29752
+ let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29686
29753
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29687
29754
  if (view.editable) {
29688
29755
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31122,7 +31189,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31122
31189
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31123
31190
  return false;
31124
31191
  if (dispatch)
31125
- dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31192
+ dispatch(state2.tr.join($pos.pos).scrollIntoView());
31126
31193
  return true;
31127
31194
  }
31128
31195
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31138,9 +31205,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31138
31205
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31139
31206
  wrap2 = Fragment.from(before.copy(wrap2));
31140
31207
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31141
- let joinAt = end2 + 2 * conn.length;
31142
- if (canJoin(tr2.doc, joinAt))
31143
- tr2.join(joinAt);
31208
+ let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31209
+ if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31210
+ tr2.join($joinAt.pos);
31144
31211
  dispatch(tr2.scrollIntoView());
31145
31212
  }
31146
31213
  return true;
@@ -31505,6 +31572,13 @@ class EventEmitter {
31505
31572
  }
31506
31573
  return this;
31507
31574
  }
31575
+ once(event, fn3) {
31576
+ const onceFn = (...args) => {
31577
+ this.off(event, onceFn);
31578
+ fn3.apply(this, args);
31579
+ };
31580
+ return this.on(event, onceFn);
31581
+ }
31508
31582
  removeAllListeners() {
31509
31583
  this.callbacks = {};
31510
31584
  }
@@ -31752,6 +31826,7 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31752
31826
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31753
31827
  code: callOrReturn(getExtensionField(extension, "code", context)),
31754
31828
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31829
+ linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31755
31830
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31756
31831
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31757
31832
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31834,6 +31909,13 @@ function isExtensionRulesEnabled(extension, enabled) {
31834
31909
  }
31835
31910
  return enabled;
31836
31911
  }
31912
+ function getHTMLFromFragment(fragment, schema) {
31913
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31914
+ const temporaryDocument = document.implementation.createHTMLDocument();
31915
+ const container = temporaryDocument.createElement("div");
31916
+ container.appendChild(documentFragment);
31917
+ return container.innerHTML;
31918
+ }
31837
31919
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31838
31920
  let textBefore = "";
31839
31921
  const sliceEndPos = $from.parentOffset;
@@ -31944,7 +32026,7 @@ function inputRulesPlugin(props2) {
31944
32026
  init() {
31945
32027
  return null;
31946
32028
  },
31947
- apply(tr2, prev) {
32029
+ apply(tr2, prev, state2) {
31948
32030
  const stored = tr2.getMeta(plugin);
31949
32031
  if (stored) {
31950
32032
  return stored;
@@ -31953,7 +32035,13 @@ function inputRulesPlugin(props2) {
31953
32035
  const isSimulatedInput = !!simulatedInputMeta;
31954
32036
  if (isSimulatedInput) {
31955
32037
  setTimeout(() => {
31956
- const { from: from2, text } = simulatedInputMeta;
32038
+ let { text } = simulatedInputMeta;
32039
+ if (typeof text === "string") {
32040
+ text = text;
32041
+ } else {
32042
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32043
+ }
32044
+ const { from: from2 } = simulatedInputMeta;
31957
32045
  const to2 = from2 + text.length;
31958
32046
  run$1({
31959
32047
  editor,
@@ -32022,6 +32110,109 @@ function inputRulesPlugin(props2) {
32022
32110
  });
32023
32111
  return plugin;
32024
32112
  }
32113
+ function getType$1(value) {
32114
+ return Object.prototype.toString.call(value).slice(8, -1);
32115
+ }
32116
+ function isPlainObject$1(value) {
32117
+ if (getType$1(value) !== "Object") {
32118
+ return false;
32119
+ }
32120
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32121
+ }
32122
+ function mergeDeep(target, source) {
32123
+ const output = { ...target };
32124
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32125
+ Object.keys(source).forEach((key) => {
32126
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32127
+ output[key] = mergeDeep(target[key], source[key]);
32128
+ } else {
32129
+ output[key] = source[key];
32130
+ }
32131
+ });
32132
+ }
32133
+ return output;
32134
+ }
32135
+ class Mark {
32136
+ constructor(config = {}) {
32137
+ this.type = "mark";
32138
+ this.name = "mark";
32139
+ this.parent = null;
32140
+ this.child = null;
32141
+ this.config = {
32142
+ name: this.name,
32143
+ defaultOptions: {}
32144
+ };
32145
+ this.config = {
32146
+ ...this.config,
32147
+ ...config
32148
+ };
32149
+ this.name = this.config.name;
32150
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32151
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32152
+ }
32153
+ this.options = this.config.defaultOptions;
32154
+ if (this.config.addOptions) {
32155
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
32156
+ name: this.name
32157
+ }));
32158
+ }
32159
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32160
+ name: this.name,
32161
+ options: this.options
32162
+ })) || {};
32163
+ }
32164
+ static create(config = {}) {
32165
+ return new Mark(config);
32166
+ }
32167
+ configure(options = {}) {
32168
+ const extension = this.extend({
32169
+ ...this.config,
32170
+ addOptions: () => {
32171
+ return mergeDeep(this.options, options);
32172
+ }
32173
+ });
32174
+ extension.name = this.name;
32175
+ extension.parent = this.parent;
32176
+ return extension;
32177
+ }
32178
+ extend(extendedConfig = {}) {
32179
+ const extension = new Mark(extendedConfig);
32180
+ extension.parent = this;
32181
+ this.child = extension;
32182
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32183
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32184
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32185
+ }
32186
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32187
+ name: extension.name
32188
+ }));
32189
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32190
+ name: extension.name,
32191
+ options: extension.options
32192
+ }));
32193
+ return extension;
32194
+ }
32195
+ static handleExit({ editor, mark }) {
32196
+ const { tr: tr2 } = editor.state;
32197
+ const currentPos = editor.state.selection.$from;
32198
+ const isAtEnd = currentPos.pos === currentPos.end();
32199
+ if (isAtEnd) {
32200
+ const currentMarks = currentPos.marks();
32201
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32202
+ if (!isInMark) {
32203
+ return false;
32204
+ }
32205
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32206
+ if (removeMark2) {
32207
+ tr2.removeStoredMark(removeMark2);
32208
+ }
32209
+ tr2.insertText(" ", currentPos.pos);
32210
+ editor.view.dispatch(tr2);
32211
+ return true;
32212
+ }
32213
+ return false;
32214
+ }
32215
+ }
32025
32216
  function isNumber$1(value) {
32026
32217
  return typeof value === "number";
32027
32218
  }
@@ -32108,7 +32299,12 @@ function pasteRulesPlugin(props2) {
32108
32299
  let isPastedFromProseMirror = false;
32109
32300
  let isDroppedFromProseMirror = false;
32110
32301
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32111
- let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32302
+ let dropEvent;
32303
+ try {
32304
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32305
+ } catch (e) {
32306
+ dropEvent = null;
32307
+ }
32112
32308
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32113
32309
  const tr2 = state2.tr;
32114
32310
  const chainableState = createChainableState({
@@ -32127,7 +32323,11 @@ function pasteRulesPlugin(props2) {
32127
32323
  if (!handler || !tr2.steps.length) {
32128
32324
  return;
32129
32325
  }
32130
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32326
+ try {
32327
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32328
+ } catch (e) {
32329
+ dropEvent = null;
32330
+ }
32131
32331
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32132
32332
  return tr2;
32133
32333
  };
@@ -32172,7 +32372,13 @@ function pasteRulesPlugin(props2) {
32172
32372
  return;
32173
32373
  }
32174
32374
  if (isSimulatedPaste) {
32175
- const { from: from3, text } = simulatedPasteMeta;
32375
+ let { text } = simulatedPasteMeta;
32376
+ if (typeof text === "string") {
32377
+ text = text;
32378
+ } else {
32379
+ text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32380
+ }
32381
+ const { from: from3 } = simulatedPasteMeta;
32176
32382
  const to3 = from3 + text.length;
32177
32383
  const pasteEvt = createClipboardPasteEvent(text);
32178
32384
  return processEvent({
@@ -32446,28 +32652,6 @@ class ExtensionManager {
32446
32652
  });
32447
32653
  }
32448
32654
  }
32449
- function getType$1(value) {
32450
- return Object.prototype.toString.call(value).slice(8, -1);
32451
- }
32452
- function isPlainObject$1(value) {
32453
- if (getType$1(value) !== "Object") {
32454
- return false;
32455
- }
32456
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32457
- }
32458
- function mergeDeep(target, source) {
32459
- const output = { ...target };
32460
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32461
- Object.keys(source).forEach((key) => {
32462
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32463
- output[key] = mergeDeep(target[key], source[key]);
32464
- } else {
32465
- output[key] = source[key];
32466
- }
32467
- });
32468
- }
32469
- return output;
32470
- }
32471
32655
  class Extension {
32472
32656
  constructor(config = {}) {
32473
32657
  this.type = "extension";
@@ -32718,23 +32902,29 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32718
32902
  }
32719
32903
  function findMarkInSet(marks, type3, attributes = {}) {
32720
32904
  return marks.find((item) => {
32721
- return item.type === type3 && objectIncludes(item.attrs, attributes);
32905
+ return item.type === type3 && objectIncludes(
32906
+ // Only check equality for the attributes that are provided
32907
+ Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32908
+ attributes
32909
+ );
32722
32910
  });
32723
32911
  }
32724
32912
  function isMarkInSet(marks, type3, attributes = {}) {
32725
32913
  return !!findMarkInSet(marks, type3, attributes);
32726
32914
  }
32727
- function getMarkRange($pos, type3, attributes = {}) {
32915
+ function getMarkRange($pos, type3, attributes) {
32916
+ var _a2;
32728
32917
  if (!$pos || !type3) {
32729
32918
  return;
32730
32919
  }
32731
32920
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32732
- if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32921
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32733
32922
  start2 = $pos.parent.childBefore($pos.parentOffset);
32734
32923
  }
32735
- if (!start2.node) {
32924
+ if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32736
32925
  return;
32737
32926
  }
32927
+ attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32738
32928
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32739
32929
  if (!mark) {
32740
32930
  return;
@@ -32743,8 +32933,7 @@ function getMarkRange($pos, type3, attributes = {}) {
32743
32933
  let startPos = $pos.start() + start2.offset;
32744
32934
  let endIndex = startIndex + 1;
32745
32935
  let endPos = startPos + start2.node.nodeSize;
32746
- findMarkInSet([...start2.node.marks], type3, attributes);
32747
- while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32936
+ while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32748
32937
  startIndex -= 1;
32749
32938
  startPos -= $pos.parent.child(startIndex).nodeSize;
32750
32939
  }
@@ -32885,6 +33074,9 @@ function elementFromString(value) {
32885
33074
  return removeWhitespaces(html);
32886
33075
  }
32887
33076
  function createNodeFromContent(content, schema, options) {
33077
+ if (content instanceof Node$2 || content instanceof Fragment) {
33078
+ return content;
33079
+ }
32888
33080
  options = {
32889
33081
  slice: true,
32890
33082
  parseOptions: {},
@@ -32979,7 +33171,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32979
33171
  var _a2;
32980
33172
  if (dispatch) {
32981
33173
  options = {
32982
- parseOptions: {},
33174
+ parseOptions: editor.options.parseOptions,
32983
33175
  updateSelection: true,
32984
33176
  applyInputRules: false,
32985
33177
  applyPasteRules: false,
@@ -32999,7 +33191,9 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
32999
33191
  editor,
33000
33192
  error: e,
33001
33193
  disableCollaboration: () => {
33002
- console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33194
+ if (editor.storage.collaboration) {
33195
+ editor.storage.collaboration.isDisabled = true;
33196
+ }
33003
33197
  }
33004
33198
  });
33005
33199
  return false;
@@ -33025,6 +33219,14 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33025
33219
  if (isOnlyTextContent) {
33026
33220
  if (Array.isArray(value)) {
33027
33221
  newContent = value.map((v2) => v2.text || "").join("");
33222
+ } else if (value instanceof Fragment) {
33223
+ let text = "";
33224
+ value.forEach((node) => {
33225
+ if (node.text) {
33226
+ text += node.text;
33227
+ }
33228
+ });
33229
+ newContent = text;
33028
33230
  } else if (typeof value === "object" && !!value && !!value.text) {
33029
33231
  newContent = value.text;
33030
33232
  } else {
@@ -33360,13 +33562,6 @@ function findParentNodeClosestToPos($pos, predicate) {
33360
33562
  function findParentNode(predicate) {
33361
33563
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33362
33564
  }
33363
- function getHTMLFromFragment(fragment, schema) {
33364
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33365
- const temporaryDocument = document.implementation.createHTMLDocument();
33366
- const container = temporaryDocument.createElement("div");
33367
- container.appendChild(documentFragment);
33368
- return container.innerHTML;
33369
- }
33370
33565
  function getText(node, options) {
33371
33566
  const range2 = {
33372
33567
  from: 0,
@@ -33652,18 +33847,22 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33652
33847
  };
33653
33848
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33654
33849
  const type3 = getNodeType(typeOrName, state2.schema);
33850
+ let attributesToCopy;
33851
+ if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33852
+ attributesToCopy = state2.selection.$anchor.parent.attrs;
33853
+ }
33655
33854
  if (!type3.isTextblock) {
33656
33855
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33657
33856
  return false;
33658
33857
  }
33659
33858
  return chain().command(({ commands: commands2 }) => {
33660
- const canSetBlock = setBlockType(type3, attributes)(state2);
33859
+ const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33661
33860
  if (canSetBlock) {
33662
33861
  return true;
33663
33862
  }
33664
33863
  return commands2.clearNodes();
33665
33864
  }).command(({ state: updatedState }) => {
33666
- return setBlockType(type3, attributes)(updatedState, dispatch);
33865
+ return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33667
33866
  }).run();
33668
33867
  };
33669
33868
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -34022,18 +34221,59 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34022
34221
  tr2.selection.ranges.forEach((range2) => {
34023
34222
  const from2 = range2.$from.pos;
34024
34223
  const to2 = range2.$to.pos;
34025
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34026
- if (nodeType && nodeType === node.type) {
34027
- tr2.setNodeMarkup(pos, void 0, {
34028
- ...node.attrs,
34224
+ let lastPos;
34225
+ let lastNode;
34226
+ let trimmedFrom;
34227
+ let trimmedTo;
34228
+ if (tr2.selection.empty) {
34229
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34230
+ if (nodeType && nodeType === node.type) {
34231
+ trimmedFrom = Math.max(pos, from2);
34232
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34233
+ lastPos = pos;
34234
+ lastNode = node;
34235
+ }
34236
+ });
34237
+ } else {
34238
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
34239
+ if (pos < from2 && nodeType && nodeType === node.type) {
34240
+ trimmedFrom = Math.max(pos, from2);
34241
+ trimmedTo = Math.min(pos + node.nodeSize, to2);
34242
+ lastPos = pos;
34243
+ lastNode = node;
34244
+ }
34245
+ if (pos >= from2 && pos <= to2) {
34246
+ if (nodeType && nodeType === node.type) {
34247
+ tr2.setNodeMarkup(pos, void 0, {
34248
+ ...node.attrs,
34249
+ ...attributes
34250
+ });
34251
+ }
34252
+ if (markType && node.marks.length) {
34253
+ node.marks.forEach((mark) => {
34254
+ if (markType === mark.type) {
34255
+ const trimmedFrom2 = Math.max(pos, from2);
34256
+ const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34257
+ tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34258
+ ...mark.attrs,
34259
+ ...attributes
34260
+ }));
34261
+ }
34262
+ });
34263
+ }
34264
+ }
34265
+ });
34266
+ }
34267
+ if (lastNode) {
34268
+ if (lastPos !== void 0) {
34269
+ tr2.setNodeMarkup(lastPos, void 0, {
34270
+ ...lastNode.attrs,
34029
34271
  ...attributes
34030
34272
  });
34031
34273
  }
34032
- if (markType && node.marks.length) {
34033
- node.marks.forEach((mark) => {
34274
+ if (markType && lastNode.marks.length) {
34275
+ lastNode.marks.forEach((mark) => {
34034
34276
  if (markType === mark.type) {
34035
- const trimmedFrom = Math.max(pos, from2);
34036
- const trimmedTo = Math.min(pos + node.nodeSize, to2);
34037
34277
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34038
34278
  ...mark.attrs,
34039
34279
  ...attributes
@@ -34041,7 +34281,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34041
34281
  }
34042
34282
  });
34043
34283
  }
34044
- });
34284
+ }
34045
34285
  });
34046
34286
  }
34047
34287
  return true;
@@ -34123,6 +34363,26 @@ const Commands = Extension.create({
34123
34363
  };
34124
34364
  }
34125
34365
  });
34366
+ const Drop = Extension.create({
34367
+ name: "drop",
34368
+ addProseMirrorPlugins() {
34369
+ return [
34370
+ new Plugin({
34371
+ key: new PluginKey("tiptapDrop"),
34372
+ props: {
34373
+ handleDrop: (_2, e, slice4, moved2) => {
34374
+ this.editor.emit("drop", {
34375
+ editor: this.editor,
34376
+ event: e,
34377
+ slice: slice4,
34378
+ moved: moved2
34379
+ });
34380
+ }
34381
+ }
34382
+ })
34383
+ ];
34384
+ }
34385
+ });
34126
34386
  const Editable = Extension.create({
34127
34387
  name: "editable",
34128
34388
  addProseMirrorPlugins() {
@@ -34272,6 +34532,25 @@ const Keymap = Extension.create({
34272
34532
  ];
34273
34533
  }
34274
34534
  });
34535
+ const Paste = Extension.create({
34536
+ name: "paste",
34537
+ addProseMirrorPlugins() {
34538
+ return [
34539
+ new Plugin({
34540
+ key: new PluginKey("tiptapPaste"),
34541
+ props: {
34542
+ handlePaste: (_view, e, slice4) => {
34543
+ this.editor.emit("paste", {
34544
+ editor: this.editor,
34545
+ event: e,
34546
+ slice: slice4
34547
+ });
34548
+ }
34549
+ }
34550
+ })
34551
+ ];
34552
+ }
34553
+ });
34275
34554
  const Tabindex = Extension.create({
34276
34555
  name: "tabindex",
34277
34556
  addProseMirrorPlugins() {
@@ -34379,7 +34658,8 @@ class NodePos {
34379
34658
  const children2 = [];
34380
34659
  this.node.content.forEach((node, offset2) => {
34381
34660
  const isBlock = node.isBlock && !node.isTextblock;
34382
- const targetPos = this.pos + offset2 + 1;
34661
+ const isNonTextAtom = node.isAtom && !node.isText;
34662
+ const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34383
34663
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34384
34664
  if (!isBlock && $pos.depth <= this.depth) {
34385
34665
  return;
@@ -34448,30 +34728,14 @@ class NodePos {
34448
34728
  return nodes;
34449
34729
  }
34450
34730
  setAttribute(attributes) {
34451
- const oldSelection = this.editor.state.selection;
34452
- this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34731
+ const { tr: tr2 } = this.editor.state;
34732
+ tr2.setNodeMarkup(this.from, void 0, {
34733
+ ...this.node.attrs,
34734
+ ...attributes
34735
+ });
34736
+ this.editor.view.dispatch(tr2);
34453
34737
  }
34454
34738
  }
34455
- const DropPlugin = (onDrop) => {
34456
- return new Plugin({
34457
- key: new PluginKey("tiptapDrop"),
34458
- props: {
34459
- handleDrop: (_2, e, slice4, moved2) => {
34460
- onDrop(e, slice4, moved2);
34461
- }
34462
- }
34463
- });
34464
- };
34465
- const PastePlugin = (onPaste) => {
34466
- return new Plugin({
34467
- key: new PluginKey("tiptapPaste"),
34468
- props: {
34469
- handlePaste: (_view, e, slice4) => {
34470
- onPaste(e, slice4);
34471
- }
34472
- }
34473
- });
34474
- };
34475
34739
  const style = `.ProseMirror {
34476
34740
  position: relative;
34477
34741
  }
@@ -34614,12 +34878,8 @@ let Editor$1 = class Editor2 extends EventEmitter {
34614
34878
  this.on("focus", this.options.onFocus);
34615
34879
  this.on("blur", this.options.onBlur);
34616
34880
  this.on("destroy", this.options.onDestroy);
34617
- if (this.options.onPaste) {
34618
- this.registerPlugin(PastePlugin(this.options.onPaste));
34619
- }
34620
- if (this.options.onDrop) {
34621
- this.registerPlugin(DropPlugin(this.options.onDrop));
34622
- }
34881
+ this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34882
+ this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34623
34883
  window.setTimeout(() => {
34624
34884
  if (this.isDestroyed) {
34625
34885
  return;
@@ -34716,17 +34976,24 @@ let Editor$1 = class Editor2 extends EventEmitter {
34716
34976
  /**
34717
34977
  * Unregister a ProseMirror plugin.
34718
34978
  *
34719
- * @param nameOrPluginKey The plugins name
34979
+ * @param nameOrPluginKeyToRemove The plugins name
34720
34980
  * @returns The new editor state or undefined if the editor is destroyed
34721
34981
  */
34722
- unregisterPlugin(nameOrPluginKey) {
34982
+ unregisterPlugin(nameOrPluginKeyToRemove) {
34723
34983
  if (this.isDestroyed) {
34724
34984
  return void 0;
34725
34985
  }
34726
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34986
+ const prevPlugins = this.state.plugins;
34987
+ let plugins2 = prevPlugins;
34988
+ [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34989
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34990
+ plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34991
+ });
34992
+ if (prevPlugins.length === plugins2.length) {
34993
+ return void 0;
34994
+ }
34727
34995
  const state2 = this.state.reconfigure({
34728
- // @ts-ignore
34729
- plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34996
+ plugins: plugins2
34730
34997
  });
34731
34998
  this.view.updateState(state2);
34732
34999
  return state2;
@@ -34744,7 +35011,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34744
35011
  Commands,
34745
35012
  FocusEvents,
34746
35013
  Keymap,
34747
- Tabindex
35014
+ Tabindex,
35015
+ Drop,
35016
+ Paste
34748
35017
  ].filter((ext) => {
34749
35018
  if (typeof this.options.enableCoreExtensions === "object") {
34750
35019
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34774,6 +35043,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34774
35043
  * Creates a ProseMirror view.
34775
35044
  */
34776
35045
  createView() {
35046
+ var _a2;
34777
35047
  let doc2;
34778
35048
  try {
34779
35049
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34785,6 +35055,9 @@ let Editor$1 = class Editor2 extends EventEmitter {
34785
35055
  editor: this,
34786
35056
  error: e,
34787
35057
  disableCollaboration: () => {
35058
+ if (this.storage.collaboration) {
35059
+ this.storage.collaboration.isDisabled = true;
35060
+ }
34788
35061
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34789
35062
  this.createExtensionManager();
34790
35063
  }
@@ -34794,6 +35067,11 @@ let Editor$1 = class Editor2 extends EventEmitter {
34794
35067
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34795
35068
  this.view = new EditorView(this.options.element, {
34796
35069
  ...this.options.editorProps,
35070
+ attributes: {
35071
+ // add `role="textbox"` to the editor element
35072
+ role: "textbox",
35073
+ ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
35074
+ },
34797
35075
  dispatchTransaction: this.dispatchTransaction.bind(this),
34798
35076
  state: EditorState.create({
34799
35077
  doc: doc2,
@@ -35093,87 +35371,6 @@ function wrappingInputRule(config) {
35093
35371
  }
35094
35372
  });
35095
35373
  }
35096
- class Mark {
35097
- constructor(config = {}) {
35098
- this.type = "mark";
35099
- this.name = "mark";
35100
- this.parent = null;
35101
- this.child = null;
35102
- this.config = {
35103
- name: this.name,
35104
- defaultOptions: {}
35105
- };
35106
- this.config = {
35107
- ...this.config,
35108
- ...config
35109
- };
35110
- this.name = this.config.name;
35111
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35112
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35113
- }
35114
- this.options = this.config.defaultOptions;
35115
- if (this.config.addOptions) {
35116
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
35117
- name: this.name
35118
- }));
35119
- }
35120
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35121
- name: this.name,
35122
- options: this.options
35123
- })) || {};
35124
- }
35125
- static create(config = {}) {
35126
- return new Mark(config);
35127
- }
35128
- configure(options = {}) {
35129
- const extension = this.extend({
35130
- ...this.config,
35131
- addOptions: () => {
35132
- return mergeDeep(this.options, options);
35133
- }
35134
- });
35135
- extension.name = this.name;
35136
- extension.parent = this.parent;
35137
- return extension;
35138
- }
35139
- extend(extendedConfig = {}) {
35140
- const extension = new Mark(extendedConfig);
35141
- extension.parent = this;
35142
- this.child = extension;
35143
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35144
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35145
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35146
- }
35147
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35148
- name: extension.name
35149
- }));
35150
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35151
- name: extension.name,
35152
- options: extension.options
35153
- }));
35154
- return extension;
35155
- }
35156
- static handleExit({ editor, mark }) {
35157
- const { tr: tr2 } = editor.state;
35158
- const currentPos = editor.state.selection.$from;
35159
- const isAtEnd = currentPos.pos === currentPos.end();
35160
- if (isAtEnd) {
35161
- const currentMarks = currentPos.marks();
35162
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35163
- if (!isInMark) {
35164
- return false;
35165
- }
35166
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35167
- if (removeMark2) {
35168
- tr2.removeStoredMark(removeMark2);
35169
- }
35170
- tr2.insertText(" ", currentPos.pos);
35171
- editor.view.dispatch(tr2);
35172
- return true;
35173
- }
35174
- return false;
35175
- }
35176
- }
35177
35374
  let Node$1 = class Node3 {
35178
35375
  constructor(config = {}) {
35179
35376
  this.type = "node";
@@ -36003,7 +36200,7 @@ function drawCellSelection(state2) {
36003
36200
  return DecorationSet.create(state2.doc, cells);
36004
36201
  }
36005
36202
  function isCellBoundarySelection({ $from, $to }) {
36006
- if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36203
+ if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
36007
36204
  return false;
36008
36205
  let afterFrom = $from.pos;
36009
36206
  let beforeTo = $to.pos;
@@ -36166,267 +36363,834 @@ function fixTable(state2, table, tablePos, tr2) {
36166
36363
  }
36167
36364
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36168
36365
  }
36169
- function pastedCells(slice4) {
36170
- if (!slice4.size)
36171
- return null;
36172
- let { content, openStart, openEnd } = slice4;
36173
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36174
- openStart--;
36175
- openEnd--;
36176
- content = content.child(0).content;
36366
+ function selectedRect(state2) {
36367
+ const sel = state2.selection;
36368
+ const $pos = selectionCell(state2);
36369
+ const table = $pos.node(-1);
36370
+ const tableStart = $pos.start(-1);
36371
+ const map4 = TableMap.get(table);
36372
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36373
+ sel.$anchorCell.pos - tableStart,
36374
+ sel.$headCell.pos - tableStart
36375
+ ) : map4.findCell($pos.pos - tableStart);
36376
+ return { ...rect, tableStart, map: map4, table };
36377
+ }
36378
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36379
+ let refColumn = col > 0 ? -1 : 0;
36380
+ if (columnIsHeader(map4, table, col + refColumn)) {
36381
+ refColumn = col == 0 || col == map4.width ? null : 0;
36177
36382
  }
36178
- const first2 = content.child(0);
36179
- const role = first2.type.spec.tableRole;
36180
- const schema = first2.type.schema, rows = [];
36181
- if (role == "row") {
36182
- for (let i2 = 0; i2 < content.childCount; i2++) {
36183
- let cells = content.child(i2).content;
36184
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36185
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36186
- if (left2 || right2)
36187
- cells = fitSlice(
36188
- tableNodeTypes(schema).row,
36189
- new Slice(cells, left2, right2)
36190
- ).content;
36191
- rows.push(cells);
36383
+ for (let row = 0; row < map4.height; row++) {
36384
+ const index2 = row * map4.width + col;
36385
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36386
+ const pos = map4.map[index2];
36387
+ const cell = table.nodeAt(pos);
36388
+ tr2.setNodeMarkup(
36389
+ tr2.mapping.map(tableStart + pos),
36390
+ null,
36391
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36392
+ );
36393
+ row += cell.attrs.rowspan - 1;
36394
+ } else {
36395
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36396
+ const pos = map4.positionAt(row, col, table);
36397
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36192
36398
  }
36193
- } else if (role == "cell" || role == "header_cell") {
36194
- rows.push(
36195
- openStart || openEnd ? fitSlice(
36196
- tableNodeTypes(schema).row,
36197
- new Slice(content, openStart, openEnd)
36198
- ).content : content
36199
- );
36200
- } else {
36201
- return null;
36202
36399
  }
36203
- return ensureRectangular(schema, rows);
36400
+ return tr2;
36204
36401
  }
36205
- function ensureRectangular(schema, rows) {
36206
- const widths = [];
36207
- for (let i2 = 0; i2 < rows.length; i2++) {
36208
- const row = rows[i2];
36209
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36210
- const { rowspan, colspan } = row.child(j2).attrs;
36211
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36212
- widths[r2] = (widths[r2] || 0) + colspan;
36213
- }
36214
- }
36215
- let width = 0;
36216
- for (let r2 = 0; r2 < widths.length; r2++)
36217
- width = Math.max(width, widths[r2]);
36218
- for (let r2 = 0; r2 < widths.length; r2++) {
36219
- if (r2 >= rows.length)
36220
- rows.push(Fragment.empty);
36221
- if (widths[r2] < width) {
36222
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36223
- const cells = [];
36224
- for (let i2 = widths[r2]; i2 < width; i2++) {
36225
- cells.push(empty2);
36226
- }
36227
- rows[r2] = rows[r2].append(Fragment.from(cells));
36228
- }
36402
+ function addColumnBefore(state2, dispatch) {
36403
+ if (!isInTable(state2))
36404
+ return false;
36405
+ if (dispatch) {
36406
+ const rect = selectedRect(state2);
36407
+ dispatch(addColumn(state2.tr, rect, rect.left));
36229
36408
  }
36230
- return { height: rows.length, width, rows };
36409
+ return true;
36231
36410
  }
36232
- function fitSlice(nodeType, slice4) {
36233
- const node = nodeType.createAndFill();
36234
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36235
- return tr2.doc;
36411
+ function addColumnAfter(state2, dispatch) {
36412
+ if (!isInTable(state2))
36413
+ return false;
36414
+ if (dispatch) {
36415
+ const rect = selectedRect(state2);
36416
+ dispatch(addColumn(state2.tr, rect, rect.right));
36417
+ }
36418
+ return true;
36236
36419
  }
36237
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36238
- if (width != newWidth) {
36239
- const added = [];
36240
- const newRows = [];
36241
- for (let row = 0; row < rows.length; row++) {
36242
- const frag = rows[row], cells = [];
36243
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36244
- let cell = frag.child(i2 % frag.childCount);
36245
- if (col + cell.attrs.colspan > newWidth)
36246
- cell = cell.type.createChecked(
36247
- removeColSpan(
36248
- cell.attrs,
36249
- cell.attrs.colspan,
36250
- col + cell.attrs.colspan - newWidth
36251
- ),
36252
- cell.content
36253
- );
36254
- cells.push(cell);
36255
- col += cell.attrs.colspan;
36256
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36257
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36258
- }
36259
- newRows.push(Fragment.from(cells));
36420
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36421
+ const mapStart = tr2.mapping.maps.length;
36422
+ for (let row = 0; row < map4.height; ) {
36423
+ const index2 = row * map4.width + col;
36424
+ const pos = map4.map[index2];
36425
+ const cell = table.nodeAt(pos);
36426
+ const attrs = cell.attrs;
36427
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36428
+ tr2.setNodeMarkup(
36429
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36430
+ null,
36431
+ removeColSpan(attrs, col - map4.colCount(pos))
36432
+ );
36433
+ } else {
36434
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36435
+ tr2.delete(start2, start2 + cell.nodeSize);
36260
36436
  }
36261
- rows = newRows;
36262
- width = newWidth;
36437
+ row += attrs.rowspan;
36263
36438
  }
36264
- if (height != newHeight) {
36265
- const newRows = [];
36266
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36267
- const cells = [], source = rows[i2 % height];
36268
- for (let j2 = 0; j2 < source.childCount; j2++) {
36269
- let cell = source.child(j2);
36270
- if (row + cell.attrs.rowspan > newHeight)
36271
- cell = cell.type.create(
36272
- {
36273
- ...cell.attrs,
36274
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36275
- },
36276
- cell.content
36277
- );
36278
- cells.push(cell);
36439
+ }
36440
+ function deleteColumn(state2, dispatch) {
36441
+ if (!isInTable(state2))
36442
+ return false;
36443
+ if (dispatch) {
36444
+ const rect = selectedRect(state2);
36445
+ const tr2 = state2.tr;
36446
+ if (rect.left == 0 && rect.right == rect.map.width)
36447
+ return false;
36448
+ for (let i2 = rect.right - 1; ; i2--) {
36449
+ removeColumn(tr2, rect, i2);
36450
+ if (i2 == rect.left)
36451
+ break;
36452
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36453
+ if (!table) {
36454
+ throw RangeError("No table found");
36279
36455
  }
36280
- newRows.push(Fragment.from(cells));
36456
+ rect.table = table;
36457
+ rect.map = TableMap.get(table);
36281
36458
  }
36282
- rows = newRows;
36283
- height = newHeight;
36459
+ dispatch(tr2);
36284
36460
  }
36285
- return { width, height, rows };
36461
+ return true;
36286
36462
  }
36287
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36288
- const schema = tr2.doc.type.schema;
36289
- const types = tableNodeTypes(schema);
36290
- let empty2;
36291
- let emptyHead;
36292
- if (width > map4.width) {
36293
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36294
- const rowNode = table.child(row);
36295
- rowEnd += rowNode.nodeSize;
36296
- const cells = [];
36297
- let add2;
36298
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36299
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36300
- else
36301
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36302
- for (let i2 = map4.width; i2 < width; i2++)
36303
- cells.push(add2);
36304
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36463
+ function rowIsHeader(map4, table, row) {
36464
+ var _a2;
36465
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
36466
+ for (let col = 0; col < map4.width; col++)
36467
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36468
+ return false;
36469
+ return true;
36470
+ }
36471
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
36472
+ var _a2;
36473
+ let rowPos = tableStart;
36474
+ for (let i2 = 0; i2 < row; i2++)
36475
+ rowPos += table.child(i2).nodeSize;
36476
+ const cells = [];
36477
+ let refRow = row > 0 ? -1 : 0;
36478
+ if (rowIsHeader(map4, table, row + refRow))
36479
+ refRow = row == 0 || row == map4.height ? null : 0;
36480
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36481
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36482
+ const pos = map4.map[index2];
36483
+ const attrs = table.nodeAt(pos).attrs;
36484
+ tr2.setNodeMarkup(tableStart + pos, null, {
36485
+ ...attrs,
36486
+ rowspan: attrs.rowspan + 1
36487
+ });
36488
+ col += attrs.colspan - 1;
36489
+ } else {
36490
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36491
+ const node = type3 == null ? void 0 : type3.createAndFill();
36492
+ if (node)
36493
+ cells.push(node);
36305
36494
  }
36306
36495
  }
36307
- if (height > map4.height) {
36308
- const cells = [];
36309
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36310
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36311
- cells.push(
36312
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36313
- );
36314
- }
36315
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36316
- for (let i2 = map4.height; i2 < height; i2++)
36317
- rows.push(emptyRow);
36318
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36496
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36497
+ return tr2;
36498
+ }
36499
+ function addRowBefore(state2, dispatch) {
36500
+ if (!isInTable(state2))
36501
+ return false;
36502
+ if (dispatch) {
36503
+ const rect = selectedRect(state2);
36504
+ dispatch(addRow(state2.tr, rect, rect.top));
36319
36505
  }
36320
- return !!(empty2 || emptyHead);
36506
+ return true;
36321
36507
  }
36322
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36323
- if (top2 == 0 || top2 == map4.height)
36508
+ function addRowAfter(state2, dispatch) {
36509
+ if (!isInTable(state2))
36324
36510
  return false;
36325
- let found2 = false;
36326
- for (let col = left2; col < right2; col++) {
36327
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
36328
- if (map4.map[index2 - map4.width] == pos) {
36329
- found2 = true;
36330
- const cell = table.nodeAt(pos);
36331
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36332
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36333
- ...cell.attrs,
36334
- rowspan: top2 - cellTop
36511
+ if (dispatch) {
36512
+ const rect = selectedRect(state2);
36513
+ dispatch(addRow(state2.tr, rect, rect.bottom));
36514
+ }
36515
+ return true;
36516
+ }
36517
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
36518
+ let rowPos = 0;
36519
+ for (let i2 = 0; i2 < row; i2++)
36520
+ rowPos += table.child(i2).nodeSize;
36521
+ const nextRow = rowPos + table.child(row).nodeSize;
36522
+ const mapFrom = tr2.mapping.maps.length;
36523
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
36524
+ const seen = /* @__PURE__ */ new Set();
36525
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36526
+ const pos = map4.map[index2];
36527
+ if (seen.has(pos))
36528
+ continue;
36529
+ seen.add(pos);
36530
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
36531
+ const attrs = table.nodeAt(pos).attrs;
36532
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36533
+ ...attrs,
36534
+ rowspan: attrs.rowspan - 1
36335
36535
  });
36336
- tr2.insert(
36337
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36338
- cell.type.createAndFill({
36339
- ...cell.attrs,
36340
- rowspan: cellTop + cell.attrs.rowspan - top2
36341
- })
36536
+ col += attrs.colspan - 1;
36537
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36538
+ const cell = table.nodeAt(pos);
36539
+ const attrs = cell.attrs;
36540
+ const copy2 = cell.type.create(
36541
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36542
+ cell.content
36342
36543
  );
36343
- col += cell.attrs.colspan - 1;
36544
+ const newPos = map4.positionAt(row + 1, col, table);
36545
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36546
+ col += attrs.colspan - 1;
36344
36547
  }
36345
36548
  }
36346
- return found2;
36347
36549
  }
36348
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36349
- if (left2 == 0 || left2 == map4.width)
36550
+ function deleteRow(state2, dispatch) {
36551
+ if (!isInTable(state2))
36350
36552
  return false;
36351
- let found2 = false;
36352
- for (let row = top2; row < bottom2; row++) {
36353
- const index2 = row * map4.width + left2, pos = map4.map[index2];
36354
- if (map4.map[index2 - 1] == pos) {
36355
- found2 = true;
36356
- const cell = table.nodeAt(pos);
36357
- const cellLeft = map4.colCount(pos);
36358
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36359
- tr2.setNodeMarkup(
36360
- updatePos,
36361
- null,
36362
- removeColSpan(
36363
- cell.attrs,
36364
- left2 - cellLeft,
36365
- cell.attrs.colspan - (left2 - cellLeft)
36366
- )
36367
- );
36368
- tr2.insert(
36369
- updatePos + cell.nodeSize,
36370
- cell.type.createAndFill(
36371
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
36372
- )
36373
- );
36374
- row += cell.attrs.rowspan - 1;
36553
+ if (dispatch) {
36554
+ const rect = selectedRect(state2), tr2 = state2.tr;
36555
+ if (rect.top == 0 && rect.bottom == rect.map.height)
36556
+ return false;
36557
+ for (let i2 = rect.bottom - 1; ; i2--) {
36558
+ removeRow(tr2, rect, i2);
36559
+ if (i2 == rect.top)
36560
+ break;
36561
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36562
+ if (!table) {
36563
+ throw RangeError("No table found");
36564
+ }
36565
+ rect.table = table;
36566
+ rect.map = TableMap.get(rect.table);
36375
36567
  }
36568
+ dispatch(tr2);
36376
36569
  }
36377
- return found2;
36570
+ return true;
36378
36571
  }
36379
- function insertCells(state2, dispatch, tableStart, rect, cells) {
36380
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36381
- if (!table) {
36382
- throw new Error("No table found");
36383
- }
36384
- let map4 = TableMap.get(table);
36385
- const { top: top2, left: left2 } = rect;
36386
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36387
- const tr2 = state2.tr;
36388
- let mapFrom = 0;
36389
- function recomp() {
36390
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36391
- if (!table) {
36392
- throw new Error("No table found");
36393
- }
36394
- map4 = TableMap.get(table);
36395
- mapFrom = tr2.mapping.maps.length;
36572
+ function isEmpty(cell) {
36573
+ const c2 = cell.content;
36574
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36575
+ }
36576
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36577
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36578
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36579
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36580
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36581
+ return true;
36582
+ indexLeft += width;
36583
+ indexRight += width;
36396
36584
  }
36397
- if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
36398
- recomp();
36399
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
36400
- recomp();
36401
- if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
36402
- recomp();
36403
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
36404
- recomp();
36405
- if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
36406
- recomp();
36407
- for (let row = top2; row < bottom2; row++) {
36408
- const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
36409
- tr2.replace(
36410
- tr2.mapping.slice(mapFrom).map(from2 + tableStart),
36411
- tr2.mapping.slice(mapFrom).map(to2 + tableStart),
36412
- new Slice(cells.rows[row - top2], 0, 0)
36413
- );
36585
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
36586
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36587
+ return true;
36588
+ indexTop++;
36589
+ indexBottom++;
36414
36590
  }
36415
- recomp();
36416
- tr2.setSelection(
36417
- new CellSelection(
36418
- tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
36419
- tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
36420
- )
36421
- );
36422
- dispatch(tr2);
36591
+ return false;
36423
36592
  }
36424
- var handleKeyDown$1 = keydownHandler({
36425
- ArrowLeft: arrow$3("horiz", -1),
36426
- ArrowRight: arrow$3("horiz", 1),
36427
- ArrowUp: arrow$3("vert", -1),
36428
- ArrowDown: arrow$3("vert", 1),
36429
- "Shift-ArrowLeft": shiftArrow("horiz", -1),
36593
+ function mergeCells(state2, dispatch) {
36594
+ const sel = state2.selection;
36595
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36596
+ return false;
36597
+ const rect = selectedRect(state2), { map: map4 } = rect;
36598
+ if (cellsOverlapRectangle(map4, rect))
36599
+ return false;
36600
+ if (dispatch) {
36601
+ const tr2 = state2.tr;
36602
+ const seen = {};
36603
+ let content = Fragment.empty;
36604
+ let mergedPos;
36605
+ let mergedCell;
36606
+ for (let row = rect.top; row < rect.bottom; row++) {
36607
+ for (let col = rect.left; col < rect.right; col++) {
36608
+ const cellPos = map4.map[row * map4.width + col];
36609
+ const cell = rect.table.nodeAt(cellPos);
36610
+ if (seen[cellPos] || !cell)
36611
+ continue;
36612
+ seen[cellPos] = true;
36613
+ if (mergedPos == null) {
36614
+ mergedPos = cellPos;
36615
+ mergedCell = cell;
36616
+ } else {
36617
+ if (!isEmpty(cell))
36618
+ content = content.append(cell.content);
36619
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36620
+ tr2.delete(mapped, mapped + cell.nodeSize);
36621
+ }
36622
+ }
36623
+ }
36624
+ if (mergedPos == null || mergedCell == null) {
36625
+ return true;
36626
+ }
36627
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36628
+ ...addColSpan(
36629
+ mergedCell.attrs,
36630
+ mergedCell.attrs.colspan,
36631
+ rect.right - rect.left - mergedCell.attrs.colspan
36632
+ ),
36633
+ rowspan: rect.bottom - rect.top
36634
+ });
36635
+ if (content.size) {
36636
+ const end2 = mergedPos + 1 + mergedCell.content.size;
36637
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36638
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36639
+ }
36640
+ tr2.setSelection(
36641
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36642
+ );
36643
+ dispatch(tr2);
36644
+ }
36645
+ return true;
36646
+ }
36647
+ function splitCell(state2, dispatch) {
36648
+ const nodeTypes = tableNodeTypes(state2.schema);
36649
+ return splitCellWithType(({ node }) => {
36650
+ return nodeTypes[node.type.spec.tableRole];
36651
+ })(state2, dispatch);
36652
+ }
36653
+ function splitCellWithType(getCellType) {
36654
+ return (state2, dispatch) => {
36655
+ var _a2;
36656
+ const sel = state2.selection;
36657
+ let cellNode;
36658
+ let cellPos;
36659
+ if (!(sel instanceof CellSelection)) {
36660
+ cellNode = cellWrapping(sel.$from);
36661
+ if (!cellNode)
36662
+ return false;
36663
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36664
+ } else {
36665
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
36666
+ return false;
36667
+ cellNode = sel.$anchorCell.nodeAfter;
36668
+ cellPos = sel.$anchorCell.pos;
36669
+ }
36670
+ if (cellNode == null || cellPos == null) {
36671
+ return false;
36672
+ }
36673
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36674
+ return false;
36675
+ }
36676
+ if (dispatch) {
36677
+ let baseAttrs = cellNode.attrs;
36678
+ const attrs = [];
36679
+ const colwidth = baseAttrs.colwidth;
36680
+ if (baseAttrs.rowspan > 1)
36681
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
36682
+ if (baseAttrs.colspan > 1)
36683
+ baseAttrs = { ...baseAttrs, colspan: 1 };
36684
+ const rect = selectedRect(state2), tr2 = state2.tr;
36685
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36686
+ attrs.push(
36687
+ colwidth ? {
36688
+ ...baseAttrs,
36689
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36690
+ } : baseAttrs
36691
+ );
36692
+ let lastCell;
36693
+ for (let row = rect.top; row < rect.bottom; row++) {
36694
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
36695
+ if (row == rect.top)
36696
+ pos += cellNode.nodeSize;
36697
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36698
+ if (col == rect.left && row == rect.top)
36699
+ continue;
36700
+ tr2.insert(
36701
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36702
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36703
+ );
36704
+ }
36705
+ }
36706
+ tr2.setNodeMarkup(
36707
+ cellPos,
36708
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36709
+ attrs[0]
36710
+ );
36711
+ if (sel instanceof CellSelection)
36712
+ tr2.setSelection(
36713
+ new CellSelection(
36714
+ tr2.doc.resolve(sel.$anchorCell.pos),
36715
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
36716
+ )
36717
+ );
36718
+ dispatch(tr2);
36719
+ }
36720
+ return true;
36721
+ };
36722
+ }
36723
+ function setCellAttr(name, value) {
36724
+ return function(state2, dispatch) {
36725
+ if (!isInTable(state2))
36726
+ return false;
36727
+ const $cell = selectionCell(state2);
36728
+ if ($cell.nodeAfter.attrs[name] === value)
36729
+ return false;
36730
+ if (dispatch) {
36731
+ const tr2 = state2.tr;
36732
+ if (state2.selection instanceof CellSelection)
36733
+ state2.selection.forEachCell((node, pos) => {
36734
+ if (node.attrs[name] !== value)
36735
+ tr2.setNodeMarkup(pos, null, {
36736
+ ...node.attrs,
36737
+ [name]: value
36738
+ });
36739
+ });
36740
+ else
36741
+ tr2.setNodeMarkup($cell.pos, null, {
36742
+ ...$cell.nodeAfter.attrs,
36743
+ [name]: value
36744
+ });
36745
+ dispatch(tr2);
36746
+ }
36747
+ return true;
36748
+ };
36749
+ }
36750
+ function deprecated_toggleHeader(type3) {
36751
+ return function(state2, dispatch) {
36752
+ if (!isInTable(state2))
36753
+ return false;
36754
+ if (dispatch) {
36755
+ const types = tableNodeTypes(state2.schema);
36756
+ const rect = selectedRect(state2), tr2 = state2.tr;
36757
+ const cells = rect.map.cellsInRect(
36758
+ type3 == "column" ? {
36759
+ left: rect.left,
36760
+ top: 0,
36761
+ right: rect.right,
36762
+ bottom: rect.map.height
36763
+ } : type3 == "row" ? {
36764
+ left: 0,
36765
+ top: rect.top,
36766
+ right: rect.map.width,
36767
+ bottom: rect.bottom
36768
+ } : rect
36769
+ );
36770
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36771
+ for (let i2 = 0; i2 < cells.length; i2++)
36772
+ if (nodes[i2].type == types.header_cell)
36773
+ tr2.setNodeMarkup(
36774
+ rect.tableStart + cells[i2],
36775
+ types.cell,
36776
+ nodes[i2].attrs
36777
+ );
36778
+ if (tr2.steps.length == 0)
36779
+ for (let i2 = 0; i2 < cells.length; i2++)
36780
+ tr2.setNodeMarkup(
36781
+ rect.tableStart + cells[i2],
36782
+ types.header_cell,
36783
+ nodes[i2].attrs
36784
+ );
36785
+ dispatch(tr2);
36786
+ }
36787
+ return true;
36788
+ };
36789
+ }
36790
+ function isHeaderEnabledByType(type3, rect, types) {
36791
+ const cellPositions = rect.map.cellsInRect({
36792
+ left: 0,
36793
+ top: 0,
36794
+ right: type3 == "row" ? rect.map.width : 1,
36795
+ bottom: type3 == "column" ? rect.map.height : 1
36796
+ });
36797
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
36798
+ const cell = rect.table.nodeAt(cellPositions[i2]);
36799
+ if (cell && cell.type !== types.header_cell) {
36800
+ return false;
36801
+ }
36802
+ }
36803
+ return true;
36804
+ }
36805
+ function toggleHeader(type3, options) {
36806
+ options = options || { useDeprecatedLogic: false };
36807
+ if (options.useDeprecatedLogic)
36808
+ return deprecated_toggleHeader(type3);
36809
+ return function(state2, dispatch) {
36810
+ if (!isInTable(state2))
36811
+ return false;
36812
+ if (dispatch) {
36813
+ const types = tableNodeTypes(state2.schema);
36814
+ const rect = selectedRect(state2), tr2 = state2.tr;
36815
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36816
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
36817
+ "column",
36818
+ rect,
36819
+ types
36820
+ );
36821
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36822
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36823
+ const cellsRect = type3 == "column" ? {
36824
+ left: 0,
36825
+ top: selectionStartsAt,
36826
+ right: 1,
36827
+ bottom: rect.map.height
36828
+ } : type3 == "row" ? {
36829
+ left: selectionStartsAt,
36830
+ top: 0,
36831
+ right: rect.map.width,
36832
+ bottom: 1
36833
+ } : rect;
36834
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36835
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36836
+ const cellPos = relativeCellPos + rect.tableStart;
36837
+ const cell = tr2.doc.nodeAt(cellPos);
36838
+ if (cell) {
36839
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36840
+ }
36841
+ });
36842
+ dispatch(tr2);
36843
+ }
36844
+ return true;
36845
+ };
36846
+ }
36847
+ toggleHeader("row", {
36848
+ useDeprecatedLogic: true
36849
+ });
36850
+ toggleHeader("column", {
36851
+ useDeprecatedLogic: true
36852
+ });
36853
+ var toggleHeaderCell = toggleHeader("cell", {
36854
+ useDeprecatedLogic: true
36855
+ });
36856
+ function findNextCell($cell, dir) {
36857
+ if (dir < 0) {
36858
+ const before = $cell.nodeBefore;
36859
+ if (before)
36860
+ return $cell.pos - before.nodeSize;
36861
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36862
+ const rowNode = $cell.node(-1).child(row);
36863
+ const lastChild2 = rowNode.lastChild;
36864
+ if (lastChild2) {
36865
+ return rowEnd - 1 - lastChild2.nodeSize;
36866
+ }
36867
+ rowEnd -= rowNode.nodeSize;
36868
+ }
36869
+ } else {
36870
+ if ($cell.index() < $cell.parent.childCount - 1) {
36871
+ return $cell.pos + $cell.nodeAfter.nodeSize;
36872
+ }
36873
+ const table = $cell.node(-1);
36874
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36875
+ const rowNode = table.child(row);
36876
+ if (rowNode.childCount)
36877
+ return rowStart + 1;
36878
+ rowStart += rowNode.nodeSize;
36879
+ }
36880
+ }
36881
+ return null;
36882
+ }
36883
+ function goToNextCell(direction) {
36884
+ return function(state2, dispatch) {
36885
+ if (!isInTable(state2))
36886
+ return false;
36887
+ const cell = findNextCell(selectionCell(state2), direction);
36888
+ if (cell == null)
36889
+ return false;
36890
+ if (dispatch) {
36891
+ const $cell = state2.doc.resolve(cell);
36892
+ dispatch(
36893
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36894
+ );
36895
+ }
36896
+ return true;
36897
+ };
36898
+ }
36899
+ function deleteTable(state2, dispatch) {
36900
+ const $pos = state2.selection.$anchor;
36901
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
36902
+ const node = $pos.node(d2);
36903
+ if (node.type.spec.tableRole == "table") {
36904
+ if (dispatch)
36905
+ dispatch(
36906
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36907
+ );
36908
+ return true;
36909
+ }
36910
+ }
36911
+ return false;
36912
+ }
36913
+ function deleteCellSelection(state2, dispatch) {
36914
+ const sel = state2.selection;
36915
+ if (!(sel instanceof CellSelection))
36916
+ return false;
36917
+ if (dispatch) {
36918
+ const tr2 = state2.tr;
36919
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36920
+ sel.forEachCell((cell, pos) => {
36921
+ if (!cell.content.eq(baseContent))
36922
+ tr2.replace(
36923
+ tr2.mapping.map(pos + 1),
36924
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36925
+ new Slice(baseContent, 0, 0)
36926
+ );
36927
+ });
36928
+ if (tr2.docChanged)
36929
+ dispatch(tr2);
36930
+ }
36931
+ return true;
36932
+ }
36933
+ function pastedCells(slice4) {
36934
+ if (!slice4.size)
36935
+ return null;
36936
+ let { content, openStart, openEnd } = slice4;
36937
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36938
+ openStart--;
36939
+ openEnd--;
36940
+ content = content.child(0).content;
36941
+ }
36942
+ const first2 = content.child(0);
36943
+ const role = first2.type.spec.tableRole;
36944
+ const schema = first2.type.schema, rows = [];
36945
+ if (role == "row") {
36946
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36947
+ let cells = content.child(i2).content;
36948
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36949
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36950
+ if (left2 || right2)
36951
+ cells = fitSlice(
36952
+ tableNodeTypes(schema).row,
36953
+ new Slice(cells, left2, right2)
36954
+ ).content;
36955
+ rows.push(cells);
36956
+ }
36957
+ } else if (role == "cell" || role == "header_cell") {
36958
+ rows.push(
36959
+ openStart || openEnd ? fitSlice(
36960
+ tableNodeTypes(schema).row,
36961
+ new Slice(content, openStart, openEnd)
36962
+ ).content : content
36963
+ );
36964
+ } else {
36965
+ return null;
36966
+ }
36967
+ return ensureRectangular(schema, rows);
36968
+ }
36969
+ function ensureRectangular(schema, rows) {
36970
+ const widths = [];
36971
+ for (let i2 = 0; i2 < rows.length; i2++) {
36972
+ const row = rows[i2];
36973
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36974
+ const { rowspan, colspan } = row.child(j2).attrs;
36975
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36976
+ widths[r2] = (widths[r2] || 0) + colspan;
36977
+ }
36978
+ }
36979
+ let width = 0;
36980
+ for (let r2 = 0; r2 < widths.length; r2++)
36981
+ width = Math.max(width, widths[r2]);
36982
+ for (let r2 = 0; r2 < widths.length; r2++) {
36983
+ if (r2 >= rows.length)
36984
+ rows.push(Fragment.empty);
36985
+ if (widths[r2] < width) {
36986
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36987
+ const cells = [];
36988
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36989
+ cells.push(empty2);
36990
+ }
36991
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36992
+ }
36993
+ }
36994
+ return { height: rows.length, width, rows };
36995
+ }
36996
+ function fitSlice(nodeType, slice4) {
36997
+ const node = nodeType.createAndFill();
36998
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36999
+ return tr2.doc;
37000
+ }
37001
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
37002
+ if (width != newWidth) {
37003
+ const added = [];
37004
+ const newRows = [];
37005
+ for (let row = 0; row < rows.length; row++) {
37006
+ const frag = rows[row], cells = [];
37007
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
37008
+ let cell = frag.child(i2 % frag.childCount);
37009
+ if (col + cell.attrs.colspan > newWidth)
37010
+ cell = cell.type.createChecked(
37011
+ removeColSpan(
37012
+ cell.attrs,
37013
+ cell.attrs.colspan,
37014
+ col + cell.attrs.colspan - newWidth
37015
+ ),
37016
+ cell.content
37017
+ );
37018
+ cells.push(cell);
37019
+ col += cell.attrs.colspan;
37020
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
37021
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
37022
+ }
37023
+ newRows.push(Fragment.from(cells));
37024
+ }
37025
+ rows = newRows;
37026
+ width = newWidth;
37027
+ }
37028
+ if (height != newHeight) {
37029
+ const newRows = [];
37030
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
37031
+ const cells = [], source = rows[i2 % height];
37032
+ for (let j2 = 0; j2 < source.childCount; j2++) {
37033
+ let cell = source.child(j2);
37034
+ if (row + cell.attrs.rowspan > newHeight)
37035
+ cell = cell.type.create(
37036
+ {
37037
+ ...cell.attrs,
37038
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
37039
+ },
37040
+ cell.content
37041
+ );
37042
+ cells.push(cell);
37043
+ }
37044
+ newRows.push(Fragment.from(cells));
37045
+ }
37046
+ rows = newRows;
37047
+ height = newHeight;
37048
+ }
37049
+ return { width, height, rows };
37050
+ }
37051
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
37052
+ const schema = tr2.doc.type.schema;
37053
+ const types = tableNodeTypes(schema);
37054
+ let empty2;
37055
+ let emptyHead;
37056
+ if (width > map4.width) {
37057
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
37058
+ const rowNode = table.child(row);
37059
+ rowEnd += rowNode.nodeSize;
37060
+ const cells = [];
37061
+ let add2;
37062
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
37063
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
37064
+ else
37065
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
37066
+ for (let i2 = map4.width; i2 < width; i2++)
37067
+ cells.push(add2);
37068
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
37069
+ }
37070
+ }
37071
+ if (height > map4.height) {
37072
+ const cells = [];
37073
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
37074
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
37075
+ cells.push(
37076
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37077
+ );
37078
+ }
37079
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37080
+ for (let i2 = map4.height; i2 < height; i2++)
37081
+ rows.push(emptyRow);
37082
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37083
+ }
37084
+ return !!(empty2 || emptyHead);
37085
+ }
37086
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37087
+ if (top2 == 0 || top2 == map4.height)
37088
+ return false;
37089
+ let found2 = false;
37090
+ for (let col = left2; col < right2; col++) {
37091
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
37092
+ if (map4.map[index2 - map4.width] == pos) {
37093
+ found2 = true;
37094
+ const cell = table.nodeAt(pos);
37095
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37096
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37097
+ ...cell.attrs,
37098
+ rowspan: top2 - cellTop
37099
+ });
37100
+ tr2.insert(
37101
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37102
+ cell.type.createAndFill({
37103
+ ...cell.attrs,
37104
+ rowspan: cellTop + cell.attrs.rowspan - top2
37105
+ })
37106
+ );
37107
+ col += cell.attrs.colspan - 1;
37108
+ }
37109
+ }
37110
+ return found2;
37111
+ }
37112
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37113
+ if (left2 == 0 || left2 == map4.width)
37114
+ return false;
37115
+ let found2 = false;
37116
+ for (let row = top2; row < bottom2; row++) {
37117
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
37118
+ if (map4.map[index2 - 1] == pos) {
37119
+ found2 = true;
37120
+ const cell = table.nodeAt(pos);
37121
+ const cellLeft = map4.colCount(pos);
37122
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37123
+ tr2.setNodeMarkup(
37124
+ updatePos,
37125
+ null,
37126
+ removeColSpan(
37127
+ cell.attrs,
37128
+ left2 - cellLeft,
37129
+ cell.attrs.colspan - (left2 - cellLeft)
37130
+ )
37131
+ );
37132
+ tr2.insert(
37133
+ updatePos + cell.nodeSize,
37134
+ cell.type.createAndFill(
37135
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
37136
+ )
37137
+ );
37138
+ row += cell.attrs.rowspan - 1;
37139
+ }
37140
+ }
37141
+ return found2;
37142
+ }
37143
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
37144
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37145
+ if (!table) {
37146
+ throw new Error("No table found");
37147
+ }
37148
+ let map4 = TableMap.get(table);
37149
+ const { top: top2, left: left2 } = rect;
37150
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37151
+ const tr2 = state2.tr;
37152
+ let mapFrom = 0;
37153
+ function recomp() {
37154
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37155
+ if (!table) {
37156
+ throw new Error("No table found");
37157
+ }
37158
+ map4 = TableMap.get(table);
37159
+ mapFrom = tr2.mapping.maps.length;
37160
+ }
37161
+ if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37162
+ recomp();
37163
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, top2, mapFrom))
37164
+ recomp();
37165
+ if (isolateHorizontal(tr2, map4, table, tableStart, left2, right2, bottom2, mapFrom))
37166
+ recomp();
37167
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, left2, mapFrom))
37168
+ recomp();
37169
+ if (isolateVertical(tr2, map4, table, tableStart, top2, bottom2, right2, mapFrom))
37170
+ recomp();
37171
+ for (let row = top2; row < bottom2; row++) {
37172
+ const from2 = map4.positionAt(row, left2, table), to2 = map4.positionAt(row, right2, table);
37173
+ tr2.replace(
37174
+ tr2.mapping.slice(mapFrom).map(from2 + tableStart),
37175
+ tr2.mapping.slice(mapFrom).map(to2 + tableStart),
37176
+ new Slice(cells.rows[row - top2], 0, 0)
37177
+ );
37178
+ }
37179
+ recomp();
37180
+ tr2.setSelection(
37181
+ new CellSelection(
37182
+ tr2.doc.resolve(tableStart + map4.positionAt(top2, left2, table)),
37183
+ tr2.doc.resolve(tableStart + map4.positionAt(bottom2 - 1, right2 - 1, table))
37184
+ )
37185
+ );
37186
+ dispatch(tr2);
37187
+ }
37188
+ var handleKeyDown$1 = keydownHandler({
37189
+ ArrowLeft: arrow$3("horiz", -1),
37190
+ ArrowRight: arrow$3("horiz", 1),
37191
+ ArrowUp: arrow$3("vert", -1),
37192
+ ArrowDown: arrow$3("vert", 1),
37193
+ "Shift-ArrowLeft": shiftArrow("horiz", -1),
36430
37194
  "Shift-ArrowRight": shiftArrow("horiz", 1),
36431
37195
  "Shift-ArrowUp": shiftArrow("vert", -1),
36432
37196
  "Shift-ArrowDown": shiftArrow("vert", 1),
@@ -36500,28 +37264,8 @@ function shiftArrow(axis2, dir) {
36500
37264
  state2,
36501
37265
  dispatch,
36502
37266
  new CellSelection(cellSel.$anchorCell, $head)
36503
- );
36504
- };
36505
- }
36506
- function deleteCellSelection(state2, dispatch) {
36507
- const sel = state2.selection;
36508
- if (!(sel instanceof CellSelection))
36509
- return false;
36510
- if (dispatch) {
36511
- const tr2 = state2.tr;
36512
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36513
- sel.forEachCell((cell, pos) => {
36514
- if (!cell.content.eq(baseContent))
36515
- tr2.replace(
36516
- tr2.mapping.map(pos + 1),
36517
- tr2.mapping.map(pos + cell.nodeSize - 1),
36518
- new Slice(baseContent, 0, 0)
36519
- );
36520
- });
36521
- if (tr2.docChanged)
36522
- dispatch(tr2);
36523
- }
36524
- return true;
37267
+ );
37268
+ };
36525
37269
  }
36526
37270
  function handleTripleClick(view, pos) {
36527
37271
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
@@ -36661,28 +37405,37 @@ function cellUnderMouse(view, event) {
36661
37405
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
36662
37406
  }
36663
37407
  var TableView$1 = class TableView2 {
36664
- constructor(node, cellMinWidth) {
37408
+ constructor(node, defaultCellMinWidth) {
36665
37409
  this.node = node;
36666
- this.cellMinWidth = cellMinWidth;
37410
+ this.defaultCellMinWidth = defaultCellMinWidth;
36667
37411
  this.dom = document.createElement("div");
36668
37412
  this.dom.className = "tableWrapper";
36669
37413
  this.table = this.dom.appendChild(document.createElement("table"));
37414
+ this.table.style.setProperty(
37415
+ "--default-cell-min-width",
37416
+ `${defaultCellMinWidth}px`
37417
+ );
36670
37418
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
36671
- updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37419
+ updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36672
37420
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
36673
37421
  }
36674
37422
  update(node) {
36675
37423
  if (node.type != this.node.type)
36676
37424
  return false;
36677
37425
  this.node = node;
36678
- updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37426
+ updateColumnsOnResize(
37427
+ node,
37428
+ this.colgroup,
37429
+ this.table,
37430
+ this.defaultCellMinWidth
37431
+ );
36679
37432
  return true;
36680
37433
  }
36681
37434
  ignoreMutation(record) {
36682
37435
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
36683
37436
  }
36684
37437
  };
36685
- function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37438
+ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36686
37439
  var _a2;
36687
37440
  let totalWidth = 0;
36688
37441
  let fixedWidth = true;
@@ -36695,14 +37448,17 @@ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol,
36695
37448
  for (let j2 = 0; j2 < colspan; j2++, col++) {
36696
37449
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
36697
37450
  const cssWidth = hasWidth ? hasWidth + "px" : "";
36698
- totalWidth += hasWidth || cellMinWidth;
37451
+ totalWidth += hasWidth || defaultCellMinWidth;
36699
37452
  if (!hasWidth)
36700
37453
  fixedWidth = false;
36701
37454
  if (!nextDOM) {
36702
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37455
+ const col2 = document.createElement("col");
37456
+ col2.style.width = cssWidth;
37457
+ colgroup.appendChild(col2);
36703
37458
  } else {
36704
- if (nextDOM.style.width != cssWidth)
37459
+ if (nextDOM.style.width != cssWidth) {
36705
37460
  nextDOM.style.width = cssWidth;
37461
+ }
36706
37462
  nextDOM = nextDOM.nextSibling;
36707
37463
  }
36708
37464
  }
@@ -36726,6 +37482,7 @@ var columnResizingPluginKey = new PluginKey(
36726
37482
  function columnResizing({
36727
37483
  handleWidth = 5,
36728
37484
  cellMinWidth = 25,
37485
+ defaultCellMinWidth = 100,
36729
37486
  View = TableView$1,
36730
37487
  lastColumnResizable = true
36731
37488
  } = {}) {
@@ -36738,7 +37495,7 @@ function columnResizing({
36738
37495
  const tableName = tableNodeTypes(state2.schema).table.name;
36739
37496
  if (View && nodeViews) {
36740
37497
  nodeViews[tableName] = (node, view) => {
36741
- return new View(node, cellMinWidth, view);
37498
+ return new View(node, defaultCellMinWidth, view);
36742
37499
  };
36743
37500
  }
36744
37501
  return new ResizeState(-1, false);
@@ -36754,19 +37511,13 @@ function columnResizing({
36754
37511
  },
36755
37512
  handleDOMEvents: {
36756
37513
  mousemove: (view, event) => {
36757
- handleMouseMove(
36758
- view,
36759
- event,
36760
- handleWidth,
36761
- cellMinWidth,
36762
- lastColumnResizable
36763
- );
37514
+ handleMouseMove(view, event, handleWidth, lastColumnResizable);
36764
37515
  },
36765
37516
  mouseleave: (view) => {
36766
37517
  handleMouseLeave(view);
36767
37518
  },
36768
37519
  mousedown: (view, event) => {
36769
- handleMouseDown2(view, event, cellMinWidth);
37520
+ handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36770
37521
  }
36771
37522
  },
36772
37523
  decorations: (state2) => {
@@ -36802,7 +37553,7 @@ var ResizeState = class _ResizeState {
36802
37553
  return state2;
36803
37554
  }
36804
37555
  };
36805
- function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37556
+ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36806
37557
  const pluginState = columnResizingPluginKey.getState(view.state);
36807
37558
  if (!pluginState)
36808
37559
  return;
@@ -36823,722 +37574,198 @@ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResiz
36823
37574
  const map4 = TableMap.get(table);
36824
37575
  const tableStart = $cell.start(-1);
36825
37576
  const col = map4.colCount($cell.pos - tableStart) + $cell.nodeAfter.attrs.colspan - 1;
36826
- if (col == map4.width - 1) {
36827
- return;
36828
- }
36829
- }
36830
- updateHandle(view, cell);
36831
- }
36832
- }
36833
- }
36834
- function handleMouseLeave(view) {
36835
- const pluginState = columnResizingPluginKey.getState(view.state);
36836
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36837
- updateHandle(view, -1);
36838
- }
36839
- function handleMouseDown2(view, event, cellMinWidth) {
36840
- var _a2;
36841
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36842
- const pluginState = columnResizingPluginKey.getState(view.state);
36843
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36844
- return false;
36845
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36846
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36847
- view.dispatch(
36848
- view.state.tr.setMeta(columnResizingPluginKey, {
36849
- setDragging: { startX: event.clientX, startWidth: width }
36850
- })
36851
- );
36852
- function finish(event2) {
36853
- win.removeEventListener("mouseup", finish);
36854
- win.removeEventListener("mousemove", move);
36855
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36856
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36857
- updateColumnWidth(
36858
- view,
36859
- pluginState2.activeHandle,
36860
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36861
- );
36862
- view.dispatch(
36863
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36864
- );
36865
- }
36866
- }
36867
- function move(event2) {
36868
- if (!event2.which)
36869
- return finish(event2);
36870
- const pluginState2 = columnResizingPluginKey.getState(view.state);
36871
- if (!pluginState2)
36872
- return;
36873
- if (pluginState2.dragging) {
36874
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36875
- displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36876
- }
36877
- }
36878
- win.addEventListener("mouseup", finish);
36879
- win.addEventListener("mousemove", move);
36880
- event.preventDefault();
36881
- return true;
36882
- }
36883
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
36884
- const width = colwidth && colwidth[colwidth.length - 1];
36885
- if (width)
36886
- return width;
36887
- const dom = view.domAtPos(cellPos);
36888
- const node = dom.node.childNodes[dom.offset];
36889
- let domWidth = node.offsetWidth, parts = colspan;
36890
- if (colwidth) {
36891
- for (let i2 = 0; i2 < colspan; i2++)
36892
- if (colwidth[i2]) {
36893
- domWidth -= colwidth[i2];
36894
- parts--;
36895
- }
36896
- }
36897
- return domWidth / parts;
36898
- }
36899
- function domCellAround(target) {
36900
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
36901
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36902
- return target;
36903
- }
36904
- function edgeCell(view, event, side, handleWidth) {
36905
- const offset2 = side == "right" ? -handleWidth : handleWidth;
36906
- const found2 = view.posAtCoords({
36907
- left: event.clientX + offset2,
36908
- top: event.clientY
36909
- });
36910
- if (!found2)
36911
- return -1;
36912
- const { pos } = found2;
36913
- const $cell = cellAround(view.state.doc.resolve(pos));
36914
- if (!$cell)
36915
- return -1;
36916
- if (side == "right")
36917
- return $cell.pos;
36918
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36919
- const index2 = map4.map.indexOf($cell.pos - start2);
36920
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36921
- }
36922
- function draggedWidth(dragging, event, cellMinWidth) {
36923
- const offset2 = event.clientX - dragging.startX;
36924
- return Math.max(cellMinWidth, dragging.startWidth + offset2);
36925
- }
36926
- function updateHandle(view, value) {
36927
- view.dispatch(
36928
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36929
- );
36930
- }
36931
- function updateColumnWidth(view, cell, width) {
36932
- const $cell = view.state.doc.resolve(cell);
36933
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36934
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36935
- const tr2 = view.state.tr;
36936
- for (let row = 0; row < map4.height; row++) {
36937
- const mapIndex = row * map4.width + col;
36938
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36939
- continue;
36940
- const pos = map4.map[mapIndex];
36941
- const attrs = table.nodeAt(pos).attrs;
36942
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36943
- if (attrs.colwidth && attrs.colwidth[index2] == width)
36944
- continue;
36945
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36946
- colwidth[index2] = width;
36947
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36948
- }
36949
- if (tr2.docChanged)
36950
- view.dispatch(tr2);
36951
- }
36952
- function displayColumnWidth(view, cell, width, cellMinWidth) {
36953
- const $cell = view.state.doc.resolve(cell);
36954
- const table = $cell.node(-1), start2 = $cell.start(-1);
36955
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36956
- let dom = view.domAtPos($cell.start(-1)).node;
36957
- while (dom && dom.nodeName != "TABLE") {
36958
- dom = dom.parentNode;
36959
- }
36960
- if (!dom)
36961
- return;
36962
- updateColumnsOnResize(
36963
- table,
36964
- dom.firstChild,
36965
- dom,
36966
- cellMinWidth,
36967
- col,
36968
- width
36969
- );
36970
- }
36971
- function zeroes(n2) {
36972
- return Array(n2).fill(0);
36973
- }
36974
- function handleDecorations(state2, cell) {
36975
- const decorations = [];
36976
- const $cell = state2.doc.resolve(cell);
36977
- const table = $cell.node(-1);
36978
- if (!table) {
36979
- return DecorationSet.empty;
36980
- }
36981
- const map4 = TableMap.get(table);
36982
- const start2 = $cell.start(-1);
36983
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36984
- for (let row = 0; row < map4.height; row++) {
36985
- const index2 = col + row * map4.width;
36986
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36987
- const cellPos = map4.map[index2];
36988
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36989
- const dom = document.createElement("div");
36990
- dom.className = "column-resize-handle";
36991
- decorations.push(Decoration.widget(pos, dom));
36992
- }
36993
- }
36994
- return DecorationSet.create(state2.doc, decorations);
36995
- }
36996
- function selectedRect(state2) {
36997
- const sel = state2.selection;
36998
- const $pos = selectionCell(state2);
36999
- const table = $pos.node(-1);
37000
- const tableStart = $pos.start(-1);
37001
- const map4 = TableMap.get(table);
37002
- const rect = sel instanceof CellSelection ? map4.rectBetween(
37003
- sel.$anchorCell.pos - tableStart,
37004
- sel.$headCell.pos - tableStart
37005
- ) : map4.findCell($pos.pos - tableStart);
37006
- return { ...rect, tableStart, map: map4, table };
37007
- }
37008
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
37009
- let refColumn = col > 0 ? -1 : 0;
37010
- if (columnIsHeader(map4, table, col + refColumn)) {
37011
- refColumn = col == 0 || col == map4.width ? null : 0;
37012
- }
37013
- for (let row = 0; row < map4.height; row++) {
37014
- const index2 = row * map4.width + col;
37015
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
37016
- const pos = map4.map[index2];
37017
- const cell = table.nodeAt(pos);
37018
- tr2.setNodeMarkup(
37019
- tr2.mapping.map(tableStart + pos),
37020
- null,
37021
- addColSpan(cell.attrs, col - map4.colCount(pos))
37022
- );
37023
- row += cell.attrs.rowspan - 1;
37024
- } else {
37025
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
37026
- const pos = map4.positionAt(row, col, table);
37027
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
37028
- }
37029
- }
37030
- return tr2;
37031
- }
37032
- function addColumnBefore(state2, dispatch) {
37033
- if (!isInTable(state2))
37034
- return false;
37035
- if (dispatch) {
37036
- const rect = selectedRect(state2);
37037
- dispatch(addColumn(state2.tr, rect, rect.left));
37038
- }
37039
- return true;
37040
- }
37041
- function addColumnAfter(state2, dispatch) {
37042
- if (!isInTable(state2))
37043
- return false;
37044
- if (dispatch) {
37045
- const rect = selectedRect(state2);
37046
- dispatch(addColumn(state2.tr, rect, rect.right));
37047
- }
37048
- return true;
37049
- }
37050
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
37051
- const mapStart = tr2.mapping.maps.length;
37052
- for (let row = 0; row < map4.height; ) {
37053
- const index2 = row * map4.width + col;
37054
- const pos = map4.map[index2];
37055
- const cell = table.nodeAt(pos);
37056
- const attrs = cell.attrs;
37057
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
37058
- tr2.setNodeMarkup(
37059
- tr2.mapping.slice(mapStart).map(tableStart + pos),
37060
- null,
37061
- removeColSpan(attrs, col - map4.colCount(pos))
37062
- );
37063
- } else {
37064
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
37065
- tr2.delete(start2, start2 + cell.nodeSize);
37066
- }
37067
- row += attrs.rowspan;
37068
- }
37069
- }
37070
- function deleteColumn(state2, dispatch) {
37071
- if (!isInTable(state2))
37072
- return false;
37073
- if (dispatch) {
37074
- const rect = selectedRect(state2);
37075
- const tr2 = state2.tr;
37076
- if (rect.left == 0 && rect.right == rect.map.width)
37077
- return false;
37078
- for (let i2 = rect.right - 1; ; i2--) {
37079
- removeColumn(tr2, rect, i2);
37080
- if (i2 == rect.left)
37081
- break;
37082
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37083
- if (!table) {
37084
- throw RangeError("No table found");
37085
- }
37086
- rect.table = table;
37087
- rect.map = TableMap.get(table);
37088
- }
37089
- dispatch(tr2);
37090
- }
37091
- return true;
37092
- }
37093
- function rowIsHeader(map4, table, row) {
37094
- var _a2;
37095
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
37096
- for (let col = 0; col < map4.width; col++)
37097
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37098
- return false;
37099
- return true;
37100
- }
37101
- function addRow(tr2, { map: map4, tableStart, table }, row) {
37102
- var _a2;
37103
- let rowPos = tableStart;
37104
- for (let i2 = 0; i2 < row; i2++)
37105
- rowPos += table.child(i2).nodeSize;
37106
- const cells = [];
37107
- let refRow = row > 0 ? -1 : 0;
37108
- if (rowIsHeader(map4, table, row + refRow))
37109
- refRow = row == 0 || row == map4.height ? null : 0;
37110
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37111
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37112
- const pos = map4.map[index2];
37113
- const attrs = table.nodeAt(pos).attrs;
37114
- tr2.setNodeMarkup(tableStart + pos, null, {
37115
- ...attrs,
37116
- rowspan: attrs.rowspan + 1
37117
- });
37118
- col += attrs.colspan - 1;
37119
- } else {
37120
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37121
- const node = type3 == null ? void 0 : type3.createAndFill();
37122
- if (node)
37123
- cells.push(node);
37124
- }
37125
- }
37126
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37127
- return tr2;
37128
- }
37129
- function addRowBefore(state2, dispatch) {
37130
- if (!isInTable(state2))
37131
- return false;
37132
- if (dispatch) {
37133
- const rect = selectedRect(state2);
37134
- dispatch(addRow(state2.tr, rect, rect.top));
37135
- }
37136
- return true;
37137
- }
37138
- function addRowAfter(state2, dispatch) {
37139
- if (!isInTable(state2))
37140
- return false;
37141
- if (dispatch) {
37142
- const rect = selectedRect(state2);
37143
- dispatch(addRow(state2.tr, rect, rect.bottom));
37144
- }
37145
- return true;
37146
- }
37147
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
37148
- let rowPos = 0;
37149
- for (let i2 = 0; i2 < row; i2++)
37150
- rowPos += table.child(i2).nodeSize;
37151
- const nextRow = rowPos + table.child(row).nodeSize;
37152
- const mapFrom = tr2.mapping.maps.length;
37153
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
37154
- const seen = /* @__PURE__ */ new Set();
37155
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37156
- const pos = map4.map[index2];
37157
- if (seen.has(pos))
37158
- continue;
37159
- seen.add(pos);
37160
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
37161
- const attrs = table.nodeAt(pos).attrs;
37162
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37163
- ...attrs,
37164
- rowspan: attrs.rowspan - 1
37165
- });
37166
- col += attrs.colspan - 1;
37167
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37168
- const cell = table.nodeAt(pos);
37169
- const attrs = cell.attrs;
37170
- const copy2 = cell.type.create(
37171
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37172
- cell.content
37173
- );
37174
- const newPos = map4.positionAt(row + 1, col, table);
37175
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37176
- col += attrs.colspan - 1;
37177
- }
37178
- }
37179
- }
37180
- function deleteRow(state2, dispatch) {
37181
- if (!isInTable(state2))
37182
- return false;
37183
- if (dispatch) {
37184
- const rect = selectedRect(state2), tr2 = state2.tr;
37185
- if (rect.top == 0 && rect.bottom == rect.map.height)
37186
- return false;
37187
- for (let i2 = rect.bottom - 1; ; i2--) {
37188
- removeRow(tr2, rect, i2);
37189
- if (i2 == rect.top)
37190
- break;
37191
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37192
- if (!table) {
37193
- throw RangeError("No table found");
37194
- }
37195
- rect.table = table;
37196
- rect.map = TableMap.get(rect.table);
37197
- }
37198
- dispatch(tr2);
37199
- }
37200
- return true;
37201
- }
37202
- function isEmpty(cell) {
37203
- const c2 = cell.content;
37204
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37205
- }
37206
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37207
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37208
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37209
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37210
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37211
- return true;
37212
- indexLeft += width;
37213
- indexRight += width;
37214
- }
37215
- for (let i2 = rect.left; i2 < rect.right; i2++) {
37216
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37217
- return true;
37218
- indexTop++;
37219
- indexBottom++;
37220
- }
37221
- return false;
37222
- }
37223
- function mergeCells(state2, dispatch) {
37224
- const sel = state2.selection;
37225
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37226
- return false;
37227
- const rect = selectedRect(state2), { map: map4 } = rect;
37228
- if (cellsOverlapRectangle(map4, rect))
37229
- return false;
37230
- if (dispatch) {
37231
- const tr2 = state2.tr;
37232
- const seen = {};
37233
- let content = Fragment.empty;
37234
- let mergedPos;
37235
- let mergedCell;
37236
- for (let row = rect.top; row < rect.bottom; row++) {
37237
- for (let col = rect.left; col < rect.right; col++) {
37238
- const cellPos = map4.map[row * map4.width + col];
37239
- const cell = rect.table.nodeAt(cellPos);
37240
- if (seen[cellPos] || !cell)
37241
- continue;
37242
- seen[cellPos] = true;
37243
- if (mergedPos == null) {
37244
- mergedPos = cellPos;
37245
- mergedCell = cell;
37246
- } else {
37247
- if (!isEmpty(cell))
37248
- content = content.append(cell.content);
37249
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37250
- tr2.delete(mapped, mapped + cell.nodeSize);
37251
- }
37252
- }
37253
- }
37254
- if (mergedPos == null || mergedCell == null) {
37255
- return true;
37256
- }
37257
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37258
- ...addColSpan(
37259
- mergedCell.attrs,
37260
- mergedCell.attrs.colspan,
37261
- rect.right - rect.left - mergedCell.attrs.colspan
37262
- ),
37263
- rowspan: rect.bottom - rect.top
37264
- });
37265
- if (content.size) {
37266
- const end2 = mergedPos + 1 + mergedCell.content.size;
37267
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37268
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37269
- }
37270
- tr2.setSelection(
37271
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37272
- );
37273
- dispatch(tr2);
37274
- }
37275
- return true;
37276
- }
37277
- function splitCell(state2, dispatch) {
37278
- const nodeTypes = tableNodeTypes(state2.schema);
37279
- return splitCellWithType(({ node }) => {
37280
- return nodeTypes[node.type.spec.tableRole];
37281
- })(state2, dispatch);
37282
- }
37283
- function splitCellWithType(getCellType) {
37284
- return (state2, dispatch) => {
37285
- var _a2;
37286
- const sel = state2.selection;
37287
- let cellNode;
37288
- let cellPos;
37289
- if (!(sel instanceof CellSelection)) {
37290
- cellNode = cellWrapping(sel.$from);
37291
- if (!cellNode)
37292
- return false;
37293
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37294
- } else {
37295
- if (sel.$anchorCell.pos != sel.$headCell.pos)
37296
- return false;
37297
- cellNode = sel.$anchorCell.nodeAfter;
37298
- cellPos = sel.$anchorCell.pos;
37299
- }
37300
- if (cellNode == null || cellPos == null) {
37301
- return false;
37302
- }
37303
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37304
- return false;
37305
- }
37306
- if (dispatch) {
37307
- let baseAttrs = cellNode.attrs;
37308
- const attrs = [];
37309
- const colwidth = baseAttrs.colwidth;
37310
- if (baseAttrs.rowspan > 1)
37311
- baseAttrs = { ...baseAttrs, rowspan: 1 };
37312
- if (baseAttrs.colspan > 1)
37313
- baseAttrs = { ...baseAttrs, colspan: 1 };
37314
- const rect = selectedRect(state2), tr2 = state2.tr;
37315
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37316
- attrs.push(
37317
- colwidth ? {
37318
- ...baseAttrs,
37319
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37320
- } : baseAttrs
37321
- );
37322
- let lastCell;
37323
- for (let row = rect.top; row < rect.bottom; row++) {
37324
- let pos = rect.map.positionAt(row, rect.left, rect.table);
37325
- if (row == rect.top)
37326
- pos += cellNode.nodeSize;
37327
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37328
- if (col == rect.left && row == rect.top)
37329
- continue;
37330
- tr2.insert(
37331
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37332
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37333
- );
37577
+ if (col == map4.width - 1) {
37578
+ return;
37334
37579
  }
37335
37580
  }
37336
- tr2.setNodeMarkup(
37337
- cellPos,
37338
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37339
- attrs[0]
37340
- );
37341
- if (sel instanceof CellSelection)
37342
- tr2.setSelection(
37343
- new CellSelection(
37344
- tr2.doc.resolve(sel.$anchorCell.pos),
37345
- lastCell ? tr2.doc.resolve(lastCell) : void 0
37346
- )
37347
- );
37348
- dispatch(tr2);
37581
+ updateHandle(view, cell);
37349
37582
  }
37350
- return true;
37351
- };
37583
+ }
37352
37584
  }
37353
- function setCellAttr(name, value) {
37354
- return function(state2, dispatch) {
37355
- if (!isInTable(state2))
37356
- return false;
37357
- const $cell = selectionCell(state2);
37358
- if ($cell.nodeAfter.attrs[name] === value)
37359
- return false;
37360
- if (dispatch) {
37361
- const tr2 = state2.tr;
37362
- if (state2.selection instanceof CellSelection)
37363
- state2.selection.forEachCell((node, pos) => {
37364
- if (node.attrs[name] !== value)
37365
- tr2.setNodeMarkup(pos, null, {
37366
- ...node.attrs,
37367
- [name]: value
37368
- });
37369
- });
37370
- else
37371
- tr2.setNodeMarkup($cell.pos, null, {
37372
- ...$cell.nodeAfter.attrs,
37373
- [name]: value
37374
- });
37375
- dispatch(tr2);
37376
- }
37377
- return true;
37378
- };
37585
+ function handleMouseLeave(view) {
37586
+ const pluginState = columnResizingPluginKey.getState(view.state);
37587
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37588
+ updateHandle(view, -1);
37379
37589
  }
37380
- function deprecated_toggleHeader(type3) {
37381
- return function(state2, dispatch) {
37382
- if (!isInTable(state2))
37383
- return false;
37384
- if (dispatch) {
37385
- const types = tableNodeTypes(state2.schema);
37386
- const rect = selectedRect(state2), tr2 = state2.tr;
37387
- const cells = rect.map.cellsInRect(
37388
- type3 == "column" ? {
37389
- left: rect.left,
37390
- top: 0,
37391
- right: rect.right,
37392
- bottom: rect.map.height
37393
- } : type3 == "row" ? {
37394
- left: 0,
37395
- top: rect.top,
37396
- right: rect.map.width,
37397
- bottom: rect.bottom
37398
- } : rect
37590
+ function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37591
+ var _a2;
37592
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37593
+ const pluginState = columnResizingPluginKey.getState(view.state);
37594
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37595
+ return false;
37596
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37597
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37598
+ view.dispatch(
37599
+ view.state.tr.setMeta(columnResizingPluginKey, {
37600
+ setDragging: { startX: event.clientX, startWidth: width }
37601
+ })
37602
+ );
37603
+ function finish(event2) {
37604
+ win.removeEventListener("mouseup", finish);
37605
+ win.removeEventListener("mousemove", move);
37606
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37607
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37608
+ updateColumnWidth(
37609
+ view,
37610
+ pluginState2.activeHandle,
37611
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37612
+ );
37613
+ view.dispatch(
37614
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37399
37615
  );
37400
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37401
- for (let i2 = 0; i2 < cells.length; i2++)
37402
- if (nodes[i2].type == types.header_cell)
37403
- tr2.setNodeMarkup(
37404
- rect.tableStart + cells[i2],
37405
- types.cell,
37406
- nodes[i2].attrs
37407
- );
37408
- if (tr2.steps.length == 0)
37409
- for (let i2 = 0; i2 < cells.length; i2++)
37410
- tr2.setNodeMarkup(
37411
- rect.tableStart + cells[i2],
37412
- types.header_cell,
37413
- nodes[i2].attrs
37414
- );
37415
- dispatch(tr2);
37416
- }
37417
- return true;
37418
- };
37419
- }
37420
- function isHeaderEnabledByType(type3, rect, types) {
37421
- const cellPositions = rect.map.cellsInRect({
37422
- left: 0,
37423
- top: 0,
37424
- right: type3 == "row" ? rect.map.width : 1,
37425
- bottom: type3 == "column" ? rect.map.height : 1
37426
- });
37427
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
37428
- const cell = rect.table.nodeAt(cellPositions[i2]);
37429
- if (cell && cell.type !== types.header_cell) {
37430
- return false;
37431
37616
  }
37432
37617
  }
37433
- return true;
37434
- }
37435
- function toggleHeader(type3, options) {
37436
- options = options || { useDeprecatedLogic: false };
37437
- if (options.useDeprecatedLogic)
37438
- return deprecated_toggleHeader(type3);
37439
- return function(state2, dispatch) {
37440
- if (!isInTable(state2))
37441
- return false;
37442
- if (dispatch) {
37443
- const types = tableNodeTypes(state2.schema);
37444
- const rect = selectedRect(state2), tr2 = state2.tr;
37445
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37446
- const isHeaderColumnEnabled = isHeaderEnabledByType(
37447
- "column",
37448
- rect,
37449
- types
37618
+ function move(event2) {
37619
+ if (!event2.which)
37620
+ return finish(event2);
37621
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
37622
+ if (!pluginState2)
37623
+ return;
37624
+ if (pluginState2.dragging) {
37625
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37626
+ displayColumnWidth(
37627
+ view,
37628
+ pluginState2.activeHandle,
37629
+ dragged,
37630
+ defaultCellMinWidth
37450
37631
  );
37451
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37452
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37453
- const cellsRect = type3 == "column" ? {
37454
- left: 0,
37455
- top: selectionStartsAt,
37456
- right: 1,
37457
- bottom: rect.map.height
37458
- } : type3 == "row" ? {
37459
- left: selectionStartsAt,
37460
- top: 0,
37461
- right: rect.map.width,
37462
- bottom: 1
37463
- } : rect;
37464
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37465
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37466
- const cellPos = relativeCellPos + rect.tableStart;
37467
- const cell = tr2.doc.nodeAt(cellPos);
37468
- if (cell) {
37469
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37470
- }
37471
- });
37472
- dispatch(tr2);
37473
37632
  }
37474
- return true;
37475
- };
37633
+ }
37634
+ displayColumnWidth(
37635
+ view,
37636
+ pluginState.activeHandle,
37637
+ width,
37638
+ defaultCellMinWidth
37639
+ );
37640
+ win.addEventListener("mouseup", finish);
37641
+ win.addEventListener("mousemove", move);
37642
+ event.preventDefault();
37643
+ return true;
37476
37644
  }
37477
- toggleHeader("row", {
37478
- useDeprecatedLogic: true
37479
- });
37480
- toggleHeader("column", {
37481
- useDeprecatedLogic: true
37482
- });
37483
- var toggleHeaderCell = toggleHeader("cell", {
37484
- useDeprecatedLogic: true
37485
- });
37486
- function findNextCell($cell, dir) {
37487
- if (dir < 0) {
37488
- const before = $cell.nodeBefore;
37489
- if (before)
37490
- return $cell.pos - before.nodeSize;
37491
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37492
- const rowNode = $cell.node(-1).child(row);
37493
- const lastChild2 = rowNode.lastChild;
37494
- if (lastChild2) {
37495
- return rowEnd - 1 - lastChild2.nodeSize;
37645
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
37646
+ const width = colwidth && colwidth[colwidth.length - 1];
37647
+ if (width)
37648
+ return width;
37649
+ const dom = view.domAtPos(cellPos);
37650
+ const node = dom.node.childNodes[dom.offset];
37651
+ let domWidth = node.offsetWidth, parts = colspan;
37652
+ if (colwidth) {
37653
+ for (let i2 = 0; i2 < colspan; i2++)
37654
+ if (colwidth[i2]) {
37655
+ domWidth -= colwidth[i2];
37656
+ parts--;
37496
37657
  }
37497
- rowEnd -= rowNode.nodeSize;
37498
- }
37499
- } else {
37500
- if ($cell.index() < $cell.parent.childCount - 1) {
37501
- return $cell.pos + $cell.nodeAfter.nodeSize;
37502
- }
37503
- const table = $cell.node(-1);
37504
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37505
- const rowNode = table.child(row);
37506
- if (rowNode.childCount)
37507
- return rowStart + 1;
37508
- rowStart += rowNode.nodeSize;
37509
- }
37510
37658
  }
37511
- return null;
37659
+ return domWidth / parts;
37512
37660
  }
37513
- function goToNextCell(direction) {
37514
- return function(state2, dispatch) {
37515
- if (!isInTable(state2))
37516
- return false;
37517
- const cell = findNextCell(selectionCell(state2), direction);
37518
- if (cell == null)
37519
- return false;
37520
- if (dispatch) {
37521
- const $cell = state2.doc.resolve(cell);
37522
- dispatch(
37523
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37524
- );
37525
- }
37526
- return true;
37527
- };
37661
+ function domCellAround(target) {
37662
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
37663
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37664
+ return target;
37528
37665
  }
37529
- function deleteTable(state2, dispatch) {
37530
- const $pos = state2.selection.$anchor;
37531
- for (let d2 = $pos.depth; d2 > 0; d2--) {
37532
- const node = $pos.node(d2);
37533
- if (node.type.spec.tableRole == "table") {
37534
- if (dispatch)
37535
- dispatch(
37536
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37666
+ function edgeCell(view, event, side, handleWidth) {
37667
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
37668
+ const found2 = view.posAtCoords({
37669
+ left: event.clientX + offset2,
37670
+ top: event.clientY
37671
+ });
37672
+ if (!found2)
37673
+ return -1;
37674
+ const { pos } = found2;
37675
+ const $cell = cellAround(view.state.doc.resolve(pos));
37676
+ if (!$cell)
37677
+ return -1;
37678
+ if (side == "right")
37679
+ return $cell.pos;
37680
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37681
+ const index2 = map4.map.indexOf($cell.pos - start2);
37682
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37683
+ }
37684
+ function draggedWidth(dragging, event, resizeMinWidth) {
37685
+ const offset2 = event.clientX - dragging.startX;
37686
+ return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37687
+ }
37688
+ function updateHandle(view, value) {
37689
+ view.dispatch(
37690
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37691
+ );
37692
+ }
37693
+ function updateColumnWidth(view, cell, width) {
37694
+ const $cell = view.state.doc.resolve(cell);
37695
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37696
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37697
+ const tr2 = view.state.tr;
37698
+ for (let row = 0; row < map4.height; row++) {
37699
+ const mapIndex = row * map4.width + col;
37700
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37701
+ continue;
37702
+ const pos = map4.map[mapIndex];
37703
+ const attrs = table.nodeAt(pos).attrs;
37704
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37705
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
37706
+ continue;
37707
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37708
+ colwidth[index2] = width;
37709
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37710
+ }
37711
+ if (tr2.docChanged)
37712
+ view.dispatch(tr2);
37713
+ }
37714
+ function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37715
+ const $cell = view.state.doc.resolve(cell);
37716
+ const table = $cell.node(-1), start2 = $cell.start(-1);
37717
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37718
+ let dom = view.domAtPos($cell.start(-1)).node;
37719
+ while (dom && dom.nodeName != "TABLE") {
37720
+ dom = dom.parentNode;
37721
+ }
37722
+ if (!dom)
37723
+ return;
37724
+ updateColumnsOnResize(
37725
+ table,
37726
+ dom.firstChild,
37727
+ dom,
37728
+ defaultCellMinWidth,
37729
+ col,
37730
+ width
37731
+ );
37732
+ }
37733
+ function zeroes(n2) {
37734
+ return Array(n2).fill(0);
37735
+ }
37736
+ function handleDecorations(state2, cell) {
37737
+ var _a2;
37738
+ const decorations = [];
37739
+ const $cell = state2.doc.resolve(cell);
37740
+ const table = $cell.node(-1);
37741
+ if (!table) {
37742
+ return DecorationSet.empty;
37743
+ }
37744
+ const map4 = TableMap.get(table);
37745
+ const start2 = $cell.start(-1);
37746
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37747
+ for (let row = 0; row < map4.height; row++) {
37748
+ const index2 = col + row * map4.width;
37749
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37750
+ const cellPos = map4.map[index2];
37751
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37752
+ const dom = document.createElement("div");
37753
+ dom.className = "column-resize-handle";
37754
+ if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37755
+ decorations.push(
37756
+ Decoration.node(
37757
+ start2 + cellPos,
37758
+ start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37759
+ {
37760
+ class: "column-resize-dragging"
37761
+ }
37762
+ )
37537
37763
  );
37538
- return true;
37764
+ }
37765
+ decorations.push(Decoration.widget(pos, dom));
37539
37766
  }
37540
37767
  }
37541
- return false;
37768
+ return DecorationSet.create(state2.doc, decorations);
37542
37769
  }
37543
37770
  function tableEditing({
37544
37771
  allowTableNodeSelection = false
@@ -37583,33 +37810,46 @@ function tableEditing({
37583
37810
  }
37584
37811
  });
37585
37812
  }
37813
+ function getColStyleDeclaration(minWidth, width) {
37814
+ if (width) {
37815
+ return ["width", `${Math.max(width, minWidth)}px`];
37816
+ }
37817
+ return ["min-width", `${minWidth}px`];
37818
+ }
37586
37819
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37820
+ var _a2;
37587
37821
  let totalWidth = 0;
37588
37822
  let fixedWidth = true;
37589
37823
  let nextDOM = colgroup.firstChild;
37590
37824
  const row = node.firstChild;
37591
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37592
- const { colspan, colwidth } = row.child(i2).attrs;
37593
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37594
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37595
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37596
- totalWidth += hasWidth || cellMinWidth;
37597
- if (!hasWidth) {
37598
- fixedWidth = false;
37599
- }
37600
- if (!nextDOM) {
37601
- colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37602
- } else {
37603
- if (nextDOM.style.width !== cssWidth) {
37604
- nextDOM.style.width = cssWidth;
37825
+ if (row !== null) {
37826
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37827
+ const { colspan, colwidth } = row.child(i2).attrs;
37828
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37829
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37830
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37831
+ totalWidth += hasWidth || cellMinWidth;
37832
+ if (!hasWidth) {
37833
+ fixedWidth = false;
37834
+ }
37835
+ if (!nextDOM) {
37836
+ const colElement = document.createElement("col");
37837
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37838
+ colElement.style.setProperty(propertyKey, propertyValue);
37839
+ colgroup.appendChild(colElement);
37840
+ } else {
37841
+ if (nextDOM.style.width !== cssWidth) {
37842
+ const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37843
+ nextDOM.style.setProperty(propertyKey, propertyValue);
37844
+ }
37845
+ nextDOM = nextDOM.nextSibling;
37605
37846
  }
37606
- nextDOM = nextDOM.nextSibling;
37607
37847
  }
37608
37848
  }
37609
37849
  }
37610
37850
  while (nextDOM) {
37611
37851
  const after = nextDOM.nextSibling;
37612
- nextDOM.parentNode.removeChild(nextDOM);
37852
+ (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37613
37853
  nextDOM = after;
37614
37854
  }
37615
37855
  if (fixedWidth) {
@@ -37655,12 +37895,15 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37655
37895
  const { colspan, colwidth } = row.child(i2).attrs;
37656
37896
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37657
37897
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37658
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37659
37898
  totalWidth += hasWidth || cellMinWidth;
37660
37899
  if (!hasWidth) {
37661
37900
  fixedWidth = false;
37662
37901
  }
37663
- cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37902
+ const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37903
+ cols.push([
37904
+ "col",
37905
+ { style: `${property}: ${value}` }
37906
+ ]);
37664
37907
  }
37665
37908
  }
37666
37909
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -37869,6 +38112,7 @@ const Table = Node$1.create({
37869
38112
  columnResizing({
37870
38113
  handleWidth: this.options.handleWidth,
37871
38114
  cellMinWidth: this.options.cellMinWidth,
38115
+ defaultCellMinWidth: this.options.cellMinWidth,
37872
38116
  View: this.options.View,
37873
38117
  lastColumnResizable: this.options.lastColumnResizable
37874
38118
  })
@@ -37909,7 +38153,7 @@ const TableCell = Node$1.create({
37909
38153
  default: null,
37910
38154
  parseHTML: (element) => {
37911
38155
  const colwidth = element.getAttribute("colwidth");
37912
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38156
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37913
38157
  return value;
37914
38158
  }
37915
38159
  }
@@ -37946,7 +38190,7 @@ const TableHeader = Node$1.create({
37946
38190
  default: null,
37947
38191
  parseHTML: (element) => {
37948
38192
  const colwidth = element.getAttribute("colwidth");
37949
- const value = colwidth ? [parseInt(colwidth, 10)] : null;
38193
+ const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37950
38194
  return value;
37951
38195
  }
37952
38196
  }
@@ -38263,6 +38507,10 @@ const Bold = Mark.create({
38263
38507
  tag: "b",
38264
38508
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38265
38509
  },
38510
+ {
38511
+ style: "font-weight=400",
38512
+ clearMark: (mark) => mark.type.name === this.name
38513
+ },
38266
38514
  {
38267
38515
  style: "font-weight",
38268
38516
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38316,73 +38564,8 @@ const Bold = Mark.create({
38316
38564
  ];
38317
38565
  }
38318
38566
  });
38319
- const ListItem$2 = Node$1.create({
38320
- name: "listItem",
38321
- addOptions() {
38322
- return {
38323
- HTMLAttributes: {},
38324
- bulletListTypeName: "bulletList",
38325
- orderedListTypeName: "orderedList"
38326
- };
38327
- },
38328
- content: "paragraph block*",
38329
- defining: true,
38330
- parseHTML() {
38331
- return [
38332
- {
38333
- tag: "li"
38334
- }
38335
- ];
38336
- },
38337
- renderHTML({ HTMLAttributes }) {
38338
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38339
- },
38340
- addKeyboardShortcuts() {
38341
- return {
38342
- Enter: () => this.editor.commands.splitListItem(this.name),
38343
- Tab: () => this.editor.commands.sinkListItem(this.name),
38344
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38345
- };
38346
- }
38347
- });
38348
- const TextStyle$1 = Mark.create({
38349
- name: "textStyle",
38350
- priority: 101,
38351
- addOptions() {
38352
- return {
38353
- HTMLAttributes: {}
38354
- };
38355
- },
38356
- parseHTML() {
38357
- return [
38358
- {
38359
- tag: "span",
38360
- getAttrs: (element) => {
38361
- const hasStyles = element.hasAttribute("style");
38362
- if (!hasStyles) {
38363
- return false;
38364
- }
38365
- return {};
38366
- }
38367
- }
38368
- ];
38369
- },
38370
- renderHTML({ HTMLAttributes }) {
38371
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38372
- },
38373
- addCommands() {
38374
- return {
38375
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38376
- const attributes = getMarkAttributes(state2, this.type);
38377
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38378
- if (hasStyles) {
38379
- return true;
38380
- }
38381
- return commands2.unsetMark(this.name);
38382
- }
38383
- };
38384
- }
38385
- });
38567
+ const ListItemName$1 = "listItem";
38568
+ const TextStyleName$1 = "textStyle";
38386
38569
  const inputRegex$3 = /^\s*([-+*])\s$/;
38387
38570
  const BulletList = Node$1.create({
38388
38571
  name: "bulletList",
@@ -38410,7 +38593,7 @@ const BulletList = Node$1.create({
38410
38593
  return {
38411
38594
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38412
38595
  if (this.options.keepAttributes) {
38413
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38596
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38414
38597
  }
38415
38598
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38416
38599
  }
@@ -38433,7 +38616,7 @@ const BulletList = Node$1.create({
38433
38616
  keepMarks: this.options.keepMarks,
38434
38617
  keepAttributes: this.options.keepAttributes,
38435
38618
  getAttributes: () => {
38436
- return this.editor.getAttributes(TextStyle$1.name);
38619
+ return this.editor.getAttributes(TextStyleName$1);
38437
38620
  },
38438
38621
  editor: this.editor
38439
38622
  });
@@ -38443,8 +38626,8 @@ const BulletList = Node$1.create({
38443
38626
  ];
38444
38627
  }
38445
38628
  });
38446
- const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38447
- const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38629
+ const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38630
+ const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38448
38631
  const Code = Mark.create({
38449
38632
  name: "code",
38450
38633
  addOptions() {
@@ -39071,6 +39254,7 @@ const HardBreak = Node$1.create({
39071
39254
  inline: true,
39072
39255
  group: "inline",
39073
39256
  selectable: false,
39257
+ linebreakReplacement: true,
39074
39258
  parseHTML() {
39075
39259
  return [
39076
39260
  { tag: "br" }
@@ -39832,6 +40016,10 @@ const Italic = Mark.create({
39832
40016
  tag: "i",
39833
40017
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39834
40018
  },
40019
+ {
40020
+ style: "font-style=normal",
40021
+ clearMark: (mark) => mark.type.name === this.name
40022
+ },
39835
40023
  {
39836
40024
  style: "font-style=italic"
39837
40025
  }
@@ -39884,35 +40072,6 @@ const Italic = Mark.create({
39884
40072
  ];
39885
40073
  }
39886
40074
  });
39887
- const ListItem$1 = Node$1.create({
39888
- name: "listItem",
39889
- addOptions() {
39890
- return {
39891
- HTMLAttributes: {},
39892
- bulletListTypeName: "bulletList",
39893
- orderedListTypeName: "orderedList"
39894
- };
39895
- },
39896
- content: "paragraph block*",
39897
- defining: true,
39898
- parseHTML() {
39899
- return [
39900
- {
39901
- tag: "li"
39902
- }
39903
- ];
39904
- },
39905
- renderHTML({ HTMLAttributes }) {
39906
- return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39907
- },
39908
- addKeyboardShortcuts() {
39909
- return {
39910
- Enter: () => this.editor.commands.splitListItem(this.name),
39911
- Tab: () => this.editor.commands.sinkListItem(this.name),
39912
- "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39913
- };
39914
- }
39915
- });
39916
40075
  const ListItem = Node$1.create({
39917
40076
  name: "listItem",
39918
40077
  addOptions() {
@@ -39942,44 +40101,8 @@ const ListItem = Node$1.create({
39942
40101
  };
39943
40102
  }
39944
40103
  });
39945
- const TextStyle = Mark.create({
39946
- name: "textStyle",
39947
- priority: 101,
39948
- addOptions() {
39949
- return {
39950
- HTMLAttributes: {}
39951
- };
39952
- },
39953
- parseHTML() {
39954
- return [
39955
- {
39956
- tag: "span",
39957
- getAttrs: (element) => {
39958
- const hasStyles = element.hasAttribute("style");
39959
- if (!hasStyles) {
39960
- return false;
39961
- }
39962
- return {};
39963
- }
39964
- }
39965
- ];
39966
- },
39967
- renderHTML({ HTMLAttributes }) {
39968
- return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39969
- },
39970
- addCommands() {
39971
- return {
39972
- removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39973
- const attributes = getMarkAttributes(state2, this.type);
39974
- const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39975
- if (hasStyles) {
39976
- return true;
39977
- }
39978
- return commands2.unsetMark(this.name);
39979
- }
39980
- };
39981
- }
39982
- });
40104
+ const ListItemName = "listItem";
40105
+ const TextStyleName = "textStyle";
39983
40106
  const inputRegex$1 = /^(\d+)\.\s$/;
39984
40107
  const OrderedList = Node$1.create({
39985
40108
  name: "orderedList",
@@ -40024,7 +40147,7 @@ const OrderedList = Node$1.create({
40024
40147
  return {
40025
40148
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40026
40149
  if (this.options.keepAttributes) {
40027
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40150
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
40028
40151
  }
40029
40152
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40030
40153
  }
@@ -40048,7 +40171,7 @@ const OrderedList = Node$1.create({
40048
40171
  type: this.type,
40049
40172
  keepMarks: this.options.keepMarks,
40050
40173
  keepAttributes: this.options.keepAttributes,
40051
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40174
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
40052
40175
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40053
40176
  editor: this.editor
40054
40177
  });
@@ -40203,7 +40326,7 @@ const StarterKit = Extension.create({
40203
40326
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40204
40327
  }
40205
40328
  if (this.options.listItem !== false) {
40206
- extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40329
+ extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40207
40330
  }
40208
40331
  if (this.options.orderedList !== false) {
40209
40332
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42878,6 +43001,9 @@ class BubbleMenuView {
42878
43001
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42879
43002
  return;
42880
43003
  }
43004
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43005
+ return;
43006
+ }
42881
43007
  this.hide();
42882
43008
  };
42883
43009
  this.tippyBlurHandler = (event) => {
@@ -42910,6 +43036,7 @@ class BubbleMenuView {
42910
43036
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42911
43037
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42912
43038
  editor: this.editor,
43039
+ element: this.element,
42913
43040
  view: view2,
42914
43041
  state: state2,
42915
43042
  oldState,
@@ -42924,12 +43051,14 @@ class BubbleMenuView {
42924
43051
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42925
43052
  if (isNodeSelection(state2.selection)) {
42926
43053
  let node = view2.nodeDOM(from2);
42927
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42928
- if (nodeViewWrapper) {
42929
- node = nodeViewWrapper.firstChild;
42930
- }
42931
43054
  if (node) {
42932
- return node.getBoundingClientRect();
43055
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
43056
+ if (nodeViewWrapper) {
43057
+ node = nodeViewWrapper.firstChild;
43058
+ }
43059
+ if (node) {
43060
+ return node.getBoundingClientRect();
43061
+ }
42933
43062
  }
42934
43063
  }
42935
43064
  return posToDOMRect(view2, from2, to2);
@@ -43064,6 +43193,9 @@ class FloatingMenuView {
43064
43193
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43065
43194
  return;
43066
43195
  }
43196
+ if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43197
+ return;
43198
+ }
43067
43199
  this.hide();
43068
43200
  };
43069
43201
  this.tippyBlurHandler = (event) => {
@@ -43324,21 +43456,8 @@ const EditorContent = defineComponent({
43324
43456
  if (!editor) {
43325
43457
  return;
43326
43458
  }
43327
- if (!editor.isDestroyed) {
43328
- editor.view.setProps({
43329
- nodeViews: {}
43330
- });
43331
- }
43332
43459
  editor.contentComponent = null;
43333
43460
  editor.appContext = null;
43334
- if (!editor.options.element.firstChild) {
43335
- return;
43336
- }
43337
- const newElement = document.createElement("div");
43338
- newElement.append(...editor.options.element.childNodes);
43339
- editor.setOptions({
43340
- element: newElement
43341
- });
43342
43461
  });
43343
43462
  return { rootEl: rootEl2 };
43344
43463
  },
@@ -44466,7 +44585,7 @@ const _sfc_main$t = /* @__PURE__ */ defineComponent({
44466
44585
  });
44467
44586
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44468
44587
  /*!
44469
- * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44588
+ * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44470
44589
  * (c) 2024 Szymon Nowak | Released under the MIT license
44471
44590
  */
44472
44591
  class Point {
@@ -44550,7 +44669,7 @@ class SignatureEventTarget {
44550
44669
  constructor() {
44551
44670
  try {
44552
44671
  this._et = new EventTarget();
44553
- } catch (error) {
44672
+ } catch (_a2) {
44554
44673
  this._et = document;
44555
44674
  }
44556
44675
  }
@@ -44664,13 +44783,16 @@ class SignaturePad extends SignatureEventTarget {
44664
44783
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44665
44784
  };
44666
44785
  this._handlePointerDown = (event) => {
44667
- if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44786
+ if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44668
44787
  return;
44669
44788
  }
44670
44789
  event.preventDefault();
44671
44790
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44672
44791
  };
44673
44792
  this._handlePointerMove = (event) => {
44793
+ if (!event.isPrimary) {
44794
+ return;
44795
+ }
44674
44796
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44675
44797
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44676
44798
  return;
@@ -44679,7 +44801,7 @@ class SignaturePad extends SignatureEventTarget {
44679
44801
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44680
44802
  };
44681
44803
  this._handlePointerUp = (event) => {
44682
- if (this._isLeftButtonPressed(event)) {
44804
+ if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44683
44805
  return;
44684
44806
  }
44685
44807
  event.preventDefault();
@@ -48457,6 +48579,11 @@ function buildURL(url, params, options) {
48457
48579
  return url;
48458
48580
  }
48459
48581
  const _encode = options && options.encode || encode;
48582
+ if (utils$1.isFunction(options)) {
48583
+ options = {
48584
+ serialize: options
48585
+ };
48586
+ }
48460
48587
  const serializeFn = options && options.serialize;
48461
48588
  let serializedParams;
48462
48589
  if (serializeFn) {
@@ -48643,7 +48770,7 @@ function stringifySafely(rawValue, parser, encoder) {
48643
48770
  }
48644
48771
  }
48645
48772
  }
48646
- return (encoder || JSON.stringify)(rawValue);
48773
+ return (0, JSON.stringify)(rawValue);
48647
48774
  }
48648
48775
  const defaults = {
48649
48776
  transitional: transitionalDefaults,
@@ -49136,45 +49263,13 @@ const progressEventDecorator = (total, throttled) => {
49136
49263
  }), throttled[1]];
49137
49264
  };
49138
49265
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49139
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49140
- // Standard browser envs have full support of the APIs needed to test
49141
- // whether the request URL is of the same origin as current location.
49142
- function standardBrowserEnv() {
49143
- const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49144
- const urlParsingNode = document.createElement("a");
49145
- let originURL;
49146
- function resolveURL(url) {
49147
- let href = url;
49148
- if (msie) {
49149
- urlParsingNode.setAttribute("href", href);
49150
- href = urlParsingNode.href;
49151
- }
49152
- urlParsingNode.setAttribute("href", href);
49153
- return {
49154
- href: urlParsingNode.href,
49155
- protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49156
- host: urlParsingNode.host,
49157
- search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49158
- hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49159
- hostname: urlParsingNode.hostname,
49160
- port: urlParsingNode.port,
49161
- pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49162
- };
49163
- }
49164
- originURL = resolveURL(window.location.href);
49165
- return function isURLSameOrigin2(requestURL) {
49166
- const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49167
- return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49168
- };
49169
- }()
49170
- ) : (
49171
- // Non standard browser envs (web workers, react-native) lack needed support.
49172
- /* @__PURE__ */ function nonStandardBrowserEnv() {
49173
- return function isURLSameOrigin2() {
49174
- return true;
49175
- };
49176
- }()
49177
- );
49266
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49267
+ url = new URL(url, platform.origin);
49268
+ return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49269
+ })(
49270
+ new URL(platform.origin),
49271
+ platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49272
+ ) : () => true;
49178
49273
  const cookies = platform.hasStandardBrowserEnv ? (
49179
49274
  // Standard browser envs support document.cookie
49180
49275
  {
@@ -49222,7 +49317,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49222
49317
  function mergeConfig(config1, config2) {
49223
49318
  config2 = config2 || {};
49224
49319
  const config = {};
49225
- function getMergedValue(target, source, caseless) {
49320
+ function getMergedValue(target, source, prop3, caseless) {
49226
49321
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49227
49322
  return utils$1.merge.call({ caseless }, target, source);
49228
49323
  } else if (utils$1.isPlainObject(source)) {
@@ -49232,11 +49327,11 @@ function mergeConfig(config1, config2) {
49232
49327
  }
49233
49328
  return source;
49234
49329
  }
49235
- function mergeDeepProperties(a2, b2, caseless) {
49330
+ function mergeDeepProperties(a2, b2, prop3, caseless) {
49236
49331
  if (!utils$1.isUndefined(b2)) {
49237
- return getMergedValue(a2, b2, caseless);
49332
+ return getMergedValue(a2, b2, prop3, caseless);
49238
49333
  } else if (!utils$1.isUndefined(a2)) {
49239
- return getMergedValue(void 0, a2, caseless);
49334
+ return getMergedValue(void 0, a2, prop3, caseless);
49240
49335
  }
49241
49336
  }
49242
49337
  function valueFromConfig2(a2, b2) {
@@ -49287,7 +49382,7 @@ function mergeConfig(config1, config2) {
49287
49382
  socketPath: defaultToConfig2,
49288
49383
  responseEncoding: defaultToConfig2,
49289
49384
  validateStatus: mergeDirectKeys,
49290
- headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49385
+ headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49291
49386
  };
49292
49387
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49293
49388
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49487,7 +49582,7 @@ const composeSignals = (signals, timeout) => {
49487
49582
  };
49488
49583
  const streamChunk = function* (chunk, chunkSize) {
49489
49584
  let len = chunk.byteLength;
49490
- if (!chunkSize || len < chunkSize) {
49585
+ if (len < chunkSize) {
49491
49586
  yield chunk;
49492
49587
  return;
49493
49588
  }
@@ -49817,7 +49912,7 @@ function dispatchRequest(config) {
49817
49912
  return Promise.reject(reason);
49818
49913
  });
49819
49914
  }
49820
- const VERSION = "1.7.7";
49915
+ const VERSION = "1.7.9";
49821
49916
  const validators$1 = {};
49822
49917
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49823
49918
  validators$1[type3] = function validator2(thing) {
@@ -49848,6 +49943,12 @@ validators$1.transitional = function transitional(validator2, version2, message2
49848
49943
  return validator2 ? validator2(value, opt, opts) : true;
49849
49944
  };
49850
49945
  };
49946
+ validators$1.spelling = function spelling(correctSpelling) {
49947
+ return (value, opt) => {
49948
+ console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49949
+ return true;
49950
+ };
49951
+ };
49851
49952
  function assertOptions(options, schema, allowUnknown) {
49852
49953
  if (typeof options !== "object") {
49853
49954
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49896,8 +49997,8 @@ class Axios {
49896
49997
  return await this._request(configOrUrl, config);
49897
49998
  } catch (err) {
49898
49999
  if (err instanceof Error) {
49899
- let dummy;
49900
- Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
50000
+ let dummy = {};
50001
+ Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49901
50002
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49902
50003
  try {
49903
50004
  if (!err.stack) {
@@ -49939,6 +50040,10 @@ class Axios {
49939
50040
  }, true);
49940
50041
  }
49941
50042
  }
50043
+ validator.assertOptions(config, {
50044
+ baseUrl: validators.spelling("baseURL"),
50045
+ withXsrfToken: validators.spelling("withXSRFToken")
50046
+ }, true);
49942
50047
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49943
50048
  let contextHeaders = headers && utils$1.merge(
49944
50049
  headers.common,
@@ -50235,7 +50340,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50235
50340
  axios$1.getAdapter = adapters.getAdapter;
50236
50341
  axios$1.HttpStatusCode = HttpStatusCode;
50237
50342
  axios$1.default = axios$1;
50238
- 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}"]]] } };
50343
+ 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}"]]] } };
50239
50344
  function withMetadataArgument(func, _arguments) {
50240
50345
  var args = Array.prototype.slice.call(_arguments);
50241
50346
  args.push(metadata);
@@ -51848,9 +51953,8 @@ function _arrayLikeToArray$1(arr, len) {
51848
51953
  return arr2;
51849
51954
  }
51850
51955
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51851
- var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51956
+ var countries = _ref.countries, metadata2 = _ref.metadata;
51852
51957
  metadata2 = new Metadata(metadata2);
51853
- var matchingCountries = [];
51854
51958
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51855
51959
  var country = _step.value;
51856
51960
  metadata2.country(country);
@@ -51862,19 +51966,9 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51862
51966
  phone: nationalPhoneNumber,
51863
51967
  country
51864
51968
  }, void 0, metadata2.metadata)) {
51865
- if (defaultCountry) {
51866
- if (country === defaultCountry) {
51867
- return country;
51868
- }
51869
- matchingCountries.push(country);
51870
- } else {
51871
- return country;
51872
- }
51969
+ return country;
51873
51970
  }
51874
51971
  }
51875
- if (matchingCountries.length > 0) {
51876
- return matchingCountries[0];
51877
- }
51878
51972
  }
51879
51973
  function getCountryByCallingCode(callingCode, _ref) {
51880
51974
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;