@bagelink/vue 0.0.943 → 0.0.947

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 (204) hide show
  1. package/dist/components/AddressSaerch.vue.d.ts +7 -0
  2. package/dist/components/AddressSaerch.vue.d.ts.map +1 -0
  3. package/dist/components/ComboBox.vue.d.ts +3 -3
  4. package/dist/components/Comments.vue.d.ts +2 -2
  5. package/dist/components/ContactSubmissions.vue.d.ts +2 -2
  6. package/dist/components/DropDown.vue.d.ts +186 -17
  7. package/dist/components/DropDown.vue.d.ts.map +1 -1
  8. package/dist/components/FormSchema.vue.d.ts +4 -5
  9. package/dist/components/LangText.vue.d.ts +2 -2
  10. package/dist/components/ModalBglForm.vue.d.ts +20 -21
  11. package/dist/components/PersonPreview.vue.d.ts +4 -5
  12. package/dist/components/PersonPreviewFormkit.vue.d.ts +3 -4
  13. package/dist/components/Popover.vue.d.ts +10 -0
  14. package/dist/components/Popover.vue.d.ts.map +1 -0
  15. package/dist/components/RTXEditor.vue.d.ts +3 -3
  16. package/dist/components/TabbedLayout.vue.d.ts +4 -5
  17. package/dist/components/TableSchema.vue.d.ts +11 -2
  18. package/dist/components/TableSchema.vue.d.ts.map +1 -1
  19. package/dist/components/charts/BarChart.vue.d.ts +2 -2
  20. package/dist/components/form/BglField.vue.d.ts +6 -2
  21. package/dist/components/form/BglField.vue.d.ts.map +1 -1
  22. package/dist/components/form/BglMultiStepForm.vue.d.ts +21 -3
  23. package/dist/components/form/BglMultiStepForm.vue.d.ts.map +1 -1
  24. package/dist/components/form/ItemRef.vue.d.ts +3 -5
  25. package/dist/components/form/ItemRef.vue.d.ts.map +1 -1
  26. package/dist/components/form/MaterialIcon.vue.d.ts +3 -4
  27. package/dist/components/form/PlainInputField.vue.d.ts +3 -3
  28. package/dist/components/form/inputs/CurrencyInput.vue.d.ts +3 -3
  29. package/dist/components/form/inputs/DatetimeInput.vue.d.ts +3 -3
  30. package/dist/components/form/inputs/DurationInput.vue.d.ts +3 -3
  31. package/dist/components/form/inputs/DynamicLinkField.vue.d.ts +3 -3
  32. package/dist/components/form/inputs/EmailInput.vue.d.ts +3 -3
  33. package/dist/components/form/inputs/FileUpload.vue.d.ts +2 -2
  34. package/dist/components/form/inputs/FileUpload.vue.d.ts.map +1 -1
  35. package/dist/components/form/inputs/FloatInput.vue.d.ts +3 -3
  36. package/dist/components/form/inputs/IntInput.vue.d.ts +3 -3
  37. package/dist/components/form/inputs/LinkField.vue.d.ts +3 -3
  38. package/dist/components/form/inputs/Password.vue.d.ts +3 -3
  39. package/dist/components/form/inputs/PlainText.vue.d.ts +3 -3
  40. package/dist/components/form/inputs/RadioGroup.vue.d.ts +6 -2
  41. package/dist/components/form/inputs/RadioGroup.vue.d.ts.map +1 -1
  42. package/dist/components/form/inputs/ReadOnlyInput.vue.d.ts +2 -2
  43. package/dist/components/form/inputs/RichTextEditor.vue.d.ts +3 -3
  44. package/dist/components/form/inputs/SelectField.vue.d.ts +8 -6
  45. package/dist/components/form/inputs/SelectField.vue.d.ts.map +1 -1
  46. package/dist/components/form/inputs/SelectInput.vue.d.ts +50 -2
  47. package/dist/components/form/inputs/SelectInput.vue.d.ts.map +1 -1
  48. package/dist/components/form/inputs/SignaturePad.vue.d.ts.map +1 -1
  49. package/dist/components/form/inputs/TextArea.vue.d.ts +3 -3
  50. package/dist/components/formkit/AddressArray.vue.d.ts +2 -2
  51. package/dist/components/formkit/BankDetailsArray.vue.d.ts +2 -2
  52. package/dist/components/formkit/ContactArrayFormKit.vue.d.ts +2 -2
  53. package/dist/components/formkit/FileUploader.vue.d.ts +2 -2
  54. package/dist/components/formkit/MiscFields.vue.d.ts +2 -2
  55. package/dist/components/formkit/Toggle.vue.d.ts +2 -2
  56. package/dist/components/sortable/Animation.d.ts +43 -0
  57. package/dist/components/sortable/Animation.d.ts.map +1 -0
  58. package/dist/components/sortable/BrowserInfo.d.ts +7 -0
  59. package/dist/components/sortable/BrowserInfo.d.ts.map +1 -0
  60. package/dist/components/sortable/EventDispatcher.d.ts +13 -0
  61. package/dist/components/sortable/EventDispatcher.d.ts.map +1 -0
  62. package/dist/components/sortable/PluginManager.d.ts +27 -0
  63. package/dist/components/sortable/PluginManager.d.ts.map +1 -0
  64. package/dist/components/sortable/Sortable.d.ts +81 -0
  65. package/dist/components/sortable/Sortable.d.ts.map +1 -0
  66. package/dist/components/sortable/index.d.ts +5 -0
  67. package/dist/components/sortable/index.d.ts.map +1 -0
  68. package/dist/components/sortable/utils.d.ts +49 -0
  69. package/dist/components/sortable/utils.d.ts.map +1 -0
  70. package/dist/components/whatsapp/form/MsgTemplate.vue.d.ts +3 -4
  71. package/dist/components/whatsapp/form/TextVariableExamples.vue.d.ts +2 -2
  72. package/dist/composables/drag-n-drop/useDraggable.d.ts +2 -0
  73. package/dist/composables/drag-n-drop/useDraggable.d.ts.map +1 -0
  74. package/dist/index.cjs +1439 -1523
  75. package/dist/index.mjs +1439 -1523
  76. package/dist/plugins/drag-n-drop/draggable.d.ts +4 -0
  77. package/dist/plugins/drag-n-drop/draggable.d.ts.map +1 -0
  78. package/dist/plugins/drag-n-drop/droppable.d.ts +4 -0
  79. package/dist/plugins/drag-n-drop/droppable.d.ts.map +1 -0
  80. package/dist/plugins/drag-n-drop/index.d.ts +5 -0
  81. package/dist/plugins/drag-n-drop/index.d.ts.map +1 -0
  82. package/dist/plugins/drag-n-drop/useDraggable.d.ts +8 -0
  83. package/dist/plugins/drag-n-drop/useDraggable.d.ts.map +1 -0
  84. package/dist/plugins/drag-n-drop/useDroppable.d.ts +7 -0
  85. package/dist/plugins/drag-n-drop/useDroppable.d.ts.map +1 -0
  86. package/dist/style.css +181 -180
  87. package/dist/types/materialIcon.d.ts +2 -0
  88. package/dist/types/materialIcon.d.ts.map +1 -0
  89. package/dist/utils/BagelFormUtils.d.ts +30 -2
  90. package/dist/utils/BagelFormUtils.d.ts.map +1 -1
  91. package/dist/utils/objects.d.ts +0 -1
  92. package/package.json +1 -1
  93. package/src/components/form/inputs/FileUpload.vue +13 -10
  94. package/src/components/form/inputs/SignaturePad.vue +0 -10
  95. package/src/styles/inputs.css +149 -144
  96. package/dist/components/Accordion.d.ts +0 -12
  97. package/dist/components/Accordion.d.ts.map +0 -1
  98. package/dist/components/AccordionItem.d.ts +0 -34
  99. package/dist/components/AccordionItem.d.ts.map +0 -1
  100. package/dist/components/Alert.d.ts +0 -34
  101. package/dist/components/Alert.d.ts.map +0 -1
  102. package/dist/components/Avatar.d.ts +0 -36
  103. package/dist/components/Avatar.d.ts.map +0 -1
  104. package/dist/components/Badge.d.ts +0 -22
  105. package/dist/components/Badge.d.ts.map +0 -1
  106. package/dist/components/BglVideo.d.ts +0 -20
  107. package/dist/components/BglVideo.d.ts.map +0 -1
  108. package/dist/components/Btn.d.ts +0 -99
  109. package/dist/components/Btn.d.ts.map +0 -1
  110. package/dist/components/Card.d.ts +0 -39
  111. package/dist/components/Card.d.ts.map +0 -1
  112. package/dist/components/Carousel.d.ts +0 -74
  113. package/dist/components/Carousel.d.ts.map +0 -1
  114. package/dist/components/DataPreview.d.ts +0 -42
  115. package/dist/components/DataPreview.d.ts.map +0 -1
  116. package/dist/components/Drop.vue.d.ts +0 -34
  117. package/dist/components/Drop.vue.d.ts.map +0 -1
  118. package/dist/components/FileUploader.vue.d.ts +0 -60
  119. package/dist/components/FileUploader.vue.d.ts.map +0 -1
  120. package/dist/components/Flag.d.ts +0 -20
  121. package/dist/components/Flag.d.ts.map +0 -1
  122. package/dist/components/ListItem.d.ts +0 -34
  123. package/dist/components/ListItem.d.ts.map +0 -1
  124. package/dist/components/ListView.d.ts +0 -13
  125. package/dist/components/ListView.d.ts.map +0 -1
  126. package/dist/components/MapEmbed.d.ts +0 -3
  127. package/dist/components/MapEmbed.d.ts.map +0 -1
  128. package/dist/components/MaterialIcon.d.ts +0 -26
  129. package/dist/components/MaterialIcon.d.ts.map +0 -1
  130. package/dist/components/Modal.d.ts +0 -46
  131. package/dist/components/Modal.d.ts.map +0 -1
  132. package/dist/components/ModalConfirm.d.ts +0 -24
  133. package/dist/components/ModalConfirm.d.ts.map +0 -1
  134. package/dist/components/ModalForm.d.ts +0 -78
  135. package/dist/components/ModalForm.d.ts.map +0 -1
  136. package/dist/components/NavBar.d.ts +0 -64
  137. package/dist/components/NavBar.d.ts.map +0 -1
  138. package/dist/components/PageTitle.d.ts +0 -24
  139. package/dist/components/PageTitle.d.ts.map +0 -1
  140. package/dist/components/RouterWrapper.d.ts +0 -3
  141. package/dist/components/RouterWrapper.d.ts.map +0 -1
  142. package/dist/components/TableSchema.d.ts +0 -35
  143. package/dist/components/TableSchema.d.ts.map +0 -1
  144. package/dist/components/Title.d.ts +0 -42
  145. package/dist/components/Title.d.ts.map +0 -1
  146. package/dist/components/TopBar.d.ts +0 -12
  147. package/dist/components/TopBar.d.ts.map +0 -1
  148. package/dist/components/dashboard/Lineart.d.ts +0 -20
  149. package/dist/components/dashboard/Lineart.d.ts.map +0 -1
  150. package/dist/components/form/BglField.d.ts +0 -25
  151. package/dist/components/form/BglField.d.ts.map +0 -1
  152. package/dist/components/form/BglForm.d.ts +0 -75
  153. package/dist/components/form/BglForm.d.ts.map +0 -1
  154. package/dist/components/form/inputs/CheckInput.d.ts +0 -56
  155. package/dist/components/form/inputs/CheckInput.d.ts.map +0 -1
  156. package/dist/components/form/inputs/Checkbox.d.ts +0 -16
  157. package/dist/components/form/inputs/Checkbox.d.ts.map +0 -1
  158. package/dist/components/form/inputs/ColorPicker.d.ts +0 -48
  159. package/dist/components/form/inputs/ColorPicker.d.ts.map +0 -1
  160. package/dist/components/form/inputs/DateInput.d.ts +0 -64
  161. package/dist/components/form/inputs/DateInput.d.ts.map +0 -1
  162. package/dist/components/form/inputs/DatePicker.d.ts +0 -33
  163. package/dist/components/form/inputs/DatePicker.d.ts.map +0 -1
  164. package/dist/components/form/inputs/FileUpload.d.ts +0 -108
  165. package/dist/components/form/inputs/FileUpload.d.ts.map +0 -1
  166. package/dist/components/form/inputs/JSONInput.d.ts +0 -53
  167. package/dist/components/form/inputs/JSONInput.d.ts.map +0 -1
  168. package/dist/components/form/inputs/RadioGroup.d.ts +0 -42
  169. package/dist/components/form/inputs/RadioGroup.d.ts.map +0 -1
  170. package/dist/components/form/inputs/RadioPillsInput.d.ts +0 -48
  171. package/dist/components/form/inputs/RadioPillsInput.d.ts.map +0 -1
  172. package/dist/components/form/inputs/RichText.d.ts +0 -20
  173. package/dist/components/form/inputs/RichText.d.ts.map +0 -1
  174. package/dist/components/form/inputs/RichText2/Toolbar.d.ts +0 -22
  175. package/dist/components/form/inputs/RichText2/Toolbar.d.ts.map +0 -1
  176. package/dist/components/form/inputs/RichText2/index.d.ts +0 -24
  177. package/dist/components/form/inputs/RichText2/index.d.ts.map +0 -1
  178. package/dist/components/form/inputs/SelectInput.d.ts +0 -55
  179. package/dist/components/form/inputs/SelectInput.d.ts.map +0 -1
  180. package/dist/components/form/inputs/SignaturePad.d.ts +0 -72
  181. package/dist/components/form/inputs/SignaturePad.d.ts.map +0 -1
  182. package/dist/components/form/inputs/TableField.d.ts +0 -45
  183. package/dist/components/form/inputs/TableField.d.ts.map +0 -1
  184. package/dist/components/form/inputs/TelInput.d.ts +0 -241
  185. package/dist/components/form/inputs/TelInput.d.ts.map +0 -1
  186. package/dist/components/form/inputs/TextInput.d.ts +0 -90
  187. package/dist/components/form/inputs/TextInput.d.ts.map +0 -1
  188. package/dist/components/form/inputs/ToggleInput.d.ts +0 -58
  189. package/dist/components/form/inputs/ToggleInput.d.ts.map +0 -1
  190. package/dist/components/layout/BottomMenu.d.ts +0 -27
  191. package/dist/components/layout/BottomMenu.d.ts.map +0 -1
  192. package/dist/components/layout/Layout.d.ts +0 -58
  193. package/dist/components/layout/Layout.d.ts.map +0 -1
  194. package/dist/components/layout/SidebarMenu.d.ts +0 -38
  195. package/dist/components/layout/SidebarMenu.d.ts.map +0 -1
  196. package/dist/components/layout/TabbedLayout.d.ts +0 -42
  197. package/dist/components/layout/TabbedLayout.d.ts.map +0 -1
  198. package/dist/components/layout/Tabs.d.ts +0 -31
  199. package/dist/components/layout/Tabs.d.ts.map +0 -1
  200. package/dist/components/layout/TabsBody.d.ts +0 -23
  201. package/dist/components/layout/TabsBody.d.ts.map +0 -1
  202. package/dist/components/layout/TabsNav.d.ts +0 -35
  203. package/dist/components/layout/TabsNav.d.ts.map +0 -1
  204. package/dist/vue.css +0 -13814
package/dist/index.cjs CHANGED
@@ -7555,9 +7555,10 @@ async function convertValueToCoords(state2, options) {
7555
7555
  crossAxis: 0,
7556
7556
  alignmentAxis: null
7557
7557
  } : {
7558
- mainAxis: rawValue.mainAxis || 0,
7559
- crossAxis: rawValue.crossAxis || 0,
7560
- alignmentAxis: rawValue.alignmentAxis
7558
+ mainAxis: 0,
7559
+ crossAxis: 0,
7560
+ alignmentAxis: null,
7561
+ ...rawValue
7561
7562
  };
7562
7563
  if (alignment && typeof alignmentAxis === "number") {
7563
7564
  crossAxis = alignment === "end" ? alignmentAxis * -1 : alignmentAxis;
@@ -7662,11 +7663,7 @@ const shift$1 = function(options) {
7662
7663
  ...limitedCoords,
7663
7664
  data: {
7664
7665
  x: limitedCoords.x - x2,
7665
- y: limitedCoords.y - y2,
7666
- enabled: {
7667
- [mainAxis]: checkMainAxis,
7668
- [crossAxis]: checkCrossAxis
7669
- }
7666
+ y: limitedCoords.y - y2
7670
7667
  }
7671
7668
  };
7672
7669
  }
@@ -7680,7 +7677,6 @@ const size = function(options) {
7680
7677
  name: "size",
7681
7678
  options,
7682
7679
  async fn(state2) {
7683
- var _state$middlewareData, _state$middlewareData2;
7684
7680
  const {
7685
7681
  placement,
7686
7682
  rects,
@@ -7716,11 +7712,10 @@ const size = function(options) {
7716
7712
  const noShift = !state2.middlewareData.shift;
7717
7713
  let availableHeight = overflowAvailableHeight;
7718
7714
  let availableWidth = overflowAvailableWidth;
7719
- if ((_state$middlewareData = state2.middlewareData.shift) != null && _state$middlewareData.enabled.x) {
7720
- availableWidth = maximumClippingWidth;
7721
- }
7722
- if ((_state$middlewareData2 = state2.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {
7723
- availableHeight = maximumClippingHeight;
7715
+ if (isYAxis) {
7716
+ availableWidth = alignment || noShift ? min$1(overflowAvailableWidth, maximumClippingWidth) : maximumClippingWidth;
7717
+ } else {
7718
+ availableHeight = alignment || noShift ? min$1(overflowAvailableHeight, maximumClippingHeight) : maximumClippingHeight;
7724
7719
  }
7725
7720
  if (noShift && !alignment) {
7726
7721
  const xMin = max$1(overflow.left, 0);
@@ -18656,39 +18651,46 @@ const _sfc_main$E = /* @__PURE__ */ vue.defineComponent({
18656
18651
  }
18657
18652
  });
18658
18653
  const _hoisted_1$v = { class: "bagel-input" };
18659
- const _hoisted_2$l = { class: "ellipsis-1 word-break-all h-20 m-0" };
18660
- const _hoisted_3$h = {
18654
+ const _hoisted_2$l = {
18661
18655
  key: 0,
18662
- class: "txt-gray txt-12"
18656
+ placeholder: "required",
18657
+ type: "text",
18658
+ required: "",
18659
+ class: "pixel"
18663
18660
  };
18661
+ const _hoisted_3$h = { class: "ellipsis-1 word-break-all h-20 m-0" };
18664
18662
  const _hoisted_4$b = {
18663
+ key: 0,
18664
+ class: "txt-gray txt-12"
18665
+ };
18666
+ const _hoisted_5$a = {
18665
18667
  key: 0,
18666
18668
  class: "bgl-multi-preview"
18667
18669
  };
18668
- const _hoisted_5$a = ["src"];
18669
- const _hoisted_6$8 = { class: "m-0" };
18670
- const _hoisted_7$5 = ["width", "src"];
18671
- const _hoisted_8$3 = { class: "no-margin multi-preview-txt" };
18672
- const _hoisted_9$2 = {
18670
+ const _hoisted_6$8 = ["src"];
18671
+ const _hoisted_7$5 = { class: "m-0" };
18672
+ const _hoisted_8$3 = ["width", "src"];
18673
+ const _hoisted_9$2 = { class: "no-margin multi-preview-txt" };
18674
+ const _hoisted_10$2 = {
18673
18675
  key: 0,
18674
18676
  class: "progress"
18675
18677
  };
18676
- const _hoisted_10$2 = {
18678
+ const _hoisted_11$1 = {
18677
18679
  key: 1,
18678
18680
  class: "bgl-single-preview"
18679
18681
  };
18680
- const _hoisted_11$1 = {
18682
+ const _hoisted_12$1 = {
18681
18683
  key: 0,
18682
18684
  class: "h-100"
18683
18685
  };
18684
- const _hoisted_12$1 = ["src"];
18685
- const _hoisted_13$1 = { class: "position-start m-05 flex opacity-7" };
18686
- const _hoisted_14$1 = {
18686
+ const _hoisted_13$1 = ["src"];
18687
+ const _hoisted_14$1 = { class: "position-start m-05 flex opacity-7" };
18688
+ const _hoisted_15$1 = {
18687
18689
  key: 0,
18688
18690
  class: "progress"
18689
18691
  };
18690
- const _hoisted_15$1 = ["src"];
18691
- const _hoisted_16 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
18692
+ const _hoisted_16 = ["src"];
18693
+ const _hoisted_17 = { class: "p-1 flex column hover fileUploadPlaceHolder justify-content-center mb-05" };
18692
18694
  const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18693
18695
  __name: "FileUpload",
18694
18696
  props: {
@@ -18703,7 +18705,8 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18703
18705
  fill: { type: Boolean },
18704
18706
  oval: { type: Boolean },
18705
18707
  theme: {},
18706
- accept: {}
18708
+ accept: {},
18709
+ required: { type: Boolean }
18707
18710
  },
18708
18711
  emits: ["update:modelValue", "addFileStart"],
18709
18712
  setup(__props, { emit: __emit }) {
@@ -18755,13 +18758,14 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18755
18758
  { immediate: true }
18756
18759
  );
18757
18760
  const theme = props2.theme || "dropzone";
18758
- vue.watch(() => props2.modelValue, () => {
18759
- const newModelValue = props2.modelValue || [];
18760
- const currentValue = [file_bindkeys.value].flat();
18761
- const newValue = [newModelValue].flat();
18762
- const isSame = currentValue.every((id) => newValue.includes(id)) && newValue.every((id) => currentValue.includes(id)) && currentValue.length === newValue.length;
18761
+ function compareLists(a2, b2) {
18762
+ return [a2].flat().every((id) => [b2].flat().includes(id)) && [b2].flat().every((id) => [a2].flat().includes(id));
18763
+ }
18764
+ vue.watch(() => props2.modelValue, (newVal = []) => {
18765
+ console.log(newVal);
18766
+ const isSame = compareLists(file_bindkeys.value, newVal);
18763
18767
  if (!isSame) {
18764
- file_bindkeys.value = newModelValue;
18768
+ file_bindkeys.value = newVal;
18765
18769
  for (const fle of storageFiles.value) {
18766
18770
  const index2 = [file_bindkeys.value].flat().findIndex((key) => fle[bindKey2] === key);
18767
18771
  if (index2 === -1) storageFiles.value.splice(index2, 1);
@@ -18775,7 +18779,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18775
18779
  } else {
18776
18780
  idValue = storageFiles.value[0][bindKey2] || "";
18777
18781
  }
18778
- const isSame = [idValue].flat().every((id) => [file_bindkeys.value].flat().includes(id)) && [file_bindkeys.value].flat().every((id) => [idValue].flat().includes(id));
18782
+ const isSame = compareLists(file_bindkeys.value, idValue);
18779
18783
  if (!isSame) {
18780
18784
  file_bindkeys.value = idValue;
18781
18785
  emit2("update:modelValue", file_bindkeys.value);
@@ -18851,8 +18855,9 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18851
18855
  const _directive_tooltip = vue.resolveDirective("tooltip");
18852
18856
  return vue.openBlock(), vue.createElementBlock("div", _hoisted_1$v, [
18853
18857
  vue.createElementVNode("label", null, vue.toDisplayString(_ctx.label), 1),
18858
+ _ctx.required ? (vue.openBlock(), vue.createElementBlock("input", _hoisted_2$l)) : vue.createCommentVNode("", true),
18854
18859
  vue.unref(theme) === "basic" ? (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$R), {
18855
- key: 0,
18860
+ key: 1,
18856
18861
  outline: "",
18857
18862
  class: "flex p-05 gap-1",
18858
18863
  onDragover: dragover,
@@ -18875,7 +18880,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18875
18880
  key: file.id,
18876
18881
  class: "txt-gray txt-12 flex"
18877
18882
  }, [
18878
- vue.createElementVNode("p", _hoisted_2$l, vue.toDisplayString(file.name), 1),
18883
+ vue.createElementVNode("p", _hoisted_3$h, vue.toDisplayString(file.name), 1),
18879
18884
  vue.createVNode(vue.unref(Btn), {
18880
18885
  thin: "",
18881
18886
  flat: "",
@@ -18885,11 +18890,11 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18885
18890
  }, null, 8, ["onClick"])
18886
18891
  ]);
18887
18892
  }), 128)),
18888
- !storageFiles.value.length && !fileQueue.value.length ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_3$h, " No file selected ")) : vue.createCommentVNode("", true)
18893
+ !storageFiles.value.length && !fileQueue.value.length ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_4$b, " No file selected ")) : vue.createCommentVNode("", true)
18889
18894
  ]),
18890
18895
  _: 1
18891
18896
  })) : (vue.openBlock(), vue.createElementBlock("div", {
18892
- key: 1,
18897
+ key: 2,
18893
18898
  class: vue.normalizeClass(["fileUploadWrap", {
18894
18899
  "fileDropZone": !storageFiles.value.length && !fileQueue.value.length,
18895
18900
  "dragover": vue.unref(isDragOver),
@@ -18905,7 +18910,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18905
18910
  files: storageFiles.value,
18906
18911
  fileQueue: fileQueue.value
18907
18912
  }, () => [
18908
- _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_4$b, [
18913
+ _ctx.multiple ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_5$a, [
18909
18914
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(storageFiles.value, (file) => {
18910
18915
  return vue.withDirectives((vue.openBlock(), vue.createElementBlock("div", {
18911
18916
  key: file.id,
@@ -18916,12 +18921,12 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18916
18921
  class: "multi-preview",
18917
18922
  src: file.url,
18918
18923
  alt: ""
18919
- }, null, 8, _hoisted_5$a)) : (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$c), {
18924
+ }, null, 8, _hoisted_6$8)) : (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$c), {
18920
18925
  key: 1,
18921
18926
  icon: "draft",
18922
18927
  class: "multi-preview"
18923
18928
  })),
18924
- vue.createElementVNode("p", _hoisted_6$8, vue.toDisplayString(file.name), 1),
18929
+ vue.createElementVNode("p", _hoisted_7$5, vue.toDisplayString(file.name), 1),
18925
18930
  vue.createVNode(vue.unref(Btn), {
18926
18931
  thin: "",
18927
18932
  flat: "",
@@ -18945,18 +18950,18 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18945
18950
  class: "multi-preview",
18946
18951
  src: fileToUrl(fileQ.file),
18947
18952
  alt: ""
18948
- }, null, 8, _hoisted_7$5)) : vue.createCommentVNode("", true)
18953
+ }, null, 8, _hoisted_8$3)) : vue.createCommentVNode("", true)
18949
18954
  ], 64)) : (vue.openBlock(), vue.createBlock(vue.unref(_sfc_main$c), {
18950
18955
  key: 1,
18951
18956
  icon: "draft",
18952
18957
  class: "multi-preview"
18953
18958
  })),
18954
- vue.createElementVNode("p", _hoisted_8$3, vue.toDisplayString(fileQ.name), 1),
18959
+ vue.createElementVNode("p", _hoisted_9$2, vue.toDisplayString(fileQ.name), 1),
18955
18960
  vue.createElementVNode("div", {
18956
18961
  class: vue.normalizeClass(["pie", { complete: fileQ.progress === 100 }]),
18957
18962
  style: vue.normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
18958
18963
  }, [
18959
- fileQ.progress < 100 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_9$2, vue.toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : vue.createCommentVNode("", true),
18964
+ fileQ.progress < 100 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_10$2, vue.toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : vue.createCommentVNode("", true),
18960
18965
  vue.createVNode(vue.unref(_sfc_main$c), {
18961
18966
  class: "success",
18962
18967
  icon: "check"
@@ -18965,21 +18970,21 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
18965
18970
  ]);
18966
18971
  }), 128))
18967
18972
  ])) : vue.createCommentVNode("", true),
18968
- !_ctx.multiple && (storageFiles.value.length > 0 || fileQueue.value.length > 0) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_10$2, [
18973
+ !_ctx.multiple && (storageFiles.value.length > 0 || fileQueue.value.length > 0) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [
18969
18974
  (vue.openBlock(true), vue.createElementBlock(vue.Fragment, null, vue.renderList(storageFiles.value, (file) => {
18970
18975
  return vue.openBlock(), vue.createElementBlock("div", {
18971
18976
  key: file.id,
18972
18977
  class: vue.normalizeClass(["single-image-item-preview", { "bgl_fill-image": _ctx.fill }])
18973
18978
  }, [
18974
- isImage(file.extension || file.url) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_11$1, [
18979
+ isImage(file.extension || file.url) ? (vue.openBlock(), vue.createElementBlock("div", _hoisted_12$1, [
18975
18980
  vue.withDirectives(vue.createElementVNode("img", {
18976
18981
  class: "single-preview",
18977
18982
  src: file.url,
18978
18983
  alt: ""
18979
- }, null, 8, _hoisted_12$1), [
18984
+ }, null, 8, _hoisted_13$1), [
18980
18985
  [_directive_lightbox, { src: file.url, download: true }]
18981
18986
  ]),
18982
- vue.createElementVNode("div", _hoisted_13$1, [
18987
+ vue.createElementVNode("div", _hoisted_14$1, [
18983
18988
  vue.withDirectives(vue.createVNode(vue.unref(Btn), {
18984
18989
  color: "gray",
18985
18990
  thin: "",
@@ -19029,7 +19034,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
19029
19034
  class: vue.normalizeClass(["pie", { complete: fileQ.progress === 100 }]),
19030
19035
  style: vue.normalizeStyle([`--p:${fileQ.progress}`, { "--b": "2px" }])
19031
19036
  }, [
19032
- fileQ.progress < 100 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_14$1, vue.toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : vue.createCommentVNode("", true),
19037
+ fileQ.progress < 100 ? (vue.openBlock(), vue.createElementBlock("span", _hoisted_15$1, vue.toDisplayString(`${fileQ.progress.toFixed(0)}`), 1)) : vue.createCommentVNode("", true),
19033
19038
  vue.createVNode(vue.unref(_sfc_main$c), {
19034
19039
  class: "success",
19035
19040
  icon: "check"
@@ -19040,7 +19045,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
19040
19045
  class: "single-preview",
19041
19046
  src: fileToUrl(fileQ.file),
19042
19047
  alt: ""
19043
- }, null, 8, _hoisted_15$1)) : vue.createCommentVNode("", true)
19048
+ }, null, 8, _hoisted_16)) : vue.createCommentVNode("", true)
19044
19049
  ], 2);
19045
19050
  }), 128))
19046
19051
  ])) : vue.createCommentVNode("", true)
@@ -19051,7 +19056,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
19051
19056
  fileQueue: fileQueue.value,
19052
19057
  browse
19053
19058
  }, () => [
19054
- vue.createElementVNode("p", _hoisted_16, [
19059
+ vue.createElementVNode("p", _hoisted_17, [
19055
19060
  vue.createVNode(vue.unref(_sfc_main$c), { icon: "upload_2" }),
19056
19061
  _cache[2] || (_cache[2] = vue.createTextVNode(" Drop files here or click to upload "))
19057
19062
  ])
@@ -19061,7 +19066,7 @@ const _sfc_main$D = /* @__PURE__ */ vue.defineComponent({
19061
19066
  };
19062
19067
  }
19063
19068
  });
19064
- const $el = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-6ce2a678"]]);
19069
+ const $el = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-d2c7e04e"]]);
19065
19070
  const _hoisted_1$u = ["title"];
19066
19071
  const _hoisted_2$k = { key: 0 };
19067
19072
  const _hoisted_3$g = ["value", "placeholder"];
@@ -20642,12 +20647,6 @@ let Node$2 = class Node2 {
20642
20647
  this.content = content || Fragment.empty;
20643
20648
  }
20644
20649
  /**
20645
- The array of this node's child nodes.
20646
- */
20647
- get children() {
20648
- return this.content.content;
20649
- }
20650
- /**
20651
20650
  The size of this node, as defined by the integer-based [indexing
20652
20651
  scheme](/docs/guide/#doc.indexing). For text nodes, this is the
20653
20652
  amount of characters. For other leaf nodes, it is one. For
@@ -21334,7 +21333,7 @@ function resolveName(stream, name) {
21334
21333
  let result2 = [];
21335
21334
  for (let typeName in types) {
21336
21335
  let type4 = types[typeName];
21337
- if (type4.isInGroup(name))
21336
+ if (type4.groups.indexOf(name) > -1)
21338
21337
  result2.push(type4);
21339
21338
  }
21340
21339
  if (result2.length == 0)
@@ -21572,13 +21571,6 @@ let NodeType$1 = class NodeType2 {
21572
21571
  return this.isLeaf || !!this.spec.atom;
21573
21572
  }
21574
21573
  /**
21575
- Return true when this node type is part of the given
21576
- [group](https://prosemirror.net/docs/ref/#model.NodeSpec.group).
21577
- */
21578
- isInGroup(group) {
21579
- return this.groups.indexOf(group) > -1;
21580
- }
21581
- /**
21582
21574
  The node type's [whitespace](https://prosemirror.net/docs/ref/#model.NodeSpec.whitespace) option.
21583
21575
  */
21584
21576
  get whitespace() {
@@ -22334,7 +22326,6 @@ class ParseContext {
22334
22326
  contentDOM = rule.contentElement;
22335
22327
  this.findAround(dom, contentDOM, true);
22336
22328
  this.addAll(contentDOM, marks);
22337
- this.findAround(dom, contentDOM, false);
22338
22329
  }
22339
22330
  if (sync && this.sync(startIn))
22340
22331
  this.open--;
@@ -22510,7 +22501,7 @@ class ParseContext {
22510
22501
  return false;
22511
22502
  } else {
22512
22503
  let next = depth > 0 || depth == 0 && useRoot ? this.nodes[depth].type : option2 && depth >= minDepth ? option2.node(depth - minDepth).type : null;
22513
- if (!next || next.name != part && !next.isInGroup(part))
22504
+ if (!next || next.name != part && next.groups.indexOf(part) == -1)
22514
22505
  return false;
22515
22506
  depth--;
22516
22507
  }
@@ -23770,24 +23761,8 @@ function canJoin(doc2, pos) {
23770
23761
  let $pos = doc2.resolve(pos), index2 = $pos.index();
23771
23762
  return joinable($pos.nodeBefore, $pos.nodeAfter) && $pos.parent.canReplace(index2, index2 + 1);
23772
23763
  }
23773
- function canAppendWithSubstitutedLinebreaks(a2, b2) {
23774
- if (!b2.content.size)
23775
- a2.type.compatibleContent(b2.type);
23776
- let match2 = a2.contentMatchAt(a2.childCount);
23777
- let { linebreakReplacement } = a2.type.schema;
23778
- for (let i2 = 0; i2 < b2.childCount; i2++) {
23779
- let child = b2.child(i2);
23780
- let type3 = child.type == linebreakReplacement ? a2.type.schema.nodes.text : child.type;
23781
- match2 = match2.matchType(type3);
23782
- if (!match2)
23783
- return false;
23784
- if (!a2.type.allowsMarks(child.marks))
23785
- return false;
23786
- }
23787
- return match2.validEnd;
23788
- }
23789
23764
  function joinable(a2, b2) {
23790
- return !!(a2 && b2 && !a2.isLeaf && canAppendWithSubstitutedLinebreaks(a2, b2));
23765
+ return !!(a2 && b2 && !a2.isLeaf && a2.canAppend(b2));
23791
23766
  }
23792
23767
  function joinPoint(doc2, pos, dir = -1) {
23793
23768
  let $pos = doc2.resolve(pos);
@@ -23812,31 +23787,8 @@ function joinPoint(doc2, pos, dir = -1) {
23812
23787
  }
23813
23788
  }
23814
23789
  function join(tr2, pos, depth) {
23815
- let convertNewlines = null;
23816
- let { linebreakReplacement } = tr2.doc.type.schema;
23817
- let $before = tr2.doc.resolve(pos - depth), beforeType = $before.node().type;
23818
- if (linebreakReplacement && beforeType.inlineContent) {
23819
- let pre = beforeType.whitespace == "pre";
23820
- let supportLinebreak = !!beforeType.contentMatch.matchType(linebreakReplacement);
23821
- if (pre && !supportLinebreak)
23822
- convertNewlines = false;
23823
- else if (!pre && supportLinebreak)
23824
- convertNewlines = true;
23825
- }
23826
- let mapFrom = tr2.steps.length;
23827
- if (convertNewlines === false) {
23828
- let $after = tr2.doc.resolve(pos + depth);
23829
- replaceLinebreaks(tr2, $after.node(), $after.before(), mapFrom);
23830
- }
23831
- if (beforeType.inlineContent)
23832
- clearIncompatible(tr2, pos + depth - 1, beforeType, $before.node().contentMatchAt($before.index()), convertNewlines == null);
23833
- let mapping = tr2.mapping.slice(mapFrom), start2 = mapping.map(pos - depth);
23834
- tr2.step(new ReplaceStep(start2, mapping.map(pos + depth, -1), Slice.empty, true));
23835
- if (convertNewlines === true) {
23836
- let $full = tr2.doc.resolve(start2);
23837
- replaceNewlines(tr2, $full.node(), $full.before(), tr2.steps.length);
23838
- }
23839
- return tr2;
23790
+ let step = new ReplaceStep(pos - depth, pos + depth, Slice.empty, true);
23791
+ tr2.step(step);
23840
23792
  }
23841
23793
  function insertPoint(doc2, pos, nodeType) {
23842
23794
  let $pos = doc2.resolve(pos);
@@ -24232,7 +24184,7 @@ function deleteRange$1(tr2, from2, to2) {
24232
24184
  return tr2.delete($from.before(depth), $to.after(depth));
24233
24185
  }
24234
24186
  for (let d2 = 1; d2 <= $from.depth && d2 <= $to.depth; d2++) {
24235
- 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)))
24187
+ if (from2 - $from.start(d2) == $from.depth - d2 && to2 > $from.end(d2) && $to.end(d2) - to2 != $to.depth - d2)
24236
24188
  return tr2.delete($from.before(d2), to2);
24237
24189
  }
24238
24190
  tr2.delete(from2, to2);
@@ -26386,18 +26338,17 @@ class ViewDesc {
26386
26338
  // custom things with the selection. Note that this falls apart when
26387
26339
  // a selection starts in such a node and ends in another, in which
26388
26340
  // case we just use whatever domFromPos produces as a best effort.
26389
- setSelection(anchor, head, view, force = false) {
26341
+ setSelection(anchor, head, root2, force = false) {
26390
26342
  let from2 = Math.min(anchor, head), to2 = Math.max(anchor, head);
26391
26343
  for (let i2 = 0, offset2 = 0; i2 < this.children.length; i2++) {
26392
26344
  let child = this.children[i2], end2 = offset2 + child.size;
26393
26345
  if (from2 > offset2 && to2 < end2)
26394
- return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, view, force);
26346
+ return child.setSelection(anchor - offset2 - child.border, head - offset2 - child.border, root2, force);
26395
26347
  offset2 = end2;
26396
26348
  }
26397
26349
  let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);
26398
26350
  let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);
26399
- let domSel = view.root.getSelection();
26400
- let selRange = view.domSelectionRange();
26351
+ let domSel = root2.getSelection();
26401
26352
  let brKludge = false;
26402
26353
  if ((gecko || safari) && anchor == head) {
26403
26354
  let { node, offset: offset2 } = anchorDOM;
@@ -26420,12 +26371,12 @@ class ViewDesc {
26420
26371
  brKludge = prev && (prev.nodeName == "BR" || prev.contentEditable == "false");
26421
26372
  }
26422
26373
  }
26423
- if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {
26424
- let after = selRange.focusNode.childNodes[selRange.focusOffset];
26374
+ if (gecko && domSel.focusNode && domSel.focusNode != headDOM.node && domSel.focusNode.nodeType == 1) {
26375
+ let after = domSel.focusNode.childNodes[domSel.focusOffset];
26425
26376
  if (after && after.contentEditable == "false")
26426
26377
  force = true;
26427
26378
  }
26428
- if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))
26379
+ if (!(force || brKludge && safari) && isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset) && isEquivalentPosition(headDOM.node, headDOM.offset, domSel.focusNode, domSel.focusOffset))
26429
26380
  return;
26430
26381
  let domSelExtended = false;
26431
26382
  if ((domSel.extend || anchor == head) && !brKludge) {
@@ -26566,17 +26517,16 @@ class CompositionViewDesc extends ViewDesc {
26566
26517
  }
26567
26518
  }
26568
26519
  class MarkViewDesc extends ViewDesc {
26569
- constructor(parent, mark, dom, contentDOM, spec) {
26520
+ constructor(parent, mark, dom, contentDOM) {
26570
26521
  super(parent, [], dom, contentDOM);
26571
26522
  this.mark = mark;
26572
- this.spec = spec;
26573
26523
  }
26574
26524
  static create(parent, mark, inline, view) {
26575
26525
  let custom2 = view.nodeViews[mark.type.name];
26576
26526
  let spec = custom2 && custom2(mark, view, inline);
26577
26527
  if (!spec || !spec.dom)
26578
26528
  spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);
26579
- return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);
26529
+ return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom);
26580
26530
  }
26581
26531
  parseRule() {
26582
26532
  if (this.dirty & NODE_DIRTY || this.mark.type.spec.reparseInView)
@@ -26609,14 +26559,6 @@ class MarkViewDesc extends ViewDesc {
26609
26559
  copy2.children = nodes;
26610
26560
  return copy2;
26611
26561
  }
26612
- ignoreMutation(mutation) {
26613
- return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);
26614
- }
26615
- destroy() {
26616
- if (this.spec.destroy)
26617
- this.spec.destroy();
26618
- super.destroy();
26619
- }
26620
26562
  }
26621
26563
  class NodeViewDesc extends ViewDesc {
26622
26564
  constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {
@@ -26908,7 +26850,7 @@ class CustomNodeViewDesc extends NodeViewDesc {
26908
26850
  update(node, outerDeco, innerDeco, view) {
26909
26851
  if (this.dirty == NODE_DIRTY)
26910
26852
  return false;
26911
- if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {
26853
+ if (this.spec.update) {
26912
26854
  let result2 = this.spec.update(node, outerDeco, innerDeco);
26913
26855
  if (result2)
26914
26856
  this.updateInner(node, outerDeco, innerDeco, view);
@@ -26925,8 +26867,8 @@ class CustomNodeViewDesc extends NodeViewDesc {
26925
26867
  deselectNode() {
26926
26868
  this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();
26927
26869
  }
26928
- setSelection(anchor, head, view, force) {
26929
- this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root) : super.setSelection(anchor, head, view, force);
26870
+ setSelection(anchor, head, root2, force) {
26871
+ this.spec.setSelection ? this.spec.setSelection(anchor, head, root2) : super.setSelection(anchor, head, root2, force);
26930
26872
  }
26931
26873
  destroy() {
26932
26874
  if (this.spec.destroy)
@@ -27513,7 +27455,7 @@ function selectionToDOM(view, force = false) {
27513
27455
  if (!sel.empty && !sel.$from.parent.inlineContent)
27514
27456
  resetEditableTo = temporarilyEditableNear(view, sel.to);
27515
27457
  }
27516
- view.docView.setSelection(anchor, head, view, force);
27458
+ view.docView.setSelection(anchor, head, view.root, force);
27517
27459
  if (brokenSelectBetweenUneditable) {
27518
27460
  if (resetEditableFrom)
27519
27461
  resetEditable(resetEditableFrom);
@@ -28149,14 +28091,11 @@ let _detachedDoc = null;
28149
28091
  function detachedDoc() {
28150
28092
  return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument("title"));
28151
28093
  }
28152
- let _policy = null;
28153
28094
  function maybeWrapTrusted(html) {
28154
28095
  let trustedTypes = window.trustedTypes;
28155
28096
  if (!trustedTypes)
28156
28097
  return html;
28157
- if (!_policy)
28158
- _policy = trustedTypes.createPolicy("ProseMirrorClipboard", { createHTML: (s2) => s2 });
28159
- return _policy.createHTML(html);
28098
+ return trustedTypes.createPolicy("detachedDocument", { createHTML: (s2) => s2 }).createHTML(html);
28160
28099
  }
28161
28100
  function readHTML(html) {
28162
28101
  let metas = /^(\s*<meta [^>]*>)*/.exec(html);
@@ -28288,7 +28227,9 @@ editHandlers.keydown = (view, _event) => {
28288
28227
  view.input.lastKeyCodeTime = Date.now();
28289
28228
  if (android && chrome && event.keyCode == 13)
28290
28229
  return;
28291
- if (event.keyCode != 229)
28230
+ if (view.domObserver.selectionChanged(view.domSelectionRange()))
28231
+ view.domObserver.flush();
28232
+ else if (event.keyCode != 229)
28292
28233
  view.domObserver.forceFlush();
28293
28234
  if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {
28294
28235
  let now = Date.now();
@@ -29666,6 +29607,9 @@ class DOMObserver {
29666
29607
  this.queue.push(mut);
29667
29608
  return this.queue;
29668
29609
  }
29610
+ selectionChanged(sel) {
29611
+ return !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(this.view) && !this.ignoreSelectionChange(sel);
29612
+ }
29669
29613
  flush() {
29670
29614
  let { view } = this;
29671
29615
  if (!view.docView || this.flushingSoon > -1)
@@ -29673,8 +29617,7 @@ class DOMObserver {
29673
29617
  let mutations = this.pendingRecords();
29674
29618
  if (mutations.length)
29675
29619
  this.queue = [];
29676
- let sel = view.domSelectionRange();
29677
- let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);
29620
+ let sel = view.domSelectionRange(), newSel = this.selectionChanged(sel);
29678
29621
  let from2 = -1, to2 = -1, typeOver = false, added = [];
29679
29622
  if (view.editable) {
29680
29623
  for (let i2 = 0; i2 < mutations.length; i2++) {
@@ -31114,7 +31057,7 @@ function joinMaybeClear(state2, $pos, dispatch) {
31114
31057
  if (!$pos.parent.canReplace(index2, index2 + 1) || !(after.isTextblock || canJoin(state2.doc, $pos.pos)))
31115
31058
  return false;
31116
31059
  if (dispatch)
31117
- dispatch(state2.tr.join($pos.pos).scrollIntoView());
31060
+ dispatch(state2.tr.clearIncompatible($pos.pos, before.type, before.contentMatchAt(before.childCount)).join($pos.pos).scrollIntoView());
31118
31061
  return true;
31119
31062
  }
31120
31063
  function deleteBarrier(state2, $cut, dispatch, dir) {
@@ -31130,9 +31073,9 @@ function deleteBarrier(state2, $cut, dispatch, dir) {
31130
31073
  wrap2 = Fragment.from(conn[i2].create(null, wrap2));
31131
31074
  wrap2 = Fragment.from(before.copy(wrap2));
31132
31075
  let tr2 = state2.tr.step(new ReplaceAroundStep($cut.pos - 1, end2, $cut.pos, end2, new Slice(wrap2, 1, 0), conn.length, true));
31133
- let $joinAt = tr2.doc.resolve(end2 + 2 * conn.length);
31134
- if ($joinAt.nodeAfter && $joinAt.nodeAfter.type == before.type && canJoin(tr2.doc, $joinAt.pos))
31135
- tr2.join($joinAt.pos);
31076
+ let joinAt = end2 + 2 * conn.length;
31077
+ if (canJoin(tr2.doc, joinAt))
31078
+ tr2.join(joinAt);
31136
31079
  dispatch(tr2.scrollIntoView());
31137
31080
  }
31138
31081
  return true;
@@ -31497,13 +31440,6 @@ class EventEmitter {
31497
31440
  }
31498
31441
  return this;
31499
31442
  }
31500
- once(event, fn3) {
31501
- const onceFn = (...args) => {
31502
- this.off(event, onceFn);
31503
- fn3.apply(this, args);
31504
- };
31505
- return this.on(event, onceFn);
31506
- }
31507
31443
  removeAllListeners() {
31508
31444
  this.callbacks = {};
31509
31445
  }
@@ -31751,7 +31687,6 @@ function getSchemaByResolvedExtensions(extensions, editor) {
31751
31687
  draggable: callOrReturn(getExtensionField(extension, "draggable", context)),
31752
31688
  code: callOrReturn(getExtensionField(extension, "code", context)),
31753
31689
  whitespace: callOrReturn(getExtensionField(extension, "whitespace", context)),
31754
- linebreakReplacement: callOrReturn(getExtensionField(extension, "linebreakReplacement", context)),
31755
31690
  defining: callOrReturn(getExtensionField(extension, "defining", context)),
31756
31691
  isolating: callOrReturn(getExtensionField(extension, "isolating", context)),
31757
31692
  attrs: Object.fromEntries(extensionAttributes.map((extensionAttribute) => {
@@ -31834,13 +31769,6 @@ function isExtensionRulesEnabled(extension, enabled) {
31834
31769
  }
31835
31770
  return enabled;
31836
31771
  }
31837
- function getHTMLFromFragment(fragment, schema) {
31838
- const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
31839
- const temporaryDocument = document.implementation.createHTMLDocument();
31840
- const container = temporaryDocument.createElement("div");
31841
- container.appendChild(documentFragment);
31842
- return container.innerHTML;
31843
- }
31844
31772
  const getTextContentFromNodes = ($from, maxMatch = 500) => {
31845
31773
  let textBefore = "";
31846
31774
  const sliceEndPos = $from.parentOffset;
@@ -31951,7 +31879,7 @@ function inputRulesPlugin(props2) {
31951
31879
  init() {
31952
31880
  return null;
31953
31881
  },
31954
- apply(tr2, prev, state2) {
31882
+ apply(tr2, prev) {
31955
31883
  const stored = tr2.getMeta(plugin);
31956
31884
  if (stored) {
31957
31885
  return stored;
@@ -31960,13 +31888,7 @@ function inputRulesPlugin(props2) {
31960
31888
  const isSimulatedInput = !!simulatedInputMeta;
31961
31889
  if (isSimulatedInput) {
31962
31890
  setTimeout(() => {
31963
- let { text } = simulatedInputMeta;
31964
- if (typeof text === "string") {
31965
- text = text;
31966
- } else {
31967
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
31968
- }
31969
- const { from: from2 } = simulatedInputMeta;
31891
+ const { from: from2, text } = simulatedInputMeta;
31970
31892
  const to2 = from2 + text.length;
31971
31893
  run$1({
31972
31894
  editor,
@@ -32035,109 +31957,6 @@ function inputRulesPlugin(props2) {
32035
31957
  });
32036
31958
  return plugin;
32037
31959
  }
32038
- function getType$1(value) {
32039
- return Object.prototype.toString.call(value).slice(8, -1);
32040
- }
32041
- function isPlainObject$1(value) {
32042
- if (getType$1(value) !== "Object") {
32043
- return false;
32044
- }
32045
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32046
- }
32047
- function mergeDeep(target, source) {
32048
- const output = { ...target };
32049
- if (isPlainObject$1(target) && isPlainObject$1(source)) {
32050
- Object.keys(source).forEach((key) => {
32051
- if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32052
- output[key] = mergeDeep(target[key], source[key]);
32053
- } else {
32054
- output[key] = source[key];
32055
- }
32056
- });
32057
- }
32058
- return output;
32059
- }
32060
- class Mark {
32061
- constructor(config = {}) {
32062
- this.type = "mark";
32063
- this.name = "mark";
32064
- this.parent = null;
32065
- this.child = null;
32066
- this.config = {
32067
- name: this.name,
32068
- defaultOptions: {}
32069
- };
32070
- this.config = {
32071
- ...this.config,
32072
- ...config
32073
- };
32074
- this.name = this.config.name;
32075
- if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
32076
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
32077
- }
32078
- this.options = this.config.defaultOptions;
32079
- if (this.config.addOptions) {
32080
- this.options = callOrReturn(getExtensionField(this, "addOptions", {
32081
- name: this.name
32082
- }));
32083
- }
32084
- this.storage = callOrReturn(getExtensionField(this, "addStorage", {
32085
- name: this.name,
32086
- options: this.options
32087
- })) || {};
32088
- }
32089
- static create(config = {}) {
32090
- return new Mark(config);
32091
- }
32092
- configure(options = {}) {
32093
- const extension = this.extend({
32094
- ...this.config,
32095
- addOptions: () => {
32096
- return mergeDeep(this.options, options);
32097
- }
32098
- });
32099
- extension.name = this.name;
32100
- extension.parent = this.parent;
32101
- return extension;
32102
- }
32103
- extend(extendedConfig = {}) {
32104
- const extension = new Mark(extendedConfig);
32105
- extension.parent = this;
32106
- this.child = extension;
32107
- extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
32108
- if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
32109
- console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
32110
- }
32111
- extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
32112
- name: extension.name
32113
- }));
32114
- extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
32115
- name: extension.name,
32116
- options: extension.options
32117
- }));
32118
- return extension;
32119
- }
32120
- static handleExit({ editor, mark }) {
32121
- const { tr: tr2 } = editor.state;
32122
- const currentPos = editor.state.selection.$from;
32123
- const isAtEnd = currentPos.pos === currentPos.end();
32124
- if (isAtEnd) {
32125
- const currentMarks = currentPos.marks();
32126
- const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32127
- if (!isInMark) {
32128
- return false;
32129
- }
32130
- const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
32131
- if (removeMark2) {
32132
- tr2.removeStoredMark(removeMark2);
32133
- }
32134
- tr2.insertText(" ", currentPos.pos);
32135
- editor.view.dispatch(tr2);
32136
- return true;
32137
- }
32138
- return false;
32139
- }
32140
- }
32141
31960
  function isNumber$1(value) {
32142
31961
  return typeof value === "number";
32143
31962
  }
@@ -32224,12 +32043,7 @@ function pasteRulesPlugin(props2) {
32224
32043
  let isPastedFromProseMirror = false;
32225
32044
  let isDroppedFromProseMirror = false;
32226
32045
  let pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32227
- let dropEvent;
32228
- try {
32229
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32230
- } catch (e) {
32231
- dropEvent = null;
32232
- }
32046
+ let dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32233
32047
  const processEvent = ({ state: state2, from: from2, to: to2, rule, pasteEvt }) => {
32234
32048
  const tr2 = state2.tr;
32235
32049
  const chainableState = createChainableState({
@@ -32248,11 +32062,7 @@ function pasteRulesPlugin(props2) {
32248
32062
  if (!handler || !tr2.steps.length) {
32249
32063
  return;
32250
32064
  }
32251
- try {
32252
- dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32253
- } catch (e) {
32254
- dropEvent = null;
32255
- }
32065
+ dropEvent = typeof DragEvent !== "undefined" ? new DragEvent("drop") : null;
32256
32066
  pasteEvent = typeof ClipboardEvent !== "undefined" ? new ClipboardEvent("paste") : null;
32257
32067
  return tr2;
32258
32068
  };
@@ -32297,13 +32107,7 @@ function pasteRulesPlugin(props2) {
32297
32107
  return;
32298
32108
  }
32299
32109
  if (isSimulatedPaste) {
32300
- let { text } = simulatedPasteMeta;
32301
- if (typeof text === "string") {
32302
- text = text;
32303
- } else {
32304
- text = getHTMLFromFragment(Fragment.from(text), state2.schema);
32305
- }
32306
- const { from: from3 } = simulatedPasteMeta;
32110
+ const { from: from3, text } = simulatedPasteMeta;
32307
32111
  const to3 = from3 + text.length;
32308
32112
  const pasteEvt = createClipboardPasteEvent(text);
32309
32113
  return processEvent({
@@ -32577,6 +32381,28 @@ class ExtensionManager {
32577
32381
  });
32578
32382
  }
32579
32383
  }
32384
+ function getType$1(value) {
32385
+ return Object.prototype.toString.call(value).slice(8, -1);
32386
+ }
32387
+ function isPlainObject$1(value) {
32388
+ if (getType$1(value) !== "Object") {
32389
+ return false;
32390
+ }
32391
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
32392
+ }
32393
+ function mergeDeep(target, source) {
32394
+ const output = { ...target };
32395
+ if (isPlainObject$1(target) && isPlainObject$1(source)) {
32396
+ Object.keys(source).forEach((key) => {
32397
+ if (isPlainObject$1(source[key]) && isPlainObject$1(target[key])) {
32398
+ output[key] = mergeDeep(target[key], source[key]);
32399
+ } else {
32400
+ output[key] = source[key];
32401
+ }
32402
+ });
32403
+ }
32404
+ return output;
32405
+ }
32580
32406
  class Extension {
32581
32407
  constructor(config = {}) {
32582
32408
  this.type = "extension";
@@ -32827,29 +32653,23 @@ function objectIncludes(object1, object2, options = { strict: true }) {
32827
32653
  }
32828
32654
  function findMarkInSet(marks, type3, attributes = {}) {
32829
32655
  return marks.find((item) => {
32830
- return item.type === type3 && objectIncludes(
32831
- // Only check equality for the attributes that are provided
32832
- Object.fromEntries(Object.keys(attributes).map((k2) => [k2, item.attrs[k2]])),
32833
- attributes
32834
- );
32656
+ return item.type === type3 && objectIncludes(item.attrs, attributes);
32835
32657
  });
32836
32658
  }
32837
32659
  function isMarkInSet(marks, type3, attributes = {}) {
32838
32660
  return !!findMarkInSet(marks, type3, attributes);
32839
32661
  }
32840
- function getMarkRange($pos, type3, attributes) {
32841
- var _a2;
32662
+ function getMarkRange($pos, type3, attributes = {}) {
32842
32663
  if (!$pos || !type3) {
32843
32664
  return;
32844
32665
  }
32845
32666
  let start2 = $pos.parent.childAfter($pos.parentOffset);
32846
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32667
+ if ($pos.parentOffset === start2.offset && start2.offset !== 0) {
32847
32668
  start2 = $pos.parent.childBefore($pos.parentOffset);
32848
32669
  }
32849
- if (!start2.node || !start2.node.marks.some((mark2) => mark2.type === type3)) {
32670
+ if (!start2.node) {
32850
32671
  return;
32851
32672
  }
32852
- attributes = attributes || ((_a2 = start2.node.marks[0]) === null || _a2 === void 0 ? void 0 : _a2.attrs);
32853
32673
  const mark = findMarkInSet([...start2.node.marks], type3, attributes);
32854
32674
  if (!mark) {
32855
32675
  return;
@@ -32858,7 +32678,8 @@ function getMarkRange($pos, type3, attributes) {
32858
32678
  let startPos = $pos.start() + start2.offset;
32859
32679
  let endIndex = startIndex + 1;
32860
32680
  let endPos = startPos + start2.node.nodeSize;
32861
- while (startIndex > 0 && isMarkInSet([...$pos.parent.child(startIndex - 1).marks], type3, attributes)) {
32681
+ findMarkInSet([...start2.node.marks], type3, attributes);
32682
+ while (startIndex > 0 && mark.isInSet($pos.parent.child(startIndex - 1).marks)) {
32862
32683
  startIndex -= 1;
32863
32684
  startPos -= $pos.parent.child(startIndex).nodeSize;
32864
32685
  }
@@ -32999,9 +32820,6 @@ function elementFromString(value) {
32999
32820
  return removeWhitespaces(html);
33000
32821
  }
33001
32822
  function createNodeFromContent(content, schema, options) {
33002
- if (content instanceof Node$2 || content instanceof Fragment) {
33003
- return content;
33004
- }
33005
32823
  options = {
33006
32824
  slice: true,
33007
32825
  parseOptions: {},
@@ -33096,7 +32914,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33096
32914
  var _a2;
33097
32915
  if (dispatch) {
33098
32916
  options = {
33099
- parseOptions: editor.options.parseOptions,
32917
+ parseOptions: {},
33100
32918
  updateSelection: true,
33101
32919
  applyInputRules: false,
33102
32920
  applyPasteRules: false,
@@ -33116,9 +32934,7 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33116
32934
  editor,
33117
32935
  error: e,
33118
32936
  disableCollaboration: () => {
33119
- if (editor.storage.collaboration) {
33120
- editor.storage.collaboration.isDisabled = true;
33121
- }
32937
+ console.error("[tiptap error]: Unable to disable collaboration at this point in time");
33122
32938
  }
33123
32939
  });
33124
32940
  return false;
@@ -33144,14 +32960,6 @@ const insertContentAt = (position, value, options) => ({ tr: tr2, dispatch, edit
33144
32960
  if (isOnlyTextContent) {
33145
32961
  if (Array.isArray(value)) {
33146
32962
  newContent = value.map((v2) => v2.text || "").join("");
33147
- } else if (value instanceof Fragment) {
33148
- let text = "";
33149
- value.forEach((node) => {
33150
- if (node.text) {
33151
- text += node.text;
33152
- }
33153
- });
33154
- newContent = text;
33155
32963
  } else if (typeof value === "object" && !!value && !!value.text) {
33156
32964
  newContent = value.text;
33157
32965
  } else {
@@ -33487,6 +33295,13 @@ function findParentNodeClosestToPos($pos, predicate) {
33487
33295
  function findParentNode(predicate) {
33488
33296
  return (selection) => findParentNodeClosestToPos(selection.$from, predicate);
33489
33297
  }
33298
+ function getHTMLFromFragment(fragment, schema) {
33299
+ const documentFragment = DOMSerializer.fromSchema(schema).serializeFragment(fragment);
33300
+ const temporaryDocument = document.implementation.createHTMLDocument();
33301
+ const container = temporaryDocument.createElement("div");
33302
+ container.appendChild(documentFragment);
33303
+ return container.innerHTML;
33304
+ }
33490
33305
  function getText(node, options) {
33491
33306
  const range2 = {
33492
33307
  from: 0,
@@ -33772,22 +33587,18 @@ const setMeta = (key, value) => ({ tr: tr2 }) => {
33772
33587
  };
33773
33588
  const setNode = (typeOrName, attributes = {}) => ({ state: state2, dispatch, chain }) => {
33774
33589
  const type3 = getNodeType(typeOrName, state2.schema);
33775
- let attributesToCopy;
33776
- if (state2.selection.$anchor.sameParent(state2.selection.$head)) {
33777
- attributesToCopy = state2.selection.$anchor.parent.attrs;
33778
- }
33779
33590
  if (!type3.isTextblock) {
33780
33591
  console.warn('[tiptap warn]: Currently "setNode()" only supports text block nodes.');
33781
33592
  return false;
33782
33593
  }
33783
33594
  return chain().command(({ commands: commands2 }) => {
33784
- const canSetBlock = setBlockType(type3, { ...attributesToCopy, ...attributes })(state2);
33595
+ const canSetBlock = setBlockType(type3, attributes)(state2);
33785
33596
  if (canSetBlock) {
33786
33597
  return true;
33787
33598
  }
33788
33599
  return commands2.clearNodes();
33789
33600
  }).command(({ state: updatedState }) => {
33790
- return setBlockType(type3, { ...attributesToCopy, ...attributes })(updatedState, dispatch);
33601
+ return setBlockType(type3, attributes)(updatedState, dispatch);
33791
33602
  }).run();
33792
33603
  };
33793
33604
  const setNodeSelection = (position) => ({ tr: tr2, dispatch }) => {
@@ -34146,59 +33957,18 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34146
33957
  tr2.selection.ranges.forEach((range2) => {
34147
33958
  const from2 = range2.$from.pos;
34148
33959
  const to2 = range2.$to.pos;
34149
- let lastPos;
34150
- let lastNode;
34151
- let trimmedFrom;
34152
- let trimmedTo;
34153
- if (tr2.selection.empty) {
34154
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34155
- if (nodeType && nodeType === node.type) {
34156
- trimmedFrom = Math.max(pos, from2);
34157
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34158
- lastPos = pos;
34159
- lastNode = node;
34160
- }
34161
- });
34162
- } else {
34163
- state2.doc.nodesBetween(from2, to2, (node, pos) => {
34164
- if (pos < from2 && nodeType && nodeType === node.type) {
34165
- trimmedFrom = Math.max(pos, from2);
34166
- trimmedTo = Math.min(pos + node.nodeSize, to2);
34167
- lastPos = pos;
34168
- lastNode = node;
34169
- }
34170
- if (pos >= from2 && pos <= to2) {
34171
- if (nodeType && nodeType === node.type) {
34172
- tr2.setNodeMarkup(pos, void 0, {
34173
- ...node.attrs,
34174
- ...attributes
34175
- });
34176
- }
34177
- if (markType && node.marks.length) {
34178
- node.marks.forEach((mark) => {
34179
- if (markType === mark.type) {
34180
- const trimmedFrom2 = Math.max(pos, from2);
34181
- const trimmedTo2 = Math.min(pos + node.nodeSize, to2);
34182
- tr2.addMark(trimmedFrom2, trimmedTo2, markType.create({
34183
- ...mark.attrs,
34184
- ...attributes
34185
- }));
34186
- }
34187
- });
34188
- }
34189
- }
34190
- });
34191
- }
34192
- if (lastNode) {
34193
- if (lastPos !== void 0) {
34194
- tr2.setNodeMarkup(lastPos, void 0, {
34195
- ...lastNode.attrs,
33960
+ state2.doc.nodesBetween(from2, to2, (node, pos) => {
33961
+ if (nodeType && nodeType === node.type) {
33962
+ tr2.setNodeMarkup(pos, void 0, {
33963
+ ...node.attrs,
34196
33964
  ...attributes
34197
33965
  });
34198
33966
  }
34199
- if (markType && lastNode.marks.length) {
34200
- lastNode.marks.forEach((mark) => {
33967
+ if (markType && node.marks.length) {
33968
+ node.marks.forEach((mark) => {
34201
33969
  if (markType === mark.type) {
33970
+ const trimmedFrom = Math.max(pos, from2);
33971
+ const trimmedTo = Math.min(pos + node.nodeSize, to2);
34202
33972
  tr2.addMark(trimmedFrom, trimmedTo, markType.create({
34203
33973
  ...mark.attrs,
34204
33974
  ...attributes
@@ -34206,7 +33976,7 @@ const updateAttributes = (typeOrName, attributes = {}) => ({ tr: tr2, state: sta
34206
33976
  }
34207
33977
  });
34208
33978
  }
34209
- }
33979
+ });
34210
33980
  });
34211
33981
  }
34212
33982
  return true;
@@ -34288,26 +34058,6 @@ const Commands = Extension.create({
34288
34058
  };
34289
34059
  }
34290
34060
  });
34291
- const Drop = Extension.create({
34292
- name: "drop",
34293
- addProseMirrorPlugins() {
34294
- return [
34295
- new Plugin({
34296
- key: new PluginKey("tiptapDrop"),
34297
- props: {
34298
- handleDrop: (_2, e, slice4, moved2) => {
34299
- this.editor.emit("drop", {
34300
- editor: this.editor,
34301
- event: e,
34302
- slice: slice4,
34303
- moved: moved2
34304
- });
34305
- }
34306
- }
34307
- })
34308
- ];
34309
- }
34310
- });
34311
34061
  const Editable = Extension.create({
34312
34062
  name: "editable",
34313
34063
  addProseMirrorPlugins() {
@@ -34457,25 +34207,6 @@ const Keymap = Extension.create({
34457
34207
  ];
34458
34208
  }
34459
34209
  });
34460
- const Paste = Extension.create({
34461
- name: "paste",
34462
- addProseMirrorPlugins() {
34463
- return [
34464
- new Plugin({
34465
- key: new PluginKey("tiptapPaste"),
34466
- props: {
34467
- handlePaste: (_view, e, slice4) => {
34468
- this.editor.emit("paste", {
34469
- editor: this.editor,
34470
- event: e,
34471
- slice: slice4
34472
- });
34473
- }
34474
- }
34475
- })
34476
- ];
34477
- }
34478
- });
34479
34210
  const Tabindex = Extension.create({
34480
34211
  name: "tabindex",
34481
34212
  addProseMirrorPlugins() {
@@ -34583,8 +34314,7 @@ class NodePos {
34583
34314
  const children2 = [];
34584
34315
  this.node.content.forEach((node, offset2) => {
34585
34316
  const isBlock = node.isBlock && !node.isTextblock;
34586
- const isNonTextAtom = node.isAtom && !node.isText;
34587
- const targetPos = this.pos + offset2 + (isNonTextAtom ? 0 : 1);
34317
+ const targetPos = this.pos + offset2 + 1;
34588
34318
  const $pos = this.resolvedPos.doc.resolve(targetPos);
34589
34319
  if (!isBlock && $pos.depth <= this.depth) {
34590
34320
  return;
@@ -34653,14 +34383,30 @@ class NodePos {
34653
34383
  return nodes;
34654
34384
  }
34655
34385
  setAttribute(attributes) {
34656
- const { tr: tr2 } = this.editor.state;
34657
- tr2.setNodeMarkup(this.from, void 0, {
34658
- ...this.node.attrs,
34659
- ...attributes
34660
- });
34661
- this.editor.view.dispatch(tr2);
34386
+ const oldSelection = this.editor.state.selection;
34387
+ this.editor.chain().setTextSelection(this.from).updateAttributes(this.node.type.name, attributes).setTextSelection(oldSelection.from).run();
34662
34388
  }
34663
34389
  }
34390
+ const DropPlugin = (onDrop) => {
34391
+ return new Plugin({
34392
+ key: new PluginKey("tiptapDrop"),
34393
+ props: {
34394
+ handleDrop: (_2, e, slice4, moved2) => {
34395
+ onDrop(e, slice4, moved2);
34396
+ }
34397
+ }
34398
+ });
34399
+ };
34400
+ const PastePlugin = (onPaste) => {
34401
+ return new Plugin({
34402
+ key: new PluginKey("tiptapPaste"),
34403
+ props: {
34404
+ handlePaste: (_view, e, slice4) => {
34405
+ onPaste(e, slice4);
34406
+ }
34407
+ }
34408
+ });
34409
+ };
34664
34410
  const style = `.ProseMirror {
34665
34411
  position: relative;
34666
34412
  }
@@ -34803,8 +34549,12 @@ let Editor$1 = class Editor2 extends EventEmitter {
34803
34549
  this.on("focus", this.options.onFocus);
34804
34550
  this.on("blur", this.options.onBlur);
34805
34551
  this.on("destroy", this.options.onDestroy);
34806
- this.on("drop", ({ event, slice: slice4, moved: moved2 }) => this.options.onDrop(event, slice4, moved2));
34807
- this.on("paste", ({ event, slice: slice4 }) => this.options.onPaste(event, slice4));
34552
+ if (this.options.onPaste) {
34553
+ this.registerPlugin(PastePlugin(this.options.onPaste));
34554
+ }
34555
+ if (this.options.onDrop) {
34556
+ this.registerPlugin(DropPlugin(this.options.onDrop));
34557
+ }
34808
34558
  window.setTimeout(() => {
34809
34559
  if (this.isDestroyed) {
34810
34560
  return;
@@ -34901,24 +34651,17 @@ let Editor$1 = class Editor2 extends EventEmitter {
34901
34651
  /**
34902
34652
  * Unregister a ProseMirror plugin.
34903
34653
  *
34904
- * @param nameOrPluginKeyToRemove The plugins name
34654
+ * @param nameOrPluginKey The plugins name
34905
34655
  * @returns The new editor state or undefined if the editor is destroyed
34906
34656
  */
34907
- unregisterPlugin(nameOrPluginKeyToRemove) {
34657
+ unregisterPlugin(nameOrPluginKey) {
34908
34658
  if (this.isDestroyed) {
34909
34659
  return void 0;
34910
34660
  }
34911
- const prevPlugins = this.state.plugins;
34912
- let plugins2 = prevPlugins;
34913
- [].concat(nameOrPluginKeyToRemove).forEach((nameOrPluginKey) => {
34914
- const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34915
- plugins2 = prevPlugins.filter((plugin) => !plugin.key.startsWith(name));
34916
- });
34917
- if (prevPlugins.length === plugins2.length) {
34918
- return void 0;
34919
- }
34661
+ const name = typeof nameOrPluginKey === "string" ? `${nameOrPluginKey}$` : nameOrPluginKey.key;
34920
34662
  const state2 = this.state.reconfigure({
34921
- plugins: plugins2
34663
+ // @ts-ignore
34664
+ plugins: this.state.plugins.filter((plugin) => !plugin.key.startsWith(name))
34922
34665
  });
34923
34666
  this.view.updateState(state2);
34924
34667
  return state2;
@@ -34936,9 +34679,7 @@ let Editor$1 = class Editor2 extends EventEmitter {
34936
34679
  Commands,
34937
34680
  FocusEvents,
34938
34681
  Keymap,
34939
- Tabindex,
34940
- Drop,
34941
- Paste
34682
+ Tabindex
34942
34683
  ].filter((ext) => {
34943
34684
  if (typeof this.options.enableCoreExtensions === "object") {
34944
34685
  return this.options.enableCoreExtensions[ext.name] !== false;
@@ -34968,7 +34709,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34968
34709
  * Creates a ProseMirror view.
34969
34710
  */
34970
34711
  createView() {
34971
- var _a2;
34972
34712
  let doc2;
34973
34713
  try {
34974
34714
  doc2 = createDocument(this.options.content, this.schema, this.options.parseOptions, { errorOnInvalidContent: this.options.enableContentCheck });
@@ -34980,9 +34720,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34980
34720
  editor: this,
34981
34721
  error: e,
34982
34722
  disableCollaboration: () => {
34983
- if (this.storage.collaboration) {
34984
- this.storage.collaboration.isDisabled = true;
34985
- }
34986
34723
  this.options.extensions = this.options.extensions.filter((extension) => extension.name !== "collaboration");
34987
34724
  this.createExtensionManager();
34988
34725
  }
@@ -34992,11 +34729,6 @@ let Editor$1 = class Editor2 extends EventEmitter {
34992
34729
  const selection = resolveFocusPosition(doc2, this.options.autofocus);
34993
34730
  this.view = new EditorView(this.options.element, {
34994
34731
  ...this.options.editorProps,
34995
- attributes: {
34996
- // add `role="textbox"` to the editor element
34997
- role: "textbox",
34998
- ...(_a2 = this.options.editorProps) === null || _a2 === void 0 ? void 0 : _a2.attributes
34999
- },
35000
34732
  dispatchTransaction: this.dispatchTransaction.bind(this),
35001
34733
  state: EditorState.create({
35002
34734
  doc: doc2,
@@ -35296,6 +35028,87 @@ function wrappingInputRule(config) {
35296
35028
  }
35297
35029
  });
35298
35030
  }
35031
+ class Mark {
35032
+ constructor(config = {}) {
35033
+ this.type = "mark";
35034
+ this.name = "mark";
35035
+ this.parent = null;
35036
+ this.child = null;
35037
+ this.config = {
35038
+ name: this.name,
35039
+ defaultOptions: {}
35040
+ };
35041
+ this.config = {
35042
+ ...this.config,
35043
+ ...config
35044
+ };
35045
+ this.name = this.config.name;
35046
+ if (config.defaultOptions && Object.keys(config.defaultOptions).length > 0) {
35047
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${this.name}".`);
35048
+ }
35049
+ this.options = this.config.defaultOptions;
35050
+ if (this.config.addOptions) {
35051
+ this.options = callOrReturn(getExtensionField(this, "addOptions", {
35052
+ name: this.name
35053
+ }));
35054
+ }
35055
+ this.storage = callOrReturn(getExtensionField(this, "addStorage", {
35056
+ name: this.name,
35057
+ options: this.options
35058
+ })) || {};
35059
+ }
35060
+ static create(config = {}) {
35061
+ return new Mark(config);
35062
+ }
35063
+ configure(options = {}) {
35064
+ const extension = this.extend({
35065
+ ...this.config,
35066
+ addOptions: () => {
35067
+ return mergeDeep(this.options, options);
35068
+ }
35069
+ });
35070
+ extension.name = this.name;
35071
+ extension.parent = this.parent;
35072
+ return extension;
35073
+ }
35074
+ extend(extendedConfig = {}) {
35075
+ const extension = new Mark(extendedConfig);
35076
+ extension.parent = this;
35077
+ this.child = extension;
35078
+ extension.name = extendedConfig.name ? extendedConfig.name : extension.parent.name;
35079
+ if (extendedConfig.defaultOptions && Object.keys(extendedConfig.defaultOptions).length > 0) {
35080
+ console.warn(`[tiptap warn]: BREAKING CHANGE: "defaultOptions" is deprecated. Please use "addOptions" instead. Found in extension: "${extension.name}".`);
35081
+ }
35082
+ extension.options = callOrReturn(getExtensionField(extension, "addOptions", {
35083
+ name: extension.name
35084
+ }));
35085
+ extension.storage = callOrReturn(getExtensionField(extension, "addStorage", {
35086
+ name: extension.name,
35087
+ options: extension.options
35088
+ }));
35089
+ return extension;
35090
+ }
35091
+ static handleExit({ editor, mark }) {
35092
+ const { tr: tr2 } = editor.state;
35093
+ const currentPos = editor.state.selection.$from;
35094
+ const isAtEnd = currentPos.pos === currentPos.end();
35095
+ if (isAtEnd) {
35096
+ const currentMarks = currentPos.marks();
35097
+ const isInMark = !!currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35098
+ if (!isInMark) {
35099
+ return false;
35100
+ }
35101
+ const removeMark2 = currentMarks.find((m2) => (m2 === null || m2 === void 0 ? void 0 : m2.type.name) === mark.name);
35102
+ if (removeMark2) {
35103
+ tr2.removeStoredMark(removeMark2);
35104
+ }
35105
+ tr2.insertText(" ", currentPos.pos);
35106
+ editor.view.dispatch(tr2);
35107
+ return true;
35108
+ }
35109
+ return false;
35110
+ }
35111
+ }
35299
35112
  let Node$1 = class Node3 {
35300
35113
  constructor(config = {}) {
35301
35114
  this.type = "node";
@@ -36125,7 +35938,7 @@ function drawCellSelection(state2) {
36125
35938
  return DecorationSet.create(state2.doc, cells);
36126
35939
  }
36127
35940
  function isCellBoundarySelection({ $from, $to }) {
36128
- if ($from.pos == $to.pos || $from.pos < $to.pos - 6)
35941
+ if ($from.pos == $to.pos || $from.pos < $from.pos - 6)
36129
35942
  return false;
36130
35943
  let afterFrom = $from.pos;
36131
35944
  let beforeTo = $to.pos;
@@ -36288,800 +36101,233 @@ function fixTable(state2, table, tablePos, tr2) {
36288
36101
  }
36289
36102
  return tr2.setMeta(fixTablesKey, { fixTables: true });
36290
36103
  }
36291
- function selectedRect(state2) {
36292
- const sel = state2.selection;
36293
- const $pos = selectionCell(state2);
36294
- const table = $pos.node(-1);
36295
- const tableStart = $pos.start(-1);
36296
- const map4 = TableMap.get(table);
36297
- const rect = sel instanceof CellSelection ? map4.rectBetween(
36298
- sel.$anchorCell.pos - tableStart,
36299
- sel.$headCell.pos - tableStart
36300
- ) : map4.findCell($pos.pos - tableStart);
36301
- return { ...rect, tableStart, map: map4, table };
36302
- }
36303
- function addColumn(tr2, { map: map4, tableStart, table }, col) {
36304
- let refColumn = col > 0 ? -1 : 0;
36305
- if (columnIsHeader(map4, table, col + refColumn)) {
36306
- refColumn = col == 0 || col == map4.width ? null : 0;
36104
+ function pastedCells(slice4) {
36105
+ if (!slice4.size)
36106
+ return null;
36107
+ let { content, openStart, openEnd } = slice4;
36108
+ while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36109
+ openStart--;
36110
+ openEnd--;
36111
+ content = content.child(0).content;
36307
36112
  }
36308
- for (let row = 0; row < map4.height; row++) {
36309
- const index2 = row * map4.width + col;
36310
- if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36311
- const pos = map4.map[index2];
36312
- const cell = table.nodeAt(pos);
36313
- tr2.setNodeMarkup(
36314
- tr2.mapping.map(tableStart + pos),
36315
- null,
36316
- addColSpan(cell.attrs, col - map4.colCount(pos))
36317
- );
36318
- row += cell.attrs.rowspan - 1;
36319
- } else {
36320
- const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36321
- const pos = map4.positionAt(row, col, table);
36322
- tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36113
+ const first2 = content.child(0);
36114
+ const role = first2.type.spec.tableRole;
36115
+ const schema = first2.type.schema, rows = [];
36116
+ if (role == "row") {
36117
+ for (let i2 = 0; i2 < content.childCount; i2++) {
36118
+ let cells = content.child(i2).content;
36119
+ const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36120
+ const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36121
+ if (left2 || right2)
36122
+ cells = fitSlice(
36123
+ tableNodeTypes(schema).row,
36124
+ new Slice(cells, left2, right2)
36125
+ ).content;
36126
+ rows.push(cells);
36323
36127
  }
36128
+ } else if (role == "cell" || role == "header_cell") {
36129
+ rows.push(
36130
+ openStart || openEnd ? fitSlice(
36131
+ tableNodeTypes(schema).row,
36132
+ new Slice(content, openStart, openEnd)
36133
+ ).content : content
36134
+ );
36135
+ } else {
36136
+ return null;
36324
36137
  }
36325
- return tr2;
36138
+ return ensureRectangular(schema, rows);
36326
36139
  }
36327
- function addColumnBefore(state2, dispatch) {
36328
- if (!isInTable(state2))
36329
- return false;
36330
- if (dispatch) {
36331
- const rect = selectedRect(state2);
36332
- dispatch(addColumn(state2.tr, rect, rect.left));
36140
+ function ensureRectangular(schema, rows) {
36141
+ const widths = [];
36142
+ for (let i2 = 0; i2 < rows.length; i2++) {
36143
+ const row = rows[i2];
36144
+ for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36145
+ const { rowspan, colspan } = row.child(j2).attrs;
36146
+ for (let r2 = i2; r2 < i2 + rowspan; r2++)
36147
+ widths[r2] = (widths[r2] || 0) + colspan;
36148
+ }
36333
36149
  }
36334
- return true;
36335
- }
36336
- function addColumnAfter(state2, dispatch) {
36337
- if (!isInTable(state2))
36338
- return false;
36339
- if (dispatch) {
36340
- const rect = selectedRect(state2);
36341
- dispatch(addColumn(state2.tr, rect, rect.right));
36150
+ let width = 0;
36151
+ for (let r2 = 0; r2 < widths.length; r2++)
36152
+ width = Math.max(width, widths[r2]);
36153
+ for (let r2 = 0; r2 < widths.length; r2++) {
36154
+ if (r2 >= rows.length)
36155
+ rows.push(Fragment.empty);
36156
+ if (widths[r2] < width) {
36157
+ const empty2 = tableNodeTypes(schema).cell.createAndFill();
36158
+ const cells = [];
36159
+ for (let i2 = widths[r2]; i2 < width; i2++) {
36160
+ cells.push(empty2);
36161
+ }
36162
+ rows[r2] = rows[r2].append(Fragment.from(cells));
36163
+ }
36342
36164
  }
36343
- return true;
36165
+ return { height: rows.length, width, rows };
36344
36166
  }
36345
- function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36346
- const mapStart = tr2.mapping.maps.length;
36347
- for (let row = 0; row < map4.height; ) {
36348
- const index2 = row * map4.width + col;
36349
- const pos = map4.map[index2];
36350
- const cell = table.nodeAt(pos);
36351
- const attrs = cell.attrs;
36352
- if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36353
- tr2.setNodeMarkup(
36354
- tr2.mapping.slice(mapStart).map(tableStart + pos),
36355
- null,
36356
- removeColSpan(attrs, col - map4.colCount(pos))
36357
- );
36358
- } else {
36359
- const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
36360
- tr2.delete(start2, start2 + cell.nodeSize);
36167
+ function fitSlice(nodeType, slice4) {
36168
+ const node = nodeType.createAndFill();
36169
+ const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36170
+ return tr2.doc;
36171
+ }
36172
+ function clipCells({ width, height, rows }, newWidth, newHeight) {
36173
+ if (width != newWidth) {
36174
+ const added = [];
36175
+ const newRows = [];
36176
+ for (let row = 0; row < rows.length; row++) {
36177
+ const frag = rows[row], cells = [];
36178
+ for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36179
+ let cell = frag.child(i2 % frag.childCount);
36180
+ if (col + cell.attrs.colspan > newWidth)
36181
+ cell = cell.type.createChecked(
36182
+ removeColSpan(
36183
+ cell.attrs,
36184
+ cell.attrs.colspan,
36185
+ col + cell.attrs.colspan - newWidth
36186
+ ),
36187
+ cell.content
36188
+ );
36189
+ cells.push(cell);
36190
+ col += cell.attrs.colspan;
36191
+ for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36192
+ added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36193
+ }
36194
+ newRows.push(Fragment.from(cells));
36361
36195
  }
36362
- row += attrs.rowspan;
36196
+ rows = newRows;
36197
+ width = newWidth;
36363
36198
  }
36364
- }
36365
- function deleteColumn(state2, dispatch) {
36366
- if (!isInTable(state2))
36367
- return false;
36368
- if (dispatch) {
36369
- const rect = selectedRect(state2);
36370
- const tr2 = state2.tr;
36371
- if (rect.left == 0 && rect.right == rect.map.width)
36372
- return false;
36373
- for (let i2 = rect.right - 1; ; i2--) {
36374
- removeColumn(tr2, rect, i2);
36375
- if (i2 == rect.left)
36376
- break;
36377
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36378
- if (!table) {
36379
- throw RangeError("No table found");
36199
+ if (height != newHeight) {
36200
+ const newRows = [];
36201
+ for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36202
+ const cells = [], source = rows[i2 % height];
36203
+ for (let j2 = 0; j2 < source.childCount; j2++) {
36204
+ let cell = source.child(j2);
36205
+ if (row + cell.attrs.rowspan > newHeight)
36206
+ cell = cell.type.create(
36207
+ {
36208
+ ...cell.attrs,
36209
+ rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36210
+ },
36211
+ cell.content
36212
+ );
36213
+ cells.push(cell);
36380
36214
  }
36381
- rect.table = table;
36382
- rect.map = TableMap.get(table);
36215
+ newRows.push(Fragment.from(cells));
36383
36216
  }
36384
- dispatch(tr2);
36217
+ rows = newRows;
36218
+ height = newHeight;
36385
36219
  }
36386
- return true;
36387
- }
36388
- function rowIsHeader(map4, table, row) {
36389
- var _a2;
36390
- const headerCell = tableNodeTypes(table.type.schema).header_cell;
36391
- for (let col = 0; col < map4.width; col++)
36392
- if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
36393
- return false;
36394
- return true;
36220
+ return { width, height, rows };
36395
36221
  }
36396
- function addRow(tr2, { map: map4, tableStart, table }, row) {
36397
- var _a2;
36398
- let rowPos = tableStart;
36399
- for (let i2 = 0; i2 < row; i2++)
36400
- rowPos += table.child(i2).nodeSize;
36401
- const cells = [];
36402
- let refRow = row > 0 ? -1 : 0;
36403
- if (rowIsHeader(map4, table, row + refRow))
36404
- refRow = row == 0 || row == map4.height ? null : 0;
36405
- for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
36406
- if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
36407
- const pos = map4.map[index2];
36408
- const attrs = table.nodeAt(pos).attrs;
36409
- tr2.setNodeMarkup(tableStart + pos, null, {
36410
- ...attrs,
36411
- rowspan: attrs.rowspan + 1
36412
- });
36413
- col += attrs.colspan - 1;
36414
- } else {
36415
- const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
36416
- const node = type3 == null ? void 0 : type3.createAndFill();
36417
- if (node)
36418
- cells.push(node);
36222
+ function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36223
+ const schema = tr2.doc.type.schema;
36224
+ const types = tableNodeTypes(schema);
36225
+ let empty2;
36226
+ let emptyHead;
36227
+ if (width > map4.width) {
36228
+ for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36229
+ const rowNode = table.child(row);
36230
+ rowEnd += rowNode.nodeSize;
36231
+ const cells = [];
36232
+ let add2;
36233
+ if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36234
+ add2 = empty2 || (empty2 = types.cell.createAndFill());
36235
+ else
36236
+ add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36237
+ for (let i2 = map4.width; i2 < width; i2++)
36238
+ cells.push(add2);
36239
+ tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36419
36240
  }
36420
36241
  }
36421
- tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
36422
- return tr2;
36423
- }
36424
- function addRowBefore(state2, dispatch) {
36425
- if (!isInTable(state2))
36426
- return false;
36427
- if (dispatch) {
36428
- const rect = selectedRect(state2);
36429
- dispatch(addRow(state2.tr, rect, rect.top));
36242
+ if (height > map4.height) {
36243
+ const cells = [];
36244
+ for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36245
+ const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
36246
+ cells.push(
36247
+ header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
36248
+ );
36249
+ }
36250
+ const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
36251
+ for (let i2 = map4.height; i2 < height; i2++)
36252
+ rows.push(emptyRow);
36253
+ tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
36430
36254
  }
36431
- return true;
36255
+ return !!(empty2 || emptyHead);
36432
36256
  }
36433
- function addRowAfter(state2, dispatch) {
36434
- if (!isInTable(state2))
36257
+ function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
36258
+ if (top2 == 0 || top2 == map4.height)
36435
36259
  return false;
36436
- if (dispatch) {
36437
- const rect = selectedRect(state2);
36438
- dispatch(addRow(state2.tr, rect, rect.bottom));
36439
- }
36440
- return true;
36441
- }
36442
- function removeRow(tr2, { map: map4, table, tableStart }, row) {
36443
- let rowPos = 0;
36444
- for (let i2 = 0; i2 < row; i2++)
36445
- rowPos += table.child(i2).nodeSize;
36446
- const nextRow = rowPos + table.child(row).nodeSize;
36447
- const mapFrom = tr2.mapping.maps.length;
36448
- tr2.delete(rowPos + tableStart, nextRow + tableStart);
36449
- const seen = /* @__PURE__ */ new Set();
36450
- for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
36451
- const pos = map4.map[index2];
36452
- if (seen.has(pos))
36453
- continue;
36454
- seen.add(pos);
36455
- if (row > 0 && pos == map4.map[index2 - map4.width]) {
36456
- const attrs = table.nodeAt(pos).attrs;
36457
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
36458
- ...attrs,
36459
- rowspan: attrs.rowspan - 1
36460
- });
36461
- col += attrs.colspan - 1;
36462
- } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
36260
+ let found2 = false;
36261
+ for (let col = left2; col < right2; col++) {
36262
+ const index2 = top2 * map4.width + col, pos = map4.map[index2];
36263
+ if (map4.map[index2 - map4.width] == pos) {
36264
+ found2 = true;
36463
36265
  const cell = table.nodeAt(pos);
36464
- const attrs = cell.attrs;
36465
- const copy2 = cell.type.create(
36466
- { ...attrs, rowspan: cell.attrs.rowspan - 1 },
36467
- cell.content
36266
+ const { top: cellTop, left: cellLeft } = map4.findCell(pos);
36267
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
36268
+ ...cell.attrs,
36269
+ rowspan: top2 - cellTop
36270
+ });
36271
+ tr2.insert(
36272
+ tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
36273
+ cell.type.createAndFill({
36274
+ ...cell.attrs,
36275
+ rowspan: cellTop + cell.attrs.rowspan - top2
36276
+ })
36468
36277
  );
36469
- const newPos = map4.positionAt(row + 1, col, table);
36470
- tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
36471
- col += attrs.colspan - 1;
36278
+ col += cell.attrs.colspan - 1;
36472
36279
  }
36473
36280
  }
36281
+ return found2;
36474
36282
  }
36475
- function deleteRow(state2, dispatch) {
36476
- if (!isInTable(state2))
36283
+ function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
36284
+ if (left2 == 0 || left2 == map4.width)
36477
36285
  return false;
36478
- if (dispatch) {
36479
- const rect = selectedRect(state2), tr2 = state2.tr;
36480
- if (rect.top == 0 && rect.bottom == rect.map.height)
36481
- return false;
36482
- for (let i2 = rect.bottom - 1; ; i2--) {
36483
- removeRow(tr2, rect, i2);
36484
- if (i2 == rect.top)
36485
- break;
36486
- const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
36487
- if (!table) {
36488
- throw RangeError("No table found");
36489
- }
36490
- rect.table = table;
36491
- rect.map = TableMap.get(rect.table);
36286
+ let found2 = false;
36287
+ for (let row = top2; row < bottom2; row++) {
36288
+ const index2 = row * map4.width + left2, pos = map4.map[index2];
36289
+ if (map4.map[index2 - 1] == pos) {
36290
+ found2 = true;
36291
+ const cell = table.nodeAt(pos);
36292
+ const cellLeft = map4.colCount(pos);
36293
+ const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
36294
+ tr2.setNodeMarkup(
36295
+ updatePos,
36296
+ null,
36297
+ removeColSpan(
36298
+ cell.attrs,
36299
+ left2 - cellLeft,
36300
+ cell.attrs.colspan - (left2 - cellLeft)
36301
+ )
36302
+ );
36303
+ tr2.insert(
36304
+ updatePos + cell.nodeSize,
36305
+ cell.type.createAndFill(
36306
+ removeColSpan(cell.attrs, 0, left2 - cellLeft)
36307
+ )
36308
+ );
36309
+ row += cell.attrs.rowspan - 1;
36492
36310
  }
36493
- dispatch(tr2);
36494
36311
  }
36495
- return true;
36496
- }
36497
- function isEmpty(cell) {
36498
- const c2 = cell.content;
36499
- return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
36312
+ return found2;
36500
36313
  }
36501
- function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
36502
- let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
36503
- let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
36504
- for (let i2 = rect.top; i2 < rect.bottom; i2++) {
36505
- if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
36506
- return true;
36507
- indexLeft += width;
36508
- indexRight += width;
36314
+ function insertCells(state2, dispatch, tableStart, rect, cells) {
36315
+ let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
36316
+ if (!table) {
36317
+ throw new Error("No table found");
36509
36318
  }
36510
- for (let i2 = rect.left; i2 < rect.right; i2++) {
36511
- if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
36512
- return true;
36513
- indexTop++;
36514
- indexBottom++;
36515
- }
36516
- return false;
36517
- }
36518
- function mergeCells(state2, dispatch) {
36519
- const sel = state2.selection;
36520
- if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
36521
- return false;
36522
- const rect = selectedRect(state2), { map: map4 } = rect;
36523
- if (cellsOverlapRectangle(map4, rect))
36524
- return false;
36525
- if (dispatch) {
36526
- const tr2 = state2.tr;
36527
- const seen = {};
36528
- let content = Fragment.empty;
36529
- let mergedPos;
36530
- let mergedCell;
36531
- for (let row = rect.top; row < rect.bottom; row++) {
36532
- for (let col = rect.left; col < rect.right; col++) {
36533
- const cellPos = map4.map[row * map4.width + col];
36534
- const cell = rect.table.nodeAt(cellPos);
36535
- if (seen[cellPos] || !cell)
36536
- continue;
36537
- seen[cellPos] = true;
36538
- if (mergedPos == null) {
36539
- mergedPos = cellPos;
36540
- mergedCell = cell;
36541
- } else {
36542
- if (!isEmpty(cell))
36543
- content = content.append(cell.content);
36544
- const mapped = tr2.mapping.map(cellPos + rect.tableStart);
36545
- tr2.delete(mapped, mapped + cell.nodeSize);
36546
- }
36547
- }
36548
- }
36549
- if (mergedPos == null || mergedCell == null) {
36550
- return true;
36551
- }
36552
- tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
36553
- ...addColSpan(
36554
- mergedCell.attrs,
36555
- mergedCell.attrs.colspan,
36556
- rect.right - rect.left - mergedCell.attrs.colspan
36557
- ),
36558
- rowspan: rect.bottom - rect.top
36559
- });
36560
- if (content.size) {
36561
- const end2 = mergedPos + 1 + mergedCell.content.size;
36562
- const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
36563
- tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
36564
- }
36565
- tr2.setSelection(
36566
- new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
36567
- );
36568
- dispatch(tr2);
36569
- }
36570
- return true;
36571
- }
36572
- function splitCell(state2, dispatch) {
36573
- const nodeTypes = tableNodeTypes(state2.schema);
36574
- return splitCellWithType(({ node }) => {
36575
- return nodeTypes[node.type.spec.tableRole];
36576
- })(state2, dispatch);
36577
- }
36578
- function splitCellWithType(getCellType) {
36579
- return (state2, dispatch) => {
36580
- var _a2;
36581
- const sel = state2.selection;
36582
- let cellNode;
36583
- let cellPos;
36584
- if (!(sel instanceof CellSelection)) {
36585
- cellNode = cellWrapping(sel.$from);
36586
- if (!cellNode)
36587
- return false;
36588
- cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
36589
- } else {
36590
- if (sel.$anchorCell.pos != sel.$headCell.pos)
36591
- return false;
36592
- cellNode = sel.$anchorCell.nodeAfter;
36593
- cellPos = sel.$anchorCell.pos;
36594
- }
36595
- if (cellNode == null || cellPos == null) {
36596
- return false;
36597
- }
36598
- if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
36599
- return false;
36600
- }
36601
- if (dispatch) {
36602
- let baseAttrs = cellNode.attrs;
36603
- const attrs = [];
36604
- const colwidth = baseAttrs.colwidth;
36605
- if (baseAttrs.rowspan > 1)
36606
- baseAttrs = { ...baseAttrs, rowspan: 1 };
36607
- if (baseAttrs.colspan > 1)
36608
- baseAttrs = { ...baseAttrs, colspan: 1 };
36609
- const rect = selectedRect(state2), tr2 = state2.tr;
36610
- for (let i2 = 0; i2 < rect.right - rect.left; i2++)
36611
- attrs.push(
36612
- colwidth ? {
36613
- ...baseAttrs,
36614
- colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
36615
- } : baseAttrs
36616
- );
36617
- let lastCell;
36618
- for (let row = rect.top; row < rect.bottom; row++) {
36619
- let pos = rect.map.positionAt(row, rect.left, rect.table);
36620
- if (row == rect.top)
36621
- pos += cellNode.nodeSize;
36622
- for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
36623
- if (col == rect.left && row == rect.top)
36624
- continue;
36625
- tr2.insert(
36626
- lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
36627
- getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
36628
- );
36629
- }
36630
- }
36631
- tr2.setNodeMarkup(
36632
- cellPos,
36633
- getCellType({ node: cellNode, row: rect.top, col: rect.left }),
36634
- attrs[0]
36635
- );
36636
- if (sel instanceof CellSelection)
36637
- tr2.setSelection(
36638
- new CellSelection(
36639
- tr2.doc.resolve(sel.$anchorCell.pos),
36640
- lastCell ? tr2.doc.resolve(lastCell) : void 0
36641
- )
36642
- );
36643
- dispatch(tr2);
36644
- }
36645
- return true;
36646
- };
36647
- }
36648
- function setCellAttr(name, value) {
36649
- return function(state2, dispatch) {
36650
- if (!isInTable(state2))
36651
- return false;
36652
- const $cell = selectionCell(state2);
36653
- if ($cell.nodeAfter.attrs[name] === value)
36654
- return false;
36655
- if (dispatch) {
36656
- const tr2 = state2.tr;
36657
- if (state2.selection instanceof CellSelection)
36658
- state2.selection.forEachCell((node, pos) => {
36659
- if (node.attrs[name] !== value)
36660
- tr2.setNodeMarkup(pos, null, {
36661
- ...node.attrs,
36662
- [name]: value
36663
- });
36664
- });
36665
- else
36666
- tr2.setNodeMarkup($cell.pos, null, {
36667
- ...$cell.nodeAfter.attrs,
36668
- [name]: value
36669
- });
36670
- dispatch(tr2);
36671
- }
36672
- return true;
36673
- };
36674
- }
36675
- function deprecated_toggleHeader(type3) {
36676
- return function(state2, dispatch) {
36677
- if (!isInTable(state2))
36678
- return false;
36679
- if (dispatch) {
36680
- const types = tableNodeTypes(state2.schema);
36681
- const rect = selectedRect(state2), tr2 = state2.tr;
36682
- const cells = rect.map.cellsInRect(
36683
- type3 == "column" ? {
36684
- left: rect.left,
36685
- top: 0,
36686
- right: rect.right,
36687
- bottom: rect.map.height
36688
- } : type3 == "row" ? {
36689
- left: 0,
36690
- top: rect.top,
36691
- right: rect.map.width,
36692
- bottom: rect.bottom
36693
- } : rect
36694
- );
36695
- const nodes = cells.map((pos) => rect.table.nodeAt(pos));
36696
- for (let i2 = 0; i2 < cells.length; i2++)
36697
- if (nodes[i2].type == types.header_cell)
36698
- tr2.setNodeMarkup(
36699
- rect.tableStart + cells[i2],
36700
- types.cell,
36701
- nodes[i2].attrs
36702
- );
36703
- if (tr2.steps.length == 0)
36704
- for (let i2 = 0; i2 < cells.length; i2++)
36705
- tr2.setNodeMarkup(
36706
- rect.tableStart + cells[i2],
36707
- types.header_cell,
36708
- nodes[i2].attrs
36709
- );
36710
- dispatch(tr2);
36711
- }
36712
- return true;
36713
- };
36714
- }
36715
- function isHeaderEnabledByType(type3, rect, types) {
36716
- const cellPositions = rect.map.cellsInRect({
36717
- left: 0,
36718
- top: 0,
36719
- right: type3 == "row" ? rect.map.width : 1,
36720
- bottom: type3 == "column" ? rect.map.height : 1
36721
- });
36722
- for (let i2 = 0; i2 < cellPositions.length; i2++) {
36723
- const cell = rect.table.nodeAt(cellPositions[i2]);
36724
- if (cell && cell.type !== types.header_cell) {
36725
- return false;
36726
- }
36727
- }
36728
- return true;
36729
- }
36730
- function toggleHeader(type3, options) {
36731
- options = options || { useDeprecatedLogic: false };
36732
- if (options.useDeprecatedLogic)
36733
- return deprecated_toggleHeader(type3);
36734
- return function(state2, dispatch) {
36735
- if (!isInTable(state2))
36736
- return false;
36737
- if (dispatch) {
36738
- const types = tableNodeTypes(state2.schema);
36739
- const rect = selectedRect(state2), tr2 = state2.tr;
36740
- const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
36741
- const isHeaderColumnEnabled = isHeaderEnabledByType(
36742
- "column",
36743
- rect,
36744
- types
36745
- );
36746
- const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
36747
- const selectionStartsAt = isHeaderEnabled ? 1 : 0;
36748
- const cellsRect = type3 == "column" ? {
36749
- left: 0,
36750
- top: selectionStartsAt,
36751
- right: 1,
36752
- bottom: rect.map.height
36753
- } : type3 == "row" ? {
36754
- left: selectionStartsAt,
36755
- top: 0,
36756
- right: rect.map.width,
36757
- bottom: 1
36758
- } : rect;
36759
- const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
36760
- rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
36761
- const cellPos = relativeCellPos + rect.tableStart;
36762
- const cell = tr2.doc.nodeAt(cellPos);
36763
- if (cell) {
36764
- tr2.setNodeMarkup(cellPos, newType, cell.attrs);
36765
- }
36766
- });
36767
- dispatch(tr2);
36768
- }
36769
- return true;
36770
- };
36771
- }
36772
- toggleHeader("row", {
36773
- useDeprecatedLogic: true
36774
- });
36775
- toggleHeader("column", {
36776
- useDeprecatedLogic: true
36777
- });
36778
- var toggleHeaderCell = toggleHeader("cell", {
36779
- useDeprecatedLogic: true
36780
- });
36781
- function findNextCell($cell, dir) {
36782
- if (dir < 0) {
36783
- const before = $cell.nodeBefore;
36784
- if (before)
36785
- return $cell.pos - before.nodeSize;
36786
- for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
36787
- const rowNode = $cell.node(-1).child(row);
36788
- const lastChild2 = rowNode.lastChild;
36789
- if (lastChild2) {
36790
- return rowEnd - 1 - lastChild2.nodeSize;
36791
- }
36792
- rowEnd -= rowNode.nodeSize;
36793
- }
36794
- } else {
36795
- if ($cell.index() < $cell.parent.childCount - 1) {
36796
- return $cell.pos + $cell.nodeAfter.nodeSize;
36797
- }
36798
- const table = $cell.node(-1);
36799
- for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
36800
- const rowNode = table.child(row);
36801
- if (rowNode.childCount)
36802
- return rowStart + 1;
36803
- rowStart += rowNode.nodeSize;
36804
- }
36805
- }
36806
- return null;
36807
- }
36808
- function goToNextCell(direction) {
36809
- return function(state2, dispatch) {
36810
- if (!isInTable(state2))
36811
- return false;
36812
- const cell = findNextCell(selectionCell(state2), direction);
36813
- if (cell == null)
36814
- return false;
36815
- if (dispatch) {
36816
- const $cell = state2.doc.resolve(cell);
36817
- dispatch(
36818
- state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
36819
- );
36820
- }
36821
- return true;
36822
- };
36823
- }
36824
- function deleteTable(state2, dispatch) {
36825
- const $pos = state2.selection.$anchor;
36826
- for (let d2 = $pos.depth; d2 > 0; d2--) {
36827
- const node = $pos.node(d2);
36828
- if (node.type.spec.tableRole == "table") {
36829
- if (dispatch)
36830
- dispatch(
36831
- state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
36832
- );
36833
- return true;
36834
- }
36835
- }
36836
- return false;
36837
- }
36838
- function deleteCellSelection(state2, dispatch) {
36839
- const sel = state2.selection;
36840
- if (!(sel instanceof CellSelection))
36841
- return false;
36842
- if (dispatch) {
36843
- const tr2 = state2.tr;
36844
- const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36845
- sel.forEachCell((cell, pos) => {
36846
- if (!cell.content.eq(baseContent))
36847
- tr2.replace(
36848
- tr2.mapping.map(pos + 1),
36849
- tr2.mapping.map(pos + cell.nodeSize - 1),
36850
- new Slice(baseContent, 0, 0)
36851
- );
36852
- });
36853
- if (tr2.docChanged)
36854
- dispatch(tr2);
36855
- }
36856
- return true;
36857
- }
36858
- function pastedCells(slice4) {
36859
- if (!slice4.size)
36860
- return null;
36861
- let { content, openStart, openEnd } = slice4;
36862
- while (content.childCount == 1 && (openStart > 0 && openEnd > 0 || content.child(0).type.spec.tableRole == "table")) {
36863
- openStart--;
36864
- openEnd--;
36865
- content = content.child(0).content;
36866
- }
36867
- const first2 = content.child(0);
36868
- const role = first2.type.spec.tableRole;
36869
- const schema = first2.type.schema, rows = [];
36870
- if (role == "row") {
36871
- for (let i2 = 0; i2 < content.childCount; i2++) {
36872
- let cells = content.child(i2).content;
36873
- const left2 = i2 ? 0 : Math.max(0, openStart - 1);
36874
- const right2 = i2 < content.childCount - 1 ? 0 : Math.max(0, openEnd - 1);
36875
- if (left2 || right2)
36876
- cells = fitSlice(
36877
- tableNodeTypes(schema).row,
36878
- new Slice(cells, left2, right2)
36879
- ).content;
36880
- rows.push(cells);
36881
- }
36882
- } else if (role == "cell" || role == "header_cell") {
36883
- rows.push(
36884
- openStart || openEnd ? fitSlice(
36885
- tableNodeTypes(schema).row,
36886
- new Slice(content, openStart, openEnd)
36887
- ).content : content
36888
- );
36889
- } else {
36890
- return null;
36891
- }
36892
- return ensureRectangular(schema, rows);
36893
- }
36894
- function ensureRectangular(schema, rows) {
36895
- const widths = [];
36896
- for (let i2 = 0; i2 < rows.length; i2++) {
36897
- const row = rows[i2];
36898
- for (let j2 = row.childCount - 1; j2 >= 0; j2--) {
36899
- const { rowspan, colspan } = row.child(j2).attrs;
36900
- for (let r2 = i2; r2 < i2 + rowspan; r2++)
36901
- widths[r2] = (widths[r2] || 0) + colspan;
36902
- }
36903
- }
36904
- let width = 0;
36905
- for (let r2 = 0; r2 < widths.length; r2++)
36906
- width = Math.max(width, widths[r2]);
36907
- for (let r2 = 0; r2 < widths.length; r2++) {
36908
- if (r2 >= rows.length)
36909
- rows.push(Fragment.empty);
36910
- if (widths[r2] < width) {
36911
- const empty2 = tableNodeTypes(schema).cell.createAndFill();
36912
- const cells = [];
36913
- for (let i2 = widths[r2]; i2 < width; i2++) {
36914
- cells.push(empty2);
36915
- }
36916
- rows[r2] = rows[r2].append(Fragment.from(cells));
36917
- }
36918
- }
36919
- return { height: rows.length, width, rows };
36920
- }
36921
- function fitSlice(nodeType, slice4) {
36922
- const node = nodeType.createAndFill();
36923
- const tr2 = new Transform(node).replace(0, node.content.size, slice4);
36924
- return tr2.doc;
36925
- }
36926
- function clipCells({ width, height, rows }, newWidth, newHeight) {
36927
- if (width != newWidth) {
36928
- const added = [];
36929
- const newRows = [];
36930
- for (let row = 0; row < rows.length; row++) {
36931
- const frag = rows[row], cells = [];
36932
- for (let col = added[row] || 0, i2 = 0; col < newWidth; i2++) {
36933
- let cell = frag.child(i2 % frag.childCount);
36934
- if (col + cell.attrs.colspan > newWidth)
36935
- cell = cell.type.createChecked(
36936
- removeColSpan(
36937
- cell.attrs,
36938
- cell.attrs.colspan,
36939
- col + cell.attrs.colspan - newWidth
36940
- ),
36941
- cell.content
36942
- );
36943
- cells.push(cell);
36944
- col += cell.attrs.colspan;
36945
- for (let j2 = 1; j2 < cell.attrs.rowspan; j2++)
36946
- added[row + j2] = (added[row + j2] || 0) + cell.attrs.colspan;
36947
- }
36948
- newRows.push(Fragment.from(cells));
36949
- }
36950
- rows = newRows;
36951
- width = newWidth;
36952
- }
36953
- if (height != newHeight) {
36954
- const newRows = [];
36955
- for (let row = 0, i2 = 0; row < newHeight; row++, i2++) {
36956
- const cells = [], source = rows[i2 % height];
36957
- for (let j2 = 0; j2 < source.childCount; j2++) {
36958
- let cell = source.child(j2);
36959
- if (row + cell.attrs.rowspan > newHeight)
36960
- cell = cell.type.create(
36961
- {
36962
- ...cell.attrs,
36963
- rowspan: Math.max(1, newHeight - cell.attrs.rowspan)
36964
- },
36965
- cell.content
36966
- );
36967
- cells.push(cell);
36968
- }
36969
- newRows.push(Fragment.from(cells));
36970
- }
36971
- rows = newRows;
36972
- height = newHeight;
36973
- }
36974
- return { width, height, rows };
36975
- }
36976
- function growTable(tr2, map4, table, start2, width, height, mapFrom) {
36977
- const schema = tr2.doc.type.schema;
36978
- const types = tableNodeTypes(schema);
36979
- let empty2;
36980
- let emptyHead;
36981
- if (width > map4.width) {
36982
- for (let row = 0, rowEnd = 0; row < map4.height; row++) {
36983
- const rowNode = table.child(row);
36984
- rowEnd += rowNode.nodeSize;
36985
- const cells = [];
36986
- let add2;
36987
- if (rowNode.lastChild == null || rowNode.lastChild.type == types.cell)
36988
- add2 = empty2 || (empty2 = types.cell.createAndFill());
36989
- else
36990
- add2 = emptyHead || (emptyHead = types.header_cell.createAndFill());
36991
- for (let i2 = map4.width; i2 < width; i2++)
36992
- cells.push(add2);
36993
- tr2.insert(tr2.mapping.slice(mapFrom).map(rowEnd - 1 + start2), cells);
36994
- }
36995
- }
36996
- if (height > map4.height) {
36997
- const cells = [];
36998
- for (let i2 = 0, start22 = (map4.height - 1) * map4.width; i2 < Math.max(map4.width, width); i2++) {
36999
- const header = i2 >= map4.width ? false : table.nodeAt(map4.map[start22 + i2]).type == types.header_cell;
37000
- cells.push(
37001
- header ? emptyHead || (emptyHead = types.header_cell.createAndFill()) : empty2 || (empty2 = types.cell.createAndFill())
37002
- );
37003
- }
37004
- const emptyRow = types.row.create(null, Fragment.from(cells)), rows = [];
37005
- for (let i2 = map4.height; i2 < height; i2++)
37006
- rows.push(emptyRow);
37007
- tr2.insert(tr2.mapping.slice(mapFrom).map(start2 + table.nodeSize - 2), rows);
37008
- }
37009
- return !!(empty2 || emptyHead);
37010
- }
37011
- function isolateHorizontal(tr2, map4, table, start2, left2, right2, top2, mapFrom) {
37012
- if (top2 == 0 || top2 == map4.height)
37013
- return false;
37014
- let found2 = false;
37015
- for (let col = left2; col < right2; col++) {
37016
- const index2 = top2 * map4.width + col, pos = map4.map[index2];
37017
- if (map4.map[index2 - map4.width] == pos) {
37018
- found2 = true;
37019
- const cell = table.nodeAt(pos);
37020
- const { top: cellTop, left: cellLeft } = map4.findCell(pos);
37021
- tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + start2), null, {
37022
- ...cell.attrs,
37023
- rowspan: top2 - cellTop
37024
- });
37025
- tr2.insert(
37026
- tr2.mapping.slice(mapFrom).map(map4.positionAt(top2, cellLeft, table)),
37027
- cell.type.createAndFill({
37028
- ...cell.attrs,
37029
- rowspan: cellTop + cell.attrs.rowspan - top2
37030
- })
37031
- );
37032
- col += cell.attrs.colspan - 1;
37033
- }
37034
- }
37035
- return found2;
37036
- }
37037
- function isolateVertical(tr2, map4, table, start2, top2, bottom2, left2, mapFrom) {
37038
- if (left2 == 0 || left2 == map4.width)
37039
- return false;
37040
- let found2 = false;
37041
- for (let row = top2; row < bottom2; row++) {
37042
- const index2 = row * map4.width + left2, pos = map4.map[index2];
37043
- if (map4.map[index2 - 1] == pos) {
37044
- found2 = true;
37045
- const cell = table.nodeAt(pos);
37046
- const cellLeft = map4.colCount(pos);
37047
- const updatePos = tr2.mapping.slice(mapFrom).map(pos + start2);
37048
- tr2.setNodeMarkup(
37049
- updatePos,
37050
- null,
37051
- removeColSpan(
37052
- cell.attrs,
37053
- left2 - cellLeft,
37054
- cell.attrs.colspan - (left2 - cellLeft)
37055
- )
37056
- );
37057
- tr2.insert(
37058
- updatePos + cell.nodeSize,
37059
- cell.type.createAndFill(
37060
- removeColSpan(cell.attrs, 0, left2 - cellLeft)
37061
- )
37062
- );
37063
- row += cell.attrs.rowspan - 1;
37064
- }
37065
- }
37066
- return found2;
37067
- }
37068
- function insertCells(state2, dispatch, tableStart, rect, cells) {
37069
- let table = tableStart ? state2.doc.nodeAt(tableStart - 1) : state2.doc;
37070
- if (!table) {
37071
- throw new Error("No table found");
37072
- }
37073
- let map4 = TableMap.get(table);
37074
- const { top: top2, left: left2 } = rect;
37075
- const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
37076
- const tr2 = state2.tr;
37077
- let mapFrom = 0;
37078
- function recomp() {
37079
- table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
37080
- if (!table) {
37081
- throw new Error("No table found");
37082
- }
37083
- map4 = TableMap.get(table);
37084
- mapFrom = tr2.mapping.maps.length;
36319
+ let map4 = TableMap.get(table);
36320
+ const { top: top2, left: left2 } = rect;
36321
+ const right2 = left2 + cells.width, bottom2 = top2 + cells.height;
36322
+ const tr2 = state2.tr;
36323
+ let mapFrom = 0;
36324
+ function recomp() {
36325
+ table = tableStart ? tr2.doc.nodeAt(tableStart - 1) : tr2.doc;
36326
+ if (!table) {
36327
+ throw new Error("No table found");
36328
+ }
36329
+ map4 = TableMap.get(table);
36330
+ mapFrom = tr2.mapping.maps.length;
37085
36331
  }
37086
36332
  if (growTable(tr2, map4, table, tableStart, right2, bottom2, mapFrom))
37087
36333
  recomp();
@@ -37192,6 +36438,26 @@ function shiftArrow(axis2, dir) {
37192
36438
  );
37193
36439
  };
37194
36440
  }
36441
+ function deleteCellSelection(state2, dispatch) {
36442
+ const sel = state2.selection;
36443
+ if (!(sel instanceof CellSelection))
36444
+ return false;
36445
+ if (dispatch) {
36446
+ const tr2 = state2.tr;
36447
+ const baseContent = tableNodeTypes(state2.schema).cell.createAndFill().content;
36448
+ sel.forEachCell((cell, pos) => {
36449
+ if (!cell.content.eq(baseContent))
36450
+ tr2.replace(
36451
+ tr2.mapping.map(pos + 1),
36452
+ tr2.mapping.map(pos + cell.nodeSize - 1),
36453
+ new Slice(baseContent, 0, 0)
36454
+ );
36455
+ });
36456
+ if (tr2.docChanged)
36457
+ dispatch(tr2);
36458
+ }
36459
+ return true;
36460
+ }
37195
36461
  function handleTripleClick(view, pos) {
37196
36462
  const doc2 = view.state.doc, $cell = cellAround(doc2.resolve(pos));
37197
36463
  if (!$cell)
@@ -37330,37 +36596,28 @@ function cellUnderMouse(view, event) {
37330
36596
  return mousePos ? cellAround(view.state.doc.resolve(mousePos.pos)) : null;
37331
36597
  }
37332
36598
  var TableView$1 = class TableView2 {
37333
- constructor(node, defaultCellMinWidth) {
36599
+ constructor(node, cellMinWidth) {
37334
36600
  this.node = node;
37335
- this.defaultCellMinWidth = defaultCellMinWidth;
36601
+ this.cellMinWidth = cellMinWidth;
37336
36602
  this.dom = document.createElement("div");
37337
36603
  this.dom.className = "tableWrapper";
37338
36604
  this.table = this.dom.appendChild(document.createElement("table"));
37339
- this.table.style.setProperty(
37340
- "--default-cell-min-width",
37341
- `${defaultCellMinWidth}px`
37342
- );
37343
36605
  this.colgroup = this.table.appendChild(document.createElement("colgroup"));
37344
- updateColumnsOnResize(node, this.colgroup, this.table, defaultCellMinWidth);
36606
+ updateColumnsOnResize(node, this.colgroup, this.table, cellMinWidth);
37345
36607
  this.contentDOM = this.table.appendChild(document.createElement("tbody"));
37346
36608
  }
37347
36609
  update(node) {
37348
36610
  if (node.type != this.node.type)
37349
36611
  return false;
37350
36612
  this.node = node;
37351
- updateColumnsOnResize(
37352
- node,
37353
- this.colgroup,
37354
- this.table,
37355
- this.defaultCellMinWidth
37356
- );
36613
+ updateColumnsOnResize(node, this.colgroup, this.table, this.cellMinWidth);
37357
36614
  return true;
37358
36615
  }
37359
36616
  ignoreMutation(record) {
37360
36617
  return record.type == "attributes" && (record.target == this.table || this.colgroup.contains(record.target));
37361
36618
  }
37362
36619
  };
37363
- function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overrideCol, overrideValue) {
36620
+ function updateColumnsOnResize(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37364
36621
  var _a2;
37365
36622
  let totalWidth = 0;
37366
36623
  let fixedWidth = true;
@@ -37373,17 +36630,14 @@ function updateColumnsOnResize(node, colgroup, table, defaultCellMinWidth, overr
37373
36630
  for (let j2 = 0; j2 < colspan; j2++, col++) {
37374
36631
  const hasWidth = overrideCol == col ? overrideValue : colwidth && colwidth[j2];
37375
36632
  const cssWidth = hasWidth ? hasWidth + "px" : "";
37376
- totalWidth += hasWidth || defaultCellMinWidth;
36633
+ totalWidth += hasWidth || cellMinWidth;
37377
36634
  if (!hasWidth)
37378
36635
  fixedWidth = false;
37379
36636
  if (!nextDOM) {
37380
- const col2 = document.createElement("col");
37381
- col2.style.width = cssWidth;
37382
- colgroup.appendChild(col2);
36637
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37383
36638
  } else {
37384
- if (nextDOM.style.width != cssWidth) {
36639
+ if (nextDOM.style.width != cssWidth)
37385
36640
  nextDOM.style.width = cssWidth;
37386
- }
37387
36641
  nextDOM = nextDOM.nextSibling;
37388
36642
  }
37389
36643
  }
@@ -37407,7 +36661,6 @@ var columnResizingPluginKey = new PluginKey(
37407
36661
  function columnResizing({
37408
36662
  handleWidth = 5,
37409
36663
  cellMinWidth = 25,
37410
- defaultCellMinWidth = 100,
37411
36664
  View = TableView$1,
37412
36665
  lastColumnResizable = true
37413
36666
  } = {}) {
@@ -37420,7 +36673,7 @@ function columnResizing({
37420
36673
  const tableName = tableNodeTypes(state2.schema).table.name;
37421
36674
  if (View && nodeViews) {
37422
36675
  nodeViews[tableName] = (node, view) => {
37423
- return new View(node, defaultCellMinWidth, view);
36676
+ return new View(node, cellMinWidth, view);
37424
36677
  };
37425
36678
  }
37426
36679
  return new ResizeState(-1, false);
@@ -37436,13 +36689,19 @@ function columnResizing({
37436
36689
  },
37437
36690
  handleDOMEvents: {
37438
36691
  mousemove: (view, event) => {
37439
- handleMouseMove(view, event, handleWidth, lastColumnResizable);
36692
+ handleMouseMove(
36693
+ view,
36694
+ event,
36695
+ handleWidth,
36696
+ cellMinWidth,
36697
+ lastColumnResizable
36698
+ );
37440
36699
  },
37441
36700
  mouseleave: (view) => {
37442
36701
  handleMouseLeave(view);
37443
36702
  },
37444
36703
  mousedown: (view, event) => {
37445
- handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth);
36704
+ handleMouseDown2(view, event, cellMinWidth);
37446
36705
  }
37447
36706
  },
37448
36707
  decorations: (state2) => {
@@ -37478,7 +36737,7 @@ var ResizeState = class _ResizeState {
37478
36737
  return state2;
37479
36738
  }
37480
36739
  };
37481
- function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
36740
+ function handleMouseMove(view, event, handleWidth, cellMinWidth, lastColumnResizable) {
37482
36741
  const pluginState = columnResizingPluginKey.getState(view.state);
37483
36742
  if (!pluginState)
37484
36743
  return;
@@ -37503,194 +36762,718 @@ function handleMouseMove(view, event, handleWidth, lastColumnResizable) {
37503
36762
  return;
37504
36763
  }
37505
36764
  }
37506
- updateHandle(view, cell);
36765
+ updateHandle(view, cell);
36766
+ }
36767
+ }
36768
+ }
36769
+ function handleMouseLeave(view) {
36770
+ const pluginState = columnResizingPluginKey.getState(view.state);
36771
+ if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
36772
+ updateHandle(view, -1);
36773
+ }
36774
+ function handleMouseDown2(view, event, cellMinWidth) {
36775
+ var _a2;
36776
+ const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
36777
+ const pluginState = columnResizingPluginKey.getState(view.state);
36778
+ if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
36779
+ return false;
36780
+ const cell = view.state.doc.nodeAt(pluginState.activeHandle);
36781
+ const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
36782
+ view.dispatch(
36783
+ view.state.tr.setMeta(columnResizingPluginKey, {
36784
+ setDragging: { startX: event.clientX, startWidth: width }
36785
+ })
36786
+ );
36787
+ function finish(event2) {
36788
+ win.removeEventListener("mouseup", finish);
36789
+ win.removeEventListener("mousemove", move);
36790
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36791
+ if (pluginState2 == null ? void 0 : pluginState2.dragging) {
36792
+ updateColumnWidth(
36793
+ view,
36794
+ pluginState2.activeHandle,
36795
+ draggedWidth(pluginState2.dragging, event2, cellMinWidth)
36796
+ );
36797
+ view.dispatch(
36798
+ view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
36799
+ );
36800
+ }
36801
+ }
36802
+ function move(event2) {
36803
+ if (!event2.which)
36804
+ return finish(event2);
36805
+ const pluginState2 = columnResizingPluginKey.getState(view.state);
36806
+ if (!pluginState2)
36807
+ return;
36808
+ if (pluginState2.dragging) {
36809
+ const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
36810
+ displayColumnWidth(view, pluginState2.activeHandle, dragged, cellMinWidth);
36811
+ }
36812
+ }
36813
+ win.addEventListener("mouseup", finish);
36814
+ win.addEventListener("mousemove", move);
36815
+ event.preventDefault();
36816
+ return true;
36817
+ }
36818
+ function currentColWidth(view, cellPos, { colspan, colwidth }) {
36819
+ const width = colwidth && colwidth[colwidth.length - 1];
36820
+ if (width)
36821
+ return width;
36822
+ const dom = view.domAtPos(cellPos);
36823
+ const node = dom.node.childNodes[dom.offset];
36824
+ let domWidth = node.offsetWidth, parts = colspan;
36825
+ if (colwidth) {
36826
+ for (let i2 = 0; i2 < colspan; i2++)
36827
+ if (colwidth[i2]) {
36828
+ domWidth -= colwidth[i2];
36829
+ parts--;
36830
+ }
36831
+ }
36832
+ return domWidth / parts;
36833
+ }
36834
+ function domCellAround(target) {
36835
+ while (target && target.nodeName != "TD" && target.nodeName != "TH")
36836
+ target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
36837
+ return target;
36838
+ }
36839
+ function edgeCell(view, event, side, handleWidth) {
36840
+ const offset2 = side == "right" ? -handleWidth : handleWidth;
36841
+ const found2 = view.posAtCoords({
36842
+ left: event.clientX + offset2,
36843
+ top: event.clientY
36844
+ });
36845
+ if (!found2)
36846
+ return -1;
36847
+ const { pos } = found2;
36848
+ const $cell = cellAround(view.state.doc.resolve(pos));
36849
+ if (!$cell)
36850
+ return -1;
36851
+ if (side == "right")
36852
+ return $cell.pos;
36853
+ const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
36854
+ const index2 = map4.map.indexOf($cell.pos - start2);
36855
+ return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
36856
+ }
36857
+ function draggedWidth(dragging, event, cellMinWidth) {
36858
+ const offset2 = event.clientX - dragging.startX;
36859
+ return Math.max(cellMinWidth, dragging.startWidth + offset2);
36860
+ }
36861
+ function updateHandle(view, value) {
36862
+ view.dispatch(
36863
+ view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
36864
+ );
36865
+ }
36866
+ function updateColumnWidth(view, cell, width) {
36867
+ const $cell = view.state.doc.resolve(cell);
36868
+ const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
36869
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36870
+ const tr2 = view.state.tr;
36871
+ for (let row = 0; row < map4.height; row++) {
36872
+ const mapIndex = row * map4.width + col;
36873
+ if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
36874
+ continue;
36875
+ const pos = map4.map[mapIndex];
36876
+ const attrs = table.nodeAt(pos).attrs;
36877
+ const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
36878
+ if (attrs.colwidth && attrs.colwidth[index2] == width)
36879
+ continue;
36880
+ const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
36881
+ colwidth[index2] = width;
36882
+ tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
36883
+ }
36884
+ if (tr2.docChanged)
36885
+ view.dispatch(tr2);
36886
+ }
36887
+ function displayColumnWidth(view, cell, width, cellMinWidth) {
36888
+ const $cell = view.state.doc.resolve(cell);
36889
+ const table = $cell.node(-1), start2 = $cell.start(-1);
36890
+ const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36891
+ let dom = view.domAtPos($cell.start(-1)).node;
36892
+ while (dom && dom.nodeName != "TABLE") {
36893
+ dom = dom.parentNode;
36894
+ }
36895
+ if (!dom)
36896
+ return;
36897
+ updateColumnsOnResize(
36898
+ table,
36899
+ dom.firstChild,
36900
+ dom,
36901
+ cellMinWidth,
36902
+ col,
36903
+ width
36904
+ );
36905
+ }
36906
+ function zeroes(n2) {
36907
+ return Array(n2).fill(0);
36908
+ }
36909
+ function handleDecorations(state2, cell) {
36910
+ const decorations = [];
36911
+ const $cell = state2.doc.resolve(cell);
36912
+ const table = $cell.node(-1);
36913
+ if (!table) {
36914
+ return DecorationSet.empty;
36915
+ }
36916
+ const map4 = TableMap.get(table);
36917
+ const start2 = $cell.start(-1);
36918
+ const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
36919
+ for (let row = 0; row < map4.height; row++) {
36920
+ const index2 = col + row * map4.width;
36921
+ if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
36922
+ const cellPos = map4.map[index2];
36923
+ const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
36924
+ const dom = document.createElement("div");
36925
+ dom.className = "column-resize-handle";
36926
+ decorations.push(Decoration.widget(pos, dom));
36927
+ }
36928
+ }
36929
+ return DecorationSet.create(state2.doc, decorations);
36930
+ }
36931
+ function selectedRect(state2) {
36932
+ const sel = state2.selection;
36933
+ const $pos = selectionCell(state2);
36934
+ const table = $pos.node(-1);
36935
+ const tableStart = $pos.start(-1);
36936
+ const map4 = TableMap.get(table);
36937
+ const rect = sel instanceof CellSelection ? map4.rectBetween(
36938
+ sel.$anchorCell.pos - tableStart,
36939
+ sel.$headCell.pos - tableStart
36940
+ ) : map4.findCell($pos.pos - tableStart);
36941
+ return { ...rect, tableStart, map: map4, table };
36942
+ }
36943
+ function addColumn(tr2, { map: map4, tableStart, table }, col) {
36944
+ let refColumn = col > 0 ? -1 : 0;
36945
+ if (columnIsHeader(map4, table, col + refColumn)) {
36946
+ refColumn = col == 0 || col == map4.width ? null : 0;
36947
+ }
36948
+ for (let row = 0; row < map4.height; row++) {
36949
+ const index2 = row * map4.width + col;
36950
+ if (col > 0 && col < map4.width && map4.map[index2 - 1] == map4.map[index2]) {
36951
+ const pos = map4.map[index2];
36952
+ const cell = table.nodeAt(pos);
36953
+ tr2.setNodeMarkup(
36954
+ tr2.mapping.map(tableStart + pos),
36955
+ null,
36956
+ addColSpan(cell.attrs, col - map4.colCount(pos))
36957
+ );
36958
+ row += cell.attrs.rowspan - 1;
36959
+ } else {
36960
+ const type3 = refColumn == null ? tableNodeTypes(table.type.schema).cell : table.nodeAt(map4.map[index2 + refColumn]).type;
36961
+ const pos = map4.positionAt(row, col, table);
36962
+ tr2.insert(tr2.mapping.map(tableStart + pos), type3.createAndFill());
36963
+ }
36964
+ }
36965
+ return tr2;
36966
+ }
36967
+ function addColumnBefore(state2, dispatch) {
36968
+ if (!isInTable(state2))
36969
+ return false;
36970
+ if (dispatch) {
36971
+ const rect = selectedRect(state2);
36972
+ dispatch(addColumn(state2.tr, rect, rect.left));
36973
+ }
36974
+ return true;
36975
+ }
36976
+ function addColumnAfter(state2, dispatch) {
36977
+ if (!isInTable(state2))
36978
+ return false;
36979
+ if (dispatch) {
36980
+ const rect = selectedRect(state2);
36981
+ dispatch(addColumn(state2.tr, rect, rect.right));
36982
+ }
36983
+ return true;
36984
+ }
36985
+ function removeColumn(tr2, { map: map4, table, tableStart }, col) {
36986
+ const mapStart = tr2.mapping.maps.length;
36987
+ for (let row = 0; row < map4.height; ) {
36988
+ const index2 = row * map4.width + col;
36989
+ const pos = map4.map[index2];
36990
+ const cell = table.nodeAt(pos);
36991
+ const attrs = cell.attrs;
36992
+ if (col > 0 && map4.map[index2 - 1] == pos || col < map4.width - 1 && map4.map[index2 + 1] == pos) {
36993
+ tr2.setNodeMarkup(
36994
+ tr2.mapping.slice(mapStart).map(tableStart + pos),
36995
+ null,
36996
+ removeColSpan(attrs, col - map4.colCount(pos))
36997
+ );
36998
+ } else {
36999
+ const start2 = tr2.mapping.slice(mapStart).map(tableStart + pos);
37000
+ tr2.delete(start2, start2 + cell.nodeSize);
37001
+ }
37002
+ row += attrs.rowspan;
37003
+ }
37004
+ }
37005
+ function deleteColumn(state2, dispatch) {
37006
+ if (!isInTable(state2))
37007
+ return false;
37008
+ if (dispatch) {
37009
+ const rect = selectedRect(state2);
37010
+ const tr2 = state2.tr;
37011
+ if (rect.left == 0 && rect.right == rect.map.width)
37012
+ return false;
37013
+ for (let i2 = rect.right - 1; ; i2--) {
37014
+ removeColumn(tr2, rect, i2);
37015
+ if (i2 == rect.left)
37016
+ break;
37017
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37018
+ if (!table) {
37019
+ throw RangeError("No table found");
37020
+ }
37021
+ rect.table = table;
37022
+ rect.map = TableMap.get(table);
37023
+ }
37024
+ dispatch(tr2);
37025
+ }
37026
+ return true;
37027
+ }
37028
+ function rowIsHeader(map4, table, row) {
37029
+ var _a2;
37030
+ const headerCell = tableNodeTypes(table.type.schema).header_cell;
37031
+ for (let col = 0; col < map4.width; col++)
37032
+ if (((_a2 = table.nodeAt(map4.map[col + row * map4.width])) == null ? void 0 : _a2.type) != headerCell)
37033
+ return false;
37034
+ return true;
37035
+ }
37036
+ function addRow(tr2, { map: map4, tableStart, table }, row) {
37037
+ var _a2;
37038
+ let rowPos = tableStart;
37039
+ for (let i2 = 0; i2 < row; i2++)
37040
+ rowPos += table.child(i2).nodeSize;
37041
+ const cells = [];
37042
+ let refRow = row > 0 ? -1 : 0;
37043
+ if (rowIsHeader(map4, table, row + refRow))
37044
+ refRow = row == 0 || row == map4.height ? null : 0;
37045
+ for (let col = 0, index2 = map4.width * row; col < map4.width; col++, index2++) {
37046
+ if (row > 0 && row < map4.height && map4.map[index2] == map4.map[index2 - map4.width]) {
37047
+ const pos = map4.map[index2];
37048
+ const attrs = table.nodeAt(pos).attrs;
37049
+ tr2.setNodeMarkup(tableStart + pos, null, {
37050
+ ...attrs,
37051
+ rowspan: attrs.rowspan + 1
37052
+ });
37053
+ col += attrs.colspan - 1;
37054
+ } else {
37055
+ const type3 = refRow == null ? tableNodeTypes(table.type.schema).cell : (_a2 = table.nodeAt(map4.map[index2 + refRow * map4.width])) == null ? void 0 : _a2.type;
37056
+ const node = type3 == null ? void 0 : type3.createAndFill();
37057
+ if (node)
37058
+ cells.push(node);
37059
+ }
37060
+ }
37061
+ tr2.insert(rowPos, tableNodeTypes(table.type.schema).row.create(null, cells));
37062
+ return tr2;
37063
+ }
37064
+ function addRowBefore(state2, dispatch) {
37065
+ if (!isInTable(state2))
37066
+ return false;
37067
+ if (dispatch) {
37068
+ const rect = selectedRect(state2);
37069
+ dispatch(addRow(state2.tr, rect, rect.top));
37070
+ }
37071
+ return true;
37072
+ }
37073
+ function addRowAfter(state2, dispatch) {
37074
+ if (!isInTable(state2))
37075
+ return false;
37076
+ if (dispatch) {
37077
+ const rect = selectedRect(state2);
37078
+ dispatch(addRow(state2.tr, rect, rect.bottom));
37079
+ }
37080
+ return true;
37081
+ }
37082
+ function removeRow(tr2, { map: map4, table, tableStart }, row) {
37083
+ let rowPos = 0;
37084
+ for (let i2 = 0; i2 < row; i2++)
37085
+ rowPos += table.child(i2).nodeSize;
37086
+ const nextRow = rowPos + table.child(row).nodeSize;
37087
+ const mapFrom = tr2.mapping.maps.length;
37088
+ tr2.delete(rowPos + tableStart, nextRow + tableStart);
37089
+ const seen = /* @__PURE__ */ new Set();
37090
+ for (let col = 0, index2 = row * map4.width; col < map4.width; col++, index2++) {
37091
+ const pos = map4.map[index2];
37092
+ if (seen.has(pos))
37093
+ continue;
37094
+ seen.add(pos);
37095
+ if (row > 0 && pos == map4.map[index2 - map4.width]) {
37096
+ const attrs = table.nodeAt(pos).attrs;
37097
+ tr2.setNodeMarkup(tr2.mapping.slice(mapFrom).map(pos + tableStart), null, {
37098
+ ...attrs,
37099
+ rowspan: attrs.rowspan - 1
37100
+ });
37101
+ col += attrs.colspan - 1;
37102
+ } else if (row < map4.height && pos == map4.map[index2 + map4.width]) {
37103
+ const cell = table.nodeAt(pos);
37104
+ const attrs = cell.attrs;
37105
+ const copy2 = cell.type.create(
37106
+ { ...attrs, rowspan: cell.attrs.rowspan - 1 },
37107
+ cell.content
37108
+ );
37109
+ const newPos = map4.positionAt(row + 1, col, table);
37110
+ tr2.insert(tr2.mapping.slice(mapFrom).map(tableStart + newPos), copy2);
37111
+ col += attrs.colspan - 1;
37112
+ }
37113
+ }
37114
+ }
37115
+ function deleteRow(state2, dispatch) {
37116
+ if (!isInTable(state2))
37117
+ return false;
37118
+ if (dispatch) {
37119
+ const rect = selectedRect(state2), tr2 = state2.tr;
37120
+ if (rect.top == 0 && rect.bottom == rect.map.height)
37121
+ return false;
37122
+ for (let i2 = rect.bottom - 1; ; i2--) {
37123
+ removeRow(tr2, rect, i2);
37124
+ if (i2 == rect.top)
37125
+ break;
37126
+ const table = rect.tableStart ? tr2.doc.nodeAt(rect.tableStart - 1) : tr2.doc;
37127
+ if (!table) {
37128
+ throw RangeError("No table found");
37129
+ }
37130
+ rect.table = table;
37131
+ rect.map = TableMap.get(rect.table);
37132
+ }
37133
+ dispatch(tr2);
37134
+ }
37135
+ return true;
37136
+ }
37137
+ function isEmpty(cell) {
37138
+ const c2 = cell.content;
37139
+ return c2.childCount == 1 && c2.child(0).isTextblock && c2.child(0).childCount == 0;
37140
+ }
37141
+ function cellsOverlapRectangle({ width, height, map: map4 }, rect) {
37142
+ let indexTop = rect.top * width + rect.left, indexLeft = indexTop;
37143
+ let indexBottom = (rect.bottom - 1) * width + rect.left, indexRight = indexTop + (rect.right - rect.left - 1);
37144
+ for (let i2 = rect.top; i2 < rect.bottom; i2++) {
37145
+ if (rect.left > 0 && map4[indexLeft] == map4[indexLeft - 1] || rect.right < width && map4[indexRight] == map4[indexRight + 1])
37146
+ return true;
37147
+ indexLeft += width;
37148
+ indexRight += width;
37149
+ }
37150
+ for (let i2 = rect.left; i2 < rect.right; i2++) {
37151
+ if (rect.top > 0 && map4[indexTop] == map4[indexTop - width] || rect.bottom < height && map4[indexBottom] == map4[indexBottom + width])
37152
+ return true;
37153
+ indexTop++;
37154
+ indexBottom++;
37155
+ }
37156
+ return false;
37157
+ }
37158
+ function mergeCells(state2, dispatch) {
37159
+ const sel = state2.selection;
37160
+ if (!(sel instanceof CellSelection) || sel.$anchorCell.pos == sel.$headCell.pos)
37161
+ return false;
37162
+ const rect = selectedRect(state2), { map: map4 } = rect;
37163
+ if (cellsOverlapRectangle(map4, rect))
37164
+ return false;
37165
+ if (dispatch) {
37166
+ const tr2 = state2.tr;
37167
+ const seen = {};
37168
+ let content = Fragment.empty;
37169
+ let mergedPos;
37170
+ let mergedCell;
37171
+ for (let row = rect.top; row < rect.bottom; row++) {
37172
+ for (let col = rect.left; col < rect.right; col++) {
37173
+ const cellPos = map4.map[row * map4.width + col];
37174
+ const cell = rect.table.nodeAt(cellPos);
37175
+ if (seen[cellPos] || !cell)
37176
+ continue;
37177
+ seen[cellPos] = true;
37178
+ if (mergedPos == null) {
37179
+ mergedPos = cellPos;
37180
+ mergedCell = cell;
37181
+ } else {
37182
+ if (!isEmpty(cell))
37183
+ content = content.append(cell.content);
37184
+ const mapped = tr2.mapping.map(cellPos + rect.tableStart);
37185
+ tr2.delete(mapped, mapped + cell.nodeSize);
37186
+ }
37187
+ }
37188
+ }
37189
+ if (mergedPos == null || mergedCell == null) {
37190
+ return true;
37191
+ }
37192
+ tr2.setNodeMarkup(mergedPos + rect.tableStart, null, {
37193
+ ...addColSpan(
37194
+ mergedCell.attrs,
37195
+ mergedCell.attrs.colspan,
37196
+ rect.right - rect.left - mergedCell.attrs.colspan
37197
+ ),
37198
+ rowspan: rect.bottom - rect.top
37199
+ });
37200
+ if (content.size) {
37201
+ const end2 = mergedPos + 1 + mergedCell.content.size;
37202
+ const start2 = isEmpty(mergedCell) ? mergedPos + 1 : end2;
37203
+ tr2.replaceWith(start2 + rect.tableStart, end2 + rect.tableStart, content);
37204
+ }
37205
+ tr2.setSelection(
37206
+ new CellSelection(tr2.doc.resolve(mergedPos + rect.tableStart))
37207
+ );
37208
+ dispatch(tr2);
37209
+ }
37210
+ return true;
37211
+ }
37212
+ function splitCell(state2, dispatch) {
37213
+ const nodeTypes = tableNodeTypes(state2.schema);
37214
+ return splitCellWithType(({ node }) => {
37215
+ return nodeTypes[node.type.spec.tableRole];
37216
+ })(state2, dispatch);
37217
+ }
37218
+ function splitCellWithType(getCellType) {
37219
+ return (state2, dispatch) => {
37220
+ var _a2;
37221
+ const sel = state2.selection;
37222
+ let cellNode;
37223
+ let cellPos;
37224
+ if (!(sel instanceof CellSelection)) {
37225
+ cellNode = cellWrapping(sel.$from);
37226
+ if (!cellNode)
37227
+ return false;
37228
+ cellPos = (_a2 = cellAround(sel.$from)) == null ? void 0 : _a2.pos;
37229
+ } else {
37230
+ if (sel.$anchorCell.pos != sel.$headCell.pos)
37231
+ return false;
37232
+ cellNode = sel.$anchorCell.nodeAfter;
37233
+ cellPos = sel.$anchorCell.pos;
37234
+ }
37235
+ if (cellNode == null || cellPos == null) {
37236
+ return false;
37237
+ }
37238
+ if (cellNode.attrs.colspan == 1 && cellNode.attrs.rowspan == 1) {
37239
+ return false;
37240
+ }
37241
+ if (dispatch) {
37242
+ let baseAttrs = cellNode.attrs;
37243
+ const attrs = [];
37244
+ const colwidth = baseAttrs.colwidth;
37245
+ if (baseAttrs.rowspan > 1)
37246
+ baseAttrs = { ...baseAttrs, rowspan: 1 };
37247
+ if (baseAttrs.colspan > 1)
37248
+ baseAttrs = { ...baseAttrs, colspan: 1 };
37249
+ const rect = selectedRect(state2), tr2 = state2.tr;
37250
+ for (let i2 = 0; i2 < rect.right - rect.left; i2++)
37251
+ attrs.push(
37252
+ colwidth ? {
37253
+ ...baseAttrs,
37254
+ colwidth: colwidth && colwidth[i2] ? [colwidth[i2]] : null
37255
+ } : baseAttrs
37256
+ );
37257
+ let lastCell;
37258
+ for (let row = rect.top; row < rect.bottom; row++) {
37259
+ let pos = rect.map.positionAt(row, rect.left, rect.table);
37260
+ if (row == rect.top)
37261
+ pos += cellNode.nodeSize;
37262
+ for (let col = rect.left, i2 = 0; col < rect.right; col++, i2++) {
37263
+ if (col == rect.left && row == rect.top)
37264
+ continue;
37265
+ tr2.insert(
37266
+ lastCell = tr2.mapping.map(pos + rect.tableStart, 1),
37267
+ getCellType({ node: cellNode, row, col }).createAndFill(attrs[i2])
37268
+ );
37269
+ }
37270
+ }
37271
+ tr2.setNodeMarkup(
37272
+ cellPos,
37273
+ getCellType({ node: cellNode, row: rect.top, col: rect.left }),
37274
+ attrs[0]
37275
+ );
37276
+ if (sel instanceof CellSelection)
37277
+ tr2.setSelection(
37278
+ new CellSelection(
37279
+ tr2.doc.resolve(sel.$anchorCell.pos),
37280
+ lastCell ? tr2.doc.resolve(lastCell) : void 0
37281
+ )
37282
+ );
37283
+ dispatch(tr2);
37507
37284
  }
37508
- }
37285
+ return true;
37286
+ };
37509
37287
  }
37510
- function handleMouseLeave(view) {
37511
- const pluginState = columnResizingPluginKey.getState(view.state);
37512
- if (pluginState && pluginState.activeHandle > -1 && !pluginState.dragging)
37513
- updateHandle(view, -1);
37288
+ function setCellAttr(name, value) {
37289
+ return function(state2, dispatch) {
37290
+ if (!isInTable(state2))
37291
+ return false;
37292
+ const $cell = selectionCell(state2);
37293
+ if ($cell.nodeAfter.attrs[name] === value)
37294
+ return false;
37295
+ if (dispatch) {
37296
+ const tr2 = state2.tr;
37297
+ if (state2.selection instanceof CellSelection)
37298
+ state2.selection.forEachCell((node, pos) => {
37299
+ if (node.attrs[name] !== value)
37300
+ tr2.setNodeMarkup(pos, null, {
37301
+ ...node.attrs,
37302
+ [name]: value
37303
+ });
37304
+ });
37305
+ else
37306
+ tr2.setNodeMarkup($cell.pos, null, {
37307
+ ...$cell.nodeAfter.attrs,
37308
+ [name]: value
37309
+ });
37310
+ dispatch(tr2);
37311
+ }
37312
+ return true;
37313
+ };
37514
37314
  }
37515
- function handleMouseDown2(view, event, cellMinWidth, defaultCellMinWidth) {
37516
- var _a2;
37517
- const win = (_a2 = view.dom.ownerDocument.defaultView) != null ? _a2 : window;
37518
- const pluginState = columnResizingPluginKey.getState(view.state);
37519
- if (!pluginState || pluginState.activeHandle == -1 || pluginState.dragging)
37520
- return false;
37521
- const cell = view.state.doc.nodeAt(pluginState.activeHandle);
37522
- const width = currentColWidth(view, pluginState.activeHandle, cell.attrs);
37523
- view.dispatch(
37524
- view.state.tr.setMeta(columnResizingPluginKey, {
37525
- setDragging: { startX: event.clientX, startWidth: width }
37526
- })
37527
- );
37528
- function finish(event2) {
37529
- win.removeEventListener("mouseup", finish);
37530
- win.removeEventListener("mousemove", move);
37531
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37532
- if (pluginState2 == null ? void 0 : pluginState2.dragging) {
37533
- updateColumnWidth(
37534
- view,
37535
- pluginState2.activeHandle,
37536
- draggedWidth(pluginState2.dragging, event2, cellMinWidth)
37537
- );
37538
- view.dispatch(
37539
- view.state.tr.setMeta(columnResizingPluginKey, { setDragging: null })
37315
+ function deprecated_toggleHeader(type3) {
37316
+ return function(state2, dispatch) {
37317
+ if (!isInTable(state2))
37318
+ return false;
37319
+ if (dispatch) {
37320
+ const types = tableNodeTypes(state2.schema);
37321
+ const rect = selectedRect(state2), tr2 = state2.tr;
37322
+ const cells = rect.map.cellsInRect(
37323
+ type3 == "column" ? {
37324
+ left: rect.left,
37325
+ top: 0,
37326
+ right: rect.right,
37327
+ bottom: rect.map.height
37328
+ } : type3 == "row" ? {
37329
+ left: 0,
37330
+ top: rect.top,
37331
+ right: rect.map.width,
37332
+ bottom: rect.bottom
37333
+ } : rect
37540
37334
  );
37335
+ const nodes = cells.map((pos) => rect.table.nodeAt(pos));
37336
+ for (let i2 = 0; i2 < cells.length; i2++)
37337
+ if (nodes[i2].type == types.header_cell)
37338
+ tr2.setNodeMarkup(
37339
+ rect.tableStart + cells[i2],
37340
+ types.cell,
37341
+ nodes[i2].attrs
37342
+ );
37343
+ if (tr2.steps.length == 0)
37344
+ for (let i2 = 0; i2 < cells.length; i2++)
37345
+ tr2.setNodeMarkup(
37346
+ rect.tableStart + cells[i2],
37347
+ types.header_cell,
37348
+ nodes[i2].attrs
37349
+ );
37350
+ dispatch(tr2);
37541
37351
  }
37542
- }
37543
- function move(event2) {
37544
- if (!event2.which)
37545
- return finish(event2);
37546
- const pluginState2 = columnResizingPluginKey.getState(view.state);
37547
- if (!pluginState2)
37548
- return;
37549
- if (pluginState2.dragging) {
37550
- const dragged = draggedWidth(pluginState2.dragging, event2, cellMinWidth);
37551
- displayColumnWidth(
37552
- view,
37553
- pluginState2.activeHandle,
37554
- dragged,
37555
- defaultCellMinWidth
37556
- );
37352
+ return true;
37353
+ };
37354
+ }
37355
+ function isHeaderEnabledByType(type3, rect, types) {
37356
+ const cellPositions = rect.map.cellsInRect({
37357
+ left: 0,
37358
+ top: 0,
37359
+ right: type3 == "row" ? rect.map.width : 1,
37360
+ bottom: type3 == "column" ? rect.map.height : 1
37361
+ });
37362
+ for (let i2 = 0; i2 < cellPositions.length; i2++) {
37363
+ const cell = rect.table.nodeAt(cellPositions[i2]);
37364
+ if (cell && cell.type !== types.header_cell) {
37365
+ return false;
37557
37366
  }
37558
37367
  }
37559
- displayColumnWidth(
37560
- view,
37561
- pluginState.activeHandle,
37562
- width,
37563
- defaultCellMinWidth
37564
- );
37565
- win.addEventListener("mouseup", finish);
37566
- win.addEventListener("mousemove", move);
37567
- event.preventDefault();
37568
37368
  return true;
37569
37369
  }
37570
- function currentColWidth(view, cellPos, { colspan, colwidth }) {
37571
- const width = colwidth && colwidth[colwidth.length - 1];
37572
- if (width)
37573
- return width;
37574
- const dom = view.domAtPos(cellPos);
37575
- const node = dom.node.childNodes[dom.offset];
37576
- let domWidth = node.offsetWidth, parts = colspan;
37577
- if (colwidth) {
37578
- for (let i2 = 0; i2 < colspan; i2++)
37579
- if (colwidth[i2]) {
37580
- domWidth -= colwidth[i2];
37581
- parts--;
37582
- }
37583
- }
37584
- return domWidth / parts;
37585
- }
37586
- function domCellAround(target) {
37587
- while (target && target.nodeName != "TD" && target.nodeName != "TH")
37588
- target = target.classList && target.classList.contains("ProseMirror") ? null : target.parentNode;
37589
- return target;
37590
- }
37591
- function edgeCell(view, event, side, handleWidth) {
37592
- const offset2 = side == "right" ? -handleWidth : handleWidth;
37593
- const found2 = view.posAtCoords({
37594
- left: event.clientX + offset2,
37595
- top: event.clientY
37596
- });
37597
- if (!found2)
37598
- return -1;
37599
- const { pos } = found2;
37600
- const $cell = cellAround(view.state.doc.resolve(pos));
37601
- if (!$cell)
37602
- return -1;
37603
- if (side == "right")
37604
- return $cell.pos;
37605
- const map4 = TableMap.get($cell.node(-1)), start2 = $cell.start(-1);
37606
- const index2 = map4.map.indexOf($cell.pos - start2);
37607
- return index2 % map4.width == 0 ? -1 : start2 + map4.map[index2 - 1];
37608
- }
37609
- function draggedWidth(dragging, event, resizeMinWidth) {
37610
- const offset2 = event.clientX - dragging.startX;
37611
- return Math.max(resizeMinWidth, dragging.startWidth + offset2);
37612
- }
37613
- function updateHandle(view, value) {
37614
- view.dispatch(
37615
- view.state.tr.setMeta(columnResizingPluginKey, { setHandle: value })
37616
- );
37617
- }
37618
- function updateColumnWidth(view, cell, width) {
37619
- const $cell = view.state.doc.resolve(cell);
37620
- const table = $cell.node(-1), map4 = TableMap.get(table), start2 = $cell.start(-1);
37621
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37622
- const tr2 = view.state.tr;
37623
- for (let row = 0; row < map4.height; row++) {
37624
- const mapIndex = row * map4.width + col;
37625
- if (row && map4.map[mapIndex] == map4.map[mapIndex - map4.width])
37626
- continue;
37627
- const pos = map4.map[mapIndex];
37628
- const attrs = table.nodeAt(pos).attrs;
37629
- const index2 = attrs.colspan == 1 ? 0 : col - map4.colCount(pos);
37630
- if (attrs.colwidth && attrs.colwidth[index2] == width)
37631
- continue;
37632
- const colwidth = attrs.colwidth ? attrs.colwidth.slice() : zeroes(attrs.colspan);
37633
- colwidth[index2] = width;
37634
- tr2.setNodeMarkup(start2 + pos, null, { ...attrs, colwidth });
37635
- }
37636
- if (tr2.docChanged)
37637
- view.dispatch(tr2);
37370
+ function toggleHeader(type3, options) {
37371
+ options = options || { useDeprecatedLogic: false };
37372
+ if (options.useDeprecatedLogic)
37373
+ return deprecated_toggleHeader(type3);
37374
+ return function(state2, dispatch) {
37375
+ if (!isInTable(state2))
37376
+ return false;
37377
+ if (dispatch) {
37378
+ const types = tableNodeTypes(state2.schema);
37379
+ const rect = selectedRect(state2), tr2 = state2.tr;
37380
+ const isHeaderRowEnabled = isHeaderEnabledByType("row", rect, types);
37381
+ const isHeaderColumnEnabled = isHeaderEnabledByType(
37382
+ "column",
37383
+ rect,
37384
+ types
37385
+ );
37386
+ const isHeaderEnabled = type3 === "column" ? isHeaderRowEnabled : type3 === "row" ? isHeaderColumnEnabled : false;
37387
+ const selectionStartsAt = isHeaderEnabled ? 1 : 0;
37388
+ const cellsRect = type3 == "column" ? {
37389
+ left: 0,
37390
+ top: selectionStartsAt,
37391
+ right: 1,
37392
+ bottom: rect.map.height
37393
+ } : type3 == "row" ? {
37394
+ left: selectionStartsAt,
37395
+ top: 0,
37396
+ right: rect.map.width,
37397
+ bottom: 1
37398
+ } : rect;
37399
+ const newType = type3 == "column" ? isHeaderColumnEnabled ? types.cell : types.header_cell : type3 == "row" ? isHeaderRowEnabled ? types.cell : types.header_cell : types.cell;
37400
+ rect.map.cellsInRect(cellsRect).forEach((relativeCellPos) => {
37401
+ const cellPos = relativeCellPos + rect.tableStart;
37402
+ const cell = tr2.doc.nodeAt(cellPos);
37403
+ if (cell) {
37404
+ tr2.setNodeMarkup(cellPos, newType, cell.attrs);
37405
+ }
37406
+ });
37407
+ dispatch(tr2);
37408
+ }
37409
+ return true;
37410
+ };
37638
37411
  }
37639
- function displayColumnWidth(view, cell, width, defaultCellMinWidth) {
37640
- const $cell = view.state.doc.resolve(cell);
37641
- const table = $cell.node(-1), start2 = $cell.start(-1);
37642
- const col = TableMap.get(table).colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37643
- let dom = view.domAtPos($cell.start(-1)).node;
37644
- while (dom && dom.nodeName != "TABLE") {
37645
- dom = dom.parentNode;
37412
+ toggleHeader("row", {
37413
+ useDeprecatedLogic: true
37414
+ });
37415
+ toggleHeader("column", {
37416
+ useDeprecatedLogic: true
37417
+ });
37418
+ var toggleHeaderCell = toggleHeader("cell", {
37419
+ useDeprecatedLogic: true
37420
+ });
37421
+ function findNextCell($cell, dir) {
37422
+ if (dir < 0) {
37423
+ const before = $cell.nodeBefore;
37424
+ if (before)
37425
+ return $cell.pos - before.nodeSize;
37426
+ for (let row = $cell.index(-1) - 1, rowEnd = $cell.before(); row >= 0; row--) {
37427
+ const rowNode = $cell.node(-1).child(row);
37428
+ const lastChild2 = rowNode.lastChild;
37429
+ if (lastChild2) {
37430
+ return rowEnd - 1 - lastChild2.nodeSize;
37431
+ }
37432
+ rowEnd -= rowNode.nodeSize;
37433
+ }
37434
+ } else {
37435
+ if ($cell.index() < $cell.parent.childCount - 1) {
37436
+ return $cell.pos + $cell.nodeAfter.nodeSize;
37437
+ }
37438
+ const table = $cell.node(-1);
37439
+ for (let row = $cell.indexAfter(-1), rowStart = $cell.after(); row < table.childCount; row++) {
37440
+ const rowNode = table.child(row);
37441
+ if (rowNode.childCount)
37442
+ return rowStart + 1;
37443
+ rowStart += rowNode.nodeSize;
37444
+ }
37646
37445
  }
37647
- if (!dom)
37648
- return;
37649
- updateColumnsOnResize(
37650
- table,
37651
- dom.firstChild,
37652
- dom,
37653
- defaultCellMinWidth,
37654
- col,
37655
- width
37656
- );
37446
+ return null;
37657
37447
  }
37658
- function zeroes(n2) {
37659
- return Array(n2).fill(0);
37448
+ function goToNextCell(direction) {
37449
+ return function(state2, dispatch) {
37450
+ if (!isInTable(state2))
37451
+ return false;
37452
+ const cell = findNextCell(selectionCell(state2), direction);
37453
+ if (cell == null)
37454
+ return false;
37455
+ if (dispatch) {
37456
+ const $cell = state2.doc.resolve(cell);
37457
+ dispatch(
37458
+ state2.tr.setSelection(TextSelection.between($cell, moveCellForward($cell))).scrollIntoView()
37459
+ );
37460
+ }
37461
+ return true;
37462
+ };
37660
37463
  }
37661
- function handleDecorations(state2, cell) {
37662
- var _a2;
37663
- const decorations = [];
37664
- const $cell = state2.doc.resolve(cell);
37665
- const table = $cell.node(-1);
37666
- if (!table) {
37667
- return DecorationSet.empty;
37668
- }
37669
- const map4 = TableMap.get(table);
37670
- const start2 = $cell.start(-1);
37671
- const col = map4.colCount($cell.pos - start2) + $cell.nodeAfter.attrs.colspan - 1;
37672
- for (let row = 0; row < map4.height; row++) {
37673
- const index2 = col + row * map4.width;
37674
- if ((col == map4.width - 1 || map4.map[index2] != map4.map[index2 + 1]) && (row == 0 || map4.map[index2] != map4.map[index2 - map4.width])) {
37675
- const cellPos = map4.map[index2];
37676
- const pos = start2 + cellPos + table.nodeAt(cellPos).nodeSize - 1;
37677
- const dom = document.createElement("div");
37678
- dom.className = "column-resize-handle";
37679
- if ((_a2 = columnResizingPluginKey.getState(state2)) == null ? void 0 : _a2.dragging) {
37680
- decorations.push(
37681
- Decoration.node(
37682
- start2 + cellPos,
37683
- start2 + cellPos + table.nodeAt(cellPos).nodeSize,
37684
- {
37685
- class: "column-resize-dragging"
37686
- }
37687
- )
37464
+ function deleteTable(state2, dispatch) {
37465
+ const $pos = state2.selection.$anchor;
37466
+ for (let d2 = $pos.depth; d2 > 0; d2--) {
37467
+ const node = $pos.node(d2);
37468
+ if (node.type.spec.tableRole == "table") {
37469
+ if (dispatch)
37470
+ dispatch(
37471
+ state2.tr.delete($pos.before(d2), $pos.after(d2)).scrollIntoView()
37688
37472
  );
37689
- }
37690
- decorations.push(Decoration.widget(pos, dom));
37473
+ return true;
37691
37474
  }
37692
37475
  }
37693
- return DecorationSet.create(state2.doc, decorations);
37476
+ return false;
37694
37477
  }
37695
37478
  function tableEditing({
37696
37479
  allowTableNodeSelection = false
@@ -37735,46 +37518,33 @@ function tableEditing({
37735
37518
  }
37736
37519
  });
37737
37520
  }
37738
- function getColStyleDeclaration(minWidth, width) {
37739
- if (width) {
37740
- return ["width", `${Math.max(width, minWidth)}px`];
37741
- }
37742
- return ["min-width", `${minWidth}px`];
37743
- }
37744
37521
  function updateColumns(node, colgroup, table, cellMinWidth, overrideCol, overrideValue) {
37745
- var _a2;
37746
37522
  let totalWidth = 0;
37747
37523
  let fixedWidth = true;
37748
37524
  let nextDOM = colgroup.firstChild;
37749
37525
  const row = node.firstChild;
37750
- if (row !== null) {
37751
- for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37752
- const { colspan, colwidth } = row.child(i2).attrs;
37753
- for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37754
- const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37755
- const cssWidth = hasWidth ? `${hasWidth}px` : "";
37756
- totalWidth += hasWidth || cellMinWidth;
37757
- if (!hasWidth) {
37758
- fixedWidth = false;
37759
- }
37760
- if (!nextDOM) {
37761
- const colElement = document.createElement("col");
37762
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37763
- colElement.style.setProperty(propertyKey, propertyValue);
37764
- colgroup.appendChild(colElement);
37765
- } else {
37766
- if (nextDOM.style.width !== cssWidth) {
37767
- const [propertyKey, propertyValue] = getColStyleDeclaration(cellMinWidth, hasWidth);
37768
- nextDOM.style.setProperty(propertyKey, propertyValue);
37769
- }
37770
- nextDOM = nextDOM.nextSibling;
37526
+ for (let i2 = 0, col = 0; i2 < row.childCount; i2 += 1) {
37527
+ const { colspan, colwidth } = row.child(i2).attrs;
37528
+ for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37529
+ const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37530
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37531
+ totalWidth += hasWidth || cellMinWidth;
37532
+ if (!hasWidth) {
37533
+ fixedWidth = false;
37534
+ }
37535
+ if (!nextDOM) {
37536
+ colgroup.appendChild(document.createElement("col")).style.width = cssWidth;
37537
+ } else {
37538
+ if (nextDOM.style.width !== cssWidth) {
37539
+ nextDOM.style.width = cssWidth;
37771
37540
  }
37541
+ nextDOM = nextDOM.nextSibling;
37772
37542
  }
37773
37543
  }
37774
37544
  }
37775
37545
  while (nextDOM) {
37776
37546
  const after = nextDOM.nextSibling;
37777
- (_a2 = nextDOM.parentNode) === null || _a2 === void 0 ? void 0 : _a2.removeChild(nextDOM);
37547
+ nextDOM.parentNode.removeChild(nextDOM);
37778
37548
  nextDOM = after;
37779
37549
  }
37780
37550
  if (fixedWidth) {
@@ -37820,15 +37590,12 @@ function createColGroup(node, cellMinWidth, overrideCol, overrideValue) {
37820
37590
  const { colspan, colwidth } = row.child(i2).attrs;
37821
37591
  for (let j2 = 0; j2 < colspan; j2 += 1, col += 1) {
37822
37592
  const hasWidth = overrideCol === col ? overrideValue : colwidth && colwidth[j2];
37593
+ const cssWidth = hasWidth ? `${hasWidth}px` : "";
37823
37594
  totalWidth += hasWidth || cellMinWidth;
37824
37595
  if (!hasWidth) {
37825
37596
  fixedWidth = false;
37826
37597
  }
37827
- const [property, value] = getColStyleDeclaration(cellMinWidth, hasWidth);
37828
- cols.push([
37829
- "col",
37830
- { style: `${property}: ${value}` }
37831
- ]);
37598
+ cols.push(["col", cssWidth ? { style: `width: ${cssWidth}` } : {}]);
37832
37599
  }
37833
37600
  }
37834
37601
  const tableWidth = fixedWidth ? `${totalWidth}px` : "";
@@ -38037,7 +37804,6 @@ const Table = Node$1.create({
38037
37804
  columnResizing({
38038
37805
  handleWidth: this.options.handleWidth,
38039
37806
  cellMinWidth: this.options.cellMinWidth,
38040
- defaultCellMinWidth: this.options.cellMinWidth,
38041
37807
  View: this.options.View,
38042
37808
  lastColumnResizable: this.options.lastColumnResizable
38043
37809
  })
@@ -38078,7 +37844,7 @@ const TableCell = Node$1.create({
38078
37844
  default: null,
38079
37845
  parseHTML: (element) => {
38080
37846
  const colwidth = element.getAttribute("colwidth");
38081
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37847
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38082
37848
  return value;
38083
37849
  }
38084
37850
  }
@@ -38115,7 +37881,7 @@ const TableHeader = Node$1.create({
38115
37881
  default: null,
38116
37882
  parseHTML: (element) => {
38117
37883
  const colwidth = element.getAttribute("colwidth");
38118
- const value = colwidth ? colwidth.split(",").map((width) => parseInt(width, 10)) : null;
37884
+ const value = colwidth ? [parseInt(colwidth, 10)] : null;
38119
37885
  return value;
38120
37886
  }
38121
37887
  }
@@ -38432,10 +38198,6 @@ const Bold = Mark.create({
38432
38198
  tag: "b",
38433
38199
  getAttrs: (node) => node.style.fontWeight !== "normal" && null
38434
38200
  },
38435
- {
38436
- style: "font-weight=400",
38437
- clearMark: (mark) => mark.type.name === this.name
38438
- },
38439
38201
  {
38440
38202
  style: "font-weight",
38441
38203
  getAttrs: (value) => /^(bold(er)?|[5-9]\d{2,})$/.test(value) && null
@@ -38489,8 +38251,73 @@ const Bold = Mark.create({
38489
38251
  ];
38490
38252
  }
38491
38253
  });
38492
- const ListItemName$1 = "listItem";
38493
- const TextStyleName$1 = "textStyle";
38254
+ const ListItem$2 = Node$1.create({
38255
+ name: "listItem",
38256
+ addOptions() {
38257
+ return {
38258
+ HTMLAttributes: {},
38259
+ bulletListTypeName: "bulletList",
38260
+ orderedListTypeName: "orderedList"
38261
+ };
38262
+ },
38263
+ content: "paragraph block*",
38264
+ defining: true,
38265
+ parseHTML() {
38266
+ return [
38267
+ {
38268
+ tag: "li"
38269
+ }
38270
+ ];
38271
+ },
38272
+ renderHTML({ HTMLAttributes }) {
38273
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38274
+ },
38275
+ addKeyboardShortcuts() {
38276
+ return {
38277
+ Enter: () => this.editor.commands.splitListItem(this.name),
38278
+ Tab: () => this.editor.commands.sinkListItem(this.name),
38279
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
38280
+ };
38281
+ }
38282
+ });
38283
+ const TextStyle$1 = Mark.create({
38284
+ name: "textStyle",
38285
+ priority: 101,
38286
+ addOptions() {
38287
+ return {
38288
+ HTMLAttributes: {}
38289
+ };
38290
+ },
38291
+ parseHTML() {
38292
+ return [
38293
+ {
38294
+ tag: "span",
38295
+ getAttrs: (element) => {
38296
+ const hasStyles = element.hasAttribute("style");
38297
+ if (!hasStyles) {
38298
+ return false;
38299
+ }
38300
+ return {};
38301
+ }
38302
+ }
38303
+ ];
38304
+ },
38305
+ renderHTML({ HTMLAttributes }) {
38306
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
38307
+ },
38308
+ addCommands() {
38309
+ return {
38310
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
38311
+ const attributes = getMarkAttributes(state2, this.type);
38312
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
38313
+ if (hasStyles) {
38314
+ return true;
38315
+ }
38316
+ return commands2.unsetMark(this.name);
38317
+ }
38318
+ };
38319
+ }
38320
+ });
38494
38321
  const inputRegex$3 = /^\s*([-+*])\s$/;
38495
38322
  const BulletList = Node$1.create({
38496
38323
  name: "bulletList",
@@ -38518,7 +38345,7 @@ const BulletList = Node$1.create({
38518
38345
  return {
38519
38346
  toggleBulletList: () => ({ commands: commands2, chain }) => {
38520
38347
  if (this.options.keepAttributes) {
38521
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName$1, this.editor.getAttributes(TextStyleName$1)).run();
38348
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem$2.name, this.editor.getAttributes(TextStyle$1.name)).run();
38522
38349
  }
38523
38350
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
38524
38351
  }
@@ -38541,7 +38368,7 @@ const BulletList = Node$1.create({
38541
38368
  keepMarks: this.options.keepMarks,
38542
38369
  keepAttributes: this.options.keepAttributes,
38543
38370
  getAttributes: () => {
38544
- return this.editor.getAttributes(TextStyleName$1);
38371
+ return this.editor.getAttributes(TextStyle$1.name);
38545
38372
  },
38546
38373
  editor: this.editor
38547
38374
  });
@@ -38551,8 +38378,8 @@ const BulletList = Node$1.create({
38551
38378
  ];
38552
38379
  }
38553
38380
  });
38554
- const inputRegex$2 = new RegExp("(?<!`)`([^`]+)`(?!`)");
38555
- const pasteRegex$1 = new RegExp("(?<!`)`([^`]+)`(?!`)", "g");
38381
+ const inputRegex$2 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))$/;
38382
+ const pasteRegex$1 = /(?:^|\s)(`(?!\s+`)((?:[^`]+))`(?!\s+`))/g;
38556
38383
  const Code = Mark.create({
38557
38384
  name: "code",
38558
38385
  addOptions() {
@@ -39179,7 +39006,6 @@ const HardBreak = Node$1.create({
39179
39006
  inline: true,
39180
39007
  group: "inline",
39181
39008
  selectable: false,
39182
- linebreakReplacement: true,
39183
39009
  parseHTML() {
39184
39010
  return [
39185
39011
  { tag: "br" }
@@ -39941,10 +39767,6 @@ const Italic = Mark.create({
39941
39767
  tag: "i",
39942
39768
  getAttrs: (node) => node.style.fontStyle !== "normal" && null
39943
39769
  },
39944
- {
39945
- style: "font-style=normal",
39946
- clearMark: (mark) => mark.type.name === this.name
39947
- },
39948
39770
  {
39949
39771
  style: "font-style=italic"
39950
39772
  }
@@ -39997,6 +39819,35 @@ const Italic = Mark.create({
39997
39819
  ];
39998
39820
  }
39999
39821
  });
39822
+ const ListItem$1 = Node$1.create({
39823
+ name: "listItem",
39824
+ addOptions() {
39825
+ return {
39826
+ HTMLAttributes: {},
39827
+ bulletListTypeName: "bulletList",
39828
+ orderedListTypeName: "orderedList"
39829
+ };
39830
+ },
39831
+ content: "paragraph block*",
39832
+ defining: true,
39833
+ parseHTML() {
39834
+ return [
39835
+ {
39836
+ tag: "li"
39837
+ }
39838
+ ];
39839
+ },
39840
+ renderHTML({ HTMLAttributes }) {
39841
+ return ["li", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39842
+ },
39843
+ addKeyboardShortcuts() {
39844
+ return {
39845
+ Enter: () => this.editor.commands.splitListItem(this.name),
39846
+ Tab: () => this.editor.commands.sinkListItem(this.name),
39847
+ "Shift-Tab": () => this.editor.commands.liftListItem(this.name)
39848
+ };
39849
+ }
39850
+ });
40000
39851
  const ListItem = Node$1.create({
40001
39852
  name: "listItem",
40002
39853
  addOptions() {
@@ -40026,8 +39877,44 @@ const ListItem = Node$1.create({
40026
39877
  };
40027
39878
  }
40028
39879
  });
40029
- const ListItemName = "listItem";
40030
- const TextStyleName = "textStyle";
39880
+ const TextStyle = Mark.create({
39881
+ name: "textStyle",
39882
+ priority: 101,
39883
+ addOptions() {
39884
+ return {
39885
+ HTMLAttributes: {}
39886
+ };
39887
+ },
39888
+ parseHTML() {
39889
+ return [
39890
+ {
39891
+ tag: "span",
39892
+ getAttrs: (element) => {
39893
+ const hasStyles = element.hasAttribute("style");
39894
+ if (!hasStyles) {
39895
+ return false;
39896
+ }
39897
+ return {};
39898
+ }
39899
+ }
39900
+ ];
39901
+ },
39902
+ renderHTML({ HTMLAttributes }) {
39903
+ return ["span", mergeAttributes(this.options.HTMLAttributes, HTMLAttributes), 0];
39904
+ },
39905
+ addCommands() {
39906
+ return {
39907
+ removeEmptyTextStyle: () => ({ state: state2, commands: commands2 }) => {
39908
+ const attributes = getMarkAttributes(state2, this.type);
39909
+ const hasStyles = Object.entries(attributes).some(([, value]) => !!value);
39910
+ if (hasStyles) {
39911
+ return true;
39912
+ }
39913
+ return commands2.unsetMark(this.name);
39914
+ }
39915
+ };
39916
+ }
39917
+ });
40031
39918
  const inputRegex$1 = /^(\d+)\.\s$/;
40032
39919
  const OrderedList = Node$1.create({
40033
39920
  name: "orderedList",
@@ -40072,7 +39959,7 @@ const OrderedList = Node$1.create({
40072
39959
  return {
40073
39960
  toggleOrderedList: () => ({ commands: commands2, chain }) => {
40074
39961
  if (this.options.keepAttributes) {
40075
- return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItemName, this.editor.getAttributes(TextStyleName)).run();
39962
+ return chain().toggleList(this.name, this.options.itemTypeName, this.options.keepMarks).updateAttributes(ListItem.name, this.editor.getAttributes(TextStyle.name)).run();
40076
39963
  }
40077
39964
  return commands2.toggleList(this.name, this.options.itemTypeName, this.options.keepMarks);
40078
39965
  }
@@ -40096,7 +39983,7 @@ const OrderedList = Node$1.create({
40096
39983
  type: this.type,
40097
39984
  keepMarks: this.options.keepMarks,
40098
39985
  keepAttributes: this.options.keepAttributes,
40099
- getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyleName) }),
39986
+ getAttributes: (match2) => ({ start: +match2[1], ...this.editor.getAttributes(TextStyle.name) }),
40100
39987
  joinPredicate: (match2, node) => node.childCount + node.attrs.start === +match2[1],
40101
39988
  editor: this.editor
40102
39989
  });
@@ -40251,7 +40138,7 @@ const StarterKit = Extension.create({
40251
40138
  extensions.push(Italic.configure((_o = this.options) === null || _o === void 0 ? void 0 : _o.italic));
40252
40139
  }
40253
40140
  if (this.options.listItem !== false) {
40254
- extensions.push(ListItem.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40141
+ extensions.push(ListItem$1.configure((_p = this.options) === null || _p === void 0 ? void 0 : _p.listItem));
40255
40142
  }
40256
40143
  if (this.options.orderedList !== false) {
40257
40144
  extensions.push(OrderedList.configure((_q = this.options) === null || _q === void 0 ? void 0 : _q.orderedList));
@@ -42926,9 +42813,6 @@ class BubbleMenuView {
42926
42813
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
42927
42814
  return;
42928
42815
  }
42929
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
42930
- return;
42931
- }
42932
42816
  this.hide();
42933
42817
  };
42934
42818
  this.tippyBlurHandler = (event) => {
@@ -42961,7 +42845,6 @@ class BubbleMenuView {
42961
42845
  const to2 = Math.max(...ranges.map((range2) => range2.$to.pos));
42962
42846
  const shouldShow2 = (_a2 = this.shouldShow) === null || _a2 === void 0 ? void 0 : _a2.call(this, {
42963
42847
  editor: this.editor,
42964
- element: this.element,
42965
42848
  view: view2,
42966
42849
  state: state2,
42967
42850
  oldState,
@@ -42976,14 +42859,12 @@ class BubbleMenuView {
42976
42859
  getReferenceClientRect: ((_c = this.tippyOptions) === null || _c === void 0 ? void 0 : _c.getReferenceClientRect) || (() => {
42977
42860
  if (isNodeSelection(state2.selection)) {
42978
42861
  let node = view2.nodeDOM(from2);
42862
+ const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42863
+ if (nodeViewWrapper) {
42864
+ node = nodeViewWrapper.firstChild;
42865
+ }
42979
42866
  if (node) {
42980
- const nodeViewWrapper = node.dataset.nodeViewWrapper ? node : node.querySelector("[data-node-view-wrapper]");
42981
- if (nodeViewWrapper) {
42982
- node = nodeViewWrapper.firstChild;
42983
- }
42984
- if (node) {
42985
- return node.getBoundingClientRect();
42986
- }
42867
+ return node.getBoundingClientRect();
42987
42868
  }
42988
42869
  }
42989
42870
  return posToDOMRect(view2, from2, to2);
@@ -43118,9 +42999,6 @@ class FloatingMenuView {
43118
42999
  if ((event === null || event === void 0 ? void 0 : event.relatedTarget) && ((_a2 = this.element.parentNode) === null || _a2 === void 0 ? void 0 : _a2.contains(event.relatedTarget))) {
43119
43000
  return;
43120
43001
  }
43121
- if ((event === null || event === void 0 ? void 0 : event.relatedTarget) === this.editor.view.dom) {
43122
- return;
43123
- }
43124
43002
  this.hide();
43125
43003
  };
43126
43004
  this.tippyBlurHandler = (event) => {
@@ -43381,8 +43259,21 @@ const EditorContent = vue.defineComponent({
43381
43259
  if (!editor) {
43382
43260
  return;
43383
43261
  }
43262
+ if (!editor.isDestroyed) {
43263
+ editor.view.setProps({
43264
+ nodeViews: {}
43265
+ });
43266
+ }
43384
43267
  editor.contentComponent = null;
43385
43268
  editor.appContext = null;
43269
+ if (!editor.options.element.firstChild) {
43270
+ return;
43271
+ }
43272
+ const newElement = document.createElement("div");
43273
+ newElement.append(...editor.options.element.childNodes);
43274
+ editor.setOptions({
43275
+ element: newElement
43276
+ });
43386
43277
  });
43387
43278
  return { rootEl: rootEl2 };
43388
43279
  },
@@ -44510,7 +44401,7 @@ const _sfc_main$t = /* @__PURE__ */ vue.defineComponent({
44510
44401
  });
44511
44402
  const SelectInput = /* @__PURE__ */ _export_sfc(_sfc_main$t, [["__scopeId", "data-v-982f5078"]]);
44512
44403
  /*!
44513
- * Signature Pad v5.0.4 | https://github.com/szimek/signature_pad
44404
+ * Signature Pad v5.0.3 | https://github.com/szimek/signature_pad
44514
44405
  * (c) 2024 Szymon Nowak | Released under the MIT license
44515
44406
  */
44516
44407
  class Point {
@@ -44594,7 +44485,7 @@ class SignatureEventTarget {
44594
44485
  constructor() {
44595
44486
  try {
44596
44487
  this._et = new EventTarget();
44597
- } catch (_a2) {
44488
+ } catch (error) {
44598
44489
  this._et = document;
44599
44490
  }
44600
44491
  }
@@ -44708,16 +44599,13 @@ class SignaturePad extends SignatureEventTarget {
44708
44599
  this._strokeEnd(this._touchEventToSignatureEvent(event));
44709
44600
  };
44710
44601
  this._handlePointerDown = (event) => {
44711
- if (!event.isPrimary || !this._isLeftButtonPressed(event) || this._drawingStroke) {
44602
+ if (!this._isLeftButtonPressed(event) || this._drawingStroke) {
44712
44603
  return;
44713
44604
  }
44714
44605
  event.preventDefault();
44715
44606
  this._strokeBegin(this._pointerEventToSignatureEvent(event));
44716
44607
  };
44717
44608
  this._handlePointerMove = (event) => {
44718
- if (!event.isPrimary) {
44719
- return;
44720
- }
44721
44609
  if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {
44722
44610
  this._strokeEnd(this._pointerEventToSignatureEvent(event), false);
44723
44611
  return;
@@ -44726,7 +44614,7 @@ class SignaturePad extends SignatureEventTarget {
44726
44614
  this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));
44727
44615
  };
44728
44616
  this._handlePointerUp = (event) => {
44729
- if (!event.isPrimary || this._isLeftButtonPressed(event)) {
44617
+ if (this._isLeftButtonPressed(event)) {
44730
44618
  return;
44731
44619
  }
44732
44620
  event.preventDefault();
@@ -48504,11 +48392,6 @@ function buildURL(url, params, options) {
48504
48392
  return url;
48505
48393
  }
48506
48394
  const _encode = options && options.encode || encode;
48507
- if (utils$1.isFunction(options)) {
48508
- options = {
48509
- serialize: options
48510
- };
48511
- }
48512
48395
  const serializeFn = options && options.serialize;
48513
48396
  let serializedParams;
48514
48397
  if (serializeFn) {
@@ -48695,7 +48578,7 @@ function stringifySafely(rawValue, parser, encoder) {
48695
48578
  }
48696
48579
  }
48697
48580
  }
48698
- return (0, JSON.stringify)(rawValue);
48581
+ return (encoder || JSON.stringify)(rawValue);
48699
48582
  }
48700
48583
  const defaults = {
48701
48584
  transitional: transitionalDefaults,
@@ -49188,13 +49071,45 @@ const progressEventDecorator = (total, throttled) => {
49188
49071
  }), throttled[1]];
49189
49072
  };
49190
49073
  const asyncDecorator = (fn3) => (...args) => utils$1.asap(() => fn3(...args));
49191
- const isURLSameOrigin = platform.hasStandardBrowserEnv ? /* @__PURE__ */ ((origin2, isMSIE) => (url) => {
49192
- url = new URL(url, platform.origin);
49193
- return origin2.protocol === url.protocol && origin2.host === url.host && (isMSIE || origin2.port === url.port);
49194
- })(
49195
- new URL(platform.origin),
49196
- platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent)
49197
- ) : () => true;
49074
+ const isURLSameOrigin = platform.hasStandardBrowserEnv ? (
49075
+ // Standard browser envs have full support of the APIs needed to test
49076
+ // whether the request URL is of the same origin as current location.
49077
+ function standardBrowserEnv() {
49078
+ const msie = platform.navigator && /(msie|trident)/i.test(platform.navigator.userAgent);
49079
+ const urlParsingNode = document.createElement("a");
49080
+ let originURL;
49081
+ function resolveURL(url) {
49082
+ let href = url;
49083
+ if (msie) {
49084
+ urlParsingNode.setAttribute("href", href);
49085
+ href = urlParsingNode.href;
49086
+ }
49087
+ urlParsingNode.setAttribute("href", href);
49088
+ return {
49089
+ href: urlParsingNode.href,
49090
+ protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, "") : "",
49091
+ host: urlParsingNode.host,
49092
+ search: urlParsingNode.search ? urlParsingNode.search.replace(/^\?/, "") : "",
49093
+ hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, "") : "",
49094
+ hostname: urlParsingNode.hostname,
49095
+ port: urlParsingNode.port,
49096
+ pathname: urlParsingNode.pathname.charAt(0) === "/" ? urlParsingNode.pathname : "/" + urlParsingNode.pathname
49097
+ };
49098
+ }
49099
+ originURL = resolveURL(window.location.href);
49100
+ return function isURLSameOrigin2(requestURL) {
49101
+ const parsed = utils$1.isString(requestURL) ? resolveURL(requestURL) : requestURL;
49102
+ return parsed.protocol === originURL.protocol && parsed.host === originURL.host;
49103
+ };
49104
+ }()
49105
+ ) : (
49106
+ // Non standard browser envs (web workers, react-native) lack needed support.
49107
+ /* @__PURE__ */ function nonStandardBrowserEnv() {
49108
+ return function isURLSameOrigin2() {
49109
+ return true;
49110
+ };
49111
+ }()
49112
+ );
49198
49113
  const cookies = platform.hasStandardBrowserEnv ? (
49199
49114
  // Standard browser envs support document.cookie
49200
49115
  {
@@ -49242,7 +49157,7 @@ const headersToObject = (thing) => thing instanceof AxiosHeaders ? { ...thing }
49242
49157
  function mergeConfig(config1, config2) {
49243
49158
  config2 = config2 || {};
49244
49159
  const config = {};
49245
- function getMergedValue(target, source, prop3, caseless) {
49160
+ function getMergedValue(target, source, caseless) {
49246
49161
  if (utils$1.isPlainObject(target) && utils$1.isPlainObject(source)) {
49247
49162
  return utils$1.merge.call({ caseless }, target, source);
49248
49163
  } else if (utils$1.isPlainObject(source)) {
@@ -49252,11 +49167,11 @@ function mergeConfig(config1, config2) {
49252
49167
  }
49253
49168
  return source;
49254
49169
  }
49255
- function mergeDeepProperties(a2, b2, prop3, caseless) {
49170
+ function mergeDeepProperties(a2, b2, caseless) {
49256
49171
  if (!utils$1.isUndefined(b2)) {
49257
- return getMergedValue(a2, b2, prop3, caseless);
49172
+ return getMergedValue(a2, b2, caseless);
49258
49173
  } else if (!utils$1.isUndefined(a2)) {
49259
- return getMergedValue(void 0, a2, prop3, caseless);
49174
+ return getMergedValue(void 0, a2, caseless);
49260
49175
  }
49261
49176
  }
49262
49177
  function valueFromConfig2(a2, b2) {
@@ -49307,7 +49222,7 @@ function mergeConfig(config1, config2) {
49307
49222
  socketPath: defaultToConfig2,
49308
49223
  responseEncoding: defaultToConfig2,
49309
49224
  validateStatus: mergeDirectKeys,
49310
- headers: (a2, b2, prop3) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), prop3, true)
49225
+ headers: (a2, b2) => mergeDeepProperties(headersToObject(a2), headersToObject(b2), true)
49311
49226
  };
49312
49227
  utils$1.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop3) {
49313
49228
  const merge2 = mergeMap[prop3] || mergeDeepProperties;
@@ -49507,7 +49422,7 @@ const composeSignals = (signals, timeout) => {
49507
49422
  };
49508
49423
  const streamChunk = function* (chunk, chunkSize) {
49509
49424
  let len = chunk.byteLength;
49510
- if (len < chunkSize) {
49425
+ if (!chunkSize || len < chunkSize) {
49511
49426
  yield chunk;
49512
49427
  return;
49513
49428
  }
@@ -49837,7 +49752,7 @@ function dispatchRequest(config) {
49837
49752
  return Promise.reject(reason);
49838
49753
  });
49839
49754
  }
49840
- const VERSION = "1.7.9";
49755
+ const VERSION = "1.7.7";
49841
49756
  const validators$1 = {};
49842
49757
  ["object", "boolean", "number", "function", "string", "symbol"].forEach((type3, i2) => {
49843
49758
  validators$1[type3] = function validator2(thing) {
@@ -49868,12 +49783,6 @@ validators$1.transitional = function transitional(validator2, version2, message2
49868
49783
  return validator2 ? validator2(value, opt, opts) : true;
49869
49784
  };
49870
49785
  };
49871
- validators$1.spelling = function spelling(correctSpelling) {
49872
- return (value, opt) => {
49873
- console.warn(`${opt} is likely a misspelling of ${correctSpelling}`);
49874
- return true;
49875
- };
49876
- };
49877
49786
  function assertOptions(options, schema, allowUnknown) {
49878
49787
  if (typeof options !== "object") {
49879
49788
  throw new AxiosError("options must be an object", AxiosError.ERR_BAD_OPTION_VALUE);
@@ -49922,8 +49831,8 @@ class Axios {
49922
49831
  return await this._request(configOrUrl, config);
49923
49832
  } catch (err) {
49924
49833
  if (err instanceof Error) {
49925
- let dummy = {};
49926
- Error.captureStackTrace ? Error.captureStackTrace(dummy) : dummy = new Error();
49834
+ let dummy;
49835
+ Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : dummy = new Error();
49927
49836
  const stack2 = dummy.stack ? dummy.stack.replace(/^.+\n/, "") : "";
49928
49837
  try {
49929
49838
  if (!err.stack) {
@@ -49965,10 +49874,6 @@ class Axios {
49965
49874
  }, true);
49966
49875
  }
49967
49876
  }
49968
- validator.assertOptions(config, {
49969
- baseUrl: validators.spelling("baseURL"),
49970
- withXsrfToken: validators.spelling("withXSRFToken")
49971
- }, true);
49972
49877
  config.method = (config.method || this.defaults.method || "get").toLowerCase();
49973
49878
  let contextHeaders = headers && utils$1.merge(
49974
49879
  headers.common,
@@ -50265,7 +50170,7 @@ axios$1.formToJSON = (thing) => formDataToJSON(utils$1.isHTMLForm(thing) ? new F
50265
50170
  axios$1.getAdapter = adapters.getAdapter;
50266
50171
  axios$1.HttpStatusCode = HttpStatusCode;
50267
50172
  axios$1.default = axios$1;
50268
- 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}"]]] } };
50173
+ 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}"]]] } };
50269
50174
  function withMetadataArgument(func, _arguments) {
50270
50175
  var args = Array.prototype.slice.call(_arguments);
50271
50176
  args.push(metadata);
@@ -51878,8 +51783,9 @@ function _arrayLikeToArray$1(arr, len) {
51878
51783
  return arr2;
51879
51784
  }
51880
51785
  function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51881
- var countries = _ref.countries, metadata2 = _ref.metadata;
51786
+ var countries = _ref.countries, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;
51882
51787
  metadata2 = new Metadata(metadata2);
51788
+ var matchingCountries = [];
51883
51789
  for (var _iterator = _createForOfIteratorHelperLoose(countries), _step; !(_step = _iterator()).done; ) {
51884
51790
  var country = _step.value;
51885
51791
  metadata2.country(country);
@@ -51891,9 +51797,19 @@ function getCountryByNationalNumber(nationalPhoneNumber, _ref) {
51891
51797
  phone: nationalPhoneNumber,
51892
51798
  country
51893
51799
  }, void 0, metadata2.metadata)) {
51894
- return country;
51800
+ if (defaultCountry) {
51801
+ if (country === defaultCountry) {
51802
+ return country;
51803
+ }
51804
+ matchingCountries.push(country);
51805
+ } else {
51806
+ return country;
51807
+ }
51895
51808
  }
51896
51809
  }
51810
+ if (matchingCountries.length > 0) {
51811
+ return matchingCountries[0];
51812
+ }
51897
51813
  }
51898
51814
  function getCountryByCallingCode(callingCode, _ref) {
51899
51815
  var nationalPhoneNumber = _ref.nationalNumber, defaultCountry = _ref.defaultCountry, metadata2 = _ref.metadata;