From 783ba78f628e6941f63b1dce7f3a5bb21b5f523d Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Nov 2023 15:27:11 -0800 Subject: [PATCH 01/59] Add hook-inward-serifed variants for `a` (#2085). --- changes/28.0.0-alpha.1.md | 1 + .../glyphs/letter/cyrillic/iotified-a.ptl | 4 +- .../glyphs/letter/latin-ext/lower-ae-oe.ptl | 41 ++++++----- font-src/glyphs/letter/latin/lower-a.ptl | 71 +++++++++++-------- font-src/support/geometry/spiro-control.mjs | 2 +- params/variants.toml | 40 ++++++++++- 6 files changed, 110 insertions(+), 49 deletions(-) create mode 100644 changes/28.0.0-alpha.1.md diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md new file mode 100644 index 0000000000..b81d3bac0b --- /dev/null +++ b/changes/28.0.0-alpha.1.md @@ -0,0 +1 @@ + * Add hook-inward-serifed variants for `a` (#2085). diff --git a/font-src/glyphs/letter/cyrillic/iotified-a.ptl b/font-src/glyphs/letter/cyrillic/iotified-a.ptl index 7590a0c067..b49268f84b 100644 --- a/font-src/glyphs/letter/cyrillic/iotified-a.ptl +++ b/font-src/glyphs/letter/cyrillic/iotified-a.ptl @@ -126,13 +126,13 @@ glyph-block Letter-Cyrillic-Iotified-A : begin do "iotified a" glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig - foreach { suffix { body xTrailing } } [Object.entries DoubleStoreyConfig] : do + foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "cyrl/aIotified.\(suffix)" : glyph-proc define df : include : DivFrame para.diversityM 3 include : df.markSet.e local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] [body subDf df.mvs] + include : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] include : difference Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2) diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 242f8611a7..e8bdadebfc 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -18,32 +18,37 @@ glyph-block Letter-Latin-Lower-AE-OE : begin return { subDf shift } do "a subglyphs" - define [AAShape pShift df body o] : begin + define [AAShape body hookStyle pShift df o] : begin local { subDf shift } : SubDfAndShift pShift df o - return : with-transform [ApparentTranslate shift 0] [body subDf df.mvs] + return : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] glyph-block-import Letter-Latin-Lower-A : DoubleStorey define DoubleStoreyConfig : object - doubleStoreySerifless { DoubleStorey.Serifless } - doubleStoreySerifed { DoubleStorey.Serifed } - doubleStoreyTailed { DoubleStorey.Tailed } - doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner } - doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded } - - create-glyph "ae/a" : glyph-proc - local df : include : DivFrame para.diversityM 3 - include : df.markSet.e - set-base-anchor 'cvDecompose' 0 0 - include : AAShape 0 df DoubleStorey.ToothlessRounded 0 - - foreach { suffix { bodyR } } [Object.entries DoubleStoreyConfig] : do + doubleStoreySerifless { DoubleStorey.Serifless 1 } + doubleStoreySerifed { DoubleStorey.Serifed 1 } + doubleStoreyTailed { DoubleStorey.Tailed 1 } + doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner 1 } + doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded 1 } + doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless 2 } + doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed 2 } + doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed 2 } + doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner 2 } + doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded 2 } + + foreach { suffix { bodyR hookStyle } } [Object.entries DoubleStoreyConfig] : do + + create-glyph "ae/a.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + set-base-anchor 'cvDecompose' 0 0 + include : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df 0 create-glyph "aa.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.e - local [left] : AAShape 0 df DoubleStorey.ToothlessRounded - local [right] : AAShape 1 df bodyR + local [left] : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df + local [right] : AAShape bodyR hookStyle 1 df include : difference [right] : intersection MaskAbove (XH * OverlayPos * 1.02) union @@ -51,6 +56,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [left] with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [left] with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [left] + include : difference [left] : intersection MaskBelow (XH * OverlayPos * 1.02) union @@ -251,6 +257,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin select-variant "aa" 0xA733 (follow -- 'a/turnABase') + select-variant "ae/a" select-variant "ae/e" (follow -- 'e') select-variant "aeInvE/right" (follow -- 'e') select-variant "ue/u" diff --git a/font-src/glyphs/letter/latin/lower-a.ptl b/font-src/glyphs/letter/latin/lower-a.ptl index ec4956763d..8fc1d10373 100644 --- a/font-src/glyphs/letter/latin/lower-a.ptl +++ b/font-src/glyphs/letter/latin/lower-a.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-A : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition - glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight + glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook @@ -24,20 +24,30 @@ glyph-block Letter-Latin-Lower-A : begin local sw : ADoubleStoreyStroke df return : df.archDepthB (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw - define [ADoubleStoreyHookAndBarT df sink y0 stroke] : begin + define [ADoubleStoreyHookAndBarT sink df hookStyle y0 stroke] : begin local isMask : sink == spiro-outline return : sink widths.rhs stroke - g4 df.leftSB (XH - AHook) - hookstart (XH - O) (sw -- stroke) + match hookStyle + 1 : list + g4 df.leftSB (XH - AHook) + hookstart (XH - O) (sw -- stroke) + 2 : list + g4 df.leftSB (XH - DToothlessRise) + g4 (df.middle - CorrectionOMidX * stroke) (XH - O) flat df.rightSB (XH - [ADoubleStoreySmoothB df]) [if isMask corner curl] df.rightSB y0 [heading Downward] if [not isMask] {} {[corner df.leftSB y0]} - export : define [HookAndBar df y0 _stroke] : ADoubleStoreyHookAndBarT df dispiro y0 - fallback _stroke [ADoubleStoreyStroke df] - export : define [HookAndBarMask df y0 _stroke] : ADoubleStoreyHookAndBarT df spiro-outline y0 - fallback _stroke [ADoubleStoreyStroke df] + export : define [HookAndBar df hookStyle y0 _stroke] : glyph-proc + if ((hookStyle != 1) && (hookStyle != 2)) : throw : new Error "Invalid hookStyle" + local sw : fallback _stroke [ADoubleStoreyStroke df] + include : ADoubleStoreyHookAndBarT dispiro df hookStyle y0 sw + if (hookStyle == 2) : include : ArcStartSerif.L df.leftSB (XH - DToothlessRise) sw AHook + + export : define [HookAndBarMask df hookStyle y0 _stroke] : begin + local sw : fallback _stroke [ADoubleStoreyStroke df] + return : ADoubleStoreyHookAndBarT spiro-outline df hookStyle y0 sw define [ADoubleStoreyArcT df sink kind rise stroke] : glyph-proc local isMask : sink == spiro-outline @@ -76,21 +86,21 @@ glyph-block Letter-Latin-Lower-A : begin export : define [ArcMask df kind rise _sw] : ADoubleStoreyArcT df spiro-outline kind rise fallback _sw [ADoubleStoreyStroke df] - export : define [Serifless df sw] : union - HookAndBar df 0 sw + export : define [Serifless df hookStyle sw] : union + HookAndBar df hookStyle 0 sw Arc df 0 nothing nothing sw - export : define [Serifed df sw] : union - Serifless df sw + export : define [Serifed df hookStyle sw] : union + Serifless df hookStyle sw begin [SerifFrame.fromDf df XH 0].rb.outer - export : define [Tailed df sw] : union - HookAndBar df (XH - [ADoubleStoreySmoothB df] + O) sw + export : define [Tailed df hookStyle sw] : union + HookAndBar df hookStyle (XH - [ADoubleStoreySmoothB df] + O) sw Arc df 0 nothing nothing sw RightwardTailedBar df.rightSB 0 (XH - [ADoubleStoreySmoothB df]) (sw -- [fallback sw : ADoubleStoreyStroke df]) - export : define [ToothlessCorner df sw] : union - HookAndBar df DToothlessRise sw + export : define [ToothlessCorner df hookStyle sw] : union + HookAndBar df hookStyle DToothlessRise sw Arc df 1 DToothlessRise sw - export : define [ToothlessRounded df sw] : union - HookAndBar df [ADoubleStoreySmoothA df] sw + export : define [ToothlessRounded df hookStyle sw] : union + HookAndBar df hookStyle [ADoubleStoreySmoothA df] sw Arc df 2 [ADoubleStoreySmoothA df] sw export : define [GetMask shapeFn df sw] : match shapeFn @@ -99,27 +109,32 @@ glyph-block Letter-Latin-Lower-A : begin __ : ArcMask df 0 nothing nothing sw define DoubleStoreyConfig : object - doubleStoreySerifless { DoubleStorey.Serifless (RightSB ) } - doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) } - doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) } - doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing } - doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing } - - foreach { suffix { body xTrailing } } [Object.entries DoubleStoreyConfig] : do + doubleStoreySerifless { DoubleStorey.Serifless (RightSB ) 1 } + doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) 1 } + doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) 1 } + doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing 1 } + doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing 1 } + doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless (RightSB ) 2 } + doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed (RightSB + SideJut) 2 } + doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed (RightSB + SideJut) 2 } + doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner nothing 2 } + doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded nothing 2 } + + foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "a.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e if xTrailing : set-base-anchor 'trailing' xTrailing 0 - include : body df + include : body df hookStyle glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/a' 0x1D552 : glyph-proc local df : include : DivFrame 1 include : df.markSet.e - include : DoubleStorey.HookAndBar df 0 BBS + include : DoubleStorey.HookAndBar df 1 0 BBS include : intersection - DoubleStorey.HookAndBarMask df 0 + DoubleStorey.HookAndBarMask df 1 0 VBar.r (RightSB - BBD) 0 XH BBS include : difference union diff --git a/font-src/support/geometry/spiro-control.mjs b/font-src/support/geometry/spiro-control.mjs index ca5ca30814..55e3f79f8e 100644 --- a/font-src/support/geometry/spiro-control.mjs +++ b/font-src/support/geometry/spiro-control.mjs @@ -32,7 +32,7 @@ export class BiKnotCollector { this.controls.push(c); this.needsUnwrap = true; } else { - throw new Error("Invalid spiro control type"); + throw new Error("Invalid spiro control type " + String(c)); } } unwrap() { diff --git a/params/variants.toml b/params/variants.toml index 5a13c0584e..cfe723f37a 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1505,9 +1505,10 @@ descriptionLeader = "`a`" [prime.a.variants-buildup.stages.storey.double-storey] rank = 1 -next = "terminal" +next = "double-storey-hook" descriptionAffix = "double-storey body" selectorAffix.a = "doubleStorey" +selectorAffix."ae/a" = "doubleStorey" selectorAffix."a/sansSerif" = "doubleStorey" selectorAffix."a/rtailBase" = "doubleStorey" selectorAffix."a/turnABase" = "doubleStorey" @@ -1519,12 +1520,41 @@ rank = 2 next = "ear" descriptionAffix = "single-storey body" selectorAffix.a = "singleStorey" +selectorAffix."ae/a" = "doubleStorey" selectorAffix."a/sansSerif" = "singleStorey" selectorAffix."a/rtailBase" = "singleStorey" selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/single" = "singleStorey" selectorAffix.scripta = "singleStorey" +[prime.a.variants-buildup.stages.double-storey-hook."*"] +next = "terminal" + +[prime.a.variants-buildup.stages.double-storey-hook.hook-serifless] +rank = 1 +keyAffix = "" +descriptionAffix = "serifless hook" +selectorAffix.a = "" +selectorAffix."ae/a" = "" +selectorAffix."a/sansSerif" = "" +selectorAffix."a/rtailBase" = "" +selectorAffix."a/turnABase" = "" +selectorAffix."a/single" = "" +selectorAffix.scripta = "" + +[prime.a.variants-buildup.stages.double-storey-hook.hook-serifed] +rank = 2 +nonBreakingVariantAdditionPriority = 100 +keyAffix = "hook-inward-serifed" +descriptionAffix = "serifed hook" +selectorAffix.a = "hookInwardSerifed" +selectorAffix."ae/a" = "hookInwardSerifed" +selectorAffix."a/sansSerif" = "hookInwardSerifed" +selectorAffix."a/rtailBase" = "hookInwardSerifed" +selectorAffix."a/turnABase" = "hookInwardSerifed" +selectorAffix."a/single" = "" +selectorAffix.scripta = "" + [prime.a.variants-buildup.stages.ear."*"] next = "terminal" @@ -1532,6 +1562,7 @@ next = "terminal" rank = 1 keyAffix = "" selectorAffix.a = "" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "" selectorAffix."a/rtailBase" = "" selectorAffix."a/turnABase" = "" @@ -1542,6 +1573,7 @@ selectorAffix.scripta = "" rank = 2 descriptionAffix = "earless (cornered top-right)" selectorAffix.a = "earlessCorner" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "earlessCorner" selectorAffix."a/rtailBase" = "earlessCorner" selectorAffix."a/turnABase" = "" @@ -1552,6 +1584,7 @@ selectorAffix.scripta = "" rank = 3 descriptionAffix = "earless (rounded top-right)" selectorAffix.a = "earlessRounded" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "earlessRounded" selectorAffix."a/rtailBase" = "earlessRounded" selectorAffix."a/turnABase" = "" @@ -1563,6 +1596,7 @@ rank = 1 descriptionAffix = "serif at terminal" descriptionJoiner = "without" selectorAffix.a = "serifless" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "serifless" @@ -1573,6 +1607,7 @@ selectorAffix.scripta = "serifless" rank = 2 descriptionAffix = "curly tail" selectorAffix.a = "tailed" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "tailed" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "tailed" @@ -1584,6 +1619,7 @@ rank = 3 disableIf = [{ storey = "single-storey" }] descriptionAffix = "toothless (cornered bottom-right)" selectorAffix.a = "toothlessCorner" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "toothlessCorner" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "toothlessCorner" @@ -1595,6 +1631,7 @@ rank = 4 disableIf = [{ storey = "single-storey" }] descriptionAffix = "toothless (rounded bottom-right)" selectorAffix.a = "toothlessRounded" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "toothlessRounded" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "toothlessRounded" @@ -1605,6 +1642,7 @@ selectorAffix.scripta = "serifless" rank = 5 descriptionAffix = "serif at terminal" selectorAffix.a = "serifed" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "serifed" From 3c122b72a0f05173f4e1f2af3f8aa2954a4f5acb Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Nov 2023 15:27:39 -0800 Subject: [PATCH 02/59] Cleanup --- changes/{ => archives/27.x}/27.0.0.md | 0 changes/{ => archives/27.x}/27.0.1.md | 0 changes/{ => archives/27.x}/27.0.2.md | 0 changes/{ => archives/27.x}/27.1.0.md | 0 changes/{ => archives/27.x}/27.2.0.md | 0 changes/{ => archives/27.x}/27.2.1.md | 0 changes/{ => archives/27.x}/27.3.0.md | 0 changes/{ => archives/27.x}/27.3.1.md | 0 changes/{ => archives/27.x}/27.3.2.md | 0 changes/{ => archives/27.x}/27.3.3.md | 0 changes/{ => archives/27.x}/27.3.4.md | 0 changes/{ => archives/27.x}/27.3.5.md | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename changes/{ => archives/27.x}/27.0.0.md (100%) rename changes/{ => archives/27.x}/27.0.1.md (100%) rename changes/{ => archives/27.x}/27.0.2.md (100%) rename changes/{ => archives/27.x}/27.1.0.md (100%) rename changes/{ => archives/27.x}/27.2.0.md (100%) rename changes/{ => archives/27.x}/27.2.1.md (100%) rename changes/{ => archives/27.x}/27.3.0.md (100%) rename changes/{ => archives/27.x}/27.3.1.md (100%) rename changes/{ => archives/27.x}/27.3.2.md (100%) rename changes/{ => archives/27.x}/27.3.3.md (100%) rename changes/{ => archives/27.x}/27.3.4.md (100%) rename changes/{ => archives/27.x}/27.3.5.md (100%) diff --git a/changes/27.0.0.md b/changes/archives/27.x/27.0.0.md similarity index 100% rename from changes/27.0.0.md rename to changes/archives/27.x/27.0.0.md diff --git a/changes/27.0.1.md b/changes/archives/27.x/27.0.1.md similarity index 100% rename from changes/27.0.1.md rename to changes/archives/27.x/27.0.1.md diff --git a/changes/27.0.2.md b/changes/archives/27.x/27.0.2.md similarity index 100% rename from changes/27.0.2.md rename to changes/archives/27.x/27.0.2.md diff --git a/changes/27.1.0.md b/changes/archives/27.x/27.1.0.md similarity index 100% rename from changes/27.1.0.md rename to changes/archives/27.x/27.1.0.md diff --git a/changes/27.2.0.md b/changes/archives/27.x/27.2.0.md similarity index 100% rename from changes/27.2.0.md rename to changes/archives/27.x/27.2.0.md diff --git a/changes/27.2.1.md b/changes/archives/27.x/27.2.1.md similarity index 100% rename from changes/27.2.1.md rename to changes/archives/27.x/27.2.1.md diff --git a/changes/27.3.0.md b/changes/archives/27.x/27.3.0.md similarity index 100% rename from changes/27.3.0.md rename to changes/archives/27.x/27.3.0.md diff --git a/changes/27.3.1.md b/changes/archives/27.x/27.3.1.md similarity index 100% rename from changes/27.3.1.md rename to changes/archives/27.x/27.3.1.md diff --git a/changes/27.3.2.md b/changes/archives/27.x/27.3.2.md similarity index 100% rename from changes/27.3.2.md rename to changes/archives/27.x/27.3.2.md diff --git a/changes/27.3.3.md b/changes/archives/27.x/27.3.3.md similarity index 100% rename from changes/27.3.3.md rename to changes/archives/27.x/27.3.3.md diff --git a/changes/27.3.4.md b/changes/archives/27.x/27.3.4.md similarity index 100% rename from changes/27.3.4.md rename to changes/archives/27.x/27.3.4.md diff --git a/changes/27.3.5.md b/changes/archives/27.x/27.3.5.md similarity index 100% rename from changes/27.3.5.md rename to changes/archives/27.x/27.3.5.md From 8dbb7c6e23fd324b3ad1defdec803f2886a640ce Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Nov 2023 17:12:56 -0800 Subject: [PATCH 03/59] Initial filename work --- build-plans.toml | 504 ++++----- changes/28.0.0-alpha.1.md | 3 + images/cs-block-cyrillic-extendedd.dark.svg | 481 --------- images/cs-block-cyrillic-extendedd.light.svg | 481 --------- images/cs-block-latin-extendedf.dark.svg | 357 ------- images/cs-block-latin-extendedf.light.svg | 357 ------- images/cs-block-latin-extendedg.dark.svg | 998 ------------------ images/cs-block-latin-extendedg.light.svg | 998 ------------------ ...torey-hook-inward-serifed-serifed.dark.svg | 9 + ...orey-hook-inward-serifed-serifed.light.svg | 9 + ...rey-hook-inward-serifed-serifless.dark.svg | 9 + ...ey-hook-inward-serifed-serifless.light.svg | 9 + ...storey-hook-inward-serifed-tailed.dark.svg | 9 + ...torey-hook-inward-serifed-tailed.light.svg | 9 + ...k-inward-serifed-toothless-corner.dark.svg | 9 + ...-inward-serifed-toothless-corner.light.svg | 9 + ...-inward-serifed-toothless-rounded.dark.svg | 9 + ...inward-serifed-toothless-rounded.light.svg | 9 + ...cv-capital-r-curly-motion-serifed.dark.svg | 9 - ...v-capital-r-curly-motion-serifed.light.svg | 9 - ...pital-r-curly-open-motion-serifed.dark.svg | 9 - ...ital-r-curly-open-motion-serifed.light.svg | 9 - ...capital-r-standing-motion-serifed.dark.svg | 9 - ...apital-r-standing-motion-serifed.light.svg | 9 - ...al-r-standing-open-motion-serifed.dark.svg | 9 - ...l-r-standing-open-motion-serifed.light.svg | 9 - ...capital-r-straight-motion-serifed.dark.svg | 9 - ...apital-r-straight-motion-serifed.light.svg | 9 - ...al-r-straight-open-motion-serifed.dark.svg | 9 - ...l-r-straight-open-motion-serifed.light.svg | 9 - .../cv-five-oblique-upper-left-bar.dark.svg | 9 - .../cv-five-oblique-upper-left-bar.light.svg | 9 - .../cv-five-vertical-upper-left-bar.dark.svg | 9 - .../cv-five-vertical-upper-left-bar.light.svg | 9 - ...lpha-tailed-barred-earless-corner.dark.svg | 9 - ...pha-tailed-barred-earless-corner.light.svg | 9 - images/cv-lower-alpha-tailed-barred.dark.svg | 9 - images/cv-lower-alpha-tailed-barred.light.svg | 9 - ...rk.svg => package-sample-Iosevka.dark.svg} | 0 ...t.svg => package-sample-Iosevka.light.svg} | 0 ...vg => package-sample-IosevkaAile.dark.svg} | 0 ...g => package-sample-IosevkaAile.light.svg} | 0 ...g => package-sample-IosevkaCurly.dark.svg} | 0 ... => package-sample-IosevkaCurly.light.svg} | 0 ... package-sample-IosevkaCurlySlab.dark.svg} | 0 ...package-sample-IosevkaCurlySlab.light.svg} | 0 ... => package-sample-IosevkaEtoile.dark.svg} | 0 ...=> package-sample-IosevkaEtoile.light.svg} | 0 ...g => package-sample-IosevkaFixed.dark.svg} | 0 ... => package-sample-IosevkaFixed.light.svg} | 0 ...package-sample-IosevkaFixedCurly.dark.svg} | 0 ...ackage-sample-IosevkaFixedCurly.light.svg} | 0 ...age-sample-IosevkaFixedCurlySlab.dark.svg} | 0 ...ge-sample-IosevkaFixedCurlySlab.light.svg} | 0 ... package-sample-IosevkaFixedSS01.dark.svg} | 0 ...package-sample-IosevkaFixedSS01.light.svg} | 0 ... package-sample-IosevkaFixedSS02.dark.svg} | 0 ...package-sample-IosevkaFixedSS02.light.svg} | 0 ... package-sample-IosevkaFixedSS03.dark.svg} | 0 ...package-sample-IosevkaFixedSS03.light.svg} | 0 ... package-sample-IosevkaFixedSS04.dark.svg} | 0 ...package-sample-IosevkaFixedSS04.light.svg} | 0 ... package-sample-IosevkaFixedSS05.dark.svg} | 0 ...package-sample-IosevkaFixedSS05.light.svg} | 0 ... package-sample-IosevkaFixedSS06.dark.svg} | 0 ...package-sample-IosevkaFixedSS06.light.svg} | 0 ... package-sample-IosevkaFixedSS07.dark.svg} | 0 ...package-sample-IosevkaFixedSS07.light.svg} | 0 ... package-sample-IosevkaFixedSS08.dark.svg} | 0 ...package-sample-IosevkaFixedSS08.light.svg} | 0 ... package-sample-IosevkaFixedSS09.dark.svg} | 0 ...package-sample-IosevkaFixedSS09.light.svg} | 0 ... package-sample-IosevkaFixedSS10.dark.svg} | 0 ...package-sample-IosevkaFixedSS10.light.svg} | 0 ... package-sample-IosevkaFixedSS11.dark.svg} | 0 ...package-sample-IosevkaFixedSS11.light.svg} | 0 ... package-sample-IosevkaFixedSS12.dark.svg} | 0 ...package-sample-IosevkaFixedSS12.light.svg} | 0 ... package-sample-IosevkaFixedSS13.dark.svg} | 0 ...package-sample-IosevkaFixedSS13.light.svg} | 0 ... package-sample-IosevkaFixedSS14.dark.svg} | 0 ...package-sample-IosevkaFixedSS14.light.svg} | 0 ... package-sample-IosevkaFixedSS15.dark.svg} | 0 ...package-sample-IosevkaFixedSS15.light.svg} | 0 ... package-sample-IosevkaFixedSS16.dark.svg} | 0 ...package-sample-IosevkaFixedSS16.light.svg} | 0 ... package-sample-IosevkaFixedSS17.dark.svg} | 0 ...package-sample-IosevkaFixedSS17.light.svg} | 0 ... package-sample-IosevkaFixedSS18.dark.svg} | 0 ...package-sample-IosevkaFixedSS18.light.svg} | 0 ... package-sample-IosevkaFixedSlab.dark.svg} | 0 ...package-sample-IosevkaFixedSlab.light.svg} | 0 ...vg => package-sample-IosevkaSS01.dark.svg} | 0 ...g => package-sample-IosevkaSS01.light.svg} | 0 ...vg => package-sample-IosevkaSS02.dark.svg} | 0 ...g => package-sample-IosevkaSS02.light.svg} | 0 ...vg => package-sample-IosevkaSS03.dark.svg} | 0 ...g => package-sample-IosevkaSS03.light.svg} | 0 ...vg => package-sample-IosevkaSS04.dark.svg} | 0 ...g => package-sample-IosevkaSS04.light.svg} | 0 ...vg => package-sample-IosevkaSS05.dark.svg} | 0 ...g => package-sample-IosevkaSS05.light.svg} | 0 ...vg => package-sample-IosevkaSS06.dark.svg} | 0 ...g => package-sample-IosevkaSS06.light.svg} | 0 ...vg => package-sample-IosevkaSS07.dark.svg} | 0 ...g => package-sample-IosevkaSS07.light.svg} | 0 ...vg => package-sample-IosevkaSS08.dark.svg} | 0 ...g => package-sample-IosevkaSS08.light.svg} | 0 ...vg => package-sample-IosevkaSS09.dark.svg} | 0 ...g => package-sample-IosevkaSS09.light.svg} | 0 ...vg => package-sample-IosevkaSS10.dark.svg} | 0 ...g => package-sample-IosevkaSS10.light.svg} | 0 ...vg => package-sample-IosevkaSS11.dark.svg} | 0 ...g => package-sample-IosevkaSS11.light.svg} | 0 ...vg => package-sample-IosevkaSS12.dark.svg} | 0 ...g => package-sample-IosevkaSS12.light.svg} | 0 ...vg => package-sample-IosevkaSS13.dark.svg} | 0 ...g => package-sample-IosevkaSS13.light.svg} | 0 ...vg => package-sample-IosevkaSS14.dark.svg} | 0 ...g => package-sample-IosevkaSS14.light.svg} | 0 ...vg => package-sample-IosevkaSS15.dark.svg} | 0 ...g => package-sample-IosevkaSS15.light.svg} | 0 ...vg => package-sample-IosevkaSS16.dark.svg} | 0 ...g => package-sample-IosevkaSS16.light.svg} | 0 ...vg => package-sample-IosevkaSS17.dark.svg} | 0 ...g => package-sample-IosevkaSS17.light.svg} | 0 ...vg => package-sample-IosevkaSS18.dark.svg} | 0 ...g => package-sample-IosevkaSS18.light.svg} | 0 ...vg => package-sample-IosevkaSlab.dark.svg} | 0 ...g => package-sample-IosevkaSlab.light.svg} | 0 ...vg => package-sample-IosevkaTerm.dark.svg} | 0 ...g => package-sample-IosevkaTerm.light.svg} | 0 ... package-sample-IosevkaTermCurly.dark.svg} | 0 ...package-sample-IosevkaTermCurly.light.svg} | 0 ...kage-sample-IosevkaTermCurlySlab.dark.svg} | 0 ...age-sample-IosevkaTermCurlySlab.light.svg} | 0 ...> package-sample-IosevkaTermSS01.dark.svg} | 0 ... package-sample-IosevkaTermSS01.light.svg} | 0 ...> package-sample-IosevkaTermSS02.dark.svg} | 0 ... package-sample-IosevkaTermSS02.light.svg} | 0 ...> package-sample-IosevkaTermSS03.dark.svg} | 0 ... package-sample-IosevkaTermSS03.light.svg} | 0 ...> package-sample-IosevkaTermSS04.dark.svg} | 0 ... package-sample-IosevkaTermSS04.light.svg} | 0 ...> package-sample-IosevkaTermSS05.dark.svg} | 0 ... package-sample-IosevkaTermSS05.light.svg} | 0 ...> package-sample-IosevkaTermSS06.dark.svg} | 0 ... package-sample-IosevkaTermSS06.light.svg} | 0 ...> package-sample-IosevkaTermSS07.dark.svg} | 0 ... package-sample-IosevkaTermSS07.light.svg} | 0 ...> package-sample-IosevkaTermSS08.dark.svg} | 0 ... package-sample-IosevkaTermSS08.light.svg} | 0 ...> package-sample-IosevkaTermSS09.dark.svg} | 0 ... package-sample-IosevkaTermSS09.light.svg} | 0 ...> package-sample-IosevkaTermSS10.dark.svg} | 0 ... package-sample-IosevkaTermSS10.light.svg} | 0 ...> package-sample-IosevkaTermSS11.dark.svg} | 0 ... package-sample-IosevkaTermSS11.light.svg} | 0 ...> package-sample-IosevkaTermSS12.dark.svg} | 0 ... package-sample-IosevkaTermSS12.light.svg} | 0 ...> package-sample-IosevkaTermSS13.dark.svg} | 0 ... package-sample-IosevkaTermSS13.light.svg} | 0 ...> package-sample-IosevkaTermSS14.dark.svg} | 0 ... package-sample-IosevkaTermSS14.light.svg} | 0 ...> package-sample-IosevkaTermSS15.dark.svg} | 0 ... package-sample-IosevkaTermSS15.light.svg} | 0 ...> package-sample-IosevkaTermSS16.dark.svg} | 0 ... package-sample-IosevkaTermSS16.light.svg} | 0 ...> package-sample-IosevkaTermSS17.dark.svg} | 0 ... package-sample-IosevkaTermSS17.light.svg} | 0 ...> package-sample-IosevkaTermSS18.dark.svg} | 0 ... package-sample-IosevkaTermSS18.light.svg} | 0 ...> package-sample-IosevkaTermSlab.dark.svg} | 0 ... package-sample-IosevkaTermSlab.light.svg} | 0 .../generate-release-note/package-list.mjs | 16 +- utility/generate-samples/index.mjs | 2 +- utility/make-webfont-css.mjs | 4 +- verdafile.mjs | 110 +- 178 files changed, 411 insertions(+), 4170 deletions(-) delete mode 100644 images/cs-block-cyrillic-extendedd.dark.svg delete mode 100644 images/cs-block-cyrillic-extendedd.light.svg delete mode 100644 images/cs-block-latin-extendedf.dark.svg delete mode 100644 images/cs-block-latin-extendedf.light.svg delete mode 100644 images/cs-block-latin-extendedg.dark.svg delete mode 100644 images/cs-block-latin-extendedg.light.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg create mode 100644 images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg delete mode 100644 images/cv-capital-r-curly-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-curly-motion-serifed.light.svg delete mode 100644 images/cv-capital-r-curly-open-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-curly-open-motion-serifed.light.svg delete mode 100644 images/cv-capital-r-standing-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-standing-motion-serifed.light.svg delete mode 100644 images/cv-capital-r-standing-open-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-standing-open-motion-serifed.light.svg delete mode 100644 images/cv-capital-r-straight-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-straight-motion-serifed.light.svg delete mode 100644 images/cv-capital-r-straight-open-motion-serifed.dark.svg delete mode 100644 images/cv-capital-r-straight-open-motion-serifed.light.svg delete mode 100644 images/cv-five-oblique-upper-left-bar.dark.svg delete mode 100644 images/cv-five-oblique-upper-left-bar.light.svg delete mode 100644 images/cv-five-vertical-upper-left-bar.dark.svg delete mode 100644 images/cv-five-vertical-upper-left-bar.light.svg delete mode 100644 images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg delete mode 100644 images/cv-lower-alpha-tailed-barred-earless-corner.light.svg delete mode 100644 images/cv-lower-alpha-tailed-barred.dark.svg delete mode 100644 images/cv-lower-alpha-tailed-barred.light.svg rename images/{iosevka-fixed.dark.svg => package-sample-Iosevka.dark.svg} (100%) rename images/{iosevka-fixed.light.svg => package-sample-Iosevka.light.svg} (100%) rename images/{iosevka-aile.dark.svg => package-sample-IosevkaAile.dark.svg} (100%) rename images/{iosevka-aile.light.svg => package-sample-IosevkaAile.light.svg} (100%) rename images/{iosevka-curly.dark.svg => package-sample-IosevkaCurly.dark.svg} (100%) rename images/{iosevka-curly.light.svg => package-sample-IosevkaCurly.light.svg} (100%) rename images/{iosevka-curly-slab.dark.svg => package-sample-IosevkaCurlySlab.dark.svg} (100%) rename images/{iosevka-curly-slab.light.svg => package-sample-IosevkaCurlySlab.light.svg} (100%) rename images/{iosevka-etoile.dark.svg => package-sample-IosevkaEtoile.dark.svg} (100%) rename images/{iosevka-etoile.light.svg => package-sample-IosevkaEtoile.light.svg} (100%) rename images/{iosevka-term.dark.svg => package-sample-IosevkaFixed.dark.svg} (100%) rename images/{iosevka-term.light.svg => package-sample-IosevkaFixed.light.svg} (100%) rename images/{iosevka-fixed-curly.dark.svg => package-sample-IosevkaFixedCurly.dark.svg} (100%) rename images/{iosevka-fixed-curly.light.svg => package-sample-IosevkaFixedCurly.light.svg} (100%) rename images/{iosevka-fixed-curly-slab.dark.svg => package-sample-IosevkaFixedCurlySlab.dark.svg} (100%) rename images/{iosevka-fixed-curly-slab.light.svg => package-sample-IosevkaFixedCurlySlab.light.svg} (100%) rename images/{iosevka-fixed-ss01.dark.svg => package-sample-IosevkaFixedSS01.dark.svg} (100%) rename images/{iosevka-fixed-ss01.light.svg => package-sample-IosevkaFixedSS01.light.svg} (100%) rename images/{iosevka-fixed-ss02.dark.svg => package-sample-IosevkaFixedSS02.dark.svg} (100%) rename images/{iosevka-fixed-ss02.light.svg => package-sample-IosevkaFixedSS02.light.svg} (100%) rename images/{iosevka-fixed-ss03.dark.svg => package-sample-IosevkaFixedSS03.dark.svg} (100%) rename images/{iosevka-fixed-ss03.light.svg => package-sample-IosevkaFixedSS03.light.svg} (100%) rename images/{iosevka-fixed-ss04.dark.svg => package-sample-IosevkaFixedSS04.dark.svg} (100%) rename images/{iosevka-fixed-ss04.light.svg => package-sample-IosevkaFixedSS04.light.svg} (100%) rename images/{iosevka-fixed-ss05.dark.svg => package-sample-IosevkaFixedSS05.dark.svg} (100%) rename images/{iosevka-fixed-ss05.light.svg => package-sample-IosevkaFixedSS05.light.svg} (100%) rename images/{iosevka-fixed-ss06.dark.svg => package-sample-IosevkaFixedSS06.dark.svg} (100%) rename images/{iosevka-fixed-ss06.light.svg => package-sample-IosevkaFixedSS06.light.svg} (100%) rename images/{iosevka-fixed-ss07.dark.svg => package-sample-IosevkaFixedSS07.dark.svg} (100%) rename images/{iosevka-fixed-ss07.light.svg => package-sample-IosevkaFixedSS07.light.svg} (100%) rename images/{iosevka-fixed-ss08.dark.svg => package-sample-IosevkaFixedSS08.dark.svg} (100%) rename images/{iosevka-fixed-ss08.light.svg => package-sample-IosevkaFixedSS08.light.svg} (100%) rename images/{iosevka-fixed-ss09.dark.svg => package-sample-IosevkaFixedSS09.dark.svg} (100%) rename images/{iosevka-fixed-ss09.light.svg => package-sample-IosevkaFixedSS09.light.svg} (100%) rename images/{iosevka-fixed-ss10.dark.svg => package-sample-IosevkaFixedSS10.dark.svg} (100%) rename images/{iosevka-fixed-ss10.light.svg => package-sample-IosevkaFixedSS10.light.svg} (100%) rename images/{iosevka-fixed-ss11.dark.svg => package-sample-IosevkaFixedSS11.dark.svg} (100%) rename images/{iosevka-fixed-ss11.light.svg => package-sample-IosevkaFixedSS11.light.svg} (100%) rename images/{iosevka-fixed-ss12.dark.svg => package-sample-IosevkaFixedSS12.dark.svg} (100%) rename images/{iosevka-fixed-ss12.light.svg => package-sample-IosevkaFixedSS12.light.svg} (100%) rename images/{iosevka-fixed-ss13.dark.svg => package-sample-IosevkaFixedSS13.dark.svg} (100%) rename images/{iosevka-fixed-ss13.light.svg => package-sample-IosevkaFixedSS13.light.svg} (100%) rename images/{iosevka-fixed-ss14.dark.svg => package-sample-IosevkaFixedSS14.dark.svg} (100%) rename images/{iosevka-fixed-ss14.light.svg => package-sample-IosevkaFixedSS14.light.svg} (100%) rename images/{iosevka-fixed-ss15.dark.svg => package-sample-IosevkaFixedSS15.dark.svg} (100%) rename images/{iosevka-fixed-ss15.light.svg => package-sample-IosevkaFixedSS15.light.svg} (100%) rename images/{iosevka-fixed-ss16.dark.svg => package-sample-IosevkaFixedSS16.dark.svg} (100%) rename images/{iosevka-fixed-ss16.light.svg => package-sample-IosevkaFixedSS16.light.svg} (100%) rename images/{iosevka-fixed-ss17.dark.svg => package-sample-IosevkaFixedSS17.dark.svg} (100%) rename images/{iosevka-fixed-ss17.light.svg => package-sample-IosevkaFixedSS17.light.svg} (100%) rename images/{iosevka-fixed-ss18.dark.svg => package-sample-IosevkaFixedSS18.dark.svg} (100%) rename images/{iosevka-fixed-ss18.light.svg => package-sample-IosevkaFixedSS18.light.svg} (100%) rename images/{iosevka-fixed-slab.dark.svg => package-sample-IosevkaFixedSlab.dark.svg} (100%) rename images/{iosevka-fixed-slab.light.svg => package-sample-IosevkaFixedSlab.light.svg} (100%) rename images/{iosevka-ss01.dark.svg => package-sample-IosevkaSS01.dark.svg} (100%) rename images/{iosevka-ss01.light.svg => package-sample-IosevkaSS01.light.svg} (100%) rename images/{iosevka-ss02.dark.svg => package-sample-IosevkaSS02.dark.svg} (100%) rename images/{iosevka-ss02.light.svg => package-sample-IosevkaSS02.light.svg} (100%) rename images/{iosevka-ss03.dark.svg => package-sample-IosevkaSS03.dark.svg} (100%) rename images/{iosevka-ss03.light.svg => package-sample-IosevkaSS03.light.svg} (100%) rename images/{iosevka-ss04.dark.svg => package-sample-IosevkaSS04.dark.svg} (100%) rename images/{iosevka-ss04.light.svg => package-sample-IosevkaSS04.light.svg} (100%) rename images/{iosevka-ss05.dark.svg => package-sample-IosevkaSS05.dark.svg} (100%) rename images/{iosevka-ss05.light.svg => package-sample-IosevkaSS05.light.svg} (100%) rename images/{iosevka-ss06.dark.svg => package-sample-IosevkaSS06.dark.svg} (100%) rename images/{iosevka-ss06.light.svg => package-sample-IosevkaSS06.light.svg} (100%) rename images/{iosevka-ss07.dark.svg => package-sample-IosevkaSS07.dark.svg} (100%) rename images/{iosevka-ss07.light.svg => package-sample-IosevkaSS07.light.svg} (100%) rename images/{iosevka-ss08.dark.svg => package-sample-IosevkaSS08.dark.svg} (100%) rename images/{iosevka-ss08.light.svg => package-sample-IosevkaSS08.light.svg} (100%) rename images/{iosevka-ss09.dark.svg => package-sample-IosevkaSS09.dark.svg} (100%) rename images/{iosevka-ss09.light.svg => package-sample-IosevkaSS09.light.svg} (100%) rename images/{iosevka-ss10.dark.svg => package-sample-IosevkaSS10.dark.svg} (100%) rename images/{iosevka-ss10.light.svg => package-sample-IosevkaSS10.light.svg} (100%) rename images/{iosevka-ss11.dark.svg => package-sample-IosevkaSS11.dark.svg} (100%) rename images/{iosevka-ss11.light.svg => package-sample-IosevkaSS11.light.svg} (100%) rename images/{iosevka-ss12.dark.svg => package-sample-IosevkaSS12.dark.svg} (100%) rename images/{iosevka-ss12.light.svg => package-sample-IosevkaSS12.light.svg} (100%) rename images/{iosevka-ss13.dark.svg => package-sample-IosevkaSS13.dark.svg} (100%) rename images/{iosevka-ss13.light.svg => package-sample-IosevkaSS13.light.svg} (100%) rename images/{iosevka-ss14.dark.svg => package-sample-IosevkaSS14.dark.svg} (100%) rename images/{iosevka-ss14.light.svg => package-sample-IosevkaSS14.light.svg} (100%) rename images/{iosevka-ss15.dark.svg => package-sample-IosevkaSS15.dark.svg} (100%) rename images/{iosevka-ss15.light.svg => package-sample-IosevkaSS15.light.svg} (100%) rename images/{iosevka-ss16.dark.svg => package-sample-IosevkaSS16.dark.svg} (100%) rename images/{iosevka-ss16.light.svg => package-sample-IosevkaSS16.light.svg} (100%) rename images/{iosevka-ss17.dark.svg => package-sample-IosevkaSS17.dark.svg} (100%) rename images/{iosevka-ss17.light.svg => package-sample-IosevkaSS17.light.svg} (100%) rename images/{iosevka-ss18.dark.svg => package-sample-IosevkaSS18.dark.svg} (100%) rename images/{iosevka-ss18.light.svg => package-sample-IosevkaSS18.light.svg} (100%) rename images/{iosevka-slab.dark.svg => package-sample-IosevkaSlab.dark.svg} (100%) rename images/{iosevka-slab.light.svg => package-sample-IosevkaSlab.light.svg} (100%) rename images/{iosevka.dark.svg => package-sample-IosevkaTerm.dark.svg} (100%) rename images/{iosevka.light.svg => package-sample-IosevkaTerm.light.svg} (100%) rename images/{iosevka-term-curly.dark.svg => package-sample-IosevkaTermCurly.dark.svg} (100%) rename images/{iosevka-term-curly.light.svg => package-sample-IosevkaTermCurly.light.svg} (100%) rename images/{iosevka-term-curly-slab.dark.svg => package-sample-IosevkaTermCurlySlab.dark.svg} (100%) rename images/{iosevka-term-curly-slab.light.svg => package-sample-IosevkaTermCurlySlab.light.svg} (100%) rename images/{iosevka-term-ss01.dark.svg => package-sample-IosevkaTermSS01.dark.svg} (100%) rename images/{iosevka-term-ss01.light.svg => package-sample-IosevkaTermSS01.light.svg} (100%) rename images/{iosevka-term-ss02.dark.svg => package-sample-IosevkaTermSS02.dark.svg} (100%) rename images/{iosevka-term-ss02.light.svg => package-sample-IosevkaTermSS02.light.svg} (100%) rename images/{iosevka-term-ss03.dark.svg => package-sample-IosevkaTermSS03.dark.svg} (100%) rename images/{iosevka-term-ss03.light.svg => package-sample-IosevkaTermSS03.light.svg} (100%) rename images/{iosevka-term-ss04.dark.svg => package-sample-IosevkaTermSS04.dark.svg} (100%) rename images/{iosevka-term-ss04.light.svg => package-sample-IosevkaTermSS04.light.svg} (100%) rename images/{iosevka-term-ss05.dark.svg => package-sample-IosevkaTermSS05.dark.svg} (100%) rename images/{iosevka-term-ss05.light.svg => package-sample-IosevkaTermSS05.light.svg} (100%) rename images/{iosevka-term-ss06.dark.svg => package-sample-IosevkaTermSS06.dark.svg} (100%) rename images/{iosevka-term-ss06.light.svg => package-sample-IosevkaTermSS06.light.svg} (100%) rename images/{iosevka-term-ss07.dark.svg => package-sample-IosevkaTermSS07.dark.svg} (100%) rename images/{iosevka-term-ss07.light.svg => package-sample-IosevkaTermSS07.light.svg} (100%) rename images/{iosevka-term-ss08.dark.svg => package-sample-IosevkaTermSS08.dark.svg} (100%) rename images/{iosevka-term-ss08.light.svg => package-sample-IosevkaTermSS08.light.svg} (100%) rename images/{iosevka-term-ss09.dark.svg => package-sample-IosevkaTermSS09.dark.svg} (100%) rename images/{iosevka-term-ss09.light.svg => package-sample-IosevkaTermSS09.light.svg} (100%) rename images/{iosevka-term-ss10.dark.svg => package-sample-IosevkaTermSS10.dark.svg} (100%) rename images/{iosevka-term-ss10.light.svg => package-sample-IosevkaTermSS10.light.svg} (100%) rename images/{iosevka-term-ss11.dark.svg => package-sample-IosevkaTermSS11.dark.svg} (100%) rename images/{iosevka-term-ss11.light.svg => package-sample-IosevkaTermSS11.light.svg} (100%) rename images/{iosevka-term-ss12.dark.svg => package-sample-IosevkaTermSS12.dark.svg} (100%) rename images/{iosevka-term-ss12.light.svg => package-sample-IosevkaTermSS12.light.svg} (100%) rename images/{iosevka-term-ss13.dark.svg => package-sample-IosevkaTermSS13.dark.svg} (100%) rename images/{iosevka-term-ss13.light.svg => package-sample-IosevkaTermSS13.light.svg} (100%) rename images/{iosevka-term-ss14.dark.svg => package-sample-IosevkaTermSS14.dark.svg} (100%) rename images/{iosevka-term-ss14.light.svg => package-sample-IosevkaTermSS14.light.svg} (100%) rename images/{iosevka-term-ss15.dark.svg => package-sample-IosevkaTermSS15.dark.svg} (100%) rename images/{iosevka-term-ss15.light.svg => package-sample-IosevkaTermSS15.light.svg} (100%) rename images/{iosevka-term-ss16.dark.svg => package-sample-IosevkaTermSS16.dark.svg} (100%) rename images/{iosevka-term-ss16.light.svg => package-sample-IosevkaTermSS16.light.svg} (100%) rename images/{iosevka-term-ss17.dark.svg => package-sample-IosevkaTermSS17.dark.svg} (100%) rename images/{iosevka-term-ss17.light.svg => package-sample-IosevkaTermSS17.light.svg} (100%) rename images/{iosevka-term-ss18.dark.svg => package-sample-IosevkaTermSS18.dark.svg} (100%) rename images/{iosevka-term-ss18.light.svg => package-sample-IosevkaTermSS18.light.svg} (100%) rename images/{iosevka-term-slab.dark.svg => package-sample-IosevkaTermSlab.dark.svg} (100%) rename images/{iosevka-term-slab.light.svg => package-sample-IosevkaTermSlab.light.svg} (100%) diff --git a/build-plans.toml b/build-plans.toml index f545dbe5fb..1152449631 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -4,7 +4,7 @@ optimizeWithTtx = false # Building plans # Sans -[buildPlans.iosevka] +[buildPlans.Iosevka] family = "Iosevka" desc = "Default" buildCharMap = true @@ -12,14 +12,14 @@ snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 0} export-glyph-names = true -[buildPlans.iosevka-term] +[buildPlans.IosevkaTerm] family = "Iosevka Term" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} export-glyph-names = true -[buildPlans.iosevka-fixed] +[buildPlans.IosevkaFixed] family = "Iosevka Fixed" spacing = "fixed" snapshotFamily = 'Iosevka' @@ -27,7 +27,7 @@ snapshotFeature = {"NWID" = 1} export-glyph-names = true # Slab -[buildPlans.iosevka-slab] +[buildPlans.IosevkaSlab] family = "Iosevka Slab" desc = "Slab-serif" serifs = "slab" @@ -35,7 +35,7 @@ snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 0} export-glyph-names = true -[buildPlans.iosevka-term-slab] +[buildPlans.IosevkaTermSlab] family = "Iosevka Term Slab" serifs = "slab" spacing = "term" @@ -43,7 +43,7 @@ snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} export-glyph-names = true -[buildPlans.iosevka-fixed-slab] +[buildPlans.IosevkaFixedSlab] family = "Iosevka Fixed Slab" serifs = "slab" spacing = "fixed" @@ -52,628 +52,628 @@ snapshotFeature = {"NWID" = 1} export-glyph-names = true # Curly -[buildPlans.iosevka-curly] +[buildPlans.IosevkaCurly] family = "Iosevka Curly" desc = "Curly Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-curly.variants] +[buildPlans.IosevkaCurly.variants] inherits = "ss20" -[buildPlans.iosevka-term-curly] +[buildPlans.IosevkaTermCurly] family = "Iosevka Term Curly" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-term-curly.variants] +[buildPlans.IosevkaTermCurly.variants] inherits = "ss20" -[buildPlans.iosevka-fixed-curly] +[buildPlans.IosevkaFixedCurly] family = "Iosevka Fixed Curly" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-fixed-curly.variants] +[buildPlans.IosevkaFixedCurly.variants] inherits = "ss20" # Curly Slab -[buildPlans.iosevka-curly-slab] +[buildPlans.IosevkaCurlySlab] family = "Iosevka Curly Slab" desc = "Curly Style, Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-curly-slab.variants] +[buildPlans.IosevkaCurlySlab.variants] inherits = "ss20" -[buildPlans.iosevka-term-curly-slab] +[buildPlans.IosevkaTermCurlySlab] family = "Iosevka Term Curly Slab" serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-term-curly-slab.variants] +[buildPlans.IosevkaTermCurlySlab.variants] inherits = "ss20" -[buildPlans.iosevka-fixed-curly-slab] +[buildPlans.IosevkaFixedCurlySlab] family = "Iosevka Fixed Curly Slab" serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} export-glyph-names = true -[buildPlans.iosevka-fixed-curly-slab.variants] +[buildPlans.IosevkaFixedCurlySlab.variants] inherits = "ss20" ################################################################################################### # SSxx -[buildPlans.iosevka-ss01] +[buildPlans.IosevkaSS01] family = "Iosevka SS01" desc = "Andale Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss01" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss01.variants] +[buildPlans.IosevkaSS01.variants] inherits = "ss01" -[buildPlans.iosevka-term-ss01] +[buildPlans.IosevkaTermSS01] family = "Iosevka Term SS01" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss01.variants] +[buildPlans.IosevkaTermSS01.variants] inherits = "ss01" -[buildPlans.iosevka-fixed-ss01] +[buildPlans.IosevkaFixedSS01] family = "Iosevka Fixed SS01" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss01.variants] +[buildPlans.IosevkaFixedSS01.variants] inherits = "ss01" -[buildPlans.iosevka-ss02] +[buildPlans.IosevkaSS02] family = "Iosevka SS02" desc = "Anonymous Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss02" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss02.variants] +[buildPlans.IosevkaSS02.variants] inherits = "ss02" -[buildPlans.iosevka-term-ss02] +[buildPlans.IosevkaTermSS02] family = "Iosevka Term SS02" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss02.variants] +[buildPlans.IosevkaTermSS02.variants] inherits = "ss02" -[buildPlans.iosevka-fixed-ss02] +[buildPlans.IosevkaFixedSS02] family = "Iosevka Fixed SS02" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss02.variants] +[buildPlans.IosevkaFixedSS02.variants] inherits = "ss02" -[buildPlans.iosevka-ss03] +[buildPlans.IosevkaSS03] family = "Iosevka SS03" desc = "Consolas Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss03" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss03.variants] +[buildPlans.IosevkaSS03.variants] inherits = "ss03" -[buildPlans.iosevka-term-ss03] +[buildPlans.IosevkaTermSS03] family = "Iosevka Term SS03" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss03.variants] +[buildPlans.IosevkaTermSS03.variants] inherits = "ss03" -[buildPlans.iosevka-fixed-ss03] +[buildPlans.IosevkaFixedSS03] family = "Iosevka Fixed SS03" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss03.variants] +[buildPlans.IosevkaFixedSS03.variants] inherits = "ss03" -[buildPlans.iosevka-ss04] +[buildPlans.IosevkaSS04] family = "Iosevka SS04" desc = "Menlo Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss04" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss04.variants] +[buildPlans.IosevkaSS04.variants] inherits = "ss04" -[buildPlans.iosevka-term-ss04] +[buildPlans.IosevkaTermSS04] family = "Iosevka Term SS04" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss04.variants] +[buildPlans.IosevkaTermSS04.variants] inherits = "ss04" -[buildPlans.iosevka-fixed-ss04] +[buildPlans.IosevkaFixedSS04] family = "Iosevka Fixed SS04" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss04.variants] +[buildPlans.IosevkaFixedSS04.variants] inherits = "ss04" -[buildPlans.iosevka-ss05] +[buildPlans.IosevkaSS05] family = "Iosevka SS05" desc = "Fira Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss05" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss05.variants] +[buildPlans.IosevkaSS05.variants] inherits = "ss05" -[buildPlans.iosevka-term-ss05] +[buildPlans.IosevkaTermSS05] family = "Iosevka Term SS05" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss05.variants] +[buildPlans.IosevkaTermSS05.variants] inherits = "ss05" -[buildPlans.iosevka-fixed-ss05] +[buildPlans.IosevkaFixedSS05] family = "Iosevka Fixed SS05" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss05.variants] +[buildPlans.IosevkaFixedSS05.variants] inherits = "ss05" -[buildPlans.iosevka-ss06] +[buildPlans.IosevkaSS06] family = "Iosevka SS06" desc = "Liberation Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss06" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss06.variants] +[buildPlans.IosevkaSS06.variants] inherits = "ss06" -[buildPlans.iosevka-term-ss06] +[buildPlans.IosevkaTermSS06] family = "Iosevka Term SS06" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss06.variants] +[buildPlans.IosevkaTermSS06.variants] inherits = "ss06" -[buildPlans.iosevka-fixed-ss06] +[buildPlans.IosevkaFixedSS06] family = "Iosevka Fixed SS06" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss06.variants] +[buildPlans.IosevkaFixedSS06.variants] inherits = "ss06" -[buildPlans.iosevka-ss07] +[buildPlans.IosevkaSS07] family = "Iosevka SS07" desc = "Monaco Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss07" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss07.variants] +[buildPlans.IosevkaSS07.variants] inherits = "ss07" -[buildPlans.iosevka-term-ss07] +[buildPlans.IosevkaTermSS07] family = "Iosevka Term SS07" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss07.variants] +[buildPlans.IosevkaTermSS07.variants] inherits = "ss07" -[buildPlans.iosevka-fixed-ss07] +[buildPlans.IosevkaFixedSS07] family = "Iosevka Fixed SS07" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss07.variants] +[buildPlans.IosevkaFixedSS07.variants] inherits = "ss07" -[buildPlans.iosevka-ss08] +[buildPlans.IosevkaSS08] family = "Iosevka SS08" desc = "Pragmata Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss08" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss08.variants] +[buildPlans.IosevkaSS08.variants] inherits = "ss08" -[buildPlans.iosevka-term-ss08] +[buildPlans.IosevkaTermSS08] family = "Iosevka Term SS08" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss08.variants] +[buildPlans.IosevkaTermSS08.variants] inherits = "ss08" -[buildPlans.iosevka-fixed-ss08] +[buildPlans.IosevkaFixedSS08] family = "Iosevka Fixed SS08" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss08.variants] +[buildPlans.IosevkaFixedSS08.variants] inherits = "ss08" -[buildPlans.iosevka-ss09] +[buildPlans.IosevkaSS09] family = "Iosevka SS09" desc = "Source Code Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss09" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss09.variants] +[buildPlans.IosevkaSS09.variants] inherits = "ss09" -[buildPlans.iosevka-term-ss09] +[buildPlans.IosevkaTermSS09] family = "Iosevka Term SS09" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss09.variants] +[buildPlans.IosevkaTermSS09.variants] inherits = "ss09" -[buildPlans.iosevka-fixed-ss09] +[buildPlans.IosevkaFixedSS09] family = "Iosevka Fixed SS09" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss09.variants] +[buildPlans.IosevkaFixedSS09.variants] inherits = "ss09" -[buildPlans.iosevka-ss10] +[buildPlans.IosevkaSS10] family = "Iosevka SS10" desc = "Envy Code R Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss10" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss10.variants] +[buildPlans.IosevkaSS10.variants] inherits = "ss10" -[buildPlans.iosevka-term-ss10] +[buildPlans.IosevkaTermSS10] family = "Iosevka Term SS10" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss10.variants] +[buildPlans.IosevkaTermSS10.variants] inherits = "ss10" -[buildPlans.iosevka-fixed-ss10] +[buildPlans.IosevkaFixedSS10] family = "Iosevka Fixed SS10" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss10.variants] +[buildPlans.IosevkaFixedSS10.variants] inherits = "ss10" -[buildPlans.iosevka-ss11] +[buildPlans.IosevkaSS11] family = "Iosevka SS11" desc = "X Windows Fixed Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss11" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss11.variants] +[buildPlans.IosevkaSS11.variants] inherits = "ss11" -[buildPlans.iosevka-term-ss11] +[buildPlans.IosevkaTermSS11] family = "Iosevka Term SS11" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss11.variants] +[buildPlans.IosevkaTermSS11.variants] inherits = "ss11" -[buildPlans.iosevka-fixed-ss11] +[buildPlans.IosevkaFixedSS11] family = "Iosevka Fixed SS11" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss11.variants] +[buildPlans.IosevkaFixedSS11.variants] inherits = "ss11" -[buildPlans.iosevka-ss12] +[buildPlans.IosevkaSS12] family = "Iosevka SS12" desc = "Ubuntu Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss12" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss12.variants] +[buildPlans.IosevkaSS12.variants] inherits = "ss12" -[buildPlans.iosevka-term-ss12] +[buildPlans.IosevkaTermSS12] family = "Iosevka Term SS12" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss12.variants] +[buildPlans.IosevkaTermSS12.variants] inherits = "ss12" -[buildPlans.iosevka-fixed-ss12] +[buildPlans.IosevkaFixedSS12] family = "Iosevka Fixed SS12" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss12.variants] +[buildPlans.IosevkaFixedSS12.variants] inherits = "ss12" -[buildPlans.iosevka-ss13] +[buildPlans.IosevkaSS13] family = "Iosevka SS13" desc = "Lucida Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss13" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss13.variants] +[buildPlans.IosevkaSS13.variants] inherits = "ss13" -[buildPlans.iosevka-term-ss13] +[buildPlans.IosevkaTermSS13] family = "Iosevka Term SS13" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss13.variants] +[buildPlans.IosevkaTermSS13.variants] inherits = "ss13" -[buildPlans.iosevka-fixed-ss13] +[buildPlans.IosevkaFixedSS13] family = "Iosevka Fixed SS13" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss13.variants] +[buildPlans.IosevkaFixedSS13.variants] inherits = "ss13" -[buildPlans.iosevka-ss14] +[buildPlans.IosevkaSS14] family = "Iosevka SS14" desc = "JetBrains Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss14" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss14.variants] +[buildPlans.IosevkaSS14.variants] inherits = "ss14" -[buildPlans.iosevka-term-ss14] +[buildPlans.IosevkaTermSS14] family = "Iosevka Term SS14" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss14.variants] +[buildPlans.IosevkaTermSS14.variants] inherits = "ss14" -[buildPlans.iosevka-fixed-ss14] +[buildPlans.IosevkaFixedSS14] family = "Iosevka Fixed SS14" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss14.variants] +[buildPlans.IosevkaFixedSS14.variants] inherits = "ss14" -[buildPlans.iosevka-ss15] +[buildPlans.IosevkaSS15] family = "Iosevka SS15" desc = "IBM Plex Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss15" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss15.variants] +[buildPlans.IosevkaSS15.variants] inherits = "ss15" -[buildPlans.iosevka-term-ss15] +[buildPlans.IosevkaTermSS15] family = "Iosevka Term SS15" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss15.variants] +[buildPlans.IosevkaTermSS15.variants] inherits = "ss15" -[buildPlans.iosevka-fixed-ss15] +[buildPlans.IosevkaFixedSS15] family = "Iosevka Fixed SS15" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss15.variants] +[buildPlans.IosevkaFixedSS15.variants] inherits = "ss15" -[buildPlans.iosevka-ss16] +[buildPlans.IosevkaSS16] family = "Iosevka SS16" desc = "PT Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss16" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss16.variants] +[buildPlans.IosevkaSS16.variants] inherits = "ss16" -[buildPlans.iosevka-term-ss16] +[buildPlans.IosevkaTermSS16] family = "Iosevka Term SS16" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss16.variants] +[buildPlans.IosevkaTermSS16.variants] inherits = "ss16" -[buildPlans.iosevka-fixed-ss16] +[buildPlans.IosevkaFixedSS16] family = "Iosevka Fixed SS16" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss16.variants] +[buildPlans.IosevkaFixedSS16.variants] inherits = "ss16" -[buildPlans.iosevka-ss17] +[buildPlans.IosevkaSS17] family = "Iosevka SS17" desc = "Recursive Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss17" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss17.variants] +[buildPlans.IosevkaSS17.variants] inherits = "ss17" -[buildPlans.iosevka-term-ss17] +[buildPlans.IosevkaTermSS17] family = "Iosevka Term SS17" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss17.variants] +[buildPlans.IosevkaTermSS17.variants] inherits = "ss17" -[buildPlans.iosevka-fixed-ss17] +[buildPlans.IosevkaFixedSS17] family = "Iosevka Fixed SS17" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss17.variants] +[buildPlans.IosevkaFixedSS17.variants] inherits = "ss17" -[buildPlans.iosevka-ss18] +[buildPlans.IosevkaSS18] family = "Iosevka SS18" desc = "Input Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss18" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-ss18.variants] +[buildPlans.IosevkaSS18.variants] inherits = "ss18" -[buildPlans.iosevka-term-ss18] +[buildPlans.IosevkaTermSS18] family = "Iosevka Term SS18" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-term-ss18.variants] +[buildPlans.IosevkaTermSS18.variants] inherits = "ss18" -[buildPlans.iosevka-fixed-ss18] +[buildPlans.IosevkaFixedSS18] family = "Iosevka Fixed SS18" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} export-glyph-names = true no-cv-ss = true -[buildPlans.iosevka-fixed-ss18.variants] +[buildPlans.IosevkaFixedSS18.variants] inherits = "ss18" ################################################################################################### # Proportional families -[buildPlans.iosevka-aile] +[buildPlans.IosevkaAile] family = "Iosevka Aile" desc = "Sans-serif" spacing = "quasi-proportional" @@ -681,7 +681,7 @@ snapshotFamily = 'Iosevka Aile' snapshotFeature = {"NWID" = 0} export-glyph-names = true -[buildPlans.iosevka-aile.variants.design] +[buildPlans.IosevkaAile.variants.design] capital-i = "serifless" capital-j = "serifless" capital-k = "straight-serifless" @@ -719,7 +719,7 @@ percent = "rings-continuous-slash" micro-sign = "toothed-serifless" # Letterform control for U+1D670 ... U+1D6A3 -[buildPlans.iosevka-aile.derivingVariants.mathtt.design] +[buildPlans.IosevkaAile.derivingVariants.mathtt.design] capital-i = "serifed" capital-j = "serifless" capital-k = "straight-serifless" @@ -756,14 +756,14 @@ at = "fourfold" percent = "rings-continuous-slash" micro-sign = "toothed-serifless" -[buildPlans.iosevka-aile.widths.normal] +[buildPlans.IosevkaAile.widths.normal] shape = 600 menu = 5 css = "normal" -[buildPlans.iosevka-etoile] +[buildPlans.IosevkaEtoile] family = "Iosevka Etoile" desc = "Slab-serif" spacing = "quasi-proportional" @@ -772,7 +772,7 @@ snapshotFamily = 'Iosevka Etoile' snapshotFeature = {"NWID" = 0} export-glyph-names = true -[buildPlans.iosevka-etoile.variants.design] +[buildPlans.IosevkaEtoile.variants.design] capital-m = "flat-bottom-serifed" capital-w = "straight-flat-top-serifed" f = "flat-hook-serifed" @@ -789,7 +789,7 @@ cyrl-em = "flat-bottom-serifed" at = "fourfold" percent = "rings-continuous-slash" -[buildPlans.iosevka-etoile.variants.italic] +[buildPlans.IosevkaEtoile.variants.italic] f = "flat-hook-tailed" i = "serifed-flat-tailed" l = "serifed-flat-tailed" @@ -797,75 +797,75 @@ w = "straight-flat-top-motion-serifed" long-s = "flat-hook-tailed" eszet = "longs-s-lig-tailed-serifless" -[buildPlans.iosevka-etoile.widths.normal] +[buildPlans.IosevkaEtoile.widths.normal] shape = 600 menu = 5 css = "normal" -[buildPlans.iosevka-QP] +[buildPlans.IosevkaQp] family = "Iosevka QP" desc = "Customizer Preview Only Quasi-proportional Sans" spacing = "quasi-proportional" export-glyph-names = false -[buildPlans.iosevka-QP.weights.regular] +[buildPlans.IosevkaQp.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QP.weights.bold] +[buildPlans.IosevkaQp.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QP-slab] +[buildPlans.IosevkaQpSlab] family = "Iosevka QP Slab" desc = "Customizer Preview Only Quasi-proportional Slab" serifs = 'slab' spacing = "quasi-proportional" export-glyph-names = false -[buildPlans.iosevka-QP-slab.weights.regular] +[buildPlans.IosevkaQpSlab.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QP-slab.weights.bold] +[buildPlans.IosevkaQpSlab.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QPE] +[buildPlans.IosevkaQpe] family = "Iosevka QPE" desc = "Customizer Preview Only Quasi-proportional-extension-only Sans" spacing = "quasi-proportional-extension-only" export-glyph-names = false -[buildPlans.iosevka-QPE.weights.regular] +[buildPlans.IosevkaQpe.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QPE.weights.bold] +[buildPlans.IosevkaQpe.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QPE-slab] +[buildPlans.IosevkaQpeSlab] family = "Iosevka QPE Slab" desc = "Customizer Preview Only Quasi-proportional-extension-only Slab" serifs = 'slab' spacing = "quasi-proportional-extension-only" export-glyph-names = false -[buildPlans.iosevka-QPE-slab.weights.regular] +[buildPlans.IosevkaQpeSlab.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QPE-slab.weights.bold] +[buildPlans.IosevkaQpeSlab.weights.bold] shape = 700 menu = 700 css = 700 @@ -873,189 +873,189 @@ css = 700 ################################################################################################### # Collect plans -[collectPlans.iosevka] +[collectPlans.Iosevka] release = true from = [ - "iosevka", - "iosevka-term", - "iosevka-fixed" + "Iosevka", + "IosevkaTerm", + "IosevkaFixed" ] -[collectPlans.iosevka-slab] +[collectPlans.IosevkaSlab] release = true from = [ - "iosevka-slab", - "iosevka-term-slab", - "iosevka-fixed-slab" + "IosevkaSlab", + "IosevkaTermSlab", + "IosevkaFixedSlab" ] -[collectPlans.iosevka-curly] +[collectPlans.IosevkaCurly] release = true from = [ - "iosevka-curly", - "iosevka-term-curly", - "iosevka-fixed-curly" + "IosevkaCurly", + "IosevkaTermCurly", + "IosevkaFixedCurly" ] -[collectPlans.iosevka-curly-slab] +[collectPlans.IosevkaCurlySlab] release = true from = [ - "iosevka-curly-slab", - "iosevka-term-curly-slab", - "iosevka-fixed-curly-slab" + "IosevkaCurlySlab", + "IosevkaTermCurlySlab", + "IosevkaFixedCurlySlab" ] -[collectPlans.iosevka-ss01] +[collectPlans.IosevkaSS01] release = true from = [ - "iosevka-ss01", - "iosevka-term-ss01", - "iosevka-fixed-ss01" + "IosevkaSS01", + "IosevkaTermSS01", + "IosevkaFixedSS01" ] -[collectPlans.iosevka-ss02] +[collectPlans.IosevkaSS02] release = true from = [ - "iosevka-ss02", - "iosevka-term-ss02", - "iosevka-fixed-ss02" + "IosevkaSS02", + "IosevkaTermSS02", + "IosevkaFixedSS02" ] -[collectPlans.iosevka-ss03] +[collectPlans.IosevkaSS03] release = true from = [ - "iosevka-ss03", - "iosevka-term-ss03", - "iosevka-fixed-ss03" + "IosevkaSS03", + "IosevkaTermSS03", + "IosevkaFixedSS03" ] -[collectPlans.iosevka-ss04] +[collectPlans.IosevkaSS04] release = true from = [ - "iosevka-ss04", - "iosevka-term-ss04", - "iosevka-fixed-ss04" + "IosevkaSS04", + "IosevkaTermSS04", + "IosevkaFixedSS04" ] -[collectPlans.iosevka-ss05] +[collectPlans.IosevkaSS05] release = true from = [ - "iosevka-ss05", - "iosevka-term-ss05", - "iosevka-fixed-ss05" + "IosevkaSS05", + "IosevkaTermSS05", + "IosevkaFixedSS05" ] -[collectPlans.iosevka-ss06] +[collectPlans.IosevkaSS06] release = true from = [ - "iosevka-ss06", - "iosevka-term-ss06", - "iosevka-fixed-ss06" + "IosevkaSS06", + "IosevkaTermSS06", + "IosevkaFixedSS06" ] -[collectPlans.iosevka-ss07] +[collectPlans.IosevkaSS07] release = true from = [ - "iosevka-ss07", - "iosevka-term-ss07", - "iosevka-fixed-ss07" + "IosevkaSS07", + "IosevkaTermSS07", + "IosevkaFixedSS07" ] -[collectPlans.iosevka-ss08] +[collectPlans.IosevkaSS08] release = true from = [ - "iosevka-ss08", - "iosevka-term-ss08", - "iosevka-fixed-ss08" + "IosevkaSS08", + "IosevkaTermSS08", + "IosevkaFixedSS08" ] -[collectPlans.iosevka-ss09] +[collectPlans.IosevkaSS09] release = true from = [ - "iosevka-ss09", - "iosevka-term-ss09", - "iosevka-fixed-ss09" + "IosevkaSS09", + "IosevkaTermSS09", + "IosevkaFixedSS09" ] -[collectPlans.iosevka-ss10] +[collectPlans.IosevkaSS10] release = true from = [ - "iosevka-ss10", - "iosevka-term-ss10", - "iosevka-fixed-ss10" + "IosevkaSS10", + "IosevkaTermSS10", + "IosevkaFixedSS10" ] -[collectPlans.iosevka-ss11] +[collectPlans.IosevkaSS11] release = true from = [ - "iosevka-ss11", - "iosevka-term-ss11", - "iosevka-fixed-ss11" + "IosevkaSS11", + "IosevkaTermSS11", + "IosevkaFixedSS11" ] -[collectPlans.iosevka-ss12] +[collectPlans.IosevkaSS12] release = true from = [ - "iosevka-ss12", - "iosevka-term-ss12", - "iosevka-fixed-ss12" + "IosevkaSS12", + "IosevkaTermSS12", + "IosevkaFixedSS12" ] -[collectPlans.iosevka-ss13] +[collectPlans.IosevkaSS13] release = true from = [ - "iosevka-ss13", - "iosevka-term-ss13", - "iosevka-fixed-ss13" + "IosevkaSS13", + "IosevkaTermSS13", + "IosevkaFixedSS13" ] -[collectPlans.iosevka-ss14] +[collectPlans.IosevkaSS14] release = true from = [ - "iosevka-ss14", - "iosevka-term-ss14", - "iosevka-fixed-ss14" + "IosevkaSS14", + "IosevkaTermSS14", + "IosevkaFixedSS14" ] -[collectPlans.iosevka-ss15] +[collectPlans.IosevkaSS15] release = true from = [ - "iosevka-ss15", - "iosevka-term-ss15", - "iosevka-fixed-ss15" + "IosevkaSS15", + "IosevkaTermSS15", + "IosevkaFixedSS15" ] -[collectPlans.iosevka-ss16] +[collectPlans.IosevkaSS16] release = true from = [ - "iosevka-ss16", - "iosevka-term-ss16", - "iosevka-fixed-ss16" + "IosevkaSS16", + "IosevkaTermSS16", + "IosevkaFixedSS16" ] -[collectPlans.iosevka-ss17] +[collectPlans.IosevkaSS17] release = true from = [ - "iosevka-ss17", - "iosevka-term-ss17", - "iosevka-fixed-ss17" + "IosevkaSS17", + "IosevkaTermSS17", + "IosevkaFixedSS17" ] -[collectPlans.iosevka-ss18] +[collectPlans.IosevkaSS18] release = true from = [ - "iosevka-ss18", - "iosevka-term-ss18", - "iosevka-fixed-ss18" + "IosevkaSS18", + "IosevkaTermSS18", + "IosevkaFixedSS18" ] -[collectPlans.iosevka-aile] +[collectPlans.IosevkaAile] release = true -from = ["iosevka-aile"] +from = ["IosevkaAile"] -[collectPlans.iosevka-etoile] +[collectPlans.IosevkaEtoile] release = true -from = ["iosevka-etoile"] +from = ["IosevkaEtoile"] ################################################################################################### # Weight mappings (style => shape weight, menu weight, CSS weight) @@ -1065,65 +1065,65 @@ from = ["iosevka-etoile"] # IMPORTANT : Currently "menu" property only support 100, 200, 300, 350, 400, 450, 500, 600, 700, # 800, 900, and "shape" properly only supports number between 100 and 900 (inclusive). -[weights.thin] +[weights.Thin] shape = 100 menu = 100 css = 100 -[weights.extralight] +[weights.ExtraLight] shape = 200 menu = 200 css = 200 -[weights.light] +[weights.Light] shape = 300 menu = 300 css = 300 -[weights.regular] +[weights.Regular] shape = 400 menu = 400 css = 400 -[weights.medium] +[weights.Medium] shape = 500 menu = 500 css = 500 -[weights.semibold] +[weights.SemiBold] shape = 600 menu = 600 css = 600 -[weights.bold] +[weights.Bold] shape = 700 menu = 700 css = 700 -[weights.extrabold] +[weights.ExtraBold] shape = 800 menu = 800 css = 800 -[weights.heavy] +[weights.Heavy] shape = 900 menu = 900 css = 900 # slope mappings (style => slope angle, shape slope grade, menu slope, CSS slope) -[slopes.upright] +[slopes.Upright] angle = 0 shape = "upright" menu = "upright" css = "normal" -[slopes.oblique] +[slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[slopes.italic] +[slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -1137,12 +1137,12 @@ css = "italic" # IMPORTANT : Currently "shape" property only support 3 ... 9 # and "menu" only support 1 ... 9 -[widths.normal] +[widths.Normal] shape = 500 menu = 5 css = "normal" -[widths.extended] +[widths.Extended] shape = 600 menu = 7 css = "expanded" diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index b81d3bac0b..e172fa2c06 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1 +1,4 @@ + * \[**BREAKING**\] The filenames and package filenames are changed. + - They will now use PascalCase instead of kebab-case. + - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. * Add hook-inward-serifed variants for `a` (#2085). diff --git a/images/cs-block-cyrillic-extendedd.dark.svg b/images/cs-block-cyrillic-extendedd.dark.svg deleted file mode 100644 index a51ef8b20c..0000000000 --- a/images/cs-block-cyrillic-extendedd.dark.svg +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-cyrillic-extendedd.light.svg b/images/cs-block-cyrillic-extendedd.light.svg deleted file mode 100644 index e58e2c4f43..0000000000 --- a/images/cs-block-cyrillic-extendedd.light.svg +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedf.dark.svg b/images/cs-block-latin-extendedf.dark.svg deleted file mode 100644 index df3857054d..0000000000 --- a/images/cs-block-latin-extendedf.dark.svg +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedf.light.svg b/images/cs-block-latin-extendedf.light.svg deleted file mode 100644 index 0dc59adc07..0000000000 --- a/images/cs-block-latin-extendedf.light.svg +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedg.dark.svg b/images/cs-block-latin-extendedg.dark.svg deleted file mode 100644 index e6619ff866..0000000000 --- a/images/cs-block-latin-extendedg.dark.svg +++ /dev/null @@ -1,998 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedg.light.svg b/images/cs-block-latin-extendedg.light.svg deleted file mode 100644 index 826804221c..0000000000 --- a/images/cs-block-latin-extendedg.light.svg +++ /dev/null @@ -1,998 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg new file mode 100644 index 0000000000..4369b5882b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg b/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg new file mode 100644 index 0000000000..f5f446a52f --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg new file mode 100644 index 0000000000..cacef23879 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg b/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg new file mode 100644 index 0000000000..0fc25d6d26 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg new file mode 100644 index 0000000000..154120fd3e --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg b/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg new file mode 100644 index 0000000000..6e311dd20b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg new file mode 100644 index 0000000000..0b3b12f21b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg new file mode 100644 index 0000000000..bc0276ccca --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg new file mode 100644 index 0000000000..c9a777a944 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg new file mode 100644 index 0000000000..f4e6e872c1 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-r-curly-motion-serifed.dark.svg b/images/cv-capital-r-curly-motion-serifed.dark.svg deleted file mode 100644 index 11a3ffcbb9..0000000000 --- a/images/cv-capital-r-curly-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-motion-serifed.light.svg b/images/cv-capital-r-curly-motion-serifed.light.svg deleted file mode 100644 index 13fe35709a..0000000000 --- a/images/cv-capital-r-curly-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-open-motion-serifed.dark.svg b/images/cv-capital-r-curly-open-motion-serifed.dark.svg deleted file mode 100644 index 1e092186f6..0000000000 --- a/images/cv-capital-r-curly-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-open-motion-serifed.light.svg b/images/cv-capital-r-curly-open-motion-serifed.light.svg deleted file mode 100644 index 0b28dd6210..0000000000 --- a/images/cv-capital-r-curly-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-motion-serifed.dark.svg b/images/cv-capital-r-standing-motion-serifed.dark.svg deleted file mode 100644 index a8d6e508fc..0000000000 --- a/images/cv-capital-r-standing-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-motion-serifed.light.svg b/images/cv-capital-r-standing-motion-serifed.light.svg deleted file mode 100644 index c5ac9501c5..0000000000 --- a/images/cv-capital-r-standing-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-open-motion-serifed.dark.svg b/images/cv-capital-r-standing-open-motion-serifed.dark.svg deleted file mode 100644 index fdb7ad4933..0000000000 --- a/images/cv-capital-r-standing-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-open-motion-serifed.light.svg b/images/cv-capital-r-standing-open-motion-serifed.light.svg deleted file mode 100644 index 4e029cf268..0000000000 --- a/images/cv-capital-r-standing-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-motion-serifed.dark.svg b/images/cv-capital-r-straight-motion-serifed.dark.svg deleted file mode 100644 index b1538781f3..0000000000 --- a/images/cv-capital-r-straight-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-motion-serifed.light.svg b/images/cv-capital-r-straight-motion-serifed.light.svg deleted file mode 100644 index 641cdd39d4..0000000000 --- a/images/cv-capital-r-straight-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-open-motion-serifed.dark.svg b/images/cv-capital-r-straight-open-motion-serifed.dark.svg deleted file mode 100644 index 46301f2ff5..0000000000 --- a/images/cv-capital-r-straight-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-open-motion-serifed.light.svg b/images/cv-capital-r-straight-open-motion-serifed.light.svg deleted file mode 100644 index cdf34cec2a..0000000000 --- a/images/cv-capital-r-straight-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-oblique-upper-left-bar.dark.svg b/images/cv-five-oblique-upper-left-bar.dark.svg deleted file mode 100644 index 574ab30614..0000000000 --- a/images/cv-five-oblique-upper-left-bar.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-oblique-upper-left-bar.light.svg b/images/cv-five-oblique-upper-left-bar.light.svg deleted file mode 100644 index 84c3c18a33..0000000000 --- a/images/cv-five-oblique-upper-left-bar.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-vertical-upper-left-bar.dark.svg b/images/cv-five-vertical-upper-left-bar.dark.svg deleted file mode 100644 index 666a9d1616..0000000000 --- a/images/cv-five-vertical-upper-left-bar.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-vertical-upper-left-bar.light.svg b/images/cv-five-vertical-upper-left-bar.light.svg deleted file mode 100644 index 9b6eb72bdf..0000000000 --- a/images/cv-five-vertical-upper-left-bar.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg b/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg deleted file mode 100644 index 214fe3f65a..0000000000 --- a/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg b/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg deleted file mode 100644 index 936fdd179d..0000000000 --- a/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred.dark.svg b/images/cv-lower-alpha-tailed-barred.dark.svg deleted file mode 100644 index 3733d4dcef..0000000000 --- a/images/cv-lower-alpha-tailed-barred.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred.light.svg b/images/cv-lower-alpha-tailed-barred.light.svg deleted file mode 100644 index 3679b170e5..0000000000 --- a/images/cv-lower-alpha-tailed-barred.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/iosevka-fixed.dark.svg b/images/package-sample-Iosevka.dark.svg similarity index 100% rename from images/iosevka-fixed.dark.svg rename to images/package-sample-Iosevka.dark.svg diff --git a/images/iosevka-fixed.light.svg b/images/package-sample-Iosevka.light.svg similarity index 100% rename from images/iosevka-fixed.light.svg rename to images/package-sample-Iosevka.light.svg diff --git a/images/iosevka-aile.dark.svg b/images/package-sample-IosevkaAile.dark.svg similarity index 100% rename from images/iosevka-aile.dark.svg rename to images/package-sample-IosevkaAile.dark.svg diff --git a/images/iosevka-aile.light.svg b/images/package-sample-IosevkaAile.light.svg similarity index 100% rename from images/iosevka-aile.light.svg rename to images/package-sample-IosevkaAile.light.svg diff --git a/images/iosevka-curly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg similarity index 100% rename from images/iosevka-curly.dark.svg rename to images/package-sample-IosevkaCurly.dark.svg diff --git a/images/iosevka-curly.light.svg b/images/package-sample-IosevkaCurly.light.svg similarity index 100% rename from images/iosevka-curly.light.svg rename to images/package-sample-IosevkaCurly.light.svg diff --git a/images/iosevka-curly-slab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg similarity index 100% rename from images/iosevka-curly-slab.dark.svg rename to images/package-sample-IosevkaCurlySlab.dark.svg diff --git a/images/iosevka-curly-slab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg similarity index 100% rename from images/iosevka-curly-slab.light.svg rename to images/package-sample-IosevkaCurlySlab.light.svg diff --git a/images/iosevka-etoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg similarity index 100% rename from images/iosevka-etoile.dark.svg rename to images/package-sample-IosevkaEtoile.dark.svg diff --git a/images/iosevka-etoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg similarity index 100% rename from images/iosevka-etoile.light.svg rename to images/package-sample-IosevkaEtoile.light.svg diff --git a/images/iosevka-term.dark.svg b/images/package-sample-IosevkaFixed.dark.svg similarity index 100% rename from images/iosevka-term.dark.svg rename to images/package-sample-IosevkaFixed.dark.svg diff --git a/images/iosevka-term.light.svg b/images/package-sample-IosevkaFixed.light.svg similarity index 100% rename from images/iosevka-term.light.svg rename to images/package-sample-IosevkaFixed.light.svg diff --git a/images/iosevka-fixed-curly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg similarity index 100% rename from images/iosevka-fixed-curly.dark.svg rename to images/package-sample-IosevkaFixedCurly.dark.svg diff --git a/images/iosevka-fixed-curly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg similarity index 100% rename from images/iosevka-fixed-curly.light.svg rename to images/package-sample-IosevkaFixedCurly.light.svg diff --git a/images/iosevka-fixed-curly-slab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg similarity index 100% rename from images/iosevka-fixed-curly-slab.dark.svg rename to images/package-sample-IosevkaFixedCurlySlab.dark.svg diff --git a/images/iosevka-fixed-curly-slab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg similarity index 100% rename from images/iosevka-fixed-curly-slab.light.svg rename to images/package-sample-IosevkaFixedCurlySlab.light.svg diff --git a/images/iosevka-fixed-ss01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg similarity index 100% rename from images/iosevka-fixed-ss01.dark.svg rename to images/package-sample-IosevkaFixedSS01.dark.svg diff --git a/images/iosevka-fixed-ss01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg similarity index 100% rename from images/iosevka-fixed-ss01.light.svg rename to images/package-sample-IosevkaFixedSS01.light.svg diff --git a/images/iosevka-fixed-ss02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg similarity index 100% rename from images/iosevka-fixed-ss02.dark.svg rename to images/package-sample-IosevkaFixedSS02.dark.svg diff --git a/images/iosevka-fixed-ss02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg similarity index 100% rename from images/iosevka-fixed-ss02.light.svg rename to images/package-sample-IosevkaFixedSS02.light.svg diff --git a/images/iosevka-fixed-ss03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg similarity index 100% rename from images/iosevka-fixed-ss03.dark.svg rename to images/package-sample-IosevkaFixedSS03.dark.svg diff --git a/images/iosevka-fixed-ss03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg similarity index 100% rename from images/iosevka-fixed-ss03.light.svg rename to images/package-sample-IosevkaFixedSS03.light.svg diff --git a/images/iosevka-fixed-ss04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg similarity index 100% rename from images/iosevka-fixed-ss04.dark.svg rename to images/package-sample-IosevkaFixedSS04.dark.svg diff --git a/images/iosevka-fixed-ss04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg similarity index 100% rename from images/iosevka-fixed-ss04.light.svg rename to images/package-sample-IosevkaFixedSS04.light.svg diff --git a/images/iosevka-fixed-ss05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg similarity index 100% rename from images/iosevka-fixed-ss05.dark.svg rename to images/package-sample-IosevkaFixedSS05.dark.svg diff --git a/images/iosevka-fixed-ss05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg similarity index 100% rename from images/iosevka-fixed-ss05.light.svg rename to images/package-sample-IosevkaFixedSS05.light.svg diff --git a/images/iosevka-fixed-ss06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg similarity index 100% rename from images/iosevka-fixed-ss06.dark.svg rename to images/package-sample-IosevkaFixedSS06.dark.svg diff --git a/images/iosevka-fixed-ss06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg similarity index 100% rename from images/iosevka-fixed-ss06.light.svg rename to images/package-sample-IosevkaFixedSS06.light.svg diff --git a/images/iosevka-fixed-ss07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg similarity index 100% rename from images/iosevka-fixed-ss07.dark.svg rename to images/package-sample-IosevkaFixedSS07.dark.svg diff --git a/images/iosevka-fixed-ss07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg similarity index 100% rename from images/iosevka-fixed-ss07.light.svg rename to images/package-sample-IosevkaFixedSS07.light.svg diff --git a/images/iosevka-fixed-ss08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg similarity index 100% rename from images/iosevka-fixed-ss08.dark.svg rename to images/package-sample-IosevkaFixedSS08.dark.svg diff --git a/images/iosevka-fixed-ss08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg similarity index 100% rename from images/iosevka-fixed-ss08.light.svg rename to images/package-sample-IosevkaFixedSS08.light.svg diff --git a/images/iosevka-fixed-ss09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg similarity index 100% rename from images/iosevka-fixed-ss09.dark.svg rename to images/package-sample-IosevkaFixedSS09.dark.svg diff --git a/images/iosevka-fixed-ss09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg similarity index 100% rename from images/iosevka-fixed-ss09.light.svg rename to images/package-sample-IosevkaFixedSS09.light.svg diff --git a/images/iosevka-fixed-ss10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg similarity index 100% rename from images/iosevka-fixed-ss10.dark.svg rename to images/package-sample-IosevkaFixedSS10.dark.svg diff --git a/images/iosevka-fixed-ss10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg similarity index 100% rename from images/iosevka-fixed-ss10.light.svg rename to images/package-sample-IosevkaFixedSS10.light.svg diff --git a/images/iosevka-fixed-ss11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg similarity index 100% rename from images/iosevka-fixed-ss11.dark.svg rename to images/package-sample-IosevkaFixedSS11.dark.svg diff --git a/images/iosevka-fixed-ss11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg similarity index 100% rename from images/iosevka-fixed-ss11.light.svg rename to images/package-sample-IosevkaFixedSS11.light.svg diff --git a/images/iosevka-fixed-ss12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg similarity index 100% rename from images/iosevka-fixed-ss12.dark.svg rename to images/package-sample-IosevkaFixedSS12.dark.svg diff --git a/images/iosevka-fixed-ss12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg similarity index 100% rename from images/iosevka-fixed-ss12.light.svg rename to images/package-sample-IosevkaFixedSS12.light.svg diff --git a/images/iosevka-fixed-ss13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg similarity index 100% rename from images/iosevka-fixed-ss13.dark.svg rename to images/package-sample-IosevkaFixedSS13.dark.svg diff --git a/images/iosevka-fixed-ss13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg similarity index 100% rename from images/iosevka-fixed-ss13.light.svg rename to images/package-sample-IosevkaFixedSS13.light.svg diff --git a/images/iosevka-fixed-ss14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg similarity index 100% rename from images/iosevka-fixed-ss14.dark.svg rename to images/package-sample-IosevkaFixedSS14.dark.svg diff --git a/images/iosevka-fixed-ss14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg similarity index 100% rename from images/iosevka-fixed-ss14.light.svg rename to images/package-sample-IosevkaFixedSS14.light.svg diff --git a/images/iosevka-fixed-ss15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg similarity index 100% rename from images/iosevka-fixed-ss15.dark.svg rename to images/package-sample-IosevkaFixedSS15.dark.svg diff --git a/images/iosevka-fixed-ss15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg similarity index 100% rename from images/iosevka-fixed-ss15.light.svg rename to images/package-sample-IosevkaFixedSS15.light.svg diff --git a/images/iosevka-fixed-ss16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg similarity index 100% rename from images/iosevka-fixed-ss16.dark.svg rename to images/package-sample-IosevkaFixedSS16.dark.svg diff --git a/images/iosevka-fixed-ss16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg similarity index 100% rename from images/iosevka-fixed-ss16.light.svg rename to images/package-sample-IosevkaFixedSS16.light.svg diff --git a/images/iosevka-fixed-ss17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg similarity index 100% rename from images/iosevka-fixed-ss17.dark.svg rename to images/package-sample-IosevkaFixedSS17.dark.svg diff --git a/images/iosevka-fixed-ss17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg similarity index 100% rename from images/iosevka-fixed-ss17.light.svg rename to images/package-sample-IosevkaFixedSS17.light.svg diff --git a/images/iosevka-fixed-ss18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg similarity index 100% rename from images/iosevka-fixed-ss18.dark.svg rename to images/package-sample-IosevkaFixedSS18.dark.svg diff --git a/images/iosevka-fixed-ss18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg similarity index 100% rename from images/iosevka-fixed-ss18.light.svg rename to images/package-sample-IosevkaFixedSS18.light.svg diff --git a/images/iosevka-fixed-slab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg similarity index 100% rename from images/iosevka-fixed-slab.dark.svg rename to images/package-sample-IosevkaFixedSlab.dark.svg diff --git a/images/iosevka-fixed-slab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg similarity index 100% rename from images/iosevka-fixed-slab.light.svg rename to images/package-sample-IosevkaFixedSlab.light.svg diff --git a/images/iosevka-ss01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg similarity index 100% rename from images/iosevka-ss01.dark.svg rename to images/package-sample-IosevkaSS01.dark.svg diff --git a/images/iosevka-ss01.light.svg b/images/package-sample-IosevkaSS01.light.svg similarity index 100% rename from images/iosevka-ss01.light.svg rename to images/package-sample-IosevkaSS01.light.svg diff --git a/images/iosevka-ss02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg similarity index 100% rename from images/iosevka-ss02.dark.svg rename to images/package-sample-IosevkaSS02.dark.svg diff --git a/images/iosevka-ss02.light.svg b/images/package-sample-IosevkaSS02.light.svg similarity index 100% rename from images/iosevka-ss02.light.svg rename to images/package-sample-IosevkaSS02.light.svg diff --git a/images/iosevka-ss03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg similarity index 100% rename from images/iosevka-ss03.dark.svg rename to images/package-sample-IosevkaSS03.dark.svg diff --git a/images/iosevka-ss03.light.svg b/images/package-sample-IosevkaSS03.light.svg similarity index 100% rename from images/iosevka-ss03.light.svg rename to images/package-sample-IosevkaSS03.light.svg diff --git a/images/iosevka-ss04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg similarity index 100% rename from images/iosevka-ss04.dark.svg rename to images/package-sample-IosevkaSS04.dark.svg diff --git a/images/iosevka-ss04.light.svg b/images/package-sample-IosevkaSS04.light.svg similarity index 100% rename from images/iosevka-ss04.light.svg rename to images/package-sample-IosevkaSS04.light.svg diff --git a/images/iosevka-ss05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg similarity index 100% rename from images/iosevka-ss05.dark.svg rename to images/package-sample-IosevkaSS05.dark.svg diff --git a/images/iosevka-ss05.light.svg b/images/package-sample-IosevkaSS05.light.svg similarity index 100% rename from images/iosevka-ss05.light.svg rename to images/package-sample-IosevkaSS05.light.svg diff --git a/images/iosevka-ss06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg similarity index 100% rename from images/iosevka-ss06.dark.svg rename to images/package-sample-IosevkaSS06.dark.svg diff --git a/images/iosevka-ss06.light.svg b/images/package-sample-IosevkaSS06.light.svg similarity index 100% rename from images/iosevka-ss06.light.svg rename to images/package-sample-IosevkaSS06.light.svg diff --git a/images/iosevka-ss07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg similarity index 100% rename from images/iosevka-ss07.dark.svg rename to images/package-sample-IosevkaSS07.dark.svg diff --git a/images/iosevka-ss07.light.svg b/images/package-sample-IosevkaSS07.light.svg similarity index 100% rename from images/iosevka-ss07.light.svg rename to images/package-sample-IosevkaSS07.light.svg diff --git a/images/iosevka-ss08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg similarity index 100% rename from images/iosevka-ss08.dark.svg rename to images/package-sample-IosevkaSS08.dark.svg diff --git a/images/iosevka-ss08.light.svg b/images/package-sample-IosevkaSS08.light.svg similarity index 100% rename from images/iosevka-ss08.light.svg rename to images/package-sample-IosevkaSS08.light.svg diff --git a/images/iosevka-ss09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg similarity index 100% rename from images/iosevka-ss09.dark.svg rename to images/package-sample-IosevkaSS09.dark.svg diff --git a/images/iosevka-ss09.light.svg b/images/package-sample-IosevkaSS09.light.svg similarity index 100% rename from images/iosevka-ss09.light.svg rename to images/package-sample-IosevkaSS09.light.svg diff --git a/images/iosevka-ss10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg similarity index 100% rename from images/iosevka-ss10.dark.svg rename to images/package-sample-IosevkaSS10.dark.svg diff --git a/images/iosevka-ss10.light.svg b/images/package-sample-IosevkaSS10.light.svg similarity index 100% rename from images/iosevka-ss10.light.svg rename to images/package-sample-IosevkaSS10.light.svg diff --git a/images/iosevka-ss11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg similarity index 100% rename from images/iosevka-ss11.dark.svg rename to images/package-sample-IosevkaSS11.dark.svg diff --git a/images/iosevka-ss11.light.svg b/images/package-sample-IosevkaSS11.light.svg similarity index 100% rename from images/iosevka-ss11.light.svg rename to images/package-sample-IosevkaSS11.light.svg diff --git a/images/iosevka-ss12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg similarity index 100% rename from images/iosevka-ss12.dark.svg rename to images/package-sample-IosevkaSS12.dark.svg diff --git a/images/iosevka-ss12.light.svg b/images/package-sample-IosevkaSS12.light.svg similarity index 100% rename from images/iosevka-ss12.light.svg rename to images/package-sample-IosevkaSS12.light.svg diff --git a/images/iosevka-ss13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg similarity index 100% rename from images/iosevka-ss13.dark.svg rename to images/package-sample-IosevkaSS13.dark.svg diff --git a/images/iosevka-ss13.light.svg b/images/package-sample-IosevkaSS13.light.svg similarity index 100% rename from images/iosevka-ss13.light.svg rename to images/package-sample-IosevkaSS13.light.svg diff --git a/images/iosevka-ss14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg similarity index 100% rename from images/iosevka-ss14.dark.svg rename to images/package-sample-IosevkaSS14.dark.svg diff --git a/images/iosevka-ss14.light.svg b/images/package-sample-IosevkaSS14.light.svg similarity index 100% rename from images/iosevka-ss14.light.svg rename to images/package-sample-IosevkaSS14.light.svg diff --git a/images/iosevka-ss15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg similarity index 100% rename from images/iosevka-ss15.dark.svg rename to images/package-sample-IosevkaSS15.dark.svg diff --git a/images/iosevka-ss15.light.svg b/images/package-sample-IosevkaSS15.light.svg similarity index 100% rename from images/iosevka-ss15.light.svg rename to images/package-sample-IosevkaSS15.light.svg diff --git a/images/iosevka-ss16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg similarity index 100% rename from images/iosevka-ss16.dark.svg rename to images/package-sample-IosevkaSS16.dark.svg diff --git a/images/iosevka-ss16.light.svg b/images/package-sample-IosevkaSS16.light.svg similarity index 100% rename from images/iosevka-ss16.light.svg rename to images/package-sample-IosevkaSS16.light.svg diff --git a/images/iosevka-ss17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg similarity index 100% rename from images/iosevka-ss17.dark.svg rename to images/package-sample-IosevkaSS17.dark.svg diff --git a/images/iosevka-ss17.light.svg b/images/package-sample-IosevkaSS17.light.svg similarity index 100% rename from images/iosevka-ss17.light.svg rename to images/package-sample-IosevkaSS17.light.svg diff --git a/images/iosevka-ss18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg similarity index 100% rename from images/iosevka-ss18.dark.svg rename to images/package-sample-IosevkaSS18.dark.svg diff --git a/images/iosevka-ss18.light.svg b/images/package-sample-IosevkaSS18.light.svg similarity index 100% rename from images/iosevka-ss18.light.svg rename to images/package-sample-IosevkaSS18.light.svg diff --git a/images/iosevka-slab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg similarity index 100% rename from images/iosevka-slab.dark.svg rename to images/package-sample-IosevkaSlab.dark.svg diff --git a/images/iosevka-slab.light.svg b/images/package-sample-IosevkaSlab.light.svg similarity index 100% rename from images/iosevka-slab.light.svg rename to images/package-sample-IosevkaSlab.light.svg diff --git a/images/iosevka.dark.svg b/images/package-sample-IosevkaTerm.dark.svg similarity index 100% rename from images/iosevka.dark.svg rename to images/package-sample-IosevkaTerm.dark.svg diff --git a/images/iosevka.light.svg b/images/package-sample-IosevkaTerm.light.svg similarity index 100% rename from images/iosevka.light.svg rename to images/package-sample-IosevkaTerm.light.svg diff --git a/images/iosevka-term-curly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg similarity index 100% rename from images/iosevka-term-curly.dark.svg rename to images/package-sample-IosevkaTermCurly.dark.svg diff --git a/images/iosevka-term-curly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg similarity index 100% rename from images/iosevka-term-curly.light.svg rename to images/package-sample-IosevkaTermCurly.light.svg diff --git a/images/iosevka-term-curly-slab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg similarity index 100% rename from images/iosevka-term-curly-slab.dark.svg rename to images/package-sample-IosevkaTermCurlySlab.dark.svg diff --git a/images/iosevka-term-curly-slab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg similarity index 100% rename from images/iosevka-term-curly-slab.light.svg rename to images/package-sample-IosevkaTermCurlySlab.light.svg diff --git a/images/iosevka-term-ss01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg similarity index 100% rename from images/iosevka-term-ss01.dark.svg rename to images/package-sample-IosevkaTermSS01.dark.svg diff --git a/images/iosevka-term-ss01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg similarity index 100% rename from images/iosevka-term-ss01.light.svg rename to images/package-sample-IosevkaTermSS01.light.svg diff --git a/images/iosevka-term-ss02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg similarity index 100% rename from images/iosevka-term-ss02.dark.svg rename to images/package-sample-IosevkaTermSS02.dark.svg diff --git a/images/iosevka-term-ss02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg similarity index 100% rename from images/iosevka-term-ss02.light.svg rename to images/package-sample-IosevkaTermSS02.light.svg diff --git a/images/iosevka-term-ss03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg similarity index 100% rename from images/iosevka-term-ss03.dark.svg rename to images/package-sample-IosevkaTermSS03.dark.svg diff --git a/images/iosevka-term-ss03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg similarity index 100% rename from images/iosevka-term-ss03.light.svg rename to images/package-sample-IosevkaTermSS03.light.svg diff --git a/images/iosevka-term-ss04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg similarity index 100% rename from images/iosevka-term-ss04.dark.svg rename to images/package-sample-IosevkaTermSS04.dark.svg diff --git a/images/iosevka-term-ss04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg similarity index 100% rename from images/iosevka-term-ss04.light.svg rename to images/package-sample-IosevkaTermSS04.light.svg diff --git a/images/iosevka-term-ss05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg similarity index 100% rename from images/iosevka-term-ss05.dark.svg rename to images/package-sample-IosevkaTermSS05.dark.svg diff --git a/images/iosevka-term-ss05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg similarity index 100% rename from images/iosevka-term-ss05.light.svg rename to images/package-sample-IosevkaTermSS05.light.svg diff --git a/images/iosevka-term-ss06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg similarity index 100% rename from images/iosevka-term-ss06.dark.svg rename to images/package-sample-IosevkaTermSS06.dark.svg diff --git a/images/iosevka-term-ss06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg similarity index 100% rename from images/iosevka-term-ss06.light.svg rename to images/package-sample-IosevkaTermSS06.light.svg diff --git a/images/iosevka-term-ss07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg similarity index 100% rename from images/iosevka-term-ss07.dark.svg rename to images/package-sample-IosevkaTermSS07.dark.svg diff --git a/images/iosevka-term-ss07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg similarity index 100% rename from images/iosevka-term-ss07.light.svg rename to images/package-sample-IosevkaTermSS07.light.svg diff --git a/images/iosevka-term-ss08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg similarity index 100% rename from images/iosevka-term-ss08.dark.svg rename to images/package-sample-IosevkaTermSS08.dark.svg diff --git a/images/iosevka-term-ss08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg similarity index 100% rename from images/iosevka-term-ss08.light.svg rename to images/package-sample-IosevkaTermSS08.light.svg diff --git a/images/iosevka-term-ss09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg similarity index 100% rename from images/iosevka-term-ss09.dark.svg rename to images/package-sample-IosevkaTermSS09.dark.svg diff --git a/images/iosevka-term-ss09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg similarity index 100% rename from images/iosevka-term-ss09.light.svg rename to images/package-sample-IosevkaTermSS09.light.svg diff --git a/images/iosevka-term-ss10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg similarity index 100% rename from images/iosevka-term-ss10.dark.svg rename to images/package-sample-IosevkaTermSS10.dark.svg diff --git a/images/iosevka-term-ss10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg similarity index 100% rename from images/iosevka-term-ss10.light.svg rename to images/package-sample-IosevkaTermSS10.light.svg diff --git a/images/iosevka-term-ss11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg similarity index 100% rename from images/iosevka-term-ss11.dark.svg rename to images/package-sample-IosevkaTermSS11.dark.svg diff --git a/images/iosevka-term-ss11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg similarity index 100% rename from images/iosevka-term-ss11.light.svg rename to images/package-sample-IosevkaTermSS11.light.svg diff --git a/images/iosevka-term-ss12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg similarity index 100% rename from images/iosevka-term-ss12.dark.svg rename to images/package-sample-IosevkaTermSS12.dark.svg diff --git a/images/iosevka-term-ss12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg similarity index 100% rename from images/iosevka-term-ss12.light.svg rename to images/package-sample-IosevkaTermSS12.light.svg diff --git a/images/iosevka-term-ss13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg similarity index 100% rename from images/iosevka-term-ss13.dark.svg rename to images/package-sample-IosevkaTermSS13.dark.svg diff --git a/images/iosevka-term-ss13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg similarity index 100% rename from images/iosevka-term-ss13.light.svg rename to images/package-sample-IosevkaTermSS13.light.svg diff --git a/images/iosevka-term-ss14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg similarity index 100% rename from images/iosevka-term-ss14.dark.svg rename to images/package-sample-IosevkaTermSS14.dark.svg diff --git a/images/iosevka-term-ss14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg similarity index 100% rename from images/iosevka-term-ss14.light.svg rename to images/package-sample-IosevkaTermSS14.light.svg diff --git a/images/iosevka-term-ss15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg similarity index 100% rename from images/iosevka-term-ss15.dark.svg rename to images/package-sample-IosevkaTermSS15.dark.svg diff --git a/images/iosevka-term-ss15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg similarity index 100% rename from images/iosevka-term-ss15.light.svg rename to images/package-sample-IosevkaTermSS15.light.svg diff --git a/images/iosevka-term-ss16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg similarity index 100% rename from images/iosevka-term-ss16.dark.svg rename to images/package-sample-IosevkaTermSS16.dark.svg diff --git a/images/iosevka-term-ss16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg similarity index 100% rename from images/iosevka-term-ss16.light.svg rename to images/package-sample-IosevkaTermSS16.light.svg diff --git a/images/iosevka-term-ss17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg similarity index 100% rename from images/iosevka-term-ss17.dark.svg rename to images/package-sample-IosevkaTermSS17.dark.svg diff --git a/images/iosevka-term-ss17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg similarity index 100% rename from images/iosevka-term-ss17.light.svg rename to images/package-sample-IosevkaTermSS17.light.svg diff --git a/images/iosevka-term-ss18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg similarity index 100% rename from images/iosevka-term-ss18.dark.svg rename to images/package-sample-IosevkaTermSS18.dark.svg diff --git a/images/iosevka-term-ss18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg similarity index 100% rename from images/iosevka-term-ss18.light.svg rename to images/package-sample-IosevkaTermSS18.light.svg diff --git a/images/iosevka-term-slab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg similarity index 100% rename from images/iosevka-term-slab.dark.svg rename to images/package-sample-IosevkaTermSlab.dark.svg diff --git a/images/iosevka-term-slab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg similarity index 100% rename from images/iosevka-term-slab.light.svg rename to images/package-sample-IosevkaTermSlab.light.svg diff --git a/utility/generate-release-note/package-list.mjs b/utility/generate-release-note/package-list.mjs index f8a07a4bd4..86b97bff2e 100644 --- a/utility/generate-release-note/package-list.mjs +++ b/utility/generate-release-note/package-list.mjs @@ -34,8 +34,8 @@ async function GeneratePackageList(argv, out) { for (let [groupID, gr] of Object.entries(pkgShapesData)) { const prime = gr.subGroups[groupID]; const familyName = buildName("\u00a0", ...prime.family.split(" ")); - const sTtcName = buildName("-", "super-ttc", groupID, argv.version); - const ttcName = buildName("-", "ttc", groupID, argv.version); + const sTtcName = buildName("-", "SuperTTC", groupID, argv.version); + const ttcName = buildName("-", "PkgTTC", groupID, argv.version); const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; const proportionPrefix = gr.quasiProportional ? "Quasi-proportional" : "Monospace"; @@ -74,12 +74,12 @@ async function GeneratePackageList(argv, out) { `${leader} ${noBreak(subGr.family)}`, `${spacingDesc}`, `${flag(ligation)}`, - `${createLink("Super\u00A0TTC", "super-ttc-sgr")}`, - `${createLink("TTC", "ttc-sgr")}`, - `${createLink("TTF", "ttf")} ` + - `(${createLink("Unhinted", "ttf-unhinted")})`, - `${createLink("WebFont", "webfont")} ` + - `(${createLink("Unhinted", "webfont-unhinted")})`, + `${createLink("Super\u00A0TTC", "SuperTTC-SGr")}`, + `${createLink("TTC", "PkgTTC-SGr")}`, + `${createLink("TTF", "PkgTTF")} ` + + `(${createLink("Unhinted", "PkgTTF-Unhinted")})`, + `${createLink("WebFont", "PkgWebFont")} ` + + `(${createLink("Unhinted", "PkgWebFont-Unhinted")})`, `` ); } diff --git a/utility/generate-samples/index.mjs b/utility/generate-samples/index.mjs index c493b48ee8..9f72048146 100644 --- a/utility/generate-samples/index.mjs +++ b/utility/generate-samples/index.mjs @@ -42,7 +42,7 @@ async function main(argv) { const ligationData = await parseLigationData(); const tasks = new Generator( argv.outputDir, - argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "ttf", "*.ttf")) + argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "TTF", "*.ttf")) ); // Common diff --git a/utility/make-webfont-css.mjs b/utility/make-webfont-css.mjs index 1b011282ea..dd498faf45 100644 --- a/utility/make-webfont-css.mjs +++ b/utility/make-webfont-css.mjs @@ -1,8 +1,8 @@ import fs from "fs"; const WebfontFormatMap = new Map([ - ["woff2", "woff2"], - ["ttf", "truetype"] + ["WOFF2", "woff2"], + ["TTF", "truetype"] ]); export default (function (output, family, hs, formats, unhinted) { if (!formats) { diff --git a/verdafile.mjs b/verdafile.mjs index daefd1578e..c969d76f3f 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -35,14 +35,14 @@ const MAKE_TTC = ["node", "node_modules/otb-ttc-bundle/bin/otb-ttc-bundle"]; const SEVEN_ZIP = process.env.SEVEN_ZIP_PATH || "7z"; const TTFAUTOHINT = process.env.TTFAUTOHINT_PATH || "ttfautohint"; -const defaultWebFontFormats = ["woff2", "ttf"]; -const webfontFormatsFast = ["ttf"]; -const webfontFormatsPages = ["woff2"]; +const defaultWebFontFormats = ["WOFF2", "TTF"]; +const webfontFormatsFast = ["TTF"]; +const webfontFormatsPages = ["WOFF2"]; -const WIDTH_NORMAL = "normal"; -const WEIGHT_NORMAL = "regular"; -const SLOPE_NORMAL = "upright"; -const DEFAULT_SUBFAMILY = "regular"; +const WIDTH_NORMAL = "Normal"; +const WEIGHT_NORMAL = "Regular"; +const SLOPE_NORMAL = "Upright"; +const DEFAULT_SUBFAMILY = "Regular"; const BUILD_PLANS = "build-plans.toml"; const PRIVATE_BUILD_PLANS = "private-build-plans.toml"; @@ -389,12 +389,12 @@ function whyBuildPlanIsnNotThere(gid) { const ageKey = uuid.v4(); const DistUnhintedTTF = file.make( - (gr, fn) => `${DIST}/${gr}/ttf-unhinted/${fn}.ttf`, + (gr, fn) => `${DIST}/${gr}/TTF-Unhinted/${fn}.ttf`, async (target, out, gr, fn) => { await target.need(Scripts, Parameters, Dependencies, de(out.dir)); const [fi] = await target.need(FontInfoOf(fn)); - const charMapDir = `${BUILD}/ttf/${gr}`; + const charMapDir = `${BUILD}/TTF/${gr}`; const charMapPath = `${charMapDir}/${fn}.charmap.mpz`; const ttfaControlsPath = `${charMapDir}/${fn}.ttfa.txt`; @@ -459,21 +459,21 @@ const DistUnhintedTTF = file.make( ); const BuildCM = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.charmap.mpz`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.charmap.mpz`, async (target, output, gr, f) => { await target.need(DistUnhintedTTF(gr, f)); } ); const BuildTtfaControls = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.ttfa.txt`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.ttfa.txt`, async (target, output, gr, f) => { await target.need(DistUnhintedTTF(gr, f)); } ); const DistHintedTTF = file.make( - (gr, fn) => `${DIST}/${gr}/ttf/${fn}.ttf`, + (gr, fn) => `${DIST}/${gr}/TTF/${fn}.ttf`, async (target, out, gr, fn) => { const [fi, hint] = await target.need( FontInfoOf(fn), @@ -485,7 +485,7 @@ const DistHintedTTF = file.make( // normally-spaced variant. const spD = fi.spacingDerive; - const charMapDir = `${BUILD}/ttf/${gr}`; + const charMapDir = `${BUILD}/TTF/${gr}`; const noGcTtfPath = `${charMapDir}/${fn}.no-gc.hinted.ttf`; const [deriveFrom] = await target.need( @@ -512,7 +512,7 @@ const DistHintedTTF = file.make( ); const BuildNoGcTtfImpl = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.no-gc.hinted.ttf`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.no-gc.hinted.ttf`, async (target, output, gr, f) => { await target.need(DistHintedTTF(gr, f)); } @@ -533,10 +533,10 @@ const BuildNoGcTtf = task.make( ); function formatSuffix(fmt, unhinted) { - return fmt + (unhinted ? "-unhinted" : ""); + return fmt + (unhinted ? "-Unhinted" : ""); } const DistWoff2 = file.make( - (gr, fn, unhinted) => `${DIST}/${gr}/${formatSuffix("woff2", unhinted)}/${fn}.woff2`, + (gr, fn, unhinted) => `${DIST}/${gr}/${formatSuffix("WOFF2", unhinted)}/${fn}.woff2`, async (target, out, group, f, unhinted) => { const Ctor = unhinted ? DistUnhintedTTF : DistHintedTTF; @@ -598,7 +598,7 @@ async function createWebFontCssImpl(target, output, gr, formats, unhinted) { // Content files const GroupTtfsImpl = task.make( - (gr, unhinted) => `group-${formatSuffix("ttf-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("TTFImpl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const Ctor = unhinted ? DistUnhintedTTF : DistHintedTTF; const [ts] = await target.need(GroupFontsOf(gr)); @@ -607,7 +607,7 @@ const GroupTtfsImpl = task.make( } ); const GroupWoff2Impl = task.make( - (gr, unhinted) => `group-${formatSuffix("woff2-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("WOFF2Impl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const [ts] = await target.need(GroupFontsOf(gr)); await target.need(ts.map(tn => DistWoff2(gr, tn, unhinted))); @@ -615,16 +615,16 @@ const GroupWoff2Impl = task.make( } ); const GroupWebFontsImpl = task.make( - (gr, unhinted) => `group-${formatSuffix("webfont-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("WebFontImpl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const [bp] = await target.need(BuildPlanOf(gr)); const groupsNeeded = []; for (const ext of bp.webfontFormats) { switch (ext) { - case "ttf": + case "TTF": groupsNeeded.push(GroupTtfsImpl(gr, unhinted)); break; - case "woff2": + case "WOFF2": groupsNeeded.push(GroupWoff2Impl(gr, unhinted)); break; } @@ -655,7 +655,7 @@ async function getCollectPlans(target, rawCollectPlans) { const amendedRawCollectPlans = { ...rawCollectPlans }; for (const gr of allCollectableGroups) { - amendedRawCollectPlans[`sgr-` + gr] = { release: true, isAmended: true, from: [gr] }; + amendedRawCollectPlans[`SGr-` + gr] = { release: true, isAmended: true, from: [gr] }; } for (const collectPrefix in amendedRawCollectPlans) { @@ -780,7 +780,7 @@ async function buildGlyphSharingTtc(target, parts, out) { // Collection Archives const TtcZip = file.make( - (cgr, version) => `${ARCHIVE_DIR}/ttc-${cgr}-${version}.zip`, + (cgr, version) => `${ARCHIVE_DIR}/PkgTTC-${cgr}-${version}.zip`, async (target, out, cgr) => { const [cPlan] = await target.need(CollectPlans, de`${out.dir}`); const ttcFiles = Array.from(Object.keys(cPlan[cgr].ttcComposition)); @@ -789,7 +789,7 @@ const TtcZip = file.make( } ); const SuperTtcZip = file.make( - (cgr, version) => `${ARCHIVE_DIR}/super-ttc-${cgr}-${version}.zip`, + (cgr, version) => `${ARCHIVE_DIR}/SuperTTC-${cgr}-${version}.zip`, async (target, out, cgr) => { await target.need(de`${out.dir}`, CollectedSuperTtcFile(cgr)); await CreateGroupArchiveFile(DIST_SUPER_TTC, out, `${cgr}.ttc`); @@ -799,12 +799,12 @@ const SuperTtcZip = file.make( // Single-group Archives const GroupTtfZip = file.make( (gr, version, unhinted) => - `${ARCHIVE_DIR}/${formatSuffix("ttf", unhinted)}-${gr}-${version}.zip`, + `${ARCHIVE_DIR}/${formatSuffix("PkgTTF", unhinted)}-${gr}-${version}.zip`, async (target, out, gr, _version_, unhinted) => { await target.need(de`${out.dir}`); await target.need(GroupTtfsImpl(gr, unhinted)); await CreateGroupArchiveFile( - `${DIST}/${gr}/${formatSuffix("ttf", unhinted)}`, + `${DIST}/${gr}/${formatSuffix("TTF", unhinted)}`, out, "*.ttf" ); @@ -812,7 +812,7 @@ const GroupTtfZip = file.make( ); const GroupWebZip = file.make( (gr, version, unhinted) => - `${ARCHIVE_DIR}/${formatSuffix("webfont", unhinted)}-${gr}-${version}.zip`, + `${ARCHIVE_DIR}/${formatSuffix("PkgWebFont", unhinted)}-${gr}-${version}.zip`, async (target, out, gr, _version_, unhinted) => { const [plan] = await target.need(BuildPlanOf(gr)); await target.need(de`${out.dir}`); @@ -848,14 +848,14 @@ async function CreateGroupArchiveFile(dir, out, ...files) { const Pages = task(`pages`, async t => { await t.need( PagesDataExport, - PagesFontExport`iosevka`, - PagesFontExport`iosevka-slab`, - PagesFontExport`iosevka-aile`, - PagesFontExport`iosevka-etoile`, - PagesFontExport`iosevka-QP`, - PagesFontExport`iosevka-QP-slab`, - PagesFontExport`iosevka-QPE`, - PagesFontExport`iosevka-QPE-slab` + PagesFontExport`Iosevka`, + PagesFontExport`IosevkaSlab`, + PagesFontExport`IosevkaAile`, + PagesFontExport`IosevkaEtoile`, + PagesFontExport`IosevkaQp`, + PagesFontExport`IosevkaQpSlab`, + PagesFontExport`IosevkaQpe`, + PagesFontExport`IosevkaQpeSlab` ); }); @@ -868,9 +868,9 @@ const PagesDir = oracle(`pages-dir-path`, async t => { const PagesDataExport = task(`pages:data-export`, async t => { const [pagesDir] = await t.need(PagesDir, Version, Parameters, UtilScripts); const [cm, cmi, cmo] = await t.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); await node(`utility/export-tokenized-sample-code.mjs`, { output: Path.resolve(pagesDir, "shared/tokenized-sample-code/alphabet.txt.json") @@ -888,18 +888,18 @@ const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => { target.is.volatile(); const [pagesDir] = await target.need(PagesDir); if (!pagesDir) return; - const outDir = Path.resolve(pagesDir, "shared/fonts", gr); + const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr); await target.need(GroupWebFontsImpl(gr, false), de(outDir)); - await cp(`${DIST}/${gr}/woff2`, Path.resolve(outDir, "woff2")); + await cp(`${DIST}/${gr}/WOFF2`, Path.resolve(outDir, "WOFF2")); await createWebFontCssImpl(target, Path.resolve(outDir, `${gr}.css`), gr, webfontFormatsPages); - await rm(Path.resolve(outDir, "ttf")); + await rm(Path.resolve(outDir, "TTF")); }); const PagesFastFontExport = task.group(`pages:fast-font-export`, async (target, gr) => { target.is.volatile(); const [pagesDir] = await target.need(PagesDir); if (!pagesDir) return; - const outDir = Path.resolve(pagesDir, "shared/fonts", gr); + const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr); await target.need(GroupTtfsImpl(gr, true), de(outDir)); // Next.js 12 has some problem about refreshing fonts, so write an empty CSS first @@ -907,9 +907,9 @@ const PagesFastFontExport = task.group(`pages:fast-font-export`, async (target, await Delay(2000); // Then do the copy - await cp(`${DIST}/${gr}/ttf-unhinted`, Path.resolve(outDir, "ttf")); + await cp(`${DIST}/${gr}/TTF-Unhinted`, Path.resolve(outDir, "TTF")); await createWebFontCssImpl(target, Path.resolve(outDir, `${gr}.css`), gr, webfontFormatsFast); - await rm(Path.resolve(outDir, "woff2")); + await rm(Path.resolve(outDir, "WOFF2")); }); /////////////////////////////////////////////////////////// @@ -931,9 +931,9 @@ const AmendReadmeFor = task.make( async (target, f) => { await target.need(Parameters, UtilScripts); const [cm, cmi, cmo] = await target.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); return node(`utility/amend-readme/index.mjs`, { mdFilePath: f, @@ -962,15 +962,15 @@ const SampleImages = task(`sample-images`, async target => { const SampleImagesPre = task(`sample-images:pre`, async target => { const [version] = await target.need(Version, de(IMAGE_TASKS), UtilScripts); const fontGroups = await target.need( - GroupTtfsImpl(`iosevka`, false), - GroupTtfsImpl(`iosevka-slab`, false), - GroupTtfsImpl(`iosevka-aile`, false), - GroupTtfsImpl(`iosevka-etoile`, false) + GroupTtfsImpl(`Iosevka`, false), + GroupTtfsImpl(`IosevkaSlab`, false), + GroupTtfsImpl(`IosevkaAile`, false), + GroupTtfsImpl(`IosevkaEtoile`, false) ); const [cm, cmi, cmo] = await target.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); return await node("utility/generate-samples/index.mjs", { version, @@ -989,7 +989,7 @@ const PackageSnapshotConfig = async target => { const p = plan.buildPlans[key]; if (!p || !p.snapshotFamily) continue; cfg.push({ - name: key, + name: "package-sample-" + key, fontFamily: p.snapshotFamily, fontFeatures: p.snapshotFeature }); From cff60d3c99f37a033a8c16062d0015ad9a3cbe93 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Nov 2023 17:42:06 -0800 Subject: [PATCH 04/59] Variant reordering --- changes/28.0.0-alpha.1.md | 4 + params/variants.toml | 258 ++++++++++++++++++-------------------- 2 files changed, 125 insertions(+), 137 deletions(-) diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index e172fa2c06..15ee7853b9 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,4 +1,8 @@ * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. + * \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. + * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. * Add hook-inward-serifed variants for `a` (#2085). diff --git a/params/variants.toml b/params/variants.toml index cfe723f37a..3ecb9b3600 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -658,27 +658,11 @@ sampler = "M" tagKind = "letter" [prime.capital-m.variants-buildup] -entry = "middle" +entry = "sides" descriptionLeader = "`M`" -[prime.capital-m.variants-buildup.stages.middle."*"] -next = "sides" - -[prime.capital-m.variants-buildup.stages.middle.hanging] -rank = 1 -descriptionAffix = "middle being hanging off baseline" -selectorAffix.M = "hanging" -selectorAffix."M/sansSerif" = "hanging" - -[prime.capital-m.variants-buildup.stages.middle.flat-bottom] -rank = 2 -descriptionAffix = "middle aligned to baseline" -selectorAffix.M = "flatBottom" -selectorAffix."M/sansSerif" = "flatBottom" - [prime.capital-m.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" +next = "middle" [prime.capital-m.variants-buildup.stages.sides.straight] rank = 1 @@ -692,6 +676,21 @@ descriptionAffix = "slanted sides" selectorAffix.M = "slantedSides" selectorAffix."M/sansSerif" = "slantedSides" +[prime.capital-m.variants-buildup.stages.middle."*"] +next = "serifs" + +[prime.capital-m.variants-buildup.stages.middle.hanging] +rank = 1 +descriptionAffix = "middle being hanging off baseline" +selectorAffix.M = "hanging" +selectorAffix."M/sansSerif" = "hanging" + +[prime.capital-m.variants-buildup.stages.middle.flat-bottom] +rank = 2 +descriptionAffix = "middle aligned to baseline" +selectorAffix.M = "flatBottom" +selectorAffix."M/sansSerif" = "flatBottom" + [prime.capital-m.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -882,39 +881,18 @@ sampler = "R" tagKind = "letter" [prime.capital-r.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "`R`" [prime.capital-r.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.capital-r.variants-buildup.stages.openness.closed] -rank = 1 -groupRank = 10 -keyAffix = "" -selectorAffix.R = "" -selectorAffix."R/sansSerif" = "" -selectorAffix.RBar = "" -selectorAffix.RRTail = "" -selectorAffix.RRotunda = "" - -[prime.capital-r.variants-buildup.stages.openness.open] -rank = 2 -groupRank = 20 -descriptionAffix = "open contour" -selectorAffix.R = "open" -selectorAffix."R/sansSerif" = "open" -selectorAffix.RBar = "" -selectorAffix.RRTail = "open" -selectorAffix.RRotunda = "" +next = "serifs" [prime.capital-r.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.capital-r.variants-buildup.stages.leg.straight] rank = 1 -groupRank = 1 +groupRank = 10 descriptionAffix = "straight leg" selectorAffix.R = "straight" selectorAffix."R/sansSerif" = "straight" @@ -924,7 +902,7 @@ selectorAffix.RRotunda = "straight" [prime.capital-r.variants-buildup.stages.leg.curly] rank = 2 -groupRank = 2 +groupRank = 20 descriptionAffix = "curly leg" selectorAffix.R = "curly" selectorAffix."R/sansSerif" = "curly" @@ -934,7 +912,7 @@ selectorAffix.RRotunda = "curly" [prime.capital-r.variants-buildup.stages.leg.standing] rank = 3 -groupRank = 3 +groupRank = 30 descriptionAffix = "standing leg (like Helvetica)" selectorAffix.R = "standing" selectorAffix."R/sansSerif" = "standing" @@ -942,6 +920,26 @@ selectorAffix.RBar = "standing" selectorAffix.RRTail = "standing" selectorAffix.RRotunda = "standing" +[prime.capital-r.variants-buildup.stages.openness.closed] +rank = 1 +groupRank = 1 +keyAffix = "" +selectorAffix.R = "" +selectorAffix."R/sansSerif" = "" +selectorAffix.RBar = "" +selectorAffix.RRTail = "" +selectorAffix.RRotunda = "" + +[prime.capital-r.variants-buildup.stages.openness.open] +rank = 2 +groupRank = 2 +descriptionAffix = "open contour" +selectorAffix.R = "open" +selectorAffix."R/sansSerif" = "open" +selectorAffix.RBar = "" +selectorAffix.RRTail = "open" +selectorAffix.RRotunda = "" + [prime.capital-r.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -1544,7 +1542,6 @@ selectorAffix.scripta = "" [prime.a.variants-buildup.stages.double-storey-hook.hook-serifed] rank = 2 -nonBreakingVariantAdditionPriority = 100 keyAffix = "hook-inward-serifed" descriptionAffix = "serifed hook" selectorAffix.a = "hookInwardSerifed" @@ -1932,12 +1929,11 @@ sampler = "f" tagKind = "letter" [prime.f.variants-buildup] -entry = "tail" +entry = "hook" descriptionLeader = "`f`" [prime.f.variants-buildup.stages.hook."*"] -next = "crossbar" -mode = "prepend" +next = "tail" [prime.f.variants-buildup.stages.hook.full] rank = 1 @@ -1966,7 +1962,7 @@ selectorAffix.fLenis = "flatHook" selectorAffix.fLTail = "flatHook" [prime.f.variants-buildup.stages.tail."*"] -next = "hook" +next = "crossbar" [prime.f.variants-buildup.stages.tail.serifless] rank = 1 @@ -3489,11 +3485,11 @@ sampler = "t" tagKind = "letter" [prime.t.variants-buildup] -entry = "height" +entry = "body" descriptionLeader = "`t`" [prime.t.variants-buildup.stages.body."*"] -mode = "prepend" +next = "symmetry" [prime.t.variants-buildup.stages.body.bent-hook] rank = 1 @@ -3553,8 +3549,7 @@ selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", selectorAffix."tsLig/upperHalf" = "bentHook" [prime.t.variants-buildup.stages.symmetry."*"] -next = "body" -mode = "prepend" +next = "height" [prime.t.variants-buildup.stages.symmetry.symmetric] rank = 1 @@ -3587,7 +3582,6 @@ selectorAffix.tCurlyTail = "asymmetric" selectorAffix."tsLig/upperHalf" = "" [prime.t.variants-buildup.stages.height."*"] -next = "symmetry" [prime.t.variants-buildup.stages.height.full] rank = 1 @@ -3996,7 +3990,6 @@ selectorAffix."cyrl/ha" = "cursive" [prime.x.variants-buildup.stages.body.semi-chancery-straight] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix.x = "semiChanceryStraight" @@ -4005,7 +3998,6 @@ selectorAffix."cyrl/ha" = "semiChanceryStraight" [prime.x.variants-buildup.stages.body.semi-chancery-curly] rank = 5 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix.x = "semiChanceryCurly" @@ -4014,7 +4006,6 @@ selectorAffix."cyrl/ha" = "semiChanceryCurly" [prime.x.variants-buildup.stages.body.chancery] rank = 6 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix.x = "chancery" @@ -4266,14 +4257,34 @@ samplerExplain = "Long-S" tagKind = "letter" [prime.long-s.variants-buildup] -entry = "bottom" +entry = "top" descriptionLeader = "Long S (`ſ`)" +[prime.long-s.variants-buildup.stages.top."*"] +next = "bottom" + +[prime.long-s.variants-buildup.stages.top.bent-hook] +rank = 1 +groupRank = 10 +descriptionAffix = "bending top hook" +selectorAffix."longs" = "bentHook" +selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longsBar" = "bentHook" + +[prime.long-s.variants-buildup.stages.top.flat-hook] +rank = 2 +groupRank = 20 +descriptionAffix = "flat top hook" +selectorAffix."longs" = "flatHook" +selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longsBar" = "flatHook" + [prime.long-s.variants-buildup.stages.bottom."*"] -next = "top" +next = "serifs" [prime.long-s.variants-buildup.stages.bottom.non-descending] rank = 1 +groupRank = 1 keyAffix = "" selectorAffix."longs" = "" selectorAffix."longs/flatExt" = "" @@ -4281,6 +4292,7 @@ selectorAffix."longsBar" = "" [prime.long-s.variants-buildup.stages.bottom.descending] rank = 2 +groupRank = 2 descriptionAffix = "terminal descends baseline" selectorAffix."longs" = "descending" selectorAffix."longs/flatExt" = "descending" @@ -4288,6 +4300,7 @@ selectorAffix."longsBar" = "descending" [prime.long-s.variants-buildup.stages.bottom.tailed] rank = 3 +groupRank = 3 descriptionAffix = "terminal has a tail" selectorAffix."longs" = "tailed" selectorAffix."longs/flatExt" = "tailed" @@ -4295,29 +4308,12 @@ selectorAffix."longsBar" = "tailed" [prime.long-s.variants-buildup.stages.bottom.diagonal-tailed] rank = 4 +groupRank = 4 descriptionAffix = "terminal has a diagonal tail" selectorAffix."longs" = "diagonalTailed" selectorAffix."longs/flatExt" = "diagonalTailed" selectorAffix."longsBar" = "diagonalTailed" -[prime.long-s.variants-buildup.stages.top."*"] -next = "serifs" -mode = "prepend" - -[prime.long-s.variants-buildup.stages.top.bent-hook] -rank = 1 -descriptionAffix = "bending top hook" -selectorAffix."longs" = "bentHook" -selectorAffix."longs/flatExt" = "flatHookExt" -selectorAffix."longsBar" = "bentHook" - -[prime.long-s.variants-buildup.stages.top.flat-hook] -rank = 2 -descriptionAffix = "flat top hook" -selectorAffix."longs" = "flatHook" -selectorAffix."longs/flatExt" = "flatHookExt" -selectorAffix."longsBar" = "flatHook" - [prime.long-s.variants-buildup.stages.serifs.serifless__non-descending] rank = 1 enableIf = [{ bottom = "non-descending" }] @@ -4986,7 +4982,6 @@ selectorAffix."grek/chi/sansSerif" = "curly" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-straight] rank = 3 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix."grek/chi" = "semiChanceryStraight" @@ -4994,7 +4989,6 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryStraight" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-curly] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix."grek/chi" = "semiChanceryCurly" @@ -5002,7 +4996,6 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryCurly" [prime.lower-chi.variants-buildup.stages.body.chancery] rank = 5 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix."grek/chi" = "chancery" @@ -5394,12 +5387,25 @@ sampler = "м" samplerExplain = "Cyrillic Lower Em" tagKind = "letter" +[prime.cyrl-em.variants-buildup.stages.sides."*"] +next = "middle" + +[prime.cyrl-em.variants-buildup.stages.sides.straight] +rank = 1 +keyAffix = "" +selectorAffix."cyrl/em" = "" + +[prime.cyrl-em.variants-buildup.stages.sides.slanted-sides] +rank = 2 +descriptionAffix = "slanted sides" +selectorAffix."cyrl/em" = "slantedSides" + [prime.cyrl-em.variants-buildup] -entry = "middle" +entry = "sides" descriptionLeader = "Cyrillic Lower Em (`м`)" [prime.cyrl-em.variants-buildup.stages.middle."*"] -next = "sides" +next = "serifs" [prime.cyrl-em.variants-buildup.stages.middle.hanging] rank = 1 @@ -5411,20 +5417,6 @@ rank = 2 descriptionAffix = "middle aligned to baseline" selectorAffix."cyrl/em" = "flatBottom" -[prime.cyrl-em.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" - -[prime.cyrl-em.variants-buildup.stages.sides.straight] -rank = 1 -keyAffix = "" -selectorAffix."cyrl/em" = "" - -[prime.cyrl-em.variants-buildup.stages.sides.slanted-sides] -rank = 2 -descriptionAffix = "slanted sides" -selectorAffix."cyrl/em" = "slantedSides" - [prime.cyrl-em.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5522,7 +5514,6 @@ selectorAffix."cyrl/njeKomi" = "serifedExceptBottomRight" [prime.cyrl-er] sampler = "р" samplerExplain = "Cyrillic Lower Er" -nonBreakingTagForNewVariantSelector = "VXAA" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-er.variants-buildup] @@ -5643,7 +5634,6 @@ selectorAffix."cyrl/U" = "serifed" [prime.cyrl-u] sampler = "у" samplerExplain = "Cyrillic Lower U" -nonBreakingTagForNewVariantSelector = "VXAB" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-u.variants-buildup] @@ -5726,7 +5716,6 @@ selectorAffix."cyrl/ef.BGR" = "" [prime.cyrl-ef.variants-buildup.stages.bowl.split] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "split bowl" selectorAffix."cyrl/ef" = "splitBowl" selectorAffix."cyrl/ef.BGR" = "" @@ -5757,14 +5746,12 @@ selectorAffix."cyrl/ef.BGR" = "serifless" [prime.cyrl-ef.variants-buildup.stages.serifs.top-serifed] rank = 2 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serif at top" selectorAffix."cyrl/ef" = "topSerifed" selectorAffix."cyrl/ef.BGR" = "topSerifed" [prime.cyrl-ef.variants-buildup.stages.serifs.serifed] rank = 3 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serifs at top and bottom" selectorAffix."cyrl/ef" = "serifed" selectorAffix."cyrl/ef.BGR" = "serifed" @@ -5911,25 +5898,11 @@ samplerExplain = "Cyrillic Capital Ya" tagKind = "letter" [prime.cyrl-capital-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Capital Ya (`Я`)" -[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] -rank = 1 -keyAffix = "" -selectorAffix."cyrl/Ya" = "" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] -rank = 2 -descriptionAffix = "open contour" -selectorAffix."cyrl/Ya" = "open" - [prime.cyrl-capital-ya.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.cyrl-capital-ya.variants-buildup.stages.leg.straight] rank = 1 @@ -5946,6 +5919,19 @@ rank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/Ya" = "standing" +[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] +next = "serifs" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] +rank = 1 +keyAffix = "" +selectorAffix."cyrl/Ya" = "" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] +rank = 2 +descriptionAffix = "open contour" +selectorAffix."cyrl/Ya" = "open" + [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5970,27 +5956,11 @@ samplerExplain = "Cyrillic Lower Ya" tagKind = "letter" [prime.cyrl-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Lower Ya (`я`)" -[prime.cyrl-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-ya.variants-buildup.stages.openness.closed] -rank = 1 -groupRrank = 10 -keyAffix = "" -selectorAffix."cyrl/ya" = "" - -[prime.cyrl-ya.variants-buildup.stages.openness.open] -rank = 2 -groupRrank = 20 -descriptionAffix = "open contour" -selectorAffix."cyrl/ya" = "open" - [prime.cyrl-ya.variants-buildup.stages.leg."*"] -next = "tails" -mode = "prepend" +next = "openness" [prime.cyrl-ya.variants-buildup.stages.leg.straight] rank = 1 @@ -6010,6 +5980,21 @@ groupRank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/ya" = "standing" +[prime.cyrl-ya.variants-buildup.stages.openness."*"] +next = "serifs" + +[prime.cyrl-ya.variants-buildup.stages.openness.closed] +rank = 1 +groupRrank = 10 +keyAffix = "" +selectorAffix."cyrl/ya" = "" + +[prime.cyrl-ya.variants-buildup.stages.openness.open] +rank = 2 +groupRrank = 20 +descriptionAffix = "open contour" +selectorAffix."cyrl/ya" = "open" + [prime.cyrl-ya.variants-buildup.stages.tails."*"] next = "serifs" @@ -6364,7 +6349,6 @@ selectorAffix.zhuangToneFive = "arched" [prime.five.variants-buildup.stages.middle.flat] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "flat middle part" selectorAffix.five = "flat" selectorAffix.zhuangToneFive = "flat" From 560ffcb304fe866af56901ba3622d776e50fcb55 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 11 Nov 2023 18:11:27 -0800 Subject: [PATCH 05/59] More fixups --- build-plans.toml | 4 +-- changes/28.0.0-alpha.1.md | 1 + .../generate-release-note/package-list.mjs | 25 +++++++++++++------ verdafile.mjs | 6 ++++- 4 files changed, 26 insertions(+), 10 deletions(-) diff --git a/build-plans.toml b/build-plans.toml index 1152449631..992417df0b 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -756,7 +756,7 @@ at = "fourfold" percent = "rings-continuous-slash" micro-sign = "toothed-serifless" -[buildPlans.IosevkaAile.widths.normal] +[buildPlans.IosevkaAile.widths.Normal] shape = 600 menu = 5 css = "normal" @@ -797,7 +797,7 @@ w = "straight-flat-top-motion-serifed" long-s = "flat-hook-tailed" eszet = "longs-s-lig-tailed-serifless" -[buildPlans.IosevkaEtoile.widths.normal] +[buildPlans.IosevkaEtoile.widths.Normal] shape = 600 menu = 5 css = "normal" diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 15ee7853b9..7dadfc4b3c 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,6 +1,7 @@ * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. + * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. diff --git a/utility/generate-release-note/package-list.mjs b/utility/generate-release-note/package-list.mjs index 86b97bff2e..950affe6e0 100644 --- a/utility/generate-release-note/package-list.mjs +++ b/utility/generate-release-note/package-list.mjs @@ -36,17 +36,26 @@ async function GeneratePackageList(argv, out) { const familyName = buildName("\u00a0", ...prime.family.split(" ")); const sTtcName = buildName("-", "SuperTTC", groupID, argv.version); const ttcName = buildName("-", "PkgTTC", groupID, argv.version); - const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; - const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; const proportionPrefix = gr.quasiProportional ? "Quasi-proportional" : "Monospace"; const desc = `${proportionPrefix}, ${prime.desc}`; const img = ImgX(`${imagePrefix}/${groupID}`); + + let ttcCells = [` `]; + const hasSpacings = Object.entries(gr.subGroups).length > 1; + if (hasSpacings) { + const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; + const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; + ttcCells = [ + `Super\u00A0TTC`, + `TTC`, + ` ` + ]; + } + out.log( ``, `📦 ${familyName} — ${desc}`, - `Super\u00A0TTC`, - `TTC`, - ` `, + ...ttcCells, `` ); out.log( @@ -69,13 +78,15 @@ async function GeneratePackageList(argv, out) { return `${label}`; }; const leader = "    " + (subGroupID === lastSubGroupID ? "└" : "├"); + const superTtcPrefix = hasSpacings ? "SuperTTC-SGr" : "SuperTTC"; + const ttcPrefix = hasSpacings ? "PkgTTC-SGr" : "PkgTTC"; out.log( ``, `${leader} ${noBreak(subGr.family)}`, `${spacingDesc}`, `${flag(ligation)}`, - `${createLink("Super\u00A0TTC", "SuperTTC-SGr")}`, - `${createLink("TTC", "PkgTTC-SGr")}`, + `${createLink("Super\u00A0TTC", superTtcPrefix)}`, + `${createLink("TTC", ttcPrefix)}`, `${createLink("TTF", "PkgTTF")} ` + `(${createLink("Unhinted", "PkgTTF-Unhinted")})`, `${createLink("WebFont", "PkgWebFont")} ` + diff --git a/verdafile.mjs b/verdafile.mjs index c969d76f3f..5adac81012 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -643,6 +643,7 @@ const CollectPlans = computed(`metadata:collect-plans`, async target => { return await getCollectPlans(target, rawPlans.collectPlans); }); +// eslint-disable-next-line complexity async function getCollectPlans(target, rawCollectPlans) { const plans = {}; @@ -654,7 +655,10 @@ async function getCollectPlans(target, rawCollectPlans) { } const amendedRawCollectPlans = { ...rawCollectPlans }; - for (const gr of allCollectableGroups) { + out: for (const gr of allCollectableGroups) { + for (const [k, cp] of Object.entries(rawCollectPlans)) { + if (cp.from.length === 1 && cp.from[0] === gr) continue out; + } amendedRawCollectPlans[`SGr-` + gr] = { release: true, isAmended: true, from: [gr] }; } From 2f0f0d0654464b5f122571b1b6cfd384f1f47c3e Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 00:49:27 -0800 Subject: [PATCH 06/59] doc --- doc/custom-build.md | 2 -- private-build-plans.sample.toml | 18 +++++++++--------- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/doc/custom-build.md b/doc/custom-build.md index 9eeb2969a7..c739e0af29 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -512,8 +512,6 @@ Subsection `slopes` is used to change the slope angles and grades that the custo * `menu`: String from `upright`, `italic` or `oblique`. Configures the slope grade used when naming fonts. * `css`: String from `normal`, `italic` or `oblique`. Configures the [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) value. -Subsection `slopes` is a simple string-to-string dictionary maps slopes (`upright`, `italic` or `oblique`) to [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) values, represented in string. - #### Compatibility Ligatures Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibility-ligatures`, being an array of records with following fields: diff --git a/private-build-plans.sample.toml b/private-build-plans.sample.toml index cc0bfd4a31..4306bc93a3 100644 --- a/private-build-plans.sample.toml +++ b/private-build-plans.sample.toml @@ -1,4 +1,4 @@ -### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive +### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive ### documentation of the options in this file [buildPlans.iosevka-custom] # is your plan name @@ -53,17 +53,17 @@ enables = [] # Optional; enable specific ligation groups, overrid # and "shape" properly only supports number between 100 and 900 (inclusive). # If you decide to use custom weights you have to define all the weights you # plan to use otherwise they will not be built. -[buildPlans.iosevka-custom.weights.regular] +[buildPlans.iosevka-custom.weights.Regular] shape = 400 # Weight for glyph shapes. menu = 400 # Weight for the font's names. css = 400 # Weight for webfont CSS. -[buildPlans.iosevka-custom.weights.book] +[buildPlans.iosevka-custom.weights.Book] shape = 450 menu = 450 # Use 450 here to name the font's weight "Book" css = 450 -[buildPlans.iosevka-custom.weights.bold] +[buildPlans.iosevka-custom.weights.Bold] shape = 700 menu = 700 css = 700 @@ -75,19 +75,19 @@ css = 700 # Override default building slope sets # When this section is absent, all slopes would be built. -[buildPlans.iosevka-custom.slopes.upright] +[buildPlans.iosevka-custom.slopes.Upright] angle = 0 # Angle in degrees. Valid range [0, 15] shape = "upright" # Slope grade used for shape selection. `upright` | `oblique` | `italic` menu = "upright" # Slope grade used for naming. `upright` | `oblique` | `italic` css = "normal" # Slope grade used for webfont CSS. `normal` | `oblique` | `italic` -[buildPlans.iosevka-custom.slopes.oblique] +[buildPlans.iosevka-custom.slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[buildPlans.iosevka-custom.slopes.italic] +[buildPlans.iosevka-custom.slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -106,12 +106,12 @@ css = "italic" # If you decide to use custom widths you have to define all the widths you plan to use, # otherwise they will not be built. -[buildPlans.iosevka-custom.widths.normal] +[buildPlans.iosevka-custom.widths.Normal] shape = 500 # Unit Width, measured in 1/1000 em. menu = 5 # Width grade for the font's names. css = "normal" # "font-stretch' property of webfont CSS. -[buildPlans.iosevka-custom.widths.extended] +[buildPlans.iosevka-custom.widths.Extended] shape = 600 menu = 7 css = "expanded" From 000ce600d125064d18facc4d0cd69c803d36e785 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 01:11:25 -0800 Subject: [PATCH 07/59] more docs --- doc/custom-build.md | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/doc/custom-build.md b/doc/custom-build.md index c739e0af29..6da695bfa2 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -63,7 +63,7 @@ To create a custom build, you need: ### Configuring Custom Build -Configuration of build plans are organized under `[buildPlans.]` sections in the `private-build-plans.toml`. You can use [the Customizer](https://be5invis.github.io/Iosevka/customizer) to create the build plan, and/or manually edit them, following the instructions below. +Configuration of build plans are organized under `[buildPlans.]` sections in the `private-build-plans.toml`. You can use [the Customizer](https://be5invis.github.io/Iosevka/customizer) to create the build plan, and/or manually edit them, following the instructions below. It is recommended to use PascalCase in the plan names. Inside the plan, top-level properties include: @@ -89,6 +89,7 @@ Inside the plan, top-level properties include: * `no-ligation`: Optional, Boolean, disables ligations. * `export-glyph-names`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). * `webfont-formats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. +* `build-texture-feature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. Build plan could have 5 optional subsections: `ligations`, `variants`, `weights`, `widths` and `slopes`. @@ -493,24 +494,30 @@ Subsection `variants` is used to configure character variants in the font. Prope #### Configuring Weights, Widths and Slopes -Subsection `weights` is used to change the weight grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default weight grade, or sub-objects with properties: +Subsection `weights` is used to change the weight grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `shape`: Number, configures the weight grade of the glyphs' shapes. -* `menu`: Integer, configures the weight grade used when naming fonts. -* `css`: Integer, configures the weight grade used in web font CSS. + * A string formatted in `default.` format, meaning reusing a default weight grade; + * Or, a sub-object with properties: + * `shape`: Number, configures the weight grade of the glyphs' shapes. + * `menu`: Integer, configures the weight grade used when naming fonts. + * `css`: Integer, configures the weight grade used in web font CSS. -Subsection `widths` is used to change the width grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default width grade, or sub-objects with properties: +Subsection `widths` is used to change the width grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `shape`: Number, configures the width of the glyphs' shapes, measured in 1/1000 em. -* `menu`: Integer, configures the width grade used when naming fonts. The valid values are `1` to `9`, inclusive. -* `css`: String, configures the [font-stretch](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch) value used in web font CSS. + * A string formatted in `default.` format, meaning reusing a default width grade; + * Or, a sub-object with properties: + * `shape`: Number, configures the width of the glyphs' shapes, measured in 1/1000 em. + * `menu`: Integer, configures the width grade used when naming fonts. The valid values are from `1` to `9`, inclusive. + * `css`: String, configures the [font-stretch](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch) value used in web font CSS. -Subsection `slopes` is used to change the slope angles and grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default slope grade, or sub-objects with properties: +Subsection `slopes` is used to change the slope angles and grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `angle`: Number, configures the slope angle in degrees. The valid vales are `0` to `15`, inclusive. -* `shape`: String from `upright`, `italic` or `oblique`. Configures the slope used for variant selection. -* `menu`: String from `upright`, `italic` or `oblique`. Configures the slope grade used when naming fonts. -* `css`: String from `normal`, `italic` or `oblique`. Configures the [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) value. + * A string formatted in `default.` format, meaning reusing a default slope grade; + * Or, a sub-object with properties: + * `angle`: Number, configures the slope angle in degrees. The valid vales are from `0` to `15`, inclusive. + * `shape`: String from `upright`, `italic` or `oblique`. Configures the slope used for variant selection. + * `menu`: String from `upright`, `italic` or `oblique`. Configures the slope grade used when naming fonts. + * `css`: String from `normal`, `italic` or `oblique`. Configures the [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) value. #### Compatibility Ligatures From d47bf92b9a920b109f54d4b5e689555e25d57b7e Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 01:13:18 -0800 Subject: [PATCH 08/59] more docs casing --- doc/custom-build.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/custom-build.md b/doc/custom-build.md index 6da695bfa2..d8ececa95e 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -530,7 +530,7 @@ Certain software, notably Emacs, relies on pre-encoded ligatures instead of Open A sample of compatibility ligature config is: ```toml -[[buildPlans.iosevka-custom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibility-ligatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' @@ -597,7 +597,7 @@ Valid functions include: For example, the following configuration: ```toml -[buildPlans.iosevka-custom.metric-override] +[buildPlans.IosevkaCustom.metric-override] leading = 1500 sb = 'default_sb * 1.0625 + 15' dotSize = 'blend(weight, [100, 50], [400, 125], [900, 180])' @@ -619,12 +619,12 @@ It is possible to create a customized TTC build by using the following method: 1. Add a collect plan into `private-build-plans.toml`, with a `from` field containing all the TTF groups it needs: ```toml - [collectPlans.iosevka-custom] - from = ["iosevka-custom1", "iosevka-custom-2"] + [collectPlans.IosevkaCustom] + from = ["IosevkaCustom1", "IosevkaCustom2"] ``` 2. Run build with the following command: - - `npm run build -- ttc::iosevka-custom`: Create TTCs from collection `iosevka-custom`; The file will be saved into `dist/.ttc`. - - `npm run build -- super-ttc::iosevka-custom`: Create a single-file TTC from collection `iosevka-custom`; The file will be saved into `dist/.super-ttc`. + - `npm run build -- ttc::IosevkaCustom`: Create TTCs from collection `IosevkaCustom`; The file will be saved into `dist/.ttc`. + - `npm run build -- super-ttc::IosevkaCustom`: Create a single-file TTC from collection `IosevkaCustom`; The file will be saved into `dist/.super-ttc`. ### Baking other OpenType features From b261aab1ee2216fbb11ac8792d8e931d3ed44c56 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 01:44:32 -0800 Subject: [PATCH 09/59] Change configuration properties to camelCase --- build-plans.toml | 252 ++++++++++----------- changes/28.0.0-alpha.1.md | 9 + changes/archives/27.x/27.3.5.md | 2 +- changes/archives/3.x/3.0.0.md | 2 +- changes/archives/9.x/9.0.0.md | 4 +- doc/custom-build.md | 39 +++- font-src/glyphs/auto-build/transformed.ptl | 2 +- font-src/otl/index.ptl | 2 +- font-src/support/parameters.mjs | 2 +- private-build-plans.sample.toml | 38 ++-- verdafile.mjs | 49 ++-- 11 files changed, 225 insertions(+), 176 deletions(-) diff --git a/build-plans.toml b/build-plans.toml index 992417df0b..52e81a9c96 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -10,21 +10,21 @@ desc = "Default" buildCharMap = true snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTerm] family = "Iosevka Term" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixed] family = "Iosevka Fixed" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Slab [buildPlans.IosevkaSlab] @@ -33,7 +33,7 @@ desc = "Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermSlab] family = "Iosevka Term Slab" @@ -41,7 +41,7 @@ serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedSlab] family = "Iosevka Fixed Slab" @@ -49,7 +49,7 @@ serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Curly [buildPlans.IosevkaCurly] @@ -57,7 +57,7 @@ family = "Iosevka Curly" desc = "Curly Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaCurly.variants] inherits = "ss20" @@ -66,7 +66,7 @@ family = "Iosevka Term Curly" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermCurly.variants] inherits = "ss20" @@ -75,7 +75,7 @@ family = "Iosevka Fixed Curly" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedCurly.variants] inherits = "ss20" @@ -86,7 +86,7 @@ desc = "Curly Style, Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaCurlySlab.variants] inherits = "ss20" @@ -96,7 +96,7 @@ serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaTermCurlySlab.variants] inherits = "ss20" @@ -106,7 +106,7 @@ serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaFixedCurlySlab.variants] inherits = "ss20" @@ -117,8 +117,8 @@ family = "Iosevka SS01" desc = "Andale Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS01.variants] inherits = "ss01" @@ -127,8 +127,8 @@ family = "Iosevka Term SS01" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS01.variants] inherits = "ss01" @@ -137,8 +137,8 @@ family = "Iosevka Fixed SS01" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS01.variants] inherits = "ss01" @@ -148,8 +148,8 @@ family = "Iosevka SS02" desc = "Anonymous Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS02.variants] inherits = "ss02" @@ -158,8 +158,8 @@ family = "Iosevka Term SS02" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS02.variants] inherits = "ss02" @@ -168,8 +168,8 @@ family = "Iosevka Fixed SS02" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS02.variants] inherits = "ss02" @@ -179,8 +179,8 @@ family = "Iosevka SS03" desc = "Consolas Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS03.variants] inherits = "ss03" @@ -189,8 +189,8 @@ family = "Iosevka Term SS03" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS03.variants] inherits = "ss03" @@ -199,8 +199,8 @@ family = "Iosevka Fixed SS03" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS03.variants] inherits = "ss03" @@ -210,8 +210,8 @@ family = "Iosevka SS04" desc = "Menlo Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS04.variants] inherits = "ss04" @@ -220,8 +220,8 @@ family = "Iosevka Term SS04" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS04.variants] inherits = "ss04" @@ -230,8 +230,8 @@ family = "Iosevka Fixed SS04" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS04.variants] inherits = "ss04" @@ -241,8 +241,8 @@ family = "Iosevka SS05" desc = "Fira Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS05.variants] inherits = "ss05" @@ -251,8 +251,8 @@ family = "Iosevka Term SS05" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS05.variants] inherits = "ss05" @@ -261,8 +261,8 @@ family = "Iosevka Fixed SS05" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS05.variants] inherits = "ss05" @@ -272,8 +272,8 @@ family = "Iosevka SS06" desc = "Liberation Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS06.variants] inherits = "ss06" @@ -282,8 +282,8 @@ family = "Iosevka Term SS06" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS06.variants] inherits = "ss06" @@ -292,8 +292,8 @@ family = "Iosevka Fixed SS06" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS06.variants] inherits = "ss06" @@ -303,8 +303,8 @@ family = "Iosevka SS07" desc = "Monaco Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS07.variants] inherits = "ss07" @@ -313,8 +313,8 @@ family = "Iosevka Term SS07" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS07.variants] inherits = "ss07" @@ -323,8 +323,8 @@ family = "Iosevka Fixed SS07" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS07.variants] inherits = "ss07" @@ -334,8 +334,8 @@ family = "Iosevka SS08" desc = "Pragmata Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS08.variants] inherits = "ss08" @@ -344,8 +344,8 @@ family = "Iosevka Term SS08" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS08.variants] inherits = "ss08" @@ -354,8 +354,8 @@ family = "Iosevka Fixed SS08" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS08.variants] inherits = "ss08" @@ -365,8 +365,8 @@ family = "Iosevka SS09" desc = "Source Code Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS09.variants] inherits = "ss09" @@ -375,8 +375,8 @@ family = "Iosevka Term SS09" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS09.variants] inherits = "ss09" @@ -385,8 +385,8 @@ family = "Iosevka Fixed SS09" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS09.variants] inherits = "ss09" @@ -396,8 +396,8 @@ family = "Iosevka SS10" desc = "Envy Code R Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS10.variants] inherits = "ss10" @@ -406,8 +406,8 @@ family = "Iosevka Term SS10" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS10.variants] inherits = "ss10" @@ -416,8 +416,8 @@ family = "Iosevka Fixed SS10" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS10.variants] inherits = "ss10" @@ -427,8 +427,8 @@ family = "Iosevka SS11" desc = "X Windows Fixed Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS11.variants] inherits = "ss11" @@ -437,8 +437,8 @@ family = "Iosevka Term SS11" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS11.variants] inherits = "ss11" @@ -447,8 +447,8 @@ family = "Iosevka Fixed SS11" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS11.variants] inherits = "ss11" @@ -458,8 +458,8 @@ family = "Iosevka SS12" desc = "Ubuntu Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS12.variants] inherits = "ss12" @@ -468,8 +468,8 @@ family = "Iosevka Term SS12" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS12.variants] inherits = "ss12" @@ -478,8 +478,8 @@ family = "Iosevka Fixed SS12" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS12.variants] inherits = "ss12" @@ -489,8 +489,8 @@ family = "Iosevka SS13" desc = "Lucida Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS13.variants] inherits = "ss13" @@ -499,8 +499,8 @@ family = "Iosevka Term SS13" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS13.variants] inherits = "ss13" @@ -509,8 +509,8 @@ family = "Iosevka Fixed SS13" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS13.variants] inherits = "ss13" @@ -520,8 +520,8 @@ family = "Iosevka SS14" desc = "JetBrains Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS14.variants] inherits = "ss14" @@ -530,8 +530,8 @@ family = "Iosevka Term SS14" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS14.variants] inherits = "ss14" @@ -540,8 +540,8 @@ family = "Iosevka Fixed SS14" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS14.variants] inherits = "ss14" @@ -551,8 +551,8 @@ family = "Iosevka SS15" desc = "IBM Plex Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS15.variants] inherits = "ss15" @@ -561,8 +561,8 @@ family = "Iosevka Term SS15" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS15.variants] inherits = "ss15" @@ -571,8 +571,8 @@ family = "Iosevka Fixed SS15" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS15.variants] inherits = "ss15" @@ -582,8 +582,8 @@ family = "Iosevka SS16" desc = "PT Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS16.variants] inherits = "ss16" @@ -592,8 +592,8 @@ family = "Iosevka Term SS16" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS16.variants] inherits = "ss16" @@ -602,8 +602,8 @@ family = "Iosevka Fixed SS16" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS16.variants] inherits = "ss16" @@ -613,8 +613,8 @@ family = "Iosevka SS17" desc = "Recursive Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS17.variants] inherits = "ss17" @@ -623,8 +623,8 @@ family = "Iosevka Term SS17" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS17.variants] inherits = "ss17" @@ -633,8 +633,8 @@ family = "Iosevka Fixed SS17" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS17.variants] inherits = "ss17" @@ -644,8 +644,8 @@ family = "Iosevka SS18" desc = "Input Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaSS18.variants] inherits = "ss18" @@ -654,8 +654,8 @@ family = "Iosevka Term SS18" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaTermSS18.variants] inherits = "ss18" @@ -664,8 +664,8 @@ family = "Iosevka Fixed SS18" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true +exportGlyphNames = true +noCvSs = true [buildPlans.IosevkaFixedSS18.variants] inherits = "ss18" @@ -679,7 +679,7 @@ desc = "Sans-serif" spacing = "quasi-proportional" snapshotFamily = 'Iosevka Aile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaAile.variants.design] capital-i = "serifless" @@ -770,7 +770,7 @@ spacing = "quasi-proportional" serifs = 'slab' snapshotFamily = 'Iosevka Etoile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true [buildPlans.IosevkaEtoile.variants.design] capital-m = "flat-bottom-serifed" @@ -808,7 +808,7 @@ css = "normal" family = "Iosevka QP" desc = "Customizer Preview Only Quasi-proportional Sans" spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQp.weights.regular] shape = 400 @@ -825,7 +825,7 @@ family = "Iosevka QP Slab" desc = "Customizer Preview Only Quasi-proportional Slab" serifs = 'slab' spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpSlab.weights.regular] shape = 400 @@ -841,7 +841,7 @@ css = 700 family = "Iosevka QPE" desc = "Customizer Preview Only Quasi-proportional-extension-only Sans" spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpe.weights.regular] shape = 400 @@ -858,7 +858,7 @@ family = "Iosevka QPE Slab" desc = "Customizer Preview Only Quasi-proportional-extension-only Slab" serifs = 'slab' spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false [buildPlans.IosevkaQpeSlab.weights.regular] shape = 400 diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 7dadfc4b3c..e140dac776 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,6 +1,15 @@ * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. + * \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. diff --git a/changes/archives/27.x/27.3.5.md b/changes/archives/27.x/27.3.5.md index 4b01ab5b2f..02001afe2a 100644 --- a/changes/archives/27.x/27.3.5.md +++ b/changes/archives/27.x/27.3.5.md @@ -4,6 +4,6 @@ * Improve crossbar position of GREEK SMALL LETTER DIGAMMA (`U+03DD`) and add a middle serif under slab. * Refine Greek Capital Sho (U+03F7) glyph (#2079). * \[Experimental\] Add a font feature for texture control (#2081). - - Currently only available through custom builds with `build-texture-feature = true`. + - Currently only available through custom builds with `buildTextureFeature = true`. * Make SYMBOL FOR DELETE FORM TWO (`U+2425`) narrow by default, align with other Control Pictures characters (#2084). * Make APL FUNCTIONAL SYMBOL CIRCLE STAR (`U+235F`) always be five-pointed and upright, to align its pentagram history (#2083). diff --git a/changes/archives/3.x/3.0.0.md b/changes/archives/3.x/3.0.0.md index 4a7b1d2126..4ed3a9989b 100644 --- a/changes/archives/3.x/3.0.0.md +++ b/changes/archives/3.x/3.0.0.md @@ -38,7 +38,7 @@ * Add reverse-slashed zero (#438). * Add U+1F8B0 and U+1F8B1 (#459). * Fixed broken shape around `srtail`, `Sswash` and `sswash`. - * Fix `no-cv-ss` building (#460). + * Fix `noCvSs` building (#460). * Retrocomputing symbols are now defaults to half-width. * Made variant selectors work for turned letters. * Make `ligset-dlig` usable from custom build (#463). diff --git a/changes/archives/9.x/9.0.0.md b/changes/archives/9.x/9.0.0.md index 6efa481371..8a1805de63 100644 --- a/changes/archives/9.x/9.0.0.md +++ b/changes/archives/9.x/9.0.0.md @@ -1,4 +1,4 @@ - * \[**Breaking**\]: Add support for expression-style metric override. The old `[metric-override.multiplies]` and `[metric-override.adds]` are no longer supported (#1181). + * \[**Breaking**\]: Add support for expression-style metric override. The old `[metricOverride.multiplies]` and `[metricOverride.adds]` are no longer supported (#1181). * Fix motion-serifed N's broken shape (#1170). * Fix bar-serif overlapping in Latin Small H-bar (`U+0127`) and Cyrillic Small Dje (`U+0452`) in Sans subfamily's with-serif variants (#1171). * Add flat-boundary brace shape (#1172). @@ -6,4 +6,4 @@ * Make dot size, period size and accent size / placement configurable (#1169, #1176). * Make variants of `0` apply to APL Functional Symbol Zilde (`U+236C`) and Circled Zero with Slash (`U+1F10D`) (#1178). * Add enclosed sans-serif digits. - * Fix italic derived letters regression in 8.0. \ No newline at end of file + * Fix italic derived letters regression in 8.0. diff --git a/doc/custom-build.md b/doc/custom-build.md index d8ececa95e..3569c1ca43 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -85,13 +85,21 @@ Inside the plan, top-level properties include: * `serifs`: Optional, String, configures style of serifs. - When set to `slab`, the font will be converted into slab-serif. - Otherwise the font will be sans-serif. -* `no-cv-ss`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. -* `no-ligation`: Optional, Boolean, disables ligations. -* `export-glyph-names`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). -* `webfont-formats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. -* `build-texture-feature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. - -Build plan could have 5 optional subsections: `ligations`, `variants`, `weights`, `widths` and `slopes`. +* `noCvSs`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. +* `noLigation`: Optional, Boolean, disables ligations. +* `exportGlyphNames`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). +* `webfontFormats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. +* `buildTextureFeature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. + +Build plan could have 8 optional subsections: +* `ligations` +* `variants` +* `weights` +* `widths` +* `slopes` +* `compatibilityLigatures` +* `excludeChars` +* `metricOverride` #### Configuring Ligations @@ -521,7 +529,7 @@ Subsection `slopes` is used to change the slope angles and grades that the custo #### Compatibility Ligatures -Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibility-ligatures`, being an array of records with following fields: +Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibilityLigatures`, being an array of records with following fields: * `unicode`: The PUA code point being assigned to. * `featureTag`: The feature tag to compute ligations. @@ -530,15 +538,24 @@ Certain software, notably Emacs, relies on pre-encoded ligatures instead of Open A sample of compatibility ligature config is: ```toml -[[buildPlans.IosevkaCustom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' ``` +#### Excluding Characters + +Use the `excludeChars` configuration to exclude character ranges from the font. + +```toml +[buildPlans.iosevkaCustom.excludeChars] +ranges = [[10003, 10008]] +``` + #### Metric Override -Subsection `metric-override` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. +Subsection `metricOverride` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. | Property | Unit | Default Value | Meaning | |----------|------|---------|----------| @@ -597,7 +614,7 @@ Valid functions include: For example, the following configuration: ```toml -[buildPlans.IosevkaCustom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1500 sb = 'default_sb * 1.0625 + 15' dotSize = 'blend(weight, [100, 50], [400, 125], [900, 180])' diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index 0a7024da89..5c6944acfe 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -694,7 +694,7 @@ glyph-block Autobuild-Transformed : begin link-relations relSets glyph-block Autobuild-Transformed-Texture : begin - if (!(para.buildTexture && !para.isQuasiProportional)) : return nothing + if (!(para.buildTextureFeature && !para.isQuasiProportional)) : return nothing glyph-block-import CommonShapes glyph-block-import Common-Derivatives diff --git a/font-src/otl/index.ptl b/font-src/otl/index.ptl index 2ce8866837..155528f9a6 100644 --- a/font-src/otl/index.ptl +++ b/font-src/otl/index.ptl @@ -73,7 +73,7 @@ define [buildGSUB para glyphStore markGlyphs] : begin buildLOCL gsub para glyphStore # TXTR, "texture" feature - if (para.buildTexture && !para.isQuasiProportional) : begin + if (para.buildTextureFeature && !para.isQuasiProportional) : begin buildGsubTexture gsub glyphStore markGlyphs cvs gsub.finalize diff --git a/font-src/support/parameters.mjs b/font-src/support/parameters.mjs index be1e7092d7..bfd1c79904 100644 --- a/font-src/support/parameters.mjs +++ b/font-src/support/parameters.mjs @@ -11,7 +11,7 @@ export function init(data, argv) { applyAlternatesParam(argv, para, data, "slope", "slope"); if (argv.featureControl.noCvSs) para.enableCvSs = false; if (argv.featureControl.noLigation) para.enableLigation = false; - if (argv.featureControl.buildTexture) para.buildTexture = true; + if (argv.featureControl.buildTextureFeature) para.buildTextureFeature = true; return para; } function applyBlendingParam(argv, para, data, key, keyArgv) { diff --git a/private-build-plans.sample.toml b/private-build-plans.sample.toml index 4306bc93a3..03ddd92fb2 100644 --- a/private-build-plans.sample.toml +++ b/private-build-plans.sample.toml @@ -1,32 +1,32 @@ ### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive ### documentation of the options in this file -[buildPlans.iosevka-custom] # is your plan name +[buildPlans.IosevkaCustom] # is your plan name family = "Iosevka Custom" # Font menu family name spacing = "normal" # Optional; Values: `normal`, `term`, `fontconfig-mono`, or `fixed` serifs = "sans" # Optional; Values: `sans` or `slab` -export-glyph-names = false # Set this to true for ligature support in Kitty (increased file size) +exportGlyphNames = false # Set this to true for ligature support in Kitty (increased file size) -webfont-formats = ['ttf', 'woff2'] +webfontFormats = ['ttf', 'woff2'] ################################################################################################### # Configure variants # Optional; Whether to inherit a `ss##` variant -[buildPlans.iosevka-custom.variants] +[buildPlans.IosevkaCustom.variants] inherits = "ss01" # Optional; Configure single character's variant -[buildPlans.iosevka-custom.variants.design] +[buildPlans.IosevkaCustom.variants.design] g = 'single-storey-serifless' # Optional; Configure single character's variant for Upright and Oblique; Overrides [design] -[buildPlans.iosevka-custom.variants.upright] +[buildPlans.IosevkaCustom.variants.upright] i = 'zshaped' l = 'zshaped' # Optional; Configure single character's variant for Italic only; Overrides [design] -[buildPlans.iosevka-custom.variants.italic] +[buildPlans.IosevkaCustom.variants.italic] i = 'tailed-serifed' l = 'tailed-serifed' @@ -36,7 +36,7 @@ l = 'tailed-serifed' ################################################################################################### # Configure ligations -[buildPlans.iosevka-custom.ligations] +[buildPlans.IosevkaCustom.ligations] inherits = "default-calt" # Optional; inherits an existing ligation set disables = [] # Optional; disable specific ligation groups, overrides inherited ligation set enables = [] # Optional; enable specific ligation groups, overrides inherited ligation set @@ -53,17 +53,17 @@ enables = [] # Optional; enable specific ligation groups, overrid # and "shape" properly only supports number between 100 and 900 (inclusive). # If you decide to use custom weights you have to define all the weights you # plan to use otherwise they will not be built. -[buildPlans.iosevka-custom.weights.Regular] +[buildPlans.IosevkaCustom.weights.Regular] shape = 400 # Weight for glyph shapes. menu = 400 # Weight for the font's names. css = 400 # Weight for webfont CSS. -[buildPlans.iosevka-custom.weights.Book] +[buildPlans.IosevkaCustom.weights.Book] shape = 450 menu = 450 # Use 450 here to name the font's weight "Book" css = 450 -[buildPlans.iosevka-custom.weights.Bold] +[buildPlans.IosevkaCustom.weights.Bold] shape = 700 menu = 700 css = 700 @@ -75,19 +75,19 @@ css = 700 # Override default building slope sets # When this section is absent, all slopes would be built. -[buildPlans.iosevka-custom.slopes.Upright] +[buildPlans.IosevkaCustom.slopes.Upright] angle = 0 # Angle in degrees. Valid range [0, 15] shape = "upright" # Slope grade used for shape selection. `upright` | `oblique` | `italic` menu = "upright" # Slope grade used for naming. `upright` | `oblique` | `italic` css = "normal" # Slope grade used for webfont CSS. `normal` | `oblique` | `italic` -[buildPlans.iosevka-custom.slopes.Oblique] +[buildPlans.IosevkaCustom.slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[buildPlans.iosevka-custom.slopes.Italic] +[buildPlans.IosevkaCustom.slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -106,12 +106,12 @@ css = "italic" # If you decide to use custom widths you have to define all the widths you plan to use, # otherwise they will not be built. -[buildPlans.iosevka-custom.widths.Normal] +[buildPlans.IosevkaCustom.widths.Normal] shape = 500 # Unit Width, measured in 1/1000 em. menu = 5 # Width grade for the font's names. css = "normal" # "font-stretch' property of webfont CSS. -[buildPlans.iosevka-custom.widths.Extended] +[buildPlans.IosevkaCustom.widths.Extended] shape = 600 menu = 7 css = "expanded" @@ -124,7 +124,7 @@ css = "expanded" # Specify character ranges in the section below to exclude certain characters from the font being # built. Remove this section when this feature is not needed. -[buildPlans.iosevka-custom.exclude-chars] +[buildPlans.IosevkaCustom.excludeChars] ranges = [[10003, 10008]] # End character exclusion @@ -137,7 +137,7 @@ ranges = [[10003, 10008]] # following section to build PUA characters that are generated from the OpenType ligatures. # Remove this section when compatibility ligatures are not needed. -[[buildPlans.iosevka-custom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' @@ -150,7 +150,7 @@ sequence = '<*>' # Certain metrics like line height (leading) could be overridden in your build plan file. # Edit the values to change the metrics. Remove this section when overriding is not needed. -[buildPlans.iosevka-custom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1250 winMetricAscenderPad = 0 winMetricDescenderPad = 0 diff --git a/verdafile.mjs b/verdafile.mjs index 5adac81012..6d0cc03e23 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -134,8 +134,8 @@ const BuildPlans = computed("metadata:build-plans", async target => { const returnBuildPlans = {}; for (const prefix in rawBuildPlans) { const bp = { ...rawBuildPlans[prefix] }; - if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); - bp.webfontFormats = bp["webfont-formats"] || defaultWebFontFormats; + validateBuildPlan(prefix, bp); + bp.webfontFormats = bp.webfontFormats || defaultWebFontFormats; bp.targets = []; returnBuildPlans[prefix] = bp; } @@ -170,7 +170,7 @@ const BuildPlans = computed("metadata:build-plans", async target => { function linkSpacingDerivableBuildPlans(bps) { for (const pfxTo in bps) { const bpTo = bps[pfxTo]; - if (blockSpacingDerivation(bpTo)) continue; + if (blockSpacingDerivationTo(bpTo)) continue; if (!isDeriveToSpacing(bpTo.spacing)) continue; for (const pfxFrom in bps) { const bpFrom = bps[pfxFrom]; @@ -180,8 +180,8 @@ function linkSpacingDerivableBuildPlans(bps) { } } } -function blockSpacingDerivation(bp) { - return !!bp["compatibility-ligatures"]; +function blockSpacingDerivationTo(bp) { + return !!bp.compatibilityLigatures; } function isDeriveToSpacing(spacing) { return spacing === "term" || spacing === "fontconfig-mono" || spacing === "fixed"; @@ -260,10 +260,10 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa derivingVariants: bp.derivingVariants, buildCharMap: bp.buildCharMap, featureControl: { - noCvSs: bp["no-cv-ss"] || false, - noLigation: bp["no-ligation"] || false, - exportGlyphNames: bp["export-glyph-names"] || false, - buildTexture: bp["build-texture-feature"] || false + noCvSs: bp.noCvSs || false, + noLigation: bp.noLigation || false, + exportGlyphNames: bp.exportGlyphNames || false, + buildTextureFeature: bp.buildTextureFeature || false }, // Ligations ligations: bp.ligations || null, @@ -290,14 +290,17 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa stretch: sfi.cssStretch, style: sfi.cssStyle }, + // Hinting hintParams: bp.hintParams || [], hintReference: - !bp["metric-override"] && hintReferenceSuffix !== fi0.suffix + !bp.metricOverride && hintReferenceSuffix !== fi0.suffix ? makeFileName(fi0.prefix, hintReferenceSuffix) : null, - compatibilityLigatures: bp["compatibility-ligatures"] || null, - metricOverride: bp["metric-override"] || null, - excludedCharRanges: bp["exclude-chars"]?.ranges, + + // Other parameters + compatibilityLigatures: bp.compatibilityLigatures || null, + metricOverride: bp.metricOverride || null, + excludedCharRanges: bp.excludeChars?.ranges, // Spacing derivation -- creating faster build for spacing variants spacingDerive @@ -1198,6 +1201,26 @@ const Parameters = task(`meta:parameters`, async target => { // Build plan validation +function validateBuildPlan(prefix, bp) { + if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); + failWithLegacyParamName(prefix, bp, `no-cv-ss`, `noCvSs`); + failWithLegacyParamName(prefix, bp, `no-ligation`, `noLigation`); + failWithLegacyParamName(prefix, bp, `export-glyph-names`, `exportGlyphNames`); + failWithLegacyParamName(prefix, bp, `build-texture-feature`, `buildTextureFeature`); + failWithLegacyParamName(prefix, bp, `metric-override`, `metricOverride`); + failWithLegacyParamName(prefix, bp, `compatibility-ligatures`, `compatibilityLigatures`); + failWithLegacyParamName(prefix, bp, `exclude-chars`, `excludeChars`); +} + +function failWithLegacyParamName(prefix, bp, legacy, expected) { + if (bp[legacy]) { + fail( + `Build plan for '${prefix}' contains legacy build parameter '${legacy}'. ` + + `Please use '${expected}' instead.` + ); + } +} + function resolveWws(bpName, buildPlans, defaultConfig) { const bp = buildPlans[bpName]; if (!bp) fail(`Build plan ${bpName} not found.`); From a9c919fbb98553a543098b79d9cfacece93d3f2f Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 02:00:02 -0800 Subject: [PATCH 10/59] Drop various PUA chars --- font-src/glyphs/letter/latin-ext/egyptological.ptl | 2 +- font-src/glyphs/marks/above.ptl | 4 ++-- font-src/glyphs/marks/below.ptl | 4 ++-- font-src/glyphs/marks/overlay.ptl | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/font-src/glyphs/letter/latin-ext/egyptological.ptl b/font-src/glyphs/letter/latin-ext/egyptological.ptl index 5f6b67070a..cee126aa27 100644 --- a/font-src/glyphs/letter/latin-ext/egyptological.ptl +++ b/font-src/glyphs/letter/latin-ext/egyptological.ptl @@ -66,7 +66,7 @@ glyph-block Letter-Latin-Egyptological : begin glyph-block-import Mark-Shared-Metrics : markMiddle glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack - create-glyph 'EgyptologicalYodAbove' 0xE010 : glyph-proc + create-glyph 'EgyptologicalYodAbove' : glyph-proc set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBraceL' markMiddle aboveMarkMid diff --git a/font-src/glyphs/marks/above.ptl b/font-src/glyphs/marks/above.ptl index ced85522c5..3d82e9ebd1 100644 --- a/font-src/glyphs/marks/above.ptl +++ b/font-src/glyphs/marks/above.ptl @@ -837,7 +837,7 @@ glyph-block Mark-Above : begin turned 'greaterAbove' 0x350 'lessAbove' markMiddle aboveMarkMid - create-glyph 'upArrowHeadAbove' 0xE002 : glyph-proc + create-glyph 'upArrowHeadAbove' : glyph-proc set-width 0 include : StdAnchors.medium @@ -854,7 +854,7 @@ glyph-block Mark-Above : begin flat (markMiddle + markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] - turned 'downArrowHeadAbove' 0xE003 'upArrowHeadAbove' markMiddle aboveMarkMid + turned 'downArrowHeadAbove' null 'upArrowHeadAbove' markMiddle aboveMarkMid define [ArrowheadForArrowMarkAbove-Up] : new-glyph : glyph-proc local fine : [AdviceStroke 6] / 2 diff --git a/font-src/glyphs/marks/below.ptl b/font-src/glyphs/marks/below.ptl index fc2d9d1c56..2ec1caa20d 100644 --- a/font-src/glyphs/marks/below.ptl +++ b/font-src/glyphs/marks/below.ptl @@ -214,8 +214,8 @@ glyph-block Mark-Below : begin TurnAboveMarkToBelow 'elipsisBelow' 0x20E8 'elipsisAbove' TurnAboveMarkToBelow 'leftArrowBelow' 0x20EE 'rightArrowAbove' TurnAboveMarkToBelow 'rightArrowBelow' 0x20EF 'leftArrowAbove' - TurnAboveMarkToBelow 'upArrowHeadBelow' 0xE004 'downArrowHeadAbove' - TurnAboveMarkToBelow 'downArrowHeadBelow' 0xE005 'upArrowHeadAbove' + TurnAboveMarkToBelow 'upArrowHeadBelow' null 'downArrowHeadAbove' + TurnAboveMarkToBelow 'downArrowHeadBelow' null 'upArrowHeadAbove' TurnAboveMarkToBelow 'descenderBarBelow' null 'ascenderBarAbove' TurnAboveMarkToBelow 'sbRsbUnderlineBelow' null 'sbRsbOverlineAbove' diff --git a/font-src/glyphs/marks/overlay.ptl b/font-src/glyphs/marks/overlay.ptl index a43c361d3f..ac6f490ded 100644 --- a/font-src/glyphs/marks/overlay.ptl +++ b/font-src/glyphs/marks/overlay.ptl @@ -102,7 +102,7 @@ glyph-block Mark-Overlay : begin include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 + 0.5 * gap) include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 - 0.5 * gap) - create-glyph 'shortSlashOver' 0xE000 : glyph-proc + create-glyph 'shortSlashOver' : glyph-proc set-width 0 set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) include : FlatSlashShape markMiddle (XH / 2) (0.5 * OverlayStroke) From 8ecd9bbd03d8580593f19df33923f98c35044c65 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 03:18:48 -0800 Subject: [PATCH 11/59] Make some private dingbats perhaps for sample images --- font-src/glyphs/symbol/geometric/stars.ptl | 72 +++++++++++++++++++ .../coverage-export/block-data.mjs | 3 +- 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/font-src/glyphs/symbol/geometric/stars.ptl b/font-src/glyphs/symbol/geometric/stars.ptl index 3c1e04d212..b3b47afb61 100644 --- a/font-src/glyphs/symbol/geometric/stars.ptl +++ b/font-src/glyphs/symbol/geometric/stars.ptl @@ -100,3 +100,75 @@ glyph-block Symbol-Geometric-Stars : for-width-kinds WideWidth1 Geom.MidX + Geom.Size * mag * [Math.sin (-angle)] Geom.MidY + Geom.Size * mag * [Math.cos (-angle)] widths.center sw + + # Dingbat + create-glyph [MangleName "crystalFlower"] [MangleUnicode 0xEF10] : glyph-proc + set-width Geom.Width + + define [createPetals] : with-params [fnSelect fill kSw rotate expansion sw size] : glyph-proc + local sizeIn : size * 0.45 + local sizeExt : size * 1.0 - O + foreach [j : range 0 6] : if [fnSelect j] : begin + local anglePre : 2 * Math.PI * ((j - expansion + rotate) / 6) + local angle : 2 * Math.PI * ((j + rotate) / 6) + local anglePost : 2 * Math.PI * ((j + expansion + rotate) / 6) + + local z1x : sizeIn * [Math.cos anglePre] + local z1y : sizeIn * [Math.sin anglePre] + local z2x : sizeExt * [Math.cos angle] + local z2y : sizeExt * [Math.sin angle] + local z3x : sizeIn * [Math.cos anglePost] + local z3y : sizeIn * [Math.sin anglePost] + + local outline : spiro-outline + corner 0 0 + corner z3x z3y + corner z2x z2y + corner z1x z1y + + if fill + : then : include outline + : else : include : intersection outline : union + ExtLineLhs 1 (kSw * sw) 0 0 z1x z1y + ExtLineLhs 1 sw z1x z1y z2x z2y + ExtLineLhs 1 sw z2x z2y z3x z3y + ExtLineLhs 1 (kSw * sw) z3x z3y 0 0 + + define [makeOverlay gap shape] : glyph-proc + foreach [j : range 0 6] : begin + local angle : 2 * Math.PI * (j / 6) + local tx : gap * [Math.cos angle] + local ty : gap * [Math.sin angle] + include : with-transform [ApparentTranslate tx ty] shape + + local swOuter : AdviceStroke 10 [Math.sqrt Geom.Scalar] + local swInner : AdviceStroke 16 [Math.sqrt Geom.Scalar] + local gap : Math.min [AdviceStroke 12] (Geom.Size / 12) + include : union + createPetals + fnSelect -- [function x : x % 2 == 0] + rotate -- (-0.5) + expansion -- 0.6 + fill -- false + kSw -- 1 + sw -- swInner + size -- (0.625 * Geom.Size + swInner) + difference + createPetals + fnSelect -- [function x true] + rotate -- 0 + expansion -- 0.5 + fill -- false + kSw -- 0.5 + sw -- swOuter + size -- Geom.Size + makeOverlay gap : createPetals + fnSelect -- [function x : x % 2 == 0] + rotate -- (-0.5) + expansion -- 0.6 + fill -- true + kSw -- 1 + sw -- (swInner + gap) + size -- (0.625 * Geom.Size + swInner) + + include : ApparentTranslate Geom.MidX Geom.MidY diff --git a/utility/export-data/coverage-export/block-data.mjs b/utility/export-data/coverage-export/block-data.mjs index 7434d4ce8d..9eac34df5d 100644 --- a/utility/export-data/coverage-export/block-data.mjs +++ b/utility/export-data/coverage-export/block-data.mjs @@ -3,7 +3,8 @@ import UnicodeDataIndex from "@unicode/unicode-15.0.0"; export async function collectBlockData() { const BlockData = [ [[0xe0a0, 0xe0df], "Private Use Area — Powerline"], - [[0xee00, 0xee3f], "Private Use Area — Progress Bar"], + [[0xee00, 0xee0f], "Private Use Area — Progress Bar"], + [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"] ]; for (const id of UnicodeDataIndex.Block) { From 67fefa55f93ff2dbf0281a624b64aa4885ff5f5a Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 14:58:05 -0800 Subject: [PATCH 12/59] Sync docs and images --- doc/character-variants.md | 322 ++++++++---------- doc/custom-build.md | 96 +++--- doc/cv-influences.md | 178 +++++----- images/button-release.dark.svg | 25 +- images/button-release.light.svg | 25 +- ...use-area-iosevka-private-dingbats.dark.svg | 129 +++++++ ...se-area-iosevka-private-dingbats.light.svg | 129 +++++++ ...ock-private-use-area-progress-bar.dark.svg | 170 +-------- ...ck-private-use-area-progress-bar.light.svg | 170 +-------- package-lock.json | 4 +- package.json | 2 +- 11 files changed, 583 insertions(+), 667 deletions(-) create mode 100644 images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg create mode 100644 images/cs-block-private-use-area-iosevka-private-dingbats.light.svg diff --git a/doc/character-variants.md b/doc/character-variants.md index 890b98db04..4657507c5d 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -323,12 +323,12 @@ - - - + + + @@ -419,13 +419,13 @@ + + + + + - - - - - 1 @@ -442,18 +442,18 @@ 12 - - - - - - - - + + + + + + + + 13 @@ -470,7 +470,7 @@ 24 - + @@ -740,13 +740,13 @@ + + + + + - - - - - 1 @@ -763,14 +763,24 @@ 12 + + + + + - + 13 14 - +15 +16 +17 +18 +19 + cv27 @@ -850,16 +860,16 @@ cv31 - - - - - - + + + + + + 1 @@ -876,12 +886,12 @@ 12 - - + + + + - - @@ -1400,17 +1410,17 @@ cv44 - - - - - - - + + + + + - - + + + + 1 @@ -1427,17 +1437,17 @@ 12 - - - - - - + + - - - + + + + + + + @@ -1716,12 +1726,12 @@ - - - - - - + + + + + + 1 @@ -1738,18 +1748,18 @@ 12 - - - + + + + + + + + + - - - - - - 13 @@ -1766,9 +1776,9 @@ 24 - - - + + + @@ -2330,12 +2340,12 @@ - - - + + + @@ -2376,7 +2386,7 @@ -VXAA +cv76 @@ -2397,7 +2407,7 @@ -cv76 +cv77 @@ -2444,7 +2454,7 @@ -VXAB +cv78 @@ -2491,15 +2501,15 @@ -cv77 +cv79 - + - + @@ -2514,7 +2524,7 @@ -cv78 +cv80 @@ -2525,7 +2535,7 @@ -cv79 +cv81 @@ -2538,7 +2548,7 @@ -cv80 +cv82 @@ -2557,19 +2567,19 @@ -cv81 +cv83 - - - - - - + + + + + + 1 @@ -2586,9 +2596,9 @@ 12 - - - + + + @@ -2604,19 +2614,19 @@ -cv82 +cv84 - - - + + + - - - + + + 1 @@ -2636,15 +2646,10 @@ - - - - - - - - - + + + + 13 @@ -2653,43 +2658,10 @@ 16 17 18 -19 -20 -21 -22 -23 -24 - - - - - - - - - - - - - - - - -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 + -cv83 +cv85 @@ -2820,7 +2792,7 @@ -cv84 +cv86 @@ -2845,7 +2817,7 @@ -cv85 +cv87 @@ -2856,7 +2828,7 @@ -cv86 +cv88 @@ -2867,7 +2839,7 @@ -cv87 +cv89 @@ -2886,10 +2858,10 @@ -cv88 +cv90 - + @@ -2901,7 +2873,7 @@ -cv89 +cv91 @@ -2914,7 +2886,7 @@ -cv90 +cv92 @@ -2943,7 +2915,7 @@ 12 -cv91 +cv93 @@ -2956,7 +2928,7 @@ -cv92 +cv94 @@ -2969,7 +2941,7 @@ -cv93 +cv95 @@ -2980,7 +2952,7 @@ -cv94 +cv96 @@ -2989,7 +2961,7 @@ 2 -cv95 +cv97 @@ -3000,7 +2972,7 @@ -cv96 +cv98 @@ -3029,7 +3001,7 @@ 12 -cv97 +cv99 @@ -3042,7 +3014,7 @@ -cv98 +VSAA @@ -3055,7 +3027,7 @@ -cv99 +VSAB @@ -3068,7 +3040,7 @@ -VSAA +VSAC @@ -3081,7 +3053,7 @@ -VSAB +VSAD @@ -3092,7 +3064,7 @@ -VSAC +VSAE @@ -3115,7 +3087,7 @@ -VSAD +VSAF @@ -3138,7 +3110,7 @@ -VSAE +VSAG @@ -3163,7 +3135,7 @@ -VSAF +VSAH @@ -3182,7 +3154,7 @@ -VSAG +VSAI @@ -3197,7 +3169,7 @@ -VSAH +VSAJ @@ -3208,7 +3180,7 @@ -VSAI +VSAK @@ -3219,7 +3191,7 @@ -VSAJ +VSAL @@ -3232,7 +3204,7 @@ -VSAK +VSAM @@ -3245,7 +3217,7 @@ -VSAL +VSAN @@ -3256,7 +3228,7 @@ -VSAM +VSAO @@ -3275,7 +3247,7 @@ -VSAN +VSAP @@ -3286,7 +3258,7 @@ -VSAO +VSAQ diff --git a/doc/custom-build.md b/doc/custom-build.md index 3569c1ca43..d34bc98d8f 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -278,7 +278,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `L`:
capital-l = 'serifless', cv12 = 1
Serifless L (default for Sans)
capital-l = 'motion-serifed', cv12 = 2
Standard L with motion serif at bottom right
capital-l = 'serifed', cv12 = 3
L with serifs (default for Slab)
- Styles for `M`: -
capital-m = 'hanging-serifless', cv13 = 1
M with middle being hanging off baseline; without serifs (default for Sans)
capital-m = 'hanging-motion-serifed', cv13 = 2
M with middle being hanging off baseline, and motion serifs
capital-m = 'hanging-serifed', cv13 = 3
M with middle being hanging off baseline, and serifs (default for Slab)
capital-m = 'slanted-sides-hanging-serifless', cv13 = 4
M with slanted sides, and middle being hanging off baseline; without serifs
capital-m = 'slanted-sides-hanging-motion-serifed', cv13 = 5
M with slanted sides, middle being hanging off baseline, and motion serifs
capital-m = 'slanted-sides-hanging-serifed', cv13 = 6
M with slanted sides, middle being hanging off baseline, and serifs
capital-m = 'flat-bottom-serifless', cv13 = 7
M with middle aligned to baseline; without serifs
capital-m = 'flat-bottom-motion-serifed', cv13 = 8
M with middle aligned to baseline, and motion serifs
capital-m = 'flat-bottom-serifed', cv13 = 9
M with middle aligned to baseline, and serifs
capital-m = 'slanted-sides-flat-bottom-serifless', cv13 = 10
M with slanted sides, and middle aligned to baseline; without serifs
capital-m = 'slanted-sides-flat-bottom-motion-serifed', cv13 = 11
M with slanted sides, middle aligned to baseline, and motion serifs
capital-m = 'slanted-sides-flat-bottom-serifed', cv13 = 12
M with slanted sides, middle aligned to baseline, and serifs
+
capital-m = 'hanging-serifless', cv13 = 1
M with middle being hanging off baseline; without serifs (default for Sans)
capital-m = 'hanging-motion-serifed', cv13 = 2
M with middle being hanging off baseline, and motion serifs
capital-m = 'hanging-serifed', cv13 = 3
M with middle being hanging off baseline, and serifs (default for Slab)
capital-m = 'flat-bottom-serifless', cv13 = 4
M with middle aligned to baseline; without serifs
capital-m = 'flat-bottom-motion-serifed', cv13 = 5
M with middle aligned to baseline, and motion serifs
capital-m = 'flat-bottom-serifed', cv13 = 6
M with middle aligned to baseline, and serifs
capital-m = 'slanted-sides-hanging-serifless', cv13 = 7
M with slanted sides, and middle being hanging off baseline; without serifs
capital-m = 'slanted-sides-hanging-motion-serifed', cv13 = 8
M with slanted sides, middle being hanging off baseline, and motion serifs
capital-m = 'slanted-sides-hanging-serifed', cv13 = 9
M with slanted sides, middle being hanging off baseline, and serifs
capital-m = 'slanted-sides-flat-bottom-serifless', cv13 = 10
M with slanted sides, and middle aligned to baseline; without serifs
capital-m = 'slanted-sides-flat-bottom-motion-serifed', cv13 = 11
M with slanted sides, middle aligned to baseline, and motion serifs
capital-m = 'slanted-sides-flat-bottom-serifed', cv13 = 12
M with slanted sides, middle aligned to baseline, and serifs
- Styles for `N`:
capital-n = 'standard-serifless', cv14 = 1
N with standard shape; without serifs (default for Sans)
capital-n = 'standard-motion-serifed', cv14 = 2
N with standard shape, and motion serifs
capital-n = 'standard-serifed', cv14 = 3
N with standard shape, and serifs (default for Slab)
capital-n = 'asymmetric-serifless', cv14 = 4
N with asymmetric shape; without serifs
capital-n = 'asymmetric-motion-serifed', cv14 = 5
N with asymmetric shape, and motion serifs
capital-n = 'asymmetric-serifed', cv14 = 6
N with asymmetric shape, and serifs
- Styles for `P`: @@ -286,7 +286,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Q`:
capital-q = 'curly-tailed', cv16 = 1
Q with a curly tail (default)
capital-q = 'crossing-curly-tailed', cv16 = 2
Q with a curly tail crossing the ring
capital-q = 'straight', cv16 = 3
Q with a straight tail like in the old versions
capital-q = 'crossing', cv16 = 4
Q with a tail crossing the ring
capital-q = 'crossing-baseline', cv16 = 5
Q with a tail above baseline crossing the ring
capital-q = 'vertical-crossing', cv16 = 6
Q with a vertical tail crossing the ring
capital-q = 'horizontal-tailed', cv16 = 7
Q with a horizontal tail, like Univers
capital-q = 'detached-tailed', cv16 = 8
Q with a oblique tail detached
capital-q = 'detached-bend-tailed', cv16 = 9
Q with a bend tail detached
capital-q = 'open-swash', cv16 = 10
Q with open contour and swash-y shape
- Styles for `R`: -
capital-r = 'straight-serifless', cv17 = 1
R with straight leg; without serifs (default for Sans)
capital-r = 'straight-top-left-serifed', cv17 = 2
R with straight leg, and serifs at top-left
capital-r = 'straight-bottom-right-serifed', cv17 = 3
R with straight leg, and serifs at bottom-right
capital-r = 'straight-top-left-and-bottom-right-serifed', cv17 = 4
R with straight leg, and serifs at bottom-right
capital-r = 'straight-serifed', cv17 = 5
R with straight leg, and serifs (default for Slab)
capital-r = 'curly-serifless', cv17 = 6
R with curly leg; without serifs
capital-r = 'curly-top-left-serifed', cv17 = 7
R with curly leg, and serifs at top-left
capital-r = 'curly-bottom-right-serifed', cv17 = 8
R with curly leg, and serifs at bottom-right
capital-r = 'curly-top-left-and-bottom-right-serifed', cv17 = 9
R with curly leg, and serifs at bottom-right
capital-r = 'curly-serifed', cv17 = 10
R with curly leg, and serifs
capital-r = 'standing-serifless', cv17 = 11
R with standing leg (like Helvetica); without serifs
capital-r = 'standing-top-left-serifed', cv17 = 12
R with standing leg (like Helvetica), and serifs at top-left
capital-r = 'standing-bottom-right-serifed', cv17 = 13
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-top-left-and-bottom-right-serifed', cv17 = 14
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-serifed', cv17 = 15
R with standing leg (like Helvetica), and serifs
capital-r = 'straight-open-serifless', cv17 = 16
R with straight leg, and open contour; without serifs
capital-r = 'straight-open-top-left-serifed', cv17 = 17
R with straight leg, open contour, and serifs at top-left
capital-r = 'straight-open-bottom-right-serifed', cv17 = 18
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-top-left-and-bottom-right-serifed', cv17 = 19
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-serifed', cv17 = 20
R with straight leg, open contour, and serifs
capital-r = 'curly-open-serifless', cv17 = 21
R with curly leg, and open contour; without serifs
capital-r = 'curly-open-top-left-serifed', cv17 = 22
R with curly leg, open contour, and serifs at top-left
capital-r = 'curly-open-bottom-right-serifed', cv17 = 23
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-top-left-and-bottom-right-serifed', cv17 = 24
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-serifed', cv17 = 25
R with curly leg, open contour, and serifs
capital-r = 'standing-open-serifless', cv17 = 26
R with standing leg (like Helvetica), and open contour; without serifs
capital-r = 'standing-open-top-left-serifed', cv17 = 27
R with standing leg (like Helvetica), open contour, and serifs at top-left
capital-r = 'standing-open-bottom-right-serifed', cv17 = 28
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-top-left-and-bottom-right-serifed', cv17 = 29
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-serifed', cv17 = 30
R with standing leg (like Helvetica), open contour, and serifs
+
capital-r = 'straight-serifless', cv17 = 1
R with straight leg; without serifs (default for Sans)
capital-r = 'straight-top-left-serifed', cv17 = 2
R with straight leg, and serifs at top-left
capital-r = 'straight-bottom-right-serifed', cv17 = 3
R with straight leg, and serifs at bottom-right
capital-r = 'straight-top-left-and-bottom-right-serifed', cv17 = 4
R with straight leg, and serifs at bottom-right
capital-r = 'straight-serifed', cv17 = 5
R with straight leg, and serifs (default for Slab)
capital-r = 'straight-open-serifless', cv17 = 6
R with straight leg, and open contour; without serifs
capital-r = 'straight-open-top-left-serifed', cv17 = 7
R with straight leg, open contour, and serifs at top-left
capital-r = 'straight-open-bottom-right-serifed', cv17 = 8
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-top-left-and-bottom-right-serifed', cv17 = 9
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-serifed', cv17 = 10
R with straight leg, open contour, and serifs
capital-r = 'curly-serifless', cv17 = 11
R with curly leg; without serifs
capital-r = 'curly-top-left-serifed', cv17 = 12
R with curly leg, and serifs at top-left
capital-r = 'curly-bottom-right-serifed', cv17 = 13
R with curly leg, and serifs at bottom-right
capital-r = 'curly-top-left-and-bottom-right-serifed', cv17 = 14
R with curly leg, and serifs at bottom-right
capital-r = 'curly-serifed', cv17 = 15
R with curly leg, and serifs
capital-r = 'curly-open-serifless', cv17 = 16
R with curly leg, and open contour; without serifs
capital-r = 'curly-open-top-left-serifed', cv17 = 17
R with curly leg, open contour, and serifs at top-left
capital-r = 'curly-open-bottom-right-serifed', cv17 = 18
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-top-left-and-bottom-right-serifed', cv17 = 19
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-serifed', cv17 = 20
R with curly leg, open contour, and serifs
capital-r = 'standing-serifless', cv17 = 21
R with standing leg (like Helvetica); without serifs
capital-r = 'standing-top-left-serifed', cv17 = 22
R with standing leg (like Helvetica), and serifs at top-left
capital-r = 'standing-bottom-right-serifed', cv17 = 23
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-top-left-and-bottom-right-serifed', cv17 = 24
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-serifed', cv17 = 25
R with standing leg (like Helvetica), and serifs
capital-r = 'standing-open-serifless', cv17 = 26
R with standing leg (like Helvetica), and open contour; without serifs
capital-r = 'standing-open-top-left-serifed', cv17 = 27
R with standing leg (like Helvetica), open contour, and serifs at top-left
capital-r = 'standing-open-bottom-right-serifed', cv17 = 28
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-top-left-and-bottom-right-serifed', cv17 = 29
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-serifed', cv17 = 30
R with standing leg (like Helvetica), open contour, and serifs
- Styles for `S`:
capital-s = 'serifless', cv18 = 1
Serifless S (default for Sans)
capital-s = 'unilateral-serifed', cv18 = 2
S with single serif at top
capital-s = 'bilateral-serifed', cv18 = 3
S with serifs at both end (default for Slab)
capital-s = 'unilateral-inward-serifed', cv18 = 4
S with single inward serif at top
capital-s = 'bilateral-inward-serifed', cv18 = 5
S with inward serifs at both end
- Styles for `T`: @@ -304,7 +304,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Z`:
capital-z = 'straight-serifless', cv25 = 1
Z with straight body shape; without serifs (default for Sans)
capital-z = 'straight-serifless-with-crossbar', cv25 = 2
Z with straight body shape, and a diagonal crossbar; without serifs
capital-z = 'straight-serifless-with-horizontal-crossbar', cv25 = 3
Z with straight body shape, and a horizontal crossbar; without serifs
capital-z = 'straight-serifed', cv25 = 4
Z with straight body shape, and serifs (default for Slab)
capital-z = 'straight-serifed-with-crossbar', cv25 = 5
Z with straight body shape, serifs, and a diagonal crossbar
capital-z = 'straight-serifed-with-horizontal-crossbar', cv25 = 6
Z with straight body shape, serifs, and a horizontal crossbar
capital-z = 'straight-bottom-serifed', cv25 = 7
Z with straight body shape, and serifs at bottom
capital-z = 'straight-bottom-serifed-with-crossbar', cv25 = 8
Z with straight body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'straight-bottom-serifed-with-horizontal-crossbar', cv25 = 9
Z with straight body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'straight-top-serifed', cv25 = 10
Z with straight body shape, and serifs at top
capital-z = 'straight-top-serifed-with-crossbar', cv25 = 11
Z with straight body shape, serifs at top, and a diagonal crossbar
capital-z = 'straight-top-serifed-with-horizontal-crossbar', cv25 = 12
Z with straight body shape, serifs at top, and a horizontal crossbar
capital-z = 'curly-serifless', cv25 = 13
Z with curly body shape; without serifs
capital-z = 'curly-serifless-with-crossbar', cv25 = 14
Z with curly body shape, and a diagonal crossbar; without serifs
capital-z = 'curly-serifless-with-horizontal-crossbar', cv25 = 15
Z with curly body shape, and a horizontal crossbar; without serifs
capital-z = 'curly-serifed', cv25 = 16
Z with curly body shape, and serifs
capital-z = 'curly-serifed-with-crossbar', cv25 = 17
Z with curly body shape, serifs, and a diagonal crossbar
capital-z = 'curly-serifed-with-horizontal-crossbar', cv25 = 18
Z with curly body shape, serifs, and a horizontal crossbar
capital-z = 'curly-bottom-serifed', cv25 = 19
Z with curly body shape, and serifs at bottom
capital-z = 'curly-bottom-serifed-with-crossbar', cv25 = 20
Z with curly body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'curly-bottom-serifed-with-horizontal-crossbar', cv25 = 21
Z with curly body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'curly-top-serifed', cv25 = 22
Z with curly body shape, and serifs at top
capital-z = 'curly-top-serifed-with-crossbar', cv25 = 23
Z with curly body shape, serifs at top, and a diagonal crossbar
capital-z = 'curly-top-serifed-with-horizontal-crossbar', cv25 = 24
Z with curly body shape, serifs at top, and a horizontal crossbar
capital-z = 'cursive', cv25 = 25
Z with cursive body shape
capital-z = 'cursive-with-crossbar', cv25 = 26
Z with cursive body shape, and a diagonal crossbar
capital-z = 'cursive-with-horizontal-crossbar', cv25 = 27
Z with cursive body shape, and a horizontal crossbar
- Styles for `a`: -
a = 'double-storey-serifless', cv26 = 1
a with double-storey body; without serif at terminal (default for Sans Upright)
a = 'double-storey-tailed', cv26 = 2
a with double-storey body, and curly tail
a = 'double-storey-toothless-corner', cv26 = 3
a with double-storey body, and toothless (cornered bottom-right)
a = 'double-storey-toothless-rounded', cv26 = 4
a with double-storey body, and toothless (rounded bottom-right)
a = 'double-storey-serifed', cv26 = 5
a with double-storey body, and serif at terminal (default for Slab Upright)
a = 'single-storey-serifless', cv26 = 6
a with single-storey body; without serif at terminal
a = 'single-storey-tailed', cv26 = 7
a with single-storey body, and curly tail (default for Italic)
a = 'single-storey-serifed', cv26 = 8
a with single-storey body, and serif at terminal
a = 'single-storey-earless-corner-serifless', cv26 = 9
a with single-storey body, and earless (cornered top-right); without serif at terminal
a = 'single-storey-earless-corner-tailed', cv26 = 10
a with single-storey body, earless (cornered top-right), and curly tail
a = 'single-storey-earless-corner-serifed', cv26 = 11
a with single-storey body, earless (cornered top-right), and serif at terminal
a = 'single-storey-earless-rounded-serifless', cv26 = 12
a with single-storey body, and earless (rounded top-right); without serif at terminal
a = 'single-storey-earless-rounded-tailed', cv26 = 13
a with single-storey body, earless (rounded top-right), and curly tail
a = 'single-storey-earless-rounded-serifed', cv26 = 14
a with single-storey body, earless (rounded top-right), and serif at terminal
+
a = 'double-storey-serifless', cv26 = 1
a with double-storey body, and serifless hook; without serif at terminal (default for Sans Upright)
a = 'double-storey-tailed', cv26 = 2
a with double-storey body, serifless hook, and curly tail
a = 'double-storey-toothless-corner', cv26 = 3
a with double-storey body, serifless hook, and toothless (cornered bottom-right)
a = 'double-storey-toothless-rounded', cv26 = 4
a with double-storey body, serifless hook, and toothless (rounded bottom-right)
a = 'double-storey-serifed', cv26 = 5
a with double-storey body, serifless hook, and serif at terminal (default for Slab Upright)
a = 'double-storey-hook-inward-serifed-serifless', cv26 = 6
a with double-storey body, and serifed hook; without serif at terminal
a = 'double-storey-hook-inward-serifed-tailed', cv26 = 7
a with double-storey body, serifed hook, and curly tail
a = 'double-storey-hook-inward-serifed-toothless-corner', cv26 = 8
a with double-storey body, serifed hook, and toothless (cornered bottom-right)
a = 'double-storey-hook-inward-serifed-toothless-rounded', cv26 = 9
a with double-storey body, serifed hook, and toothless (rounded bottom-right)
a = 'double-storey-hook-inward-serifed-serifed', cv26 = 10
a with double-storey body, serifed hook, and serif at terminal
a = 'single-storey-serifless', cv26 = 11
a with single-storey body; without serif at terminal
a = 'single-storey-tailed', cv26 = 12
a with single-storey body, and curly tail (default for Italic)
a = 'single-storey-serifed', cv26 = 13
a with single-storey body, and serif at terminal
a = 'single-storey-earless-corner-serifless', cv26 = 14
a with single-storey body, and earless (cornered top-right); without serif at terminal
a = 'single-storey-earless-corner-tailed', cv26 = 15
a with single-storey body, earless (cornered top-right), and curly tail
a = 'single-storey-earless-corner-serifed', cv26 = 16
a with single-storey body, earless (cornered top-right), and serif at terminal
a = 'single-storey-earless-rounded-serifless', cv26 = 17
a with single-storey body, and earless (rounded top-right); without serif at terminal
a = 'single-storey-earless-rounded-tailed', cv26 = 18
a with single-storey body, earless (rounded top-right), and curly tail
a = 'single-storey-earless-rounded-serifed', cv26 = 19
a with single-storey body, earless (rounded top-right), and serif at terminal
- Styles for `b`:
b = 'toothed-serifless', cv27 = 1
b with toothed shape; without serifs (default for Sans)
b = 'toothed-motion-serifed', cv27 = 2
b with toothed shape, and motion serifs
b = 'toothed-serifed', cv27 = 3
b with toothed shape, and serifs (default for Slab)
b = 'toothless-corner-serifless', cv27 = 4
b with toothless (cornered) shape; without serifs
b = 'toothless-corner-serifed', cv27 = 5
b with toothless (cornered) shape, and serifs
b = 'toothless-rounded-serifless', cv27 = 6
b with toothless (rounded) shape; without serifs
b = 'toothless-rounded-serifed', cv27 = 7
b with toothless (rounded) shape, and serifs
- Styles for `c`: @@ -314,7 +314,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `e`:
e = 'flat-crossbar', cv30 = 1
e with flat crossbar (default for Upright)
e = 'rounded', cv30 = 2
e with more rounded shape (default for Italic)
- Styles for `f`: -
f = 'serifless', cv31 = 1
f without bottom serif, hook or extension (default for Sans Upright)
f = 'serifless-crossbar-at-x-height', cv31 = 2
f without bottom serif, hook or extension; with crossbar at X-height
f = 'flat-hook-serifless', cv31 = 3
f without bottom serif, hook or extension; with flat top hook
f = 'flat-hook-serifless-crossbar-at-x-height', cv31 = 4
f without bottom serif, hook or extension; with flat top hook, and crossbar at X-height
f = 'serifed', cv31 = 5
f with bottom serif (default for Slab Upright)
f = 'serifed-crossbar-at-x-height', cv31 = 6
f with bottom serif, and crossbar at X-height
f = 'flat-hook-serifed', cv31 = 7
f with flat top hook, and bottom serif
f = 'flat-hook-serifed-crossbar-at-x-height', cv31 = 8
f with flat top hook, bottom serif, and crossbar at X-height
f = 'extended', cv31 = 9
f with descending extension
f = 'extended-crossbar-at-x-height', cv31 = 10
f with descending extension, and crossbar at X-height
f = 'flat-hook-extended', cv31 = 11
f with flat top hook, and descending extension
f = 'flat-hook-extended-crossbar-at-x-height', cv31 = 12
f with flat top hook, descending extension, and crossbar at X-height
f = 'tailed', cv31 = 13
f with descending bottom hook
f = 'tailed-crossbar-at-x-height', cv31 = 14
f with descending bottom hook, and crossbar at X-height
f = 'flat-hook-tailed', cv31 = 15
f with flat top hook, and descending bottom hook (default for Italic)
f = 'flat-hook-tailed-crossbar-at-x-height', cv31 = 16
f with flat top hook, descending bottom hook, and crossbar at X-height
f = 'diagonal-tailed', cv31 = 17
f with diagonal tail
f = 'diagonal-tailed-crossbar-at-x-height', cv31 = 18
f with diagonal tail, and crossbar at X-height
f = 'flat-hook-diagonal-tailed', cv31 = 19
f with flat top hook, and diagonal tail
f = 'flat-hook-diagonal-tailed-crossbar-at-x-height', cv31 = 20
f with flat top hook, diagonal tail, and crossbar at X-height
+
f = 'serifless', cv31 = 1
f without bottom serif, hook or extension (default for Sans Upright)
f = 'serifless-crossbar-at-x-height', cv31 = 2
f without bottom serif, hook or extension; with crossbar at X-height
f = 'serifed', cv31 = 3
f with bottom serif (default for Slab Upright)
f = 'serifed-crossbar-at-x-height', cv31 = 4
f with bottom serif, and crossbar at X-height
f = 'extended', cv31 = 5
f with descending extension
f = 'extended-crossbar-at-x-height', cv31 = 6
f with descending extension, and crossbar at X-height
f = 'tailed', cv31 = 7
f with descending bottom hook
f = 'tailed-crossbar-at-x-height', cv31 = 8
f with descending bottom hook, and crossbar at X-height
f = 'diagonal-tailed', cv31 = 9
f with diagonal tail
f = 'diagonal-tailed-crossbar-at-x-height', cv31 = 10
f with diagonal tail, and crossbar at X-height
f = 'flat-hook-serifless', cv31 = 11
f with flat top hook; without bottom serif, hook or extension
f = 'flat-hook-serifless-crossbar-at-x-height', cv31 = 12
f with flat top hook, and crossbar at X-height; without bottom serif, hook or extension
f = 'flat-hook-serifed', cv31 = 13
f with flat top hook, and bottom serif
f = 'flat-hook-serifed-crossbar-at-x-height', cv31 = 14
f with flat top hook, bottom serif, and crossbar at X-height
f = 'flat-hook-extended', cv31 = 15
f with flat top hook, and descending extension
f = 'flat-hook-extended-crossbar-at-x-height', cv31 = 16
f with flat top hook, descending extension, and crossbar at X-height
f = 'flat-hook-tailed', cv31 = 17
f with flat top hook, and descending bottom hook (default for Italic)
f = 'flat-hook-tailed-crossbar-at-x-height', cv31 = 18
f with flat top hook, descending bottom hook, and crossbar at X-height
f = 'flat-hook-diagonal-tailed', cv31 = 19
f with flat top hook, and diagonal tail
f = 'flat-hook-diagonal-tailed-crossbar-at-x-height', cv31 = 20
f with flat top hook, diagonal tail, and crossbar at X-height
- Styles for `g`:
g = 'double-storey', cv32 = 1
g with double-storey shape
g = 'double-storey-open', cv32 = 2
g with double-storey shape, and open contour
g = 'single-storey-serifless', cv32 = 3
g with single-storey shape (default for Sans)
g = 'single-storey-serifed', cv32 = 4
g with single-storey shape, and top-right serif (default for Slab)
g = 'single-storey-earless-corner', cv32 = 5
g with single-storey shape, and earless (cornered top-right)
g = 'single-storey-earless-rounded', cv32 = 6
g with single-storey shape, and earless (rounded top-right)
g = 'single-storey-flat-hook-serifless', cv32 = 7
g with single-storey shape, and flat bottom hook
g = 'single-storey-flat-hook-serifed', cv32 = 8
g with single-storey shape, flat bottom hook, and top-right serif
g = 'single-storey-flat-hook-earless-corner', cv32 = 9
g with single-storey shape, flat bottom hook, and earless (cornered top-right)
g = 'single-storey-flat-hook-earless-rounded', cv32 = 10
g with single-storey shape, flat bottom hook, and earless (rounded top-right)
- Styles for `h`: @@ -340,7 +340,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `s`:
s = 'serifless', cv43 = 1
Serifless s (default for Sans)
s = 'unilateral-serifed', cv43 = 2
s with single serif at top
s = 'bilateral-serifed', cv43 = 3
s with serifs at both end (default for Slab Upright)
s = 'unilateral-inward-serifed', cv43 = 4
s with single inward serif at top
s = 'bilateral-inward-serifed', cv43 = 5
s with inward serifs at both end (default for Slab Italic)
- Styles for `t`: -
t = 'bent-hook', cv44 = 1
t with bent hook, and crossbar at both sides of the vertical stem (default)
t = 'flat-hook', cv44 = 2
t with flat hook, and crossbar at both sides of the vertical stem
t = 'diagonal-tailed', cv44 = 3
t with diagonal tail, and crossbar at both sides of the vertical stem
t = 'hookless', cv44 = 4
t with crossbar at both sides of the vertical stem; without hook or tail
t = 'bent-hook-asymmetric', cv44 = 5
t with bent hook, and crossbar at only right side of the vertical stem
t = 'flat-hook-asymmetric', cv44 = 6
t with flat hook, and crossbar at only right side of the vertical stem
t = 'diagonal-tailed-asymmetric', cv44 = 7
t with diagonal tail, and crossbar at only right side of the vertical stem
t = 'hookless-asymmetric', cv44 = 8
t with crossbar at only right side of the vertical stem; without hook or tail
t = 'bent-hook-short-neck', cv44 = 9
t with bent hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'flat-hook-short-neck', cv44 = 10
t with flat hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'diagonal-tailed-short-neck', cv44 = 11
t with diagonal tail, crossbar at both sides of the vertical stem, and a shorter neck
t = 'hookless-short-neck', cv44 = 12
t with crossbar at both sides of the vertical stem, and a shorter neck; without hook or tail
t = 'bent-hook-asymmetric-short-neck', cv44 = 13
t with bent hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'flat-hook-asymmetric-short-neck', cv44 = 14
t with flat hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'diagonal-tailed-asymmetric-short-neck', cv44 = 15
t with diagonal tail, crossbar at only right side of the vertical stem, and a shorter neck
t = 'hookless-asymmetric-short-neck', cv44 = 16
t with crossbar at only right side of the vertical stem, and a shorter neck; without hook or tail
t = 'bent-hook-short-neck2', cv44 = 17
t with bent hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'flat-hook-short-neck2', cv44 = 18
t with flat hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-short-neck2', cv44 = 19
t with diagonal tail, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'hookless-short-neck2', cv44 = 20
t with crossbar at both sides of the vertical stem, and a more shorter neck; without hook or tail
t = 'bent-hook-asymmetric-short-neck2', cv44 = 21
t with bent hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'flat-hook-asymmetric-short-neck2', cv44 = 22
t with flat hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-asymmetric-short-neck2', cv44 = 23
t with diagonal tail, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'hookless-asymmetric-short-neck2', cv44 = 24
t with crossbar at only right side of the vertical stem, and a more shorter neck; without hook or tail
+
t = 'bent-hook', cv44 = 1
t with bent hook, and crossbar at both sides of the vertical stem (default)
t = 'bent-hook-short-neck', cv44 = 2
t with bent hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'bent-hook-short-neck2', cv44 = 3
t with bent hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'bent-hook-asymmetric', cv44 = 4
t with bent hook, and crossbar at only right side of the vertical stem
t = 'bent-hook-asymmetric-short-neck', cv44 = 5
t with bent hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'bent-hook-asymmetric-short-neck2', cv44 = 6
t with bent hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'flat-hook', cv44 = 7
t with flat hook, and crossbar at both sides of the vertical stem
t = 'flat-hook-short-neck', cv44 = 8
t with flat hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'flat-hook-short-neck2', cv44 = 9
t with flat hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'flat-hook-asymmetric', cv44 = 10
t with flat hook, and crossbar at only right side of the vertical stem
t = 'flat-hook-asymmetric-short-neck', cv44 = 11
t with flat hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'flat-hook-asymmetric-short-neck2', cv44 = 12
t with flat hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'diagonal-tailed', cv44 = 13
t with diagonal tail, and crossbar at both sides of the vertical stem
t = 'diagonal-tailed-short-neck', cv44 = 14
t with diagonal tail, crossbar at both sides of the vertical stem, and a shorter neck
t = 'diagonal-tailed-short-neck2', cv44 = 15
t with diagonal tail, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-asymmetric', cv44 = 16
t with diagonal tail, and crossbar at only right side of the vertical stem
t = 'diagonal-tailed-asymmetric-short-neck', cv44 = 17
t with diagonal tail, crossbar at only right side of the vertical stem, and a shorter neck
t = 'diagonal-tailed-asymmetric-short-neck2', cv44 = 18
t with diagonal tail, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'hookless', cv44 = 19
t without hook or tail; with crossbar at both sides of the vertical stem
t = 'hookless-short-neck', cv44 = 20
t without hook or tail; with crossbar at both sides of the vertical stem, and a shorter neck
t = 'hookless-short-neck2', cv44 = 21
t without hook or tail; with crossbar at both sides of the vertical stem, and a more shorter neck
t = 'hookless-asymmetric', cv44 = 22
t without hook or tail; with crossbar at only right side of the vertical stem
t = 'hookless-asymmetric-short-neck', cv44 = 23
t without hook or tail; with crossbar at only right side of the vertical stem, and a shorter neck
t = 'hookless-asymmetric-short-neck2', cv44 = 24
t without hook or tail; with crossbar at only right side of the vertical stem, and a more shorter neck
- Styles for `u`:
u = 'toothed-serifless', cv45 = 1
u with toothed shape; without serifs (default for Sans Upright)
u = 'toothed-motion-serifed', cv45 = 2
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-bottom-right-serifed', cv45 = 3
u with toothed shape, and motion serifs at left side
u = 'toothed-serifed', cv45 = 4
u with toothed shape, and serifs (default for Slab Upright)
u = 'tailed-serifless', cv45 = 5
u with tailed shape; without serifs (default for Sans Italic)
u = 'tailed-motion-serifed', cv45 = 6
u with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
u = 'tailed-serifed', cv45 = 7
u with tailed shape, and serifs
u = 'toothless-corner-serifless', cv45 = 8
u with toothless (corner bottom-right) shape; without serifs
u = 'toothless-corner-motion-serifed', cv45 = 9
u with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
u = 'toothless-corner-serifed', cv45 = 10
u with toothless (corner bottom-right) shape, and serifs
u = 'toothless-rounded-serifless', cv45 = 11
u with toothless (rounded) shape; without serifs
u = 'toothless-rounded-motion-serifed', cv45 = 12
u with toothless (rounded) shape, and motion serifs at top-left and bottom-right
u = 'toothless-rounded-serifed', cv45 = 13
u with toothless (rounded) shape, and serifs
- Styles for `v`: @@ -354,7 +354,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `z`:
z = 'straight-serifless', cv50 = 1
z with straight body shape; without serifs (default for Sans)
z = 'straight-serifless-with-crossbar', cv50 = 2
z with straight body shape, and a diagonal crossbar; without serifs
z = 'straight-serifless-with-horizontal-crossbar', cv50 = 3
z with straight body shape, and a horizontal crossbar; without serifs
z = 'straight-serifed', cv50 = 4
z with straight body shape, and serifs (default for Slab Upright)
z = 'straight-serifed-with-crossbar', cv50 = 5
z with straight body shape, serifs, and a diagonal crossbar
z = 'straight-serifed-with-horizontal-crossbar', cv50 = 6
z with straight body shape, serifs, and a horizontal crossbar
z = 'straight-bottom-serifed', cv50 = 7
z with straight body shape, and serifs at bottom
z = 'straight-bottom-serifed-with-crossbar', cv50 = 8
z with straight body shape, serifs at bottom, and a diagonal crossbar
z = 'straight-bottom-serifed-with-horizontal-crossbar', cv50 = 9
z with straight body shape, serifs at bottom, and a horizontal crossbar
z = 'straight-top-serifed', cv50 = 10
z with straight body shape, and serifs at top
z = 'straight-top-serifed-with-crossbar', cv50 = 11
z with straight body shape, serifs at top, and a diagonal crossbar
z = 'straight-top-serifed-with-horizontal-crossbar', cv50 = 12
z with straight body shape, serifs at top, and a horizontal crossbar
z = 'curly-serifless', cv50 = 13
z with curly body shape; without serifs
z = 'curly-serifless-with-crossbar', cv50 = 14
z with curly body shape, and a diagonal crossbar; without serifs
z = 'curly-serifless-with-horizontal-crossbar', cv50 = 15
z with curly body shape, and a horizontal crossbar; without serifs
z = 'curly-serifed', cv50 = 16
z with curly body shape, and serifs
z = 'curly-serifed-with-crossbar', cv50 = 17
z with curly body shape, serifs, and a diagonal crossbar
z = 'curly-serifed-with-horizontal-crossbar', cv50 = 18
z with curly body shape, serifs, and a horizontal crossbar
z = 'curly-bottom-serifed', cv50 = 19
z with curly body shape, and serifs at bottom
z = 'curly-bottom-serifed-with-crossbar', cv50 = 20
z with curly body shape, serifs at bottom, and a diagonal crossbar
z = 'curly-bottom-serifed-with-horizontal-crossbar', cv50 = 21
z with curly body shape, serifs at bottom, and a horizontal crossbar
z = 'curly-top-serifed', cv50 = 22
z with curly body shape, and serifs at top
z = 'curly-top-serifed-with-crossbar', cv50 = 23
z with curly body shape, serifs at top, and a diagonal crossbar
z = 'curly-top-serifed-with-horizontal-crossbar', cv50 = 24
z with curly body shape, serifs at top, and a horizontal crossbar
z = 'cursive', cv50 = 25
z with cursive body shape (default for Slab Italic)
z = 'cursive-with-crossbar', cv50 = 26
z with cursive body shape, and a diagonal crossbar
z = 'cursive-with-horizontal-crossbar', cv50 = 27
z with cursive body shape, and a horizontal crossbar
- Styles for `ſ` (Long-S): -
long-s = 'bent-hook-serifless', cv51 = 1
Long S (ſ) with bending top hook; without serifs (default for Sans Upright)
long-s = 'bent-hook-middle-serifed', cv51 = 2
Long S (ſ) with bending top hook, and middle serif
long-s = 'bent-hook-middle-serifed-xh', cv51 = 3
Long S (ſ) with bending top hook, and middle serif at x-height
long-s = 'bent-hook-bottom-serifed', cv51 = 4
Long S (ſ) with bending top hook, and bottom serif (default for Slab Upright)
long-s = 'bent-hook-double-serifed', cv51 = 5
Long S (ſ) with bending top hook, and bottom and middle serifs
long-s = 'bent-hook-double-serifed-xh', cv51 = 6
Long S (ſ) with bending top hook, and bottom and middle serifs at x-height
long-s = 'flat-hook-serifless', cv51 = 7
Long S (ſ) with flat top hook; without serifs
long-s = 'flat-hook-middle-serifed', cv51 = 8
Long S (ſ) with flat top hook, and middle serif
long-s = 'flat-hook-middle-serifed-xh', cv51 = 9
Long S (ſ) with flat top hook, and middle serif at x-height
long-s = 'flat-hook-bottom-serifed', cv51 = 10
Long S (ſ) with flat top hook, and bottom serif
long-s = 'flat-hook-double-serifed', cv51 = 11
Long S (ſ) with flat top hook, and bottom and middle serifs
long-s = 'flat-hook-double-serifed-xh', cv51 = 12
Long S (ſ) with flat top hook, and bottom and middle serifs at x-height
long-s = 'bent-hook-descending', cv51 = 13
Long S (ſ) with bending top hook, and terminal descends baseline; without serifs
long-s = 'bent-hook-descending-middle-serifed', cv51 = 14
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif
long-s = 'bent-hook-descending-middle-serifed-xh', cv51 = 15
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif at x-height
long-s = 'flat-hook-descending', cv51 = 16
Long S (ſ) with flat top hook, and terminal descends baseline; without serifs
long-s = 'flat-hook-descending-middle-serifed', cv51 = 17
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif
long-s = 'flat-hook-descending-middle-serifed-xh', cv51 = 18
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif at x-height
long-s = 'bent-hook-tailed', cv51 = 19
Long S (ſ) with bending top hook, and terminal has a tail; without serifs
long-s = 'bent-hook-tailed-middle-serifed', cv51 = 20
Long S (ſ) with bending top hook, terminal has a tail, and middle serif
long-s = 'bent-hook-tailed-middle-serifed-xh', cv51 = 21
Long S (ſ) with bending top hook, terminal has a tail, and middle serif at x-height
long-s = 'flat-hook-tailed', cv51 = 22
Long S (ſ) with flat top hook, and terminal has a tail; without serifs (default for Italic)
long-s = 'flat-hook-tailed-middle-serifed', cv51 = 23
Long S (ſ) with flat top hook, terminal has a tail, and middle serif
long-s = 'flat-hook-tailed-middle-serifed-xh', cv51 = 24
Long S (ſ) with flat top hook, terminal has a tail, and middle serif at x-height
long-s = 'bent-hook-diagonal-tailed', cv51 = 25
Long S (ſ) with bending top hook, and terminal has a diagonal tail; without serifs
long-s = 'bent-hook-diagonal-tailed-middle-serifed', cv51 = 26
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif
long-s = 'bent-hook-diagonal-tailed-middle-serifed-xh', cv51 = 27
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif at x-height
long-s = 'flat-hook-diagonal-tailed', cv51 = 28
Long S (ſ) with flat top hook, and terminal has a diagonal tail; without serifs
long-s = 'flat-hook-diagonal-tailed-middle-serifed', cv51 = 29
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif
long-s = 'flat-hook-diagonal-tailed-middle-serifed-xh', cv51 = 30
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif at x-height
+
long-s = 'bent-hook-serifless', cv51 = 1
Long S (ſ) with bending top hook; without serifs (default for Sans Upright)
long-s = 'bent-hook-middle-serifed', cv51 = 2
Long S (ſ) with bending top hook, and middle serif
long-s = 'bent-hook-middle-serifed-xh', cv51 = 3
Long S (ſ) with bending top hook, and middle serif at x-height
long-s = 'bent-hook-bottom-serifed', cv51 = 4
Long S (ſ) with bending top hook, and bottom serif (default for Slab Upright)
long-s = 'bent-hook-double-serifed', cv51 = 5
Long S (ſ) with bending top hook, and bottom and middle serifs
long-s = 'bent-hook-double-serifed-xh', cv51 = 6
Long S (ſ) with bending top hook, and bottom and middle serifs at x-height
long-s = 'bent-hook-descending', cv51 = 7
Long S (ſ) with bending top hook, and terminal descends baseline; without serifs
long-s = 'bent-hook-descending-middle-serifed', cv51 = 8
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif
long-s = 'bent-hook-descending-middle-serifed-xh', cv51 = 9
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif at x-height
long-s = 'bent-hook-tailed', cv51 = 10
Long S (ſ) with bending top hook, and terminal has a tail; without serifs
long-s = 'bent-hook-tailed-middle-serifed', cv51 = 11
Long S (ſ) with bending top hook, terminal has a tail, and middle serif
long-s = 'bent-hook-tailed-middle-serifed-xh', cv51 = 12
Long S (ſ) with bending top hook, terminal has a tail, and middle serif at x-height
long-s = 'bent-hook-diagonal-tailed', cv51 = 13
Long S (ſ) with bending top hook, and terminal has a diagonal tail; without serifs
long-s = 'bent-hook-diagonal-tailed-middle-serifed', cv51 = 14
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif
long-s = 'bent-hook-diagonal-tailed-middle-serifed-xh', cv51 = 15
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif at x-height
long-s = 'flat-hook-serifless', cv51 = 16
Long S (ſ) with flat top hook; without serifs
long-s = 'flat-hook-middle-serifed', cv51 = 17
Long S (ſ) with flat top hook, and middle serif
long-s = 'flat-hook-middle-serifed-xh', cv51 = 18
Long S (ſ) with flat top hook, and middle serif at x-height
long-s = 'flat-hook-bottom-serifed', cv51 = 19
Long S (ſ) with flat top hook, and bottom serif
long-s = 'flat-hook-double-serifed', cv51 = 20
Long S (ſ) with flat top hook, and bottom and middle serifs
long-s = 'flat-hook-double-serifed-xh', cv51 = 21
Long S (ſ) with flat top hook, and bottom and middle serifs at x-height
long-s = 'flat-hook-descending', cv51 = 22
Long S (ſ) with flat top hook, and terminal descends baseline; without serifs
long-s = 'flat-hook-descending-middle-serifed', cv51 = 23
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif
long-s = 'flat-hook-descending-middle-serifed-xh', cv51 = 24
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif at x-height
long-s = 'flat-hook-tailed', cv51 = 25
Long S (ſ) with flat top hook, and terminal has a tail; without serifs (default for Italic)
long-s = 'flat-hook-tailed-middle-serifed', cv51 = 26
Long S (ſ) with flat top hook, terminal has a tail, and middle serif
long-s = 'flat-hook-tailed-middle-serifed-xh', cv51 = 27
Long S (ſ) with flat top hook, terminal has a tail, and middle serif at x-height
long-s = 'flat-hook-diagonal-tailed', cv51 = 28
Long S (ſ) with flat top hook, and terminal has a diagonal tail; without serifs
long-s = 'flat-hook-diagonal-tailed-middle-serifed', cv51 = 29
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif
long-s = 'flat-hook-diagonal-tailed-middle-serifed-xh', cv51 = 30
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif at x-height
- Styles for `ß` (Eszet):
eszet = 'traditional-serifless', cv52 = 1
Eszet (ß) with traditional, Fraktur-like shape
eszet = 'traditional-middle-serifed', cv52 = 2
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle
eszet = 'traditional-bottom-serifed', cv52 = 3
Eszet (ß) with traditional, Fraktur-like shape, and serif at bottom
eszet = 'traditional-dual-serifed', cv52 = 4
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle and bottom
eszet = 'traditional-descending-serifless', cv52 = 5
Eszet (ß) with traditional, Fraktur-like shape, and terminal descends baseline
eszet = 'traditional-descending-middle-serifed', cv52 = 6
Eszet (ß) with traditional, Fraktur-like shape, terminal descends baseline, and serif at middle
eszet = 'traditional-tailed-serifless', cv52 = 7
Eszet (ß) with traditional, Fraktur-like shape, and terminal containing tail
eszet = 'traditional-tailed-middle-serifed', cv52 = 8
Eszet (ß) with traditional, Fraktur-like shape, terminal containing tail, and serif at middle
eszet = 'traditional-flat-hook-serifless', cv52 = 9
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook)
eszet = 'traditional-flat-hook-middle-serifed', cv52 = 10
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle
eszet = 'traditional-flat-hook-bottom-serifed', cv52 = 11
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at bottom
eszet = 'traditional-flat-hook-dual-serifed', cv52 = 12
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle and bottom
eszet = 'traditional-flat-hook-descending-serifless', cv52 = 13
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal descends baseline
eszet = 'traditional-flat-hook-descending-middle-serifed', cv52 = 14
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal descends baseline, and serif at middle
eszet = 'traditional-flat-hook-tailed-serifless', cv52 = 15
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal containing tail
eszet = 'traditional-flat-hook-tailed-middle-serifed', cv52 = 16
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal containing tail, and serif at middle
eszet = 'sulzbacher-serifless', cv52 = 17
Eszet (ß) with more modern, beta-like shape (default for Sans Upright)
eszet = 'sulzbacher-middle-serifed', cv52 = 18
Eszet (ß) with more modern, beta-like shape, and serif at middle
eszet = 'sulzbacher-middle-serifed-xh', cv52 = 19
Eszet (ß) with more modern, beta-like shape, and serif at middle at x-height
eszet = 'sulzbacher-bottom-serifed', cv52 = 20
Eszet (ß) with more modern, beta-like shape, and serif at bottom (default for Slab Upright)
eszet = 'sulzbacher-dual-serifed', cv52 = 21
Eszet (ß) with more modern, beta-like shape, and serif at middle and bottom
eszet = 'sulzbacher-dual-serifed-xh', cv52 = 22
Eszet (ß) with more modern, beta-like shape, and serif at middle (x-height) and bottom
eszet = 'sulzbacher-descending-serifless', cv52 = 23
Eszet (ß) with more modern, beta-like shape, and terminal descends baseline
eszet = 'sulzbacher-descending-middle-serifed', cv52 = 24
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle
eszet = 'sulzbacher-descending-middle-serifed-xh', cv52 = 25
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle at x-height
eszet = 'sulzbacher-tailed-serifless', cv52 = 26
Eszet (ß) with more modern, beta-like shape, and terminal containing tail (default for Italic)
eszet = 'sulzbacher-tailed-middle-serifed', cv52 = 27
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle
eszet = 'sulzbacher-tailed-middle-serifed-xh', cv52 = 28
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle at x-height
eszet = 'longs-s-lig-serifless', cv52 = 29
Eszet (ß) with ligature of long-S (ſ) and s
eszet = 'longs-s-lig-middle-serifed', cv52 = 30
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle
eszet = 'longs-s-lig-middle-serifed-xh', cv52 = 31
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle at x-height
eszet = 'longs-s-lig-bottom-serifed', cv52 = 32
Eszet (ß) with ligature of long-S (ſ) and s, and serif at bottom
eszet = 'longs-s-lig-dual-serifed', cv52 = 33
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle and bottom
eszet = 'longs-s-lig-dual-serifed-xh', cv52 = 34
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle (x-height) and bottom
eszet = 'longs-s-lig-descending-serifless', cv52 = 35
Eszet (ß) with ligature of long-S (ſ) and s, and terminal descends baseline
eszet = 'longs-s-lig-descending-middle-serifed', cv52 = 36
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle
eszet = 'longs-s-lig-descending-middle-serifed-xh', cv52 = 37
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle at x-height
eszet = 'longs-s-lig-tailed-serifless', cv52 = 38
Eszet (ß) with ligature of long-S (ſ) and s, and terminal containing tail
eszet = 'longs-s-lig-tailed-middle-serifed', cv52 = 39
Eszet (ß) with ligature of long-S (ſ) and s, terminal containing tail, and serif at middle
eszet = 'longs-s-lig-tailed-middle-serifed-xh', cv52 = 40
Eszet (ß) with ligature of long-S (ſ) and s, terminal containing tail, and serif at middle at x-height
- Styles for `ð` (Lowercase Eth (`ð`)): @@ -400,91 +400,91 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `л` (Cyrillic Lower El):
cyrl-el = 'straight', cv73 = 1
Cyrillic Lower El (л) with standard shape (default)
cyrl-el = 'tailed', cv73 = 2
Cyrillic Lower El (л) with tail shape
- Styles for `м` (Cyrillic Lower Em): -
cyrl-em = 'hanging-serifless', cv74 = 1
Cyrillic Lower Em (м) with middle being hanging off baseline; without serifs (default for Sans)
cyrl-em = 'hanging-motion-serifed', cv74 = 2
Cyrillic Lower Em (м) with middle being hanging off baseline, and motion serifs
cyrl-em = 'hanging-serifed', cv74 = 3
Cyrillic Lower Em (м) with middle being hanging off baseline, and serifs (default for Slab)
cyrl-em = 'slanted-sides-hanging-serifless', cv74 = 4
Cyrillic Lower Em (м) with slanted sides, and middle being hanging off baseline; without serifs
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv74 = 5
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and motion serifs
cyrl-em = 'slanted-sides-hanging-serifed', cv74 = 6
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and serifs
cyrl-em = 'flat-bottom-serifless', cv74 = 7
Cyrillic Lower Em (м) with middle aligned to baseline; without serifs
cyrl-em = 'flat-bottom-motion-serifed', cv74 = 8
Cyrillic Lower Em (м) with middle aligned to baseline, and motion serifs
cyrl-em = 'flat-bottom-serifed', cv74 = 9
Cyrillic Lower Em (м) with middle aligned to baseline, and serifs
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv74 = 10
Cyrillic Lower Em (м) with slanted sides, and middle aligned to baseline; without serifs
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv74 = 11
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and motion serifs
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv74 = 12
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and serifs
+
cyrl-em = 'hanging-serifless', cv74 = 1
Cyrillic Lower Em (м) with middle being hanging off baseline; without serifs (default for Sans)
cyrl-em = 'hanging-motion-serifed', cv74 = 2
Cyrillic Lower Em (м) with middle being hanging off baseline, and motion serifs
cyrl-em = 'hanging-serifed', cv74 = 3
Cyrillic Lower Em (м) with middle being hanging off baseline, and serifs (default for Slab)
cyrl-em = 'flat-bottom-serifless', cv74 = 4
Cyrillic Lower Em (м) with middle aligned to baseline; without serifs
cyrl-em = 'flat-bottom-motion-serifed', cv74 = 5
Cyrillic Lower Em (м) with middle aligned to baseline, and motion serifs
cyrl-em = 'flat-bottom-serifed', cv74 = 6
Cyrillic Lower Em (м) with middle aligned to baseline, and serifs
cyrl-em = 'slanted-sides-hanging-serifless', cv74 = 7
Cyrillic Lower Em (м) with slanted sides, and middle being hanging off baseline; without serifs
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv74 = 8
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and motion serifs
cyrl-em = 'slanted-sides-hanging-serifed', cv74 = 9
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and serifs
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv74 = 10
Cyrillic Lower Em (м) with slanted sides, and middle aligned to baseline; without serifs
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv74 = 11
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and motion serifs
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv74 = 12
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and serifs
- Styles for `н` (Cyrillic Lower En):
cyrl-en = 'serifless', cv75 = 1
Cyrillic Lower En (н) without serifs (default for Sans)
cyrl-en = 'top-left-serifed', cv75 = 2
Cyrillic Lower En (н) with serifs at top left
cyrl-en = 'top-left-bottom-right-serifed', cv75 = 3
Cyrillic Lower En (н) with serifs at top left and bottom right (default for Slab Italic)
cyrl-en = 'serifed', cv75 = 4
Cyrillic Lower En (н) with serifs (default for Slab Upright)
cyrl-en = 'tailed-serifless', cv75 = 5
Cyrillic Lower En (н) with tail; without serifs
cyrl-en = 'tailed-top-left-serifed', cv75 = 6
Cyrillic Lower En (н) with tail, and serifs at top left
cyrl-en = 'tailed-serifed', cv75 = 7
Cyrillic Lower En (н) with tail, and serifs
- Styles for `р` (Cyrillic Lower Er): -
cyrl-er = 'eared-serifless', VXAA = 1
Cyrillic Lower Er (р) with eared shape; without serifs (default for Sans)
cyrl-er = 'eared-motion-serifed', VXAA = 2
Cyrillic Lower Er (р) with eared shape, and motion serifs
cyrl-er = 'eared-serifed', VXAA = 3
Cyrillic Lower Er (р) with eared shape, and serifs (default for Slab)
cyrl-er = 'earless-corner-serifless', VXAA = 4
Cyrillic Lower Er (р) with earless (cornered) shape; without serifs
cyrl-er = 'earless-corner-serifed', VXAA = 5
Cyrillic Lower Er (р) with earless (cornered) shape, and serifs
cyrl-er = 'earless-rounded-serifless', VXAA = 6
Cyrillic Lower Er (р) with earless (rounded) shape; without serifs
cyrl-er = 'earless-rounded-serifed', VXAA = 7
Cyrillic Lower Er (р) with earless (rounded) shape, and serifs
+
cyrl-er = 'eared-serifless', cv76 = 1
Cyrillic Lower Er (р) with eared shape; without serifs (default for Sans)
cyrl-er = 'eared-motion-serifed', cv76 = 2
Cyrillic Lower Er (р) with eared shape, and motion serifs
cyrl-er = 'eared-serifed', cv76 = 3
Cyrillic Lower Er (р) with eared shape, and serifs (default for Slab)
cyrl-er = 'earless-corner-serifless', cv76 = 4
Cyrillic Lower Er (р) with earless (cornered) shape; without serifs
cyrl-er = 'earless-corner-serifed', cv76 = 5
Cyrillic Lower Er (р) with earless (cornered) shape, and serifs
cyrl-er = 'earless-rounded-serifless', cv76 = 6
Cyrillic Lower Er (р) with earless (rounded) shape; without serifs
cyrl-er = 'earless-rounded-serifed', cv76 = 7
Cyrillic Lower Er (р) with earless (rounded) shape, and serifs
- Styles for `У` (Cyrillic Capital U): -
cyrl-capital-u = 'straight-serifless', cv76 = 1
Cyrillic Capital U (У) with straight shape; without serifs (default for Sans)
cyrl-capital-u = 'straight-motion-serifed', cv76 = 2
Cyrillic Capital U (У) with straight shape, and motion serifs
cyrl-capital-u = 'straight-serifed', cv76 = 3
Cyrillic Capital U (У) with straight shape, and serifs
cyrl-capital-u = 'straight-turn-serifless', cv76 = 4
Cyrillic Capital U (У) with straight shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'straight-turn-motion-serifed', cv76 = 5
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'straight-turn-serifed', cv76 = 6
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and serifs (default for Slab)
cyrl-capital-u = 'curly-serifless', cv76 = 7
Cyrillic Capital U (У) with curly shape; without serifs
cyrl-capital-u = 'curly-motion-serifed', cv76 = 8
Cyrillic Capital U (У) with curly shape, and motion serifs
cyrl-capital-u = 'curly-serifed', cv76 = 9
Cyrillic Capital U (У) with curly shape, and serifs
cyrl-capital-u = 'curly-turn-serifless', cv76 = 10
Cyrillic Capital U (У) with curly shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'curly-turn-motion-serifed', cv76 = 11
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'curly-turn-serifed', cv76 = 12
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and serifs
cyrl-capital-u = 'cursive-serifless', cv76 = 13
Cyrillic Capital U (У) with cursive shape; without serifs
cyrl-capital-u = 'cursive-motion-serifed', cv76 = 14
Cyrillic Capital U (У) with cursive shape, and motion serifs
cyrl-capital-u = 'cursive-serifed', cv76 = 15
Cyrillic Capital U (У) with cursive shape, and serifs
cyrl-capital-u = 'cursive-flat-hook-serifless', cv76 = 16
Cyrillic Capital U (У) with cursive shape, and a flat terminal hook; without serifs
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', cv76 = 17
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and motion serifs
cyrl-capital-u = 'cursive-flat-hook-serifed', cv76 = 18
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and serifs
+
cyrl-capital-u = 'straight-serifless', cv77 = 1
Cyrillic Capital U (У) with straight shape; without serifs (default for Sans)
cyrl-capital-u = 'straight-motion-serifed', cv77 = 2
Cyrillic Capital U (У) with straight shape, and motion serifs
cyrl-capital-u = 'straight-serifed', cv77 = 3
Cyrillic Capital U (У) with straight shape, and serifs
cyrl-capital-u = 'straight-turn-serifless', cv77 = 4
Cyrillic Capital U (У) with straight shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'straight-turn-motion-serifed', cv77 = 5
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'straight-turn-serifed', cv77 = 6
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and serifs (default for Slab)
cyrl-capital-u = 'curly-serifless', cv77 = 7
Cyrillic Capital U (У) with curly shape; without serifs
cyrl-capital-u = 'curly-motion-serifed', cv77 = 8
Cyrillic Capital U (У) with curly shape, and motion serifs
cyrl-capital-u = 'curly-serifed', cv77 = 9
Cyrillic Capital U (У) with curly shape, and serifs
cyrl-capital-u = 'curly-turn-serifless', cv77 = 10
Cyrillic Capital U (У) with curly shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'curly-turn-motion-serifed', cv77 = 11
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'curly-turn-serifed', cv77 = 12
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and serifs
cyrl-capital-u = 'cursive-serifless', cv77 = 13
Cyrillic Capital U (У) with cursive shape; without serifs
cyrl-capital-u = 'cursive-motion-serifed', cv77 = 14
Cyrillic Capital U (У) with cursive shape, and motion serifs
cyrl-capital-u = 'cursive-serifed', cv77 = 15
Cyrillic Capital U (У) with cursive shape, and serifs
cyrl-capital-u = 'cursive-flat-hook-serifless', cv77 = 16
Cyrillic Capital U (У) with cursive shape, and a flat terminal hook; without serifs
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', cv77 = 17
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and motion serifs
cyrl-capital-u = 'cursive-flat-hook-serifed', cv77 = 18
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and serifs
- Styles for `у` (Cyrillic Lower U): -
cyrl-u = 'straight-serifless', VXAB = 1
Cyrillic Lower U (у) with straight shape; without serifs (default for Sans Upright)
cyrl-u = 'straight-motion-serifed', VXAB = 2
Cyrillic Lower U (у) with straight shape, and motion serifs
cyrl-u = 'straight-serifed', VXAB = 3
Cyrillic Lower U (у) with straight shape, and serifs
cyrl-u = 'straight-turn-serifless', VXAB = 4
Cyrillic Lower U (у) with straight shape, and a tail turns leftward; without serifs
cyrl-u = 'straight-turn-motion-serifed', VXAB = 5
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and motion serifs
cyrl-u = 'straight-turn-serifed', VXAB = 6
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and serifs (default for Slab Upright)
cyrl-u = 'curly-serifless', VXAB = 7
Cyrillic Lower U (у) with curly shape; without serifs
cyrl-u = 'curly-motion-serifed', VXAB = 8
Cyrillic Lower U (у) with curly shape, and motion serifs
cyrl-u = 'curly-serifed', VXAB = 9
Cyrillic Lower U (у) with curly shape, and serifs
cyrl-u = 'curly-turn-serifless', VXAB = 10
Cyrillic Lower U (у) with curly shape, and a tail turns leftward; without serifs
cyrl-u = 'curly-turn-motion-serifed', VXAB = 11
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and motion serifs
cyrl-u = 'curly-turn-serifed', VXAB = 12
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and serifs
cyrl-u = 'cursive-serifless', VXAB = 13
Cyrillic Lower U (у) with cursive shape; without serifs (default for Sans Italic)
cyrl-u = 'cursive-motion-serifed', VXAB = 14
Cyrillic Lower U (у) with cursive shape, and motion serifs (default for Slab Italic)
cyrl-u = 'cursive-serifed', VXAB = 15
Cyrillic Lower U (у) with cursive shape, and serifs
cyrl-u = 'cursive-flat-hook-serifless', VXAB = 16
Cyrillic Lower U (у) with cursive shape, and a flat terminal hook; without serifs
cyrl-u = 'cursive-flat-hook-motion-serifed', VXAB = 17
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and motion serifs
cyrl-u = 'cursive-flat-hook-serifed', VXAB = 18
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and serifs
+
cyrl-u = 'straight-serifless', cv78 = 1
Cyrillic Lower U (у) with straight shape; without serifs (default for Sans Upright)
cyrl-u = 'straight-motion-serifed', cv78 = 2
Cyrillic Lower U (у) with straight shape, and motion serifs
cyrl-u = 'straight-serifed', cv78 = 3
Cyrillic Lower U (у) with straight shape, and serifs
cyrl-u = 'straight-turn-serifless', cv78 = 4
Cyrillic Lower U (у) with straight shape, and a tail turns leftward; without serifs
cyrl-u = 'straight-turn-motion-serifed', cv78 = 5
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and motion serifs
cyrl-u = 'straight-turn-serifed', cv78 = 6
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and serifs (default for Slab Upright)
cyrl-u = 'curly-serifless', cv78 = 7
Cyrillic Lower U (у) with curly shape; without serifs
cyrl-u = 'curly-motion-serifed', cv78 = 8
Cyrillic Lower U (у) with curly shape, and motion serifs
cyrl-u = 'curly-serifed', cv78 = 9
Cyrillic Lower U (у) with curly shape, and serifs
cyrl-u = 'curly-turn-serifless', cv78 = 10
Cyrillic Lower U (у) with curly shape, and a tail turns leftward; without serifs
cyrl-u = 'curly-turn-motion-serifed', cv78 = 11
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and motion serifs
cyrl-u = 'curly-turn-serifed', cv78 = 12
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and serifs
cyrl-u = 'cursive-serifless', cv78 = 13
Cyrillic Lower U (у) with cursive shape; without serifs (default for Sans Italic)
cyrl-u = 'cursive-motion-serifed', cv78 = 14
Cyrillic Lower U (у) with cursive shape, and motion serifs (default for Slab Italic)
cyrl-u = 'cursive-serifed', cv78 = 15
Cyrillic Lower U (у) with cursive shape, and serifs
cyrl-u = 'cursive-flat-hook-serifless', cv78 = 16
Cyrillic Lower U (у) with cursive shape, and a flat terminal hook; without serifs
cyrl-u = 'cursive-flat-hook-motion-serifed', cv78 = 17
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and motion serifs
cyrl-u = 'cursive-flat-hook-serifed', cv78 = 18
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and serifs
- Styles for `ф` (Cyrillic Lower Ef): -
cyrl-ef = 'serifless', cv77 = 1
Cyrillic Lower Ef (ф) with straight bar; without serifs (default for Sans Upright)
cyrl-ef = 'cursive', cv77 = 2
Cyrillic Lower Ef (ф) with cursive bar (default for Italic)
cyrl-ef = 'top-serifed', cv77 = 3
Cyrillic Lower Ef (ф) with straight bar, and serif at top
cyrl-ef = 'serifed', cv77 = 4
Cyrillic Lower Ef (ф) with straight bar, and serifs at top and bottom (default for Slab Upright)
cyrl-ef = 'split-serifless', cv77 = 5
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-cursive', cv77 = 6
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
cyrl-ef = 'split-top-serifed', cv77 = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', cv77 = 8
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
+
cyrl-ef = 'serifless', cv79 = 1
Cyrillic Lower Ef (ф) with straight bar; without serifs (default for Sans Upright)
cyrl-ef = 'top-serifed', cv79 = 2
Cyrillic Lower Ef (ф) with straight bar, and serif at top
cyrl-ef = 'serifed', cv79 = 3
Cyrillic Lower Ef (ф) with straight bar, and serifs at top and bottom (default for Slab Upright)
cyrl-ef = 'cursive', cv79 = 4
Cyrillic Lower Ef (ф) with cursive bar (default for Italic)
cyrl-ef = 'split-serifless', cv79 = 5
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-top-serifed', cv79 = 6
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', cv79 = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
cyrl-ef = 'split-cursive', cv79 = 8
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
- Styles for `ч` (Cyrillic Lower Che): -
cyrl-che = 'standard', cv78 = 1
Cyrillic Lower Che (ч) with standard shape (default)
cyrl-che = 'tailed', cv78 = 2
Cyrillic Lower Che (ч) with tail
+
cyrl-che = 'standard', cv80 = 1
Cyrillic Lower Che (ч) with standard shape (default)
cyrl-che = 'tailed', cv80 = 2
Cyrillic Lower Che (ч) with tail
- Styles for `ь` (Cyrillic Lower Yeri and related letters): -
cyrl-yeri = 'corner', cv79 = 1
Cyrillic Lower Yeri (ь) with corner at bottom left (default for Upright)
cyrl-yeri = 'round', cv79 = 2
Cyrillic Lower Yeri (ь) with rounded shape (default for Sans Italic)
cyrl-yeri = 'cursive', cv79 = 3
Cyrillic Lower Yeri (ь) with cursive shape (default for Slab Italic)
+
cyrl-yeri = 'corner', cv81 = 1
Cyrillic Lower Yeri (ь) with corner at bottom left (default for Upright)
cyrl-yeri = 'round', cv81 = 2
Cyrillic Lower Yeri (ь) with rounded shape (default for Sans Italic)
cyrl-yeri = 'cursive', cv81 = 3
Cyrillic Lower Yeri (ь) with cursive shape (default for Slab Italic)
- Styles for `ы` (Cyrillic Lower Yery): -
cyrl-yery = 'corner', cv80 = 1
Cyrillic Lower Yery (ы) with corner at bottom left (default for Upright)
cyrl-yery = 'corner-tailed', cv80 = 2
Cyrillic Lower Yery (ы) with corner at bottom left and tail
cyrl-yery = 'round', cv80 = 3
Cyrillic Lower Yery (ы) with rounded shape (default for Sans Italic)
cyrl-yery = 'round-tailed', cv80 = 4
Cyrillic Lower Yery (ы) with rounded shape and tail
cyrl-yery = 'cursive', cv80 = 5
Cyrillic Lower Yery (ы) with cursive shape (default for Slab Italic)
cyrl-yery = 'cursive-tailed', cv80 = 6
Cyrillic Lower Yery (ы) with cursive shape and tail
+
cyrl-yery = 'corner', cv82 = 1
Cyrillic Lower Yery (ы) with corner at bottom left (default for Upright)
cyrl-yery = 'corner-tailed', cv82 = 2
Cyrillic Lower Yery (ы) with corner at bottom left and tail
cyrl-yery = 'round', cv82 = 3
Cyrillic Lower Yery (ы) with rounded shape (default for Sans Italic)
cyrl-yery = 'round-tailed', cv82 = 4
Cyrillic Lower Yery (ы) with rounded shape and tail
cyrl-yery = 'cursive', cv82 = 5
Cyrillic Lower Yery (ы) with cursive shape (default for Slab Italic)
cyrl-yery = 'cursive-tailed', cv82 = 6
Cyrillic Lower Yery (ы) with cursive shape and tail
- Styles for `Я` (Cyrillic Capital Ya): -
cyrl-capital-ya = 'straight-serifless', cv81 = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv81 = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv81 = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'curly-serifless', cv81 = 4
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv81 = 5
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv81 = 6
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'standing-serifless', cv81 = 7
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv81 = 8
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv81 = 9
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'straight-open-serifless', cv81 = 10
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv81 = 11
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv81 = 12
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv81 = 13
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv81 = 14
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv81 = 15
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-open-serifless', cv81 = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv81 = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv81 = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
+
cyrl-capital-ya = 'straight-serifless', cv83 = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv83 = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv83 = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'straight-open-serifless', cv83 = 4
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv83 = 5
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv83 = 6
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-serifless', cv83 = 7
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv83 = 8
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv83 = 9
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv83 = 10
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv83 = 11
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv83 = 12
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-serifless', cv83 = 13
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv83 = 14
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv83 = 15
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'standing-open-serifless', cv83 = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv83 = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv83 = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
- Styles for `я` (Cyrillic Lower Ya): -
cyrl-ya = 'straight-serifless', cv82 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv82 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv82 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-tailed-serifless', cv82 = 4
Cyrillic Lower Ya (я) with straight leg, and tail; without serifs
cyrl-ya = 'straight-tailed-motion-serifed', cv82 = 5
Cyrillic Lower Ya (я) with straight leg, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-tailed-serifed', cv82 = 6
Cyrillic Lower Ya (я) with straight leg, tail, and serifs
cyrl-ya = 'curly-serifless', cv82 = 7
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv82 = 8
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv82 = 9
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-tailed-serifless', cv82 = 10
Cyrillic Lower Ya (я) with curly leg, and tail; without serifs
cyrl-ya = 'curly-tailed-motion-serifed', cv82 = 11
Cyrillic Lower Ya (я) with curly leg, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-tailed-serifed', cv82 = 12
Cyrillic Lower Ya (я) with curly leg, tail, and serifs
cyrl-ya = 'standing-serifless', cv82 = 13
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv82 = 14
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv82 = 15
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-tailed-serifless', cv82 = 16
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and tail; without serifs
cyrl-ya = 'standing-tailed-motion-serifed', cv82 = 17
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and motion serifs at bottom-left
cyrl-ya = 'standing-tailed-serifed', cv82 = 18
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and serifs
cyrl-ya = 'straight-open-serifless', cv82 = 19
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv82 = 20
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv82 = 21
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'straight-open-tailed-serifless', cv82 = 22
Cyrillic Lower Ya (я) with straight leg, open contour, and tail; without serifs
cyrl-ya = 'straight-open-tailed-motion-serifed', cv82 = 23
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-open-tailed-serifed', cv82 = 24
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and serifs
cyrl-ya = 'curly-open-serifless', cv82 = 25
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv82 = 26
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv82 = 27
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'curly-open-tailed-serifless', cv82 = 28
Cyrillic Lower Ya (я) with curly leg, open contour, and tail; without serifs
cyrl-ya = 'curly-open-tailed-motion-serifed', cv82 = 29
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-open-tailed-serifed', cv82 = 30
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and serifs
cyrl-ya = 'standing-open-serifless', cv82 = 31
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv82 = 32
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv82 = 33
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
cyrl-ya = 'standing-open-tailed-serifless', cv82 = 34
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and tail; without serifs
cyrl-ya = 'standing-open-tailed-motion-serifed', cv82 = 35
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'standing-open-tailed-serifed', cv82 = 36
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and serifs
+
cyrl-ya = 'straight-serifless', cv84 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv84 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv84 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-open-serifless', cv84 = 4
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv84 = 5
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv84 = 6
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'curly-serifless', cv84 = 7
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv84 = 8
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv84 = 9
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-open-serifless', cv84 = 10
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv84 = 11
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv84 = 12
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'standing-serifless', cv84 = 13
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv84 = 14
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv84 = 15
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-open-serifless', cv84 = 16
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv84 = 17
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv84 = 18
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
- Styles for `0`: -
zero = 'unslashed', cv83 = 1
Zero (0) with standard body shape; without slash
zero = 'slashed', cv83 = 2
Zero (0) with standard body shape, and slash (default)
zero = 'reverse-slashed', cv83 = 3
Zero (0) with standard body shape, and revese slash
zero = 'tall-slashed', cv83 = 4
Zero (0) with standard body shape, and tall slash
zero = 'tall-reverse-slashed', cv83 = 5
Zero (0) with standard body shape, and tall reverse slash
zero = 'dotted', cv83 = 6
Zero (0) with standard body shape, and center dot
zero = 'long-dotted', cv83 = 7
Zero (0) with standard body shape, and long center dot
zero = 'slashed-split', cv83 = 8
Zero (0) with standard body shape, and slash separated from the outline
zero = 'reverse-slashed-split', cv83 = 9
Zero (0) with standard body shape, and reverse slash separated from the outline
zero = 'broken-slash', cv83 = 10
Zero (0) with standard body shape, and slash broken in the middle (like in Fixedsys)
zero = 'broken-reverse-slash', cv83 = 11
Zero (0) with standard body shape, and reverse slash broken in the middle
zero = 'broken-vertical-bar', cv83 = 12
Zero (0) with standard body shape, and vertical bar broken in the middle
zero = 'slashed-cutout', cv83 = 13
Zero (0) with standard body shape, and a slash cutout
zero = 'reverse-slashed-cutout', cv83 = 14
Zero (0) with standard body shape, and a reverse-slash cutout
zero = 'tall-slashed-cutout', cv83 = 15
Zero (0) with standard body shape, and a taller slash cutout
zero = 'tall-reverse-slashed-cutout', cv83 = 16
Zero (0) with standard body shape, and a taller reverse-slash cutout
zero = 'vertical-bar-cutout', cv83 = 17
Zero (0) with standard body shape, and a vertical bar cutout
zero = 'top-right-cutout', cv83 = 18
Zero (0) with standard body shape, and the top-right bit cutout
zero = 'oval-unslashed', cv83 = 19
Zero (0) with oval body shape; without slash
zero = 'oval-slashed', cv83 = 20
Zero (0) with oval body shape, and slash
zero = 'oval-reverse-slashed', cv83 = 21
Zero (0) with oval body shape, and revese slash
zero = 'oval-tall-slashed', cv83 = 22
Zero (0) with oval body shape, and tall slash
zero = 'oval-tall-reverse-slashed', cv83 = 23
Zero (0) with oval body shape, and tall reverse slash
zero = 'oval-dotted', cv83 = 24
Zero (0) with oval body shape, and center dot
zero = 'oval-long-dotted', cv83 = 25
Zero (0) with oval body shape, and long center dot
zero = 'oval-slashed-split', cv83 = 26
Zero (0) with oval body shape, and slash separated from the outline
zero = 'oval-reverse-slashed-split', cv83 = 27
Zero (0) with oval body shape, and reverse slash separated from the outline
zero = 'oval-broken-slash', cv83 = 28
Zero (0) with oval body shape, and slash broken in the middle (like in Fixedsys)
zero = 'oval-broken-reverse-slash', cv83 = 29
Zero (0) with oval body shape, and reverse slash broken in the middle
zero = 'oval-broken-vertical-bar', cv83 = 30
Zero (0) with oval body shape, and vertical bar broken in the middle
zero = 'oval-slashed-cutout', cv83 = 31
Zero (0) with oval body shape, and a slash cutout
zero = 'oval-reverse-slashed-cutout', cv83 = 32
Zero (0) with oval body shape, and a reverse-slash cutout
zero = 'oval-tall-slashed-cutout', cv83 = 33
Zero (0) with oval body shape, and a taller slash cutout
zero = 'oval-tall-reverse-slashed-cutout', cv83 = 34
Zero (0) with oval body shape, and a taller reverse-slash cutout
zero = 'oval-vertical-bar-cutout', cv83 = 35
Zero (0) with oval body shape, and a vertical bar cutout
zero = 'oval-top-right-cutout', cv83 = 36
Zero (0) with oval body shape, and the top-right bit cutout
zero = 'diamond-unslashed', cv83 = 37
Zero (0) with diamond body shape; without slash
zero = 'diamond-slashed', cv83 = 38
Zero (0) with diamond body shape, and slash
zero = 'diamond-reverse-slashed', cv83 = 39
Zero (0) with diamond body shape, and revese slash
zero = 'diamond-tall-slashed', cv83 = 40
Zero (0) with diamond body shape, and tall slash
zero = 'diamond-tall-reverse-slashed', cv83 = 41
Zero (0) with diamond body shape, and tall reverse slash
zero = 'diamond-dotted', cv83 = 42
Zero (0) with diamond body shape, and center dot
zero = 'diamond-long-dotted', cv83 = 43
Zero (0) with diamond body shape, and long center dot
zero = 'diamond-slashed-split', cv83 = 44
Zero (0) with diamond body shape, and slash separated from the outline
zero = 'diamond-reverse-slashed-split', cv83 = 45
Zero (0) with diamond body shape, and reverse slash separated from the outline
zero = 'diamond-broken-slash', cv83 = 46
Zero (0) with diamond body shape, and slash broken in the middle (like in Fixedsys)
zero = 'diamond-broken-reverse-slash', cv83 = 47
Zero (0) with diamond body shape, and reverse slash broken in the middle
zero = 'diamond-broken-vertical-bar', cv83 = 48
Zero (0) with diamond body shape, and vertical bar broken in the middle
zero = 'diamond-slashed-cutout', cv83 = 49
Zero (0) with diamond body shape, and a slash cutout
zero = 'diamond-reverse-slashed-cutout', cv83 = 50
Zero (0) with diamond body shape, and a reverse-slash cutout
zero = 'diamond-tall-slashed-cutout', cv83 = 51
Zero (0) with diamond body shape, and a taller slash cutout
zero = 'diamond-tall-reverse-slashed-cutout', cv83 = 52
Zero (0) with diamond body shape, and a taller reverse-slash cutout
zero = 'diamond-vertical-bar-cutout', cv83 = 53
Zero (0) with diamond body shape, and a vertical bar cutout
zero = 'diamond-top-right-cutout', cv83 = 54
Zero (0) with diamond body shape, and the top-right bit cutout
+
zero = 'unslashed', cv85 = 1
Zero (0) with standard body shape; without slash
zero = 'slashed', cv85 = 2
Zero (0) with standard body shape, and slash (default)
zero = 'reverse-slashed', cv85 = 3
Zero (0) with standard body shape, and revese slash
zero = 'tall-slashed', cv85 = 4
Zero (0) with standard body shape, and tall slash
zero = 'tall-reverse-slashed', cv85 = 5
Zero (0) with standard body shape, and tall reverse slash
zero = 'dotted', cv85 = 6
Zero (0) with standard body shape, and center dot
zero = 'long-dotted', cv85 = 7
Zero (0) with standard body shape, and long center dot
zero = 'slashed-split', cv85 = 8
Zero (0) with standard body shape, and slash separated from the outline
zero = 'reverse-slashed-split', cv85 = 9
Zero (0) with standard body shape, and reverse slash separated from the outline
zero = 'broken-slash', cv85 = 10
Zero (0) with standard body shape, and slash broken in the middle (like in Fixedsys)
zero = 'broken-reverse-slash', cv85 = 11
Zero (0) with standard body shape, and reverse slash broken in the middle
zero = 'broken-vertical-bar', cv85 = 12
Zero (0) with standard body shape, and vertical bar broken in the middle
zero = 'slashed-cutout', cv85 = 13
Zero (0) with standard body shape, and a slash cutout
zero = 'reverse-slashed-cutout', cv85 = 14
Zero (0) with standard body shape, and a reverse-slash cutout
zero = 'tall-slashed-cutout', cv85 = 15
Zero (0) with standard body shape, and a taller slash cutout
zero = 'tall-reverse-slashed-cutout', cv85 = 16
Zero (0) with standard body shape, and a taller reverse-slash cutout
zero = 'vertical-bar-cutout', cv85 = 17
Zero (0) with standard body shape, and a vertical bar cutout
zero = 'top-right-cutout', cv85 = 18
Zero (0) with standard body shape, and the top-right bit cutout
zero = 'oval-unslashed', cv85 = 19
Zero (0) with oval body shape; without slash
zero = 'oval-slashed', cv85 = 20
Zero (0) with oval body shape, and slash
zero = 'oval-reverse-slashed', cv85 = 21
Zero (0) with oval body shape, and revese slash
zero = 'oval-tall-slashed', cv85 = 22
Zero (0) with oval body shape, and tall slash
zero = 'oval-tall-reverse-slashed', cv85 = 23
Zero (0) with oval body shape, and tall reverse slash
zero = 'oval-dotted', cv85 = 24
Zero (0) with oval body shape, and center dot
zero = 'oval-long-dotted', cv85 = 25
Zero (0) with oval body shape, and long center dot
zero = 'oval-slashed-split', cv85 = 26
Zero (0) with oval body shape, and slash separated from the outline
zero = 'oval-reverse-slashed-split', cv85 = 27
Zero (0) with oval body shape, and reverse slash separated from the outline
zero = 'oval-broken-slash', cv85 = 28
Zero (0) with oval body shape, and slash broken in the middle (like in Fixedsys)
zero = 'oval-broken-reverse-slash', cv85 = 29
Zero (0) with oval body shape, and reverse slash broken in the middle
zero = 'oval-broken-vertical-bar', cv85 = 30
Zero (0) with oval body shape, and vertical bar broken in the middle
zero = 'oval-slashed-cutout', cv85 = 31
Zero (0) with oval body shape, and a slash cutout
zero = 'oval-reverse-slashed-cutout', cv85 = 32
Zero (0) with oval body shape, and a reverse-slash cutout
zero = 'oval-tall-slashed-cutout', cv85 = 33
Zero (0) with oval body shape, and a taller slash cutout
zero = 'oval-tall-reverse-slashed-cutout', cv85 = 34
Zero (0) with oval body shape, and a taller reverse-slash cutout
zero = 'oval-vertical-bar-cutout', cv85 = 35
Zero (0) with oval body shape, and a vertical bar cutout
zero = 'oval-top-right-cutout', cv85 = 36
Zero (0) with oval body shape, and the top-right bit cutout
zero = 'diamond-unslashed', cv85 = 37
Zero (0) with diamond body shape; without slash
zero = 'diamond-slashed', cv85 = 38
Zero (0) with diamond body shape, and slash
zero = 'diamond-reverse-slashed', cv85 = 39
Zero (0) with diamond body shape, and revese slash
zero = 'diamond-tall-slashed', cv85 = 40
Zero (0) with diamond body shape, and tall slash
zero = 'diamond-tall-reverse-slashed', cv85 = 41
Zero (0) with diamond body shape, and tall reverse slash
zero = 'diamond-dotted', cv85 = 42
Zero (0) with diamond body shape, and center dot
zero = 'diamond-long-dotted', cv85 = 43
Zero (0) with diamond body shape, and long center dot
zero = 'diamond-slashed-split', cv85 = 44
Zero (0) with diamond body shape, and slash separated from the outline
zero = 'diamond-reverse-slashed-split', cv85 = 45
Zero (0) with diamond body shape, and reverse slash separated from the outline
zero = 'diamond-broken-slash', cv85 = 46
Zero (0) with diamond body shape, and slash broken in the middle (like in Fixedsys)
zero = 'diamond-broken-reverse-slash', cv85 = 47
Zero (0) with diamond body shape, and reverse slash broken in the middle
zero = 'diamond-broken-vertical-bar', cv85 = 48
Zero (0) with diamond body shape, and vertical bar broken in the middle
zero = 'diamond-slashed-cutout', cv85 = 49
Zero (0) with diamond body shape, and a slash cutout
zero = 'diamond-reverse-slashed-cutout', cv85 = 50
Zero (0) with diamond body shape, and a reverse-slash cutout
zero = 'diamond-tall-slashed-cutout', cv85 = 51
Zero (0) with diamond body shape, and a taller slash cutout
zero = 'diamond-tall-reverse-slashed-cutout', cv85 = 52
Zero (0) with diamond body shape, and a taller reverse-slash cutout
zero = 'diamond-vertical-bar-cutout', cv85 = 53
Zero (0) with diamond body shape, and a vertical bar cutout
zero = 'diamond-top-right-cutout', cv85 = 54
Zero (0) with diamond body shape, and the top-right bit cutout
- Styles for `1`: -
one = 'line', cv84 = 1
1 drawn just like a straight line
one = 'no-base', cv84 = 2
1 without bottom serif (default for Sans)
one = 'base', cv84 = 3
1 with bottom serif (default for Slab)
one = 'no-base-long-top-serif', cv84 = 4
1 without bottom serif and with a long top serif
one = 'base-long-top-serif', cv84 = 5
1 with bottom serif and a long top serif
one = 'no-base-flat-top-serif', cv84 = 6
1 without bottom serif and with a flat top serif
one = 'base-flat-top-serif', cv84 = 7
1 with bottom serif and a flat top serif
one = 'no-base-top-cut', cv84 = 8
1 without bottom serif and with a diagonal cut at top
one = 'base-top-cut', cv84 = 9
1 with bottom serif and a diagonal cut at top
+
one = 'line', cv86 = 1
1 drawn just like a straight line
one = 'no-base', cv86 = 2
1 without bottom serif (default for Sans)
one = 'base', cv86 = 3
1 with bottom serif (default for Slab)
one = 'no-base-long-top-serif', cv86 = 4
1 without bottom serif and with a long top serif
one = 'base-long-top-serif', cv86 = 5
1 with bottom serif and a long top serif
one = 'no-base-flat-top-serif', cv86 = 6
1 without bottom serif and with a flat top serif
one = 'base-flat-top-serif', cv86 = 7
1 with bottom serif and a flat top serif
one = 'no-base-top-cut', cv86 = 8
1 without bottom serif and with a diagonal cut at top
one = 'base-top-cut', cv86 = 9
1 with bottom serif and a diagonal cut at top
- Styles for `2`: -
two = 'straight-neck', cv85 = 1
2 with straight neck
two = 'curly-neck', cv85 = 2
2 with curly neck (default)
+
two = 'straight-neck', cv87 = 1
2 with straight neck
two = 'curly-neck', cv87 = 2
2 with curly neck (default)
- Styles for `3`: -
three = 'flat-top', cv86 = 1
Flat top 3 (Like Museo Sans / Montserrat)
three = 'two-arcs', cv86 = 2
Arched top 3 (default)
+
three = 'flat-top', cv88 = 1
Flat top 3 (Like Museo Sans / Montserrat)
three = 'two-arcs', cv88 = 2
Arched top 3 (default)
- Styles for `4`: -
four = 'closed', cv87 = 1
4 with closed contour
four = 'closed-non-crossing', cv87 = 2
4 with closed contour but the horizontal bar does not overflow the vertical bar
four = 'semi-open', cv87 = 3
4 with semi-open contour (default)
four = 'semi-open-non-crossing', cv87 = 4
4 with semi-open contour but the horizontal bar does not overflow the vertical bar
four = 'open', cv87 = 5
4 with open contour
four = 'open-non-crossing', cv87 = 6
4 with open contour but the horizontal bar does not overflow the vertical bar
+
four = 'closed', cv89 = 1
4 with closed contour
four = 'closed-non-crossing', cv89 = 2
4 with closed contour but the horizontal bar does not overflow the vertical bar
four = 'semi-open', cv89 = 3
4 with semi-open contour (default)
four = 'semi-open-non-crossing', cv89 = 4
4 with semi-open contour but the horizontal bar does not overflow the vertical bar
four = 'open', cv89 = 5
4 with open contour
four = 'open-non-crossing', cv89 = 6
4 with open contour but the horizontal bar does not overflow the vertical bar
- Styles for `5`: -
five = 'upright-arched', cv88 = 1
5 with upright upper-left bar, and arched middle part (default)
five = 'oblique-arched', cv88 = 2
5 with arched middle part
five = 'upright-flat', cv88 = 3
5 with upright upper-left bar, and flat middle part
five = 'oblique-flat', cv88 = 4
5 with flat middle part
+
five = 'upright-arched', cv90 = 1
5 with upright upper-left bar, and arched middle part (default)
five = 'upright-flat', cv90 = 2
5 with upright upper-left bar, and flat middle part
five = 'oblique-arched', cv90 = 3
5 with arched middle part
five = 'oblique-flat', cv90 = 4
5 with flat middle part
- Styles for `6`: -
six = 'closed-contour', cv89 = 1
6 with a more closed contour
six = 'open-contour', cv89 = 2
6 with a more open contour
six = 'straight-bar', cv89 = 3
6 with a straight bar (default)
+
six = 'closed-contour', cv91 = 1
6 with a more closed contour
six = 'open-contour', cv91 = 2
6 with a more open contour
six = 'straight-bar', cv91 = 3
6 with a straight bar (default)
- Styles for `7`: -
seven = 'straight-serifless', cv90 = 1
7 with straight stem; without serifs (default for Sans)
seven = 'straight-serifless-crossbar', cv90 = 2
7 with straight stem, and crossbar; without serifs
seven = 'straight-serifed', cv90 = 3
7 with straight stem, and serifs (default for Slab)
seven = 'straight-serifed-crossbar', cv90 = 4
7 with straight stem, serifs, and crossbar
seven = 'bend-serifless', cv90 = 5
7 with bend stem; without serifs
seven = 'bend-serifless-crossbar', cv90 = 6
7 with bend stem, and crossbar; without serifs
seven = 'bend-serifed', cv90 = 7
7 with bend stem, and serifs
seven = 'bend-serifed-crossbar', cv90 = 8
7 with bend stem, serifs, and crossbar
seven = 'curly-serifless', cv90 = 9
7 with curly stem; without serifs
seven = 'curly-serifless-crossbar', cv90 = 10
7 with curly stem, and crossbar; without serifs
seven = 'curly-serifed', cv90 = 11
7 with curly stem, and serifs
seven = 'curly-serifed-crossbar', cv90 = 12
7 with curly stem, serifs, and crossbar
+
seven = 'straight-serifless', cv92 = 1
7 with straight stem; without serifs (default for Sans)
seven = 'straight-serifless-crossbar', cv92 = 2
7 with straight stem, and crossbar; without serifs
seven = 'straight-serifed', cv92 = 3
7 with straight stem, and serifs (default for Slab)
seven = 'straight-serifed-crossbar', cv92 = 4
7 with straight stem, serifs, and crossbar
seven = 'bend-serifless', cv92 = 5
7 with bend stem; without serifs
seven = 'bend-serifless-crossbar', cv92 = 6
7 with bend stem, and crossbar; without serifs
seven = 'bend-serifed', cv92 = 7
7 with bend stem, and serifs
seven = 'bend-serifed-crossbar', cv92 = 8
7 with bend stem, serifs, and crossbar
seven = 'curly-serifless', cv92 = 9
7 with curly stem; without serifs
seven = 'curly-serifless-crossbar', cv92 = 10
7 with curly stem, and crossbar; without serifs
seven = 'curly-serifed', cv92 = 11
7 with curly stem, and serifs
seven = 'curly-serifed-crossbar', cv92 = 12
7 with curly stem, serifs, and crossbar
- Styles for `8`: -
eight = 'crossing', cv91 = 1
8 with crossing middle part (default)
eight = 'two-circles', cv91 = 2
8 looks like two circles joined together
eight = 'crossing-asymmetric', cv91 = 3
8 looks asymmetric crossing middle part
+
eight = 'crossing', cv93 = 1
8 with crossing middle part (default)
eight = 'two-circles', cv93 = 2
8 looks like two circles joined together
eight = 'crossing-asymmetric', cv93 = 3
8 looks asymmetric crossing middle part
- Styles for `9`: -
nine = 'closed-contour', cv92 = 1
9 with a more closed contour
nine = 'open-contour', cv92 = 2
9 with a more open contour
nine = 'straight-bar', cv92 = 3
9 with a straight bar (default)
+
nine = 'closed-contour', cv94 = 1
9 with a more closed contour
nine = 'open-contour', cv94 = 2
9 with a more open contour
nine = 'straight-bar', cv94 = 3
9 with a straight bar (default)
- Styles for `öẋ`, `ij` (Dot and Comma shape in diacritics): -
diacritic-dot = 'round', cv93 = 1
Dots and Commas in diacritics are round (default)
diacritic-dot = 'square', cv93 = 2
Dots and Commas in diacritics are square
+
diacritic-dot = 'round', cv95 = 1
Dots and Commas in diacritics are round (default)
diacritic-dot = 'square', cv95 = 2
Dots and Commas in diacritics are square
- Styles for `.,`, `:;` (Dot and Comma shape in punctuations and symbols): -
punctuation-dot = 'round', cv94 = 1
Small punctuations (like ., ,) use round dots (default)
punctuation-dot = 'square', cv94 = 2
Small punctuations (like ., ,) use square dots
+
punctuation-dot = 'round', cv96 = 1
Small punctuations (like ., ,) use round dots (default)
punctuation-dot = 'square', cv96 = 2
Small punctuations (like ., ,) use square dots
- Styles for `~`: -
tilde = 'high', cv95 = 1
Higher tilde ~
tilde = 'low', cv95 = 2
Lower tilde ~ (default)
+
tilde = 'high', cv97 = 1
Higher tilde ~
tilde = 'low', cv97 = 2
Lower tilde ~ (default)
- Styles for `*`: -
asterisk = 'penta-high', cv96 = 1
Asterisk (*) with five-pointed shape, and high position (default)
asterisk = 'penta-mid', cv96 = 2
Asterisk (*) with five-pointed shape, and medium position
asterisk = 'penta-low', cv96 = 3
Asterisk (*) with five-pointed shape, and low position
asterisk = 'turn-penta-high', cv96 = 4
Asterisk (*) with turned five-pointed shape, and high position
asterisk = 'turn-penta-mid', cv96 = 5
Asterisk (*) with turned five-pointed shape, and medium position
asterisk = 'turn-penta-low', cv96 = 6
Asterisk (*) with turned five-pointed shape, and low position
asterisk = 'hex-high', cv96 = 7
Asterisk (*) with six-pointed shape, and high position
asterisk = 'hex-mid', cv96 = 8
Asterisk (*) with six-pointed shape, and medium position
asterisk = 'hex-low', cv96 = 9
Asterisk (*) with six-pointed shape, and low position
asterisk = 'turn-hex-high', cv96 = 10
Asterisk (*) with turned six-pointed shape, and high position
asterisk = 'turn-hex-mid', cv96 = 11
Asterisk (*) with turned six-pointed shape, and medium position
asterisk = 'turn-hex-low', cv96 = 12
Asterisk (*) with turned six-pointed shape, and low position
+
asterisk = 'penta-high', cv98 = 1
Asterisk (*) with five-pointed shape, and high position (default)
asterisk = 'penta-mid', cv98 = 2
Asterisk (*) with five-pointed shape, and medium position
asterisk = 'penta-low', cv98 = 3
Asterisk (*) with five-pointed shape, and low position
asterisk = 'turn-penta-high', cv98 = 4
Asterisk (*) with turned five-pointed shape, and high position
asterisk = 'turn-penta-mid', cv98 = 5
Asterisk (*) with turned five-pointed shape, and medium position
asterisk = 'turn-penta-low', cv98 = 6
Asterisk (*) with turned five-pointed shape, and low position
asterisk = 'hex-high', cv98 = 7
Asterisk (*) with six-pointed shape, and high position
asterisk = 'hex-mid', cv98 = 8
Asterisk (*) with six-pointed shape, and medium position
asterisk = 'hex-low', cv98 = 9
Asterisk (*) with six-pointed shape, and low position
asterisk = 'turn-hex-high', cv98 = 10
Asterisk (*) with turned six-pointed shape, and high position
asterisk = 'turn-hex-mid', cv98 = 11
Asterisk (*) with turned six-pointed shape, and medium position
asterisk = 'turn-hex-low', cv98 = 12
Asterisk (*) with turned six-pointed shape, and low position
- Styles for `_`: -
underscore = 'above-baseline', cv97 = 1
Extra-high _, placed right below baseline
underscore = 'high', cv97 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv97 = 3
Lower underscore _, placed right above descender line
+
underscore = 'above-baseline', cv99 = 1
Extra-high _, placed right below baseline
underscore = 'high', cv99 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv99 = 3
Lower underscore _, placed right above descender line
- Styles for `^`: -
caret = 'high', cv98 = 1
Higher circumflex ^
caret = 'medium', cv98 = 2
Lower circumflex ^ (default)
caret = 'low', cv98 = 3
Lower circumflex ^
+
caret = 'high', VSAA = 1
Higher circumflex ^
caret = 'medium', VSAA = 2
Lower circumflex ^ (default)
caret = 'low', VSAA = 3
Lower circumflex ^
- Styles for `(`, `)`: -
paren = 'normal', cv99 = 1
Parenthesis with normal contour (default)
paren = 'large-contour', cv99 = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', cv99 = 3
Parenthesis with flat arc, like that in JetBrains Mono
+
paren = 'normal', VSAB = 1
Parenthesis with normal contour (default)
paren = 'large-contour', VSAB = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', VSAB = 3
Parenthesis with flat arc, like that in JetBrains Mono
- Styles for `{`, `}`: -
brace = 'straight', VSAA = 1
More straight braces
brace = 'curly', VSAA = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAA = 3
Curly braces with flat boundary shape
+
brace = 'straight', VSAC = 1
More straight braces
brace = 'curly', VSAC = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAC = 3
Curly braces with flat boundary shape
- Styles for `«`, `»` (Guillemets): -
guillemet = 'straight', VSAB = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAB = 2
Curly Guillemets (« ») (default)
+
guillemet = 'straight', VSAD = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAD = 2
Curly Guillemets (« ») (default)
- Styles for `#`: -
number-sign = 'upright', VSAC = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAC = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAC = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAC = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAC = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAC = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAC = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAC = 8
Number sign with slanted bars, open inner, and taller than digits
+
number-sign = 'upright', VSAE = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAE = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAE = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAE = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAE = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAE = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAE = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAE = 8
Number sign with slanted bars, open inner, and taller than digits
- Styles for `&`: -
ampersand = 'closed', VSAD = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAD = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAD = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAD = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAD = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAD = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAD = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAD = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
+
ampersand = 'closed', VSAF = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAF = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAF = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAF = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAF = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAF = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAF = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAF = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
- Styles for `@`: -
at = 'threefold', VSAE = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAE = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAE = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAE = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAE = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAE = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAE = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAE = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAE = 9
At symbol (@) with compact body
+
at = 'threefold', VSAG = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAG = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAG = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAG = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAG = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAG = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAG = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAG = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAG = 9
At symbol (@) with compact body
- Styles for `$`: -
dollar = 'open', VSAF = 1
Dollar symbol with open contour
dollar = 'through', VSAF = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAF = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAF = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAF = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAF = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
+
dollar = 'open', VSAH = 1
Dollar symbol with open contour
dollar = 'through', VSAH = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAH = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAH = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAH = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAH = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
- Styles for `%`: -
percent = 'dots', VSAG = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAG = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAG = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAG = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
+
percent = 'dots', VSAI = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAI = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAI = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAI = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
- Styles for `|`, `¦`: -
bar = 'natural-slope', VSAH = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAH = 2
Bar punctuations (|) is forced upright under italics and oblique
+
bar = 'natural-slope', VSAJ = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAJ = 2
Bar punctuations (|) is forced upright under italics and oblique
- Styles for `'`: -
ascii-single-quote = 'straight', VSAI = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAI = 2
Show ASCII quote (") as raised comma.
+
ascii-single-quote = 'straight', VSAK = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAK = 2
Show ASCII quote (") as raised comma.
- Styles for `` ` ``: -
ascii-grave = 'straight', VSAJ = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAJ = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAJ = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
+
ascii-grave = 'straight', VSAL = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAL = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAL = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
- Styles for `?`: -
question = 'smooth', VSAK = 1
Smooth question mark (?) (default)
question = 'corner', VSAK = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAK = 3
Question mark (?) with a corner at middle and flat hook
+
question = 'smooth', VSAM = 1
Smooth question mark (?) (default)
question = 'corner', VSAM = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAM = 3
Question mark (?) with a corner at middle and flat hook
- Styles for `¶`: -
pilcrow = 'high', VSAL = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAL = 2
Lower pilcrow sign
+
pilcrow = 'high', VSAN = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAN = 2
Lower pilcrow sign
- Styles for `¢`: -
cent = 'open', VSAM = 1
Cent sign (¢) with open contour
cent = 'through', VSAM = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAM = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAM = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAM = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAM = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
+
cent = 'open', VSAO = 1
Cent sign (¢) with open contour
cent = 'through', VSAO = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAO = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAO = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAO = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAO = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
- Styles for `∂` (Partial derivative symbol): -
partial-derivative = 'straight-bar', VSAN = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAN = 2
The upper bar of the partial derivative symbol is curly (default)
+
partial-derivative = 'straight-bar', VSAP = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAP = 2
The upper bar of the partial derivative symbol is curly (default)
- Styles for `µ` (Micro sign): -
micro-sign = 'toothed-serifless', VSAO = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-motion-serifed', VSAO = 2
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-bottom-right-serifed', VSAO = 3
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-serifed', VSAO = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAO = 5
Micro Sign (µ) with tailed shape; without serifs (default for Sans Italic)
micro-sign = 'tailed-motion-serifed', VSAO = 6
Micro Sign (µ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
micro-sign = 'tailed-serifed', VSAO = 7
Micro Sign (µ) with tailed shape, and serifs
micro-sign = 'toothless-corner-serifless', VSAO = 8
Micro Sign (µ) with toothless (corner bottom-right) shape; without serifs
micro-sign = 'toothless-corner-motion-serifed', VSAO = 9
Micro Sign (µ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-corner-serifed', VSAO = 10
Micro Sign (µ) with toothless (corner bottom-right) shape, and serifs
micro-sign = 'toothless-rounded-serifless', VSAO = 11
Micro Sign (µ) with toothless (rounded) shape; without serifs
micro-sign = 'toothless-rounded-motion-serifed', VSAO = 12
Micro Sign (µ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-rounded-serifed', VSAO = 13
Micro Sign (µ) with toothless (rounded) shape, and serifs
+
micro-sign = 'toothed-serifless', VSAQ = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-motion-serifed', VSAQ = 2
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-bottom-right-serifed', VSAQ = 3
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-serifed', VSAQ = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAQ = 5
Micro Sign (µ) with tailed shape; without serifs (default for Sans Italic)
micro-sign = 'tailed-motion-serifed', VSAQ = 6
Micro Sign (µ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
micro-sign = 'tailed-serifed', VSAQ = 7
Micro Sign (µ) with tailed shape, and serifs
micro-sign = 'toothless-corner-serifless', VSAQ = 8
Micro Sign (µ) with toothless (corner bottom-right) shape; without serifs
micro-sign = 'toothless-corner-motion-serifed', VSAQ = 9
Micro Sign (µ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-corner-serifed', VSAQ = 10
Micro Sign (µ) with toothless (corner bottom-right) shape, and serifs
micro-sign = 'toothless-rounded-serifless', VSAQ = 11
Micro Sign (µ) with toothless (rounded) shape; without serifs
micro-sign = 'toothless-rounded-motion-serifed', VSAQ = 12
Micro Sign (µ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-rounded-serifed', VSAQ = 13
Micro Sign (µ) with toothless (rounded) shape, and serifs
- Styles for `<=`, `>=` (Less-equal and Greater-equal ligations):
lig-ltgteq = 'flat', VLAA = 1
The lower bar of <= and >= ligation is flat (default)
lig-ltgteq = 'slanted', VLAA = 2
The lower bar of <= and >= ligation is slanted
- Styles for `!=` (Not-equal ligations): diff --git a/doc/cv-influences.md b/doc/cv-influences.md index d4a920bbd1..60c259e411 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -105,7 +105,7 @@ - `cv26`: - a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǻ (`U+01FB`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꭤ (`U+AB64`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), æ (`U+00E6`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǣ (`U+01E3`), ǻ (`U+01FB`), ǽ (`U+01FD`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ᴂ (`U+1D02`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᵆ (`U+1D46`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷔ (`U+1DD4`), ᷕ (`U+1DD5`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), ꜵ (`U+A735`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꬱ (`U+AB31`), ꭤ (`U+AB64`), 𐞃 (`U+10783`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv27`: @@ -305,163 +305,163 @@ - `cv76`: - Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) - `cv78`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) - `cv79`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) - `cv80`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) - `cv81`: - Я (`U+042F`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv82`: - я (`U+044F`) + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) - `cv83`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + Я (`U+042F`) - `cv84`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + я (`U+044F`) - `cv85`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: - ~ (`U+007E`) + i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) - `cv96`: - \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: - \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) + ~ (`U+007E`) - `cv98`: - ^ (`U+005E`) + \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) - `cv99`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) - `VSAA`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ^ (`U+005E`) - `VSAB`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAC`: - \# (`U+0023`), ᫆ (`U+1AC6`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAD`: - & (`U+0026`), ⅋ (`U+214B`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAE`: - @ (`U+0040`) + \# (`U+0023`), ᫆ (`U+1AC6`) - `VSAF`: - $ (`U+0024`), 🄏 (`U+1F10F`) + & (`U+0026`), ⅋ (`U+214B`) - `VSAG`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + @ (`U+0040`) -- `VSAI`: +- `VSAH`: - ' (`U+0027`) + $ (`U+0024`), 🄏 (`U+1F10F`) -- `VSAJ`: +- `VSAI`: - \` (`U+0060`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAK`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + ' (`U+0027`) - `VSAL`: - ¶ (`U+00B6`), ⁋ (`U+204B`) + \` (`U+0060`) - `VSAM`: - ¢ (`U+00A2`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAN`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + ¶ (`U+00B6`), ⁋ (`U+204B`) - `VSAO`: - µ (`U+00B5`) + ¢ (`U+00A2`) -- `VXAA`: +- `VSAP`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) -- `VXAB`: +- `VSAQ`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) + µ (`U+00B5`) ### Italic CV influences @@ -568,7 +568,7 @@ - `cv26`: - a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǻ (`U+01FB`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꭤ (`U+AB64`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), æ (`U+00E6`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǣ (`U+01E3`), ǻ (`U+01FB`), ǽ (`U+01FD`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ᴂ (`U+1D02`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᵆ (`U+1D46`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷔ (`U+1DD4`), ᷕ (`U+1DD5`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), ꜵ (`U+A735`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꬱ (`U+AB31`), ꭤ (`U+AB64`), 𐞃 (`U+10783`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv27`: @@ -768,167 +768,167 @@ - `cv76`: - Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) - `cv78`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) - `cv79`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) - `cv80`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) - `cv81`: - Я (`U+042F`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv82`: - я (`U+044F`) + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) - `cv83`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + Я (`U+042F`) - `cv84`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + я (`U+044F`) - `cv85`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: - ~ (`U+007E`) + i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) - `cv96`: - \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: - \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) + ~ (`U+007E`) - `cv98`: - ^ (`U+005E`) + \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) - `cv99`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) - `VSAA`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ^ (`U+005E`) - `VSAB`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAC`: - \# (`U+0023`), ᫆ (`U+1AC6`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAD`: - & (`U+0026`), ⅋ (`U+214B`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAE`: - @ (`U+0040`) + \# (`U+0023`), ᫆ (`U+1AC6`) - `VSAF`: - $ (`U+0024`), 🄏 (`U+1F10F`) + & (`U+0026`), ⅋ (`U+214B`) - `VSAG`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + @ (`U+0040`) - `VSAH`: - | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) + $ (`U+0024`), 🄏 (`U+1F10F`) - `VSAI`: - ' (`U+0027`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAJ`: - \` (`U+0060`) + | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) - `VSAK`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + ' (`U+0027`) - `VSAL`: - ¶ (`U+00B6`), ⁋ (`U+204B`) + \` (`U+0060`) - `VSAM`: - ¢ (`U+00A2`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAN`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + ¶ (`U+00B6`), ⁋ (`U+204B`) - `VSAO`: - µ (`U+00B5`) + ¢ (`U+00A2`) -- `VXAA`: +- `VSAP`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) -- `VXAB`: +- `VSAQ`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) + µ (`U+00B5`) diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index ee8d148afc..608de677c9 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -7,12 +7,15 @@ - + - - + + + + + - + @@ -21,12 +24,20 @@ - + - + + + + + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 3cf0cbd437..4afaeaaf8c 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -7,12 +7,15 @@ - + - - + + + + + - + @@ -21,12 +24,20 @@ - + - + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg b/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg new file mode 100644 index 0000000000..3c1df06a4e --- /dev/null +++ b/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg b/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg new file mode 100644 index 0000000000..d2e627e729 --- /dev/null +++ b/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-private-use-area-progress-bar.dark.svg b/images/cs-block-private-use-area-progress-bar.dark.svg index 908b9989f4..c77edcb50f 100644 --- a/images/cs-block-private-use-area-progress-bar.dark.svg +++ b/images/cs-block-private-use-area-progress-bar.dark.svg @@ -1,5 +1,5 @@ - + @@ -137,172 +137,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-private-use-area-progress-bar.light.svg b/images/cs-block-private-use-area-progress-bar.light.svg index 665ed86127..98947e6c03 100644 --- a/images/cs-block-private-use-area-progress-bar.light.svg +++ b/images/cs-block-private-use-area-progress-bar.light.svg @@ -1,5 +1,5 @@ - + @@ -137,172 +137,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ce8b3a4803..0bb8a2fbfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "dependencies": { "@iarna/toml": "^2.2.5", "@msgpack/msgpack": "^2.8.0", diff --git a/package.json b/package.json index d8b6225987..12b9636ac8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "main": "./font-src/index.js", "scripts": { "build": "verda -f verdafile.mjs", From dba8fbfe90ac054f2ad00d7edff671d2896b55ce Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sun, 12 Nov 2023 17:58:59 -0500 Subject: [PATCH 13/59] Reorder some variants and variant selectors. (#2086) * Reorder some variants and variant selectors. * typo * spacing --- changes/28.0.0-alpha.1.md | 2 +- params/variants.toml | 186 +++++++++++++++++++------------------- 2 files changed, 96 insertions(+), 92 deletions(-) diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index e140dac776..6001e63823 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -12,7 +12,7 @@ - `webfont-formats` → `webfontFormats` * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Ya (`Я`, `я`), `5`. + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - Various other glyph variant tags are also changed to reflect this insertion. * Add hook-inward-serifed variants for `a` (#2085). diff --git a/params/variants.toml b/params/variants.toml index 3ecb9b3600..7b3fd2b4f1 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -197,6 +197,7 @@ selector.CTopSerifOnly = "unilateralInwardSerifed" selector.CBottomSerifOnly = "bilateralInwardSerifed" + [prime.capital-d] sampler = "D" tagKind = "letter" @@ -1647,6 +1648,7 @@ selectorAffix."a/single" = "serifed" selectorAffix.scripta = "serifed" + [prime.b] sampler = "b" tagKind = "letter" @@ -2255,6 +2257,7 @@ selectorAffix.heng = "serifed" selectorAffix."cyrl/shha" = "serifed" + [prime.i] sampler = "i" tagKind = "letter" @@ -2788,6 +2791,7 @@ selector.lCurlyTail = "hooky" selector.lyogh = "hooky" + [prime.m] sampler = "m" tagKind = "letter" @@ -4794,21 +4798,21 @@ rank = 2 description = "Greek small Lambda (`λ`) with straight upper and a tail turns leftward" selector."grek/lambda" = "straightTurnSerifless" -[prime.lower-lambda.variants.curly] +[prime.lower-lambda.variants.tailed-turn] rank = 3 +description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top and a tail turns right at bottom-right" +selector."grek/lambda" = "tailedTurnSerifless" + +[prime.lower-lambda.variants.curly] +rank = 4 description = "More curly Greek small Lambda (`λ`), like Iosevka 2.x" selector."grek/lambda" = "curlySerifless" [prime.lower-lambda.variants.curly-turn] -rank = 4 +rank = 5 description = "More curly Greek small Lambda (`λ`), like Iosevka 2.x, with a tail turns leftward" selector."grek/lambda" = "curlyTurnSerifless" -[prime.lower-lambda.variants.tailed-turn] -rank = 5 -description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top and a tail turns right at bottom-right" -selector."grek/lambda" = "tailedTurnSerifless" - [prime.lower-lambda.variants.curly-tailed-turn] rank = 6 description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg" @@ -4929,31 +4933,31 @@ rank = 1 description = "Greek lower Tau (`τ`) with a tailless shape" selector."grek/tau" = "tau/tailless" -[prime.lower-tau.variants.tailed] +[prime.lower-tau.variants.short-tailed] rank = 2 +description = "Greek lower Tau (`τ`) with a very short tail" +selector."grek/tau" = "tau/shortTailed" + +[prime.lower-tau.variants.tailed] +rank = 3 description = "Greek lower Tau (`τ`) with curly tail" selector."grek/tau" = "tau/tailed" [prime.lower-tau.variants.flat-tailed] -rank = 3 +rank = 4 description = "Greek lower Tau (`τ`) with a flat tail" selector."grek/tau" = "tau/flatTailed" [prime.lower-tau.variants.diagonal-tailed] -rank = 4 +rank = 5 description = "Greek lower Tau (`τ`) with a diagonal tail" selector."grek/tau" = "tau/diagonalTailed" [prime.lower-tau.variants.semi-tailed] -rank = 5 +rank = 6 description = "Greek lower Tau (`τ`) with a slightly curly tail" selector."grek/tau" = "tau/semiTailed" -[prime.lower-tau.variants.short-tailed] -rank = 6 -description = "Greek lower Tau (`τ`) with a very short tail" -selector."grek/tau" = "tau/shortTailed" - [prime.lower-chi] @@ -5001,7 +5005,6 @@ descriptionAffix = "Chancery shape" selectorAffix."grek/chi" = "chancery" selectorAffix."grek/chi/sansSerif" = "chancery" - [prime.lower-chi.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5981,7 +5984,7 @@ descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/ya" = "standing" [prime.cyrl-ya.variants-buildup.stages.openness."*"] -next = "serifs" +next = "tails" [prime.cyrl-ya.variants-buildup.stages.openness.closed] rank = 1 @@ -6658,6 +6661,43 @@ selector.asciiCaret = "low" +[prime.ascii-grave] +sampler = "`" +tagKind = "symbol" + +[prime.ascii-grave.variants.straight] +rank = 1 +description = "Show ASCII grave (`` ` ``) as short diagonal straight bar." +selector.asciiGrave = "straight" + +[prime.ascii-grave.variants.raised-inverse-comma] +rank = 2 +description = "Show ASCII grave (`` ` ``) as raised comma." +selector.asciiGrave = "raisedInverseComma" + +[prime.ascii-grave.variants.raised-turn-comma] +rank = 3 +description = "Show ASCII grave (`` ` ``) as raised turned comma, identical to curly open single quote symbols (U+2018)." +selector.asciiGrave = "raisedTurnComma" + + + +[prime.ascii-single-quote] +sampler = "'" +tagKind = "symbol" + +[prime.ascii-single-quote.variants.straight] +rank = 1 +description = 'Show ASCII quote (`"`) as short vertical straight bar.' +selector.asciiSingleQuote = "straight" + +[prime.ascii-single-quote.variants.raised-comma] +rank = 2 +description = 'Show ASCII quote (`"`) as raised comma.' +selector.asciiSingleQuote = "raisedComma" + + + [prime.paren] sampler = "( )" tagKind = "symbol" @@ -6814,6 +6854,7 @@ description = "Ampersand (`&`) drawn like a ligature of Ɛ and t with tail" selector.ampersand = "etTailed" + [prime.at] sampler = "@" tagKind = "symbol" @@ -6902,6 +6943,42 @@ selector.dollar = "interruptedCap" +[prime.cent] +sampler = "¢" +tagKind = "symbol" + +[prime.cent.variants.open] +rank = 1 +description = "Cent sign (`¢`) with open contour" +selector.cent = "open" + +[prime.cent.variants.through] +rank = 2 +description = "Cent sign (`¢`) with vertical bar all through the `c` part" +selector.cent = "through" + +[prime.cent.variants.bar-interrupted] +rank = 3 +description = "Cent sign (`¢`) with vertical bar breaks at center" +selector.cent = "interrupted" + +[prime.cent.variants.open-cap] +rank = 4 +description = "Cent sign (`¢`) with open contour, sized not exceeding baseline and ascender" +selector.cent = "openCap" + +[prime.cent.variants.through-cap] +rank = 5 +description = "Cent sign (`¢`) with vertical bar all through the `c` part, sized not exceeding baseline and ascender" +selector.cent = "throughCap" + +[prime.cent.variants.bar-interrupted-cap] +rank = 6 +description = "Cent sign (`¢`) with vertical bar breaks at center, sized not exceeding baseline and ascender" +selector.cent = "interruptedCap" + + + [prime.percent] sampler = "%" tagKind = "symbol" @@ -6953,43 +7030,6 @@ selector."bar.slanted" = "forceUpright" -[prime.ascii-single-quote] -sampler = "'" -tagKind = "symbol" - -[prime.ascii-single-quote.variants.straight] -rank = 1 -description = 'Show ASCII quote (`"`) as short vertical straight bar.' -selector.asciiSingleQuote = "straight" - -[prime.ascii-single-quote.variants.raised-comma] -rank = 2 -description = 'Show ASCII quote (`"`) as raised comma.' -selector.asciiSingleQuote = "raisedComma" - - - -[prime.ascii-grave] -sampler = "`" -tagKind = "symbol" - -[prime.ascii-grave.variants.straight] -rank = 1 -description = "Show ASCII grave (`` ` ``) as short diagonal straight bar." -selector.asciiGrave = "straight" - -[prime.ascii-grave.variants.raised-inverse-comma] -rank = 2 -description = "Show ASCII grave (`` ` ``) as raised comma." -selector.asciiGrave = "raisedInverseComma" - -[prime.ascii-grave.variants.raised-turn-comma] -rank = 3 -description = "Show ASCII grave (`` ` ``) as raised turned comma, identical to curly open single quote symbols (U+2018)." -selector.asciiGrave = "raisedTurnComma" - - - [prime.question] sampler = "?" tagKind = "symbol" @@ -7029,42 +7069,6 @@ selector.revPilcrow = "low" -[prime.cent] -sampler = "¢" -tagKind = "symbol" - -[prime.cent.variants.open] -rank = 1 -description = "Cent sign (`¢`) with open contour" -selector.cent = "open" - -[prime.cent.variants.through] -rank = 2 -description = "Cent sign (`¢`) with vertical bar all through the `c` part" -selector.cent = "through" - -[prime.cent.variants.bar-interrupted] -rank = 3 -description = "Cent sign (`¢`) with vertical bar breaks at center" -selector.cent = "interrupted" - -[prime.cent.variants.open-cap] -rank = 4 -description = "Cent sign (`¢`) with open contour, sized not exceeding baseline and ascender" -selector.cent = "openCap" - -[prime.cent.variants.through-cap] -rank = 5 -description = "Cent sign (`¢`) with vertical bar all through the `c` part, sized not exceeding baseline and ascender" -selector.cent = "throughCap" - -[prime.cent.variants.bar-interrupted-cap] -rank = 6 -description = "Cent sign (`¢`) with vertical bar breaks at center, sized not exceeding baseline and ascender" -selector.cent = "interruptedCap" - - - [prime.partial-derivative] sampler = "∂" samplerExplain = "Partial derivative symbol" From 013ca72a71913dfd6159b0b19b76e98c6d165c7b Mon Sep 17 00:00:00 2001 From: Logo <21302803+Logo121@users.noreply.github.com> Date: Mon, 13 Nov 2023 07:15:11 +0800 Subject: [PATCH 14/59] Mordvin Letters (Preliminary) (#2088) --- .../glyphs/letter/cyrillic/dzzhe-zhwe.ptl | 19 +- font-src/glyphs/letter/cyrillic/el.ptl | 6 +- .../glyphs/letter/latin-ext/lower-ae-oe.ptl | 115 +++++++++ .../glyphs/letter/latin-ext/upper-aa-ao.ptl | 189 ++++++++------ .../glyphs/letter/latin-ext/upper-ae-oe.ptl | 26 +- font-src/glyphs/letter/latin/lower-p.ptl | 47 ++-- font-src/glyphs/letter/latin/upper-p.ptl | 154 ++++++------ font-src/glyphs/letter/latin/upper-r.ptl | 57 ++--- font-src/glyphs/letter/latin/x.ptl | 230 +++++++++++------- font-src/glyphs/letter/shared.ptl | 4 +- font-src/meta/aesthetics.ptl | 7 +- font-src/support/util/mask-bit.mjs | 3 + params/variants.toml | 34 ++- 13 files changed, 594 insertions(+), 297 deletions(-) diff --git a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl b/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl index ccbc2a79a9..cfce393f40 100644 --- a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl +++ b/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl @@ -9,24 +9,25 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Greek-Lower-Epsilon : CyrZe - define [SubDfDim pShift keeps df _o] : begin + glyph-block-export SubDfDimBy4 + define [SubDfDimBy4 pShift keeps df _o] : begin local subDf : df.slice 4 keeps _o local subDfFullShift : (df.rightSB - subDf.rightSB) / (4 - keeps) local shift : pShift * subDfFullShift local sw : AdviceStroke 3.3 [df.slice 4 3 _o].div return : object subDf shift sw - do "d subglyph" + do "de subglyph" glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Cyrillic-De : CyrDeShape CyrDeItalicShapeT define [CyrDzzheDeShape df top] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local left : if SLAB (subDf.leftSB + 0.5 * SideJut) subDf.leftSB include : CyrDeShape top left subDf.rightSB sw define [CyrDzzheDeItalicShape df] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX include : CyrDeItalicShapeT dispiro subDf sw create-glyph "cyrl/Dzzhe/left" : glyph-proc @@ -62,7 +63,7 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin bilateralInwardSerifed { SLAB-INWARD SLAB-INWARD } define [CyrZhweZeShape slabTop slabBot df top hook] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local ze : CyrZe slabTop slabBot top 0 subDf.leftSB subDf.rightSB 0.65 hook sw include : ze.Shape include : ze.AutoStartSerifL @@ -84,23 +85,23 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin do "zhe subglyphs" glyph-block-import Letter-Cyrillic-Zhe : Zhe define [CyrRightZheShape legShape fSlab fMidSlab df top barLeft] : glyph-proc - local [object subDf shift sw] : SubDfDim 1 3 df OX + local [object subDf shift sw] : SubDfDimBy4 1 3 df OX include : with-transform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab fMidSlab subDf 0 top top include : HBar.m barLeft (shift + subDf.middle) (0.5 * top) sw define [DzzheLeft df] : begin - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local swInner : sw * [AdviceStroke 2.75] / Stroke return : [mix subDf.leftSB subDf.rightSB : StrokeWidthBlend 0.95 0.96] - [HSwToV : 0.5 * swInner] define [ZhweZheShape legShape fSlab fMidSlab df top hook] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local ze : CyrZe 0 0 top 0 subDf.leftSB subDf.rightSB 0.65 hook (0.5 * sw) include : difference [CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle] [ze.ShapeMask] glyph-block-import Letter-Cyrillic-De : CyrDeItalicShapeT define [DzzheZheItalicShape legShape fSlab fMidSlab df top] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX include : difference CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle CyrDeItalicShapeT spiro-outline subDf sw diff --git a/font-src/glyphs/letter/cyrillic/el.ptl b/font-src/glyphs/letter/cyrillic/el.ptl index 43828724d0..a37ed6d922 100644 --- a/font-src/glyphs/letter/cyrillic/el.ptl +++ b/font-src/glyphs/letter/cyrillic/el.ptl @@ -11,9 +11,9 @@ glyph-block Letter-Cyrillic-El : begin glyph-block-import Letter-Shared-Shapes : SerifFrame LegShape RightwardTailedBar glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender PalatalHook MidHook UpwardHookShape - define BODY-STRAIGHT 0 - define BODY-TAILED 1 - define BODY-NONE 2 + define BODY-NONE 0 + define BODY-STRAIGHT 1 + define BODY-TAILED 2 define SLAB-NONE 0 define SLAB-ALL 1 diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index e8bdadebfc..9dafe24528 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -8,6 +8,7 @@ glyph-module glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared-Shapes : nShoulder OBarLeft glyph-block-export SubDfAndShift @@ -191,7 +192,96 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-base-anchor 'cvDecompose' 0 0 include : EsTeLeftShape df styBot + do "P/R subglyphs" + glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY + glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos + + # Ya + foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin + local fSlabBot : slabs && slabs !== PShape.SlabMotion + + if [not fTailed] : begin + create-glyph "cyrl/yae/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + set-base-anchor 'cvDecompose' 0 0 + + local { subDf } : SubDfAndShift 0 df + local bp : RBarPos XH fSlabBot + + include : RevRShape legShape XH (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- df.mvs) + + eject-contour 'strokeR' + eject-contour 'serifRB' + eject-contour 'serifRT' + include : VBar.r subDf.rightSB [PBarPosY XH df.mvs bp] XH df.mvs + + # P + glyph-block-import Letter-Latin-Lower-P : PConfig + foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do + create-glyph "cyrl/rha/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.p + local { subDf } : SubDfAndShift 0 df + set-base-anchor 'cvDecompose' 0 0 + + include : Body + left -- subDf.leftSB + right -- subDf.rightSB + sw -- df.mvs + include : Serifs subDf XH df.mvs + include : LeaningAnchor.Below.VBar.l SB + + do "X subglyphs" + glyph-block-import Letter-Shared-Shapes : SerifFrame WithSerifOverflowMask + glyph-block-import Letter-Latin-X : XConfig XLetterForm XSerifs + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [halfLetterShape df top bot turn tension] : glyph-proc + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.rightHalf fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + define [letterShape df top bot turn tension] : glyph-proc + local stroke1f : if (stroke1 == 3) 4 stroke1 + local lf : XLetterForm df top bot stroke1f stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.lb.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + create-glyph "cyrl/rha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + include : halfLetterShape df XH 0 0.1 0.20 + + create-glyph "cyrl/lha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + + local { subDf shift } : SubDfAndShift 1 df + include : with-transform [ApparentTranslate shift 0] : letterShape subDf XH 0 0.1 0.20 + + create-glyph "cyrl/Lha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + + local { subDf shift } : SubDfAndShift 1 df + include : with-transform [ApparentTranslate shift 0] : letterShape subDf CAP 0 0.1 0.28 + do "other subglyphs" + # Te define [EsTeRightShape df doTopSerifs doBottomSerifs] : new-glyph : glyph-proc local subDf : df.sliceFine 3 2 (1/3) # local shift : df.rightSB - subDf.rightSB @@ -221,6 +311,22 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-mark-anchor 'cvDecompose' 0 0 include : EsTeRightShape df doST doSB + # El + glyph-block-import Letter-Cyrillic-El : CyrElShape + create-glyph 'cyrl/Lha/left' : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + local { subDf } : SubDfAndShift 0 df + set-base-anchor 'cvDecompose' 0 0 + include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) CAP 0 [if SLAB 4 0] df.mvs + + create-glyph 'cyrl/lha/left' : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + local { subDf } : SubDfAndShift 0 df + set-base-anchor 'cvDecompose' 0 0 + include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) XH 0 [if SLAB 4 0] df.mvs + do "subglyph diacritics" glyph-block-import Mark-Overlay : InnerDot @@ -262,6 +368,11 @@ glyph-block Letter-Latin-Lower-AE-OE : begin select-variant "aeInvE/right" (follow -- 'e') select-variant "ue/u" select-variant "oeOpenO/left" (follow -- 'c') + select-variant "cyrl/yae/left" + select-variant "cyrl/rha/left" (follow -- 'cyrl/er') + select-variant "cyrl/rha/right" + select-variant "cyrl/Lha/right" (follow -- 'cyrl/Rha/right') + select-variant "cyrl/lha/right" (follow -- 'cyrl/rha/right') derive-composites 'ae' 0xE6 'ae/a' 'ae/e' derive-composites 'oe' 0x153 'oe/o' 'ae/e' @@ -272,6 +383,10 @@ glyph-block Letter-Latin-Lower-AE-OE : begin derive-composites 'oeOpenO' 0xAB62 'oeOpenO/left' 'ae/e' derive-composites 'aeInvE' 0xAB31 'ae/a' 'aeInvE/right' derive-composites 'oeInv' 0xAB40 'oe/o' 'aeInvE/right' + derive-composites 'cyrl/lha' 0x515 'cyrl/lha/left' 'cyrl/lha/right' + derive-composites 'cyrl/Lha' 0x514 'cyrl/Lha/left' 'cyrl/Lha/right' + derive-composites 'cyrl/rha' 0x517 'cyrl/rha/left' 'cyrl/rha/right' + derive-composites 'cyrl/yae' 0x519 'cyrl/yae/left' 'ae/e' alias 'cyrl/ae' 0x4D5 'ae' alias 'cyrl/oo' 0xA699 'oo' diff --git a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl index 19a28a275d..0579daa84c 100644 --- a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl +++ b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl @@ -1,95 +1,130 @@ $$include '../../../meta/macros.ptl' import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [bitOr] from"../../../support/util/mask-bit.mjs" +import [maskOffBits] from"../../../support/util/mask-bit.mjs" glyph-module glyph-block Letter-Latin-Upper-AA-AO : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-Upper-F : EFVJutLength - glyph-block-import Letter-Latin-Upper-A : AMaskShape ALetterShape glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift - define [AHalfShape pShift df top fStraightBar slabKind] : begin - local { subDf shift } : SubDfAndShift pShift df - return : with-transform [ApparentTranslate shift 0] - ALetterShape subDf fStraightBar slabKind top df.mvs - - define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin - local { subDf shift } : SubDfAndShift pShift df - return : with-transform [ApparentTranslate shift 0] - AMaskShape subDf fStraightBar top df.mvs - - define SLAB-NONE 0 - define SLAB-TOP 1 - define SLAB-LEFT 2 - define SLAB-RIGHT 4 - - define ALetters : object - AA { 0xA732 'capital' CAP } - smcpAA { null 'e' XH } - - define AConfig : object - straightSerifless { true SLAB-NONE SLAB-NONE } - curlySerifless { false SLAB-NONE SLAB-NONE } - straightTopSerifed { true SLAB-TOP SLAB-TOP } - curlyTopSerifed { false SLAB-TOP SLAB-TOP } - straightBaseSerifed { true SLAB-LEFT SLAB-RIGHT } - curlyBaseSerifed { false SLAB-LEFT SLAB-RIGHT } - straightTriSerifed { true [bitOr SLAB-TOP SLAB-LEFT] [bitOr SLAB-TOP SLAB-RIGHT] } - curlyTriSerifed { false [bitOr SLAB-TOP SLAB-LEFT] [bitOr SLAB-TOP SLAB-RIGHT] } - - foreach { prefix { code mk height } } [Object.entries ALetters] : do - foreach { suffix { fStraightBar skLeft skRight } } [Object.entries AConfig] : do - create-glyph "\(prefix)/Left.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 - include : df.markSet.(mk) + do "A glyphs" + glyph-block-import Letter-Latin-Upper-A : AConfig AMaskShape ALetterShape + + define [AHalfShape pShift df top fStraightBar slabKind] : begin + local { subDf shift } : SubDfAndShift pShift df + return : with-transform [ApparentTranslate shift 0] + ALetterShape subDf fStraightBar slabKind top df.mvs + + define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin + local { subDf shift } : SubDfAndShift pShift df + return : with-transform [ApparentTranslate shift 0] + AMaskShape subDf fStraightBar top df.mvs + + define SLAB-NONE 0 + define SLAB-TOP 1 + define SLAB-LEFT 2 + define SLAB-RIGHT 4 + + define ALetters : object + AA { 0xA732 'capital' CAP } + smcpAA { null 'e' XH } + + foreach { prefix { code mk height } } [Object.entries ALetters] : do + foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do + define skLeft : maskOffBits slabKind SLAB-RIGHT + define skRight : maskOffBits slabKind SLAB-LEFT + + create-glyph "\(prefix)/Left.\(suffix)" : glyph-proc + define df : include : DivFrame para.diversityM 3.5 + include : df.markSet.(mk) + set-base-anchor 'cvDecompose' 0 0 + include : AHalfShape 0 df height fStraightBar skLeft + + create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc + define df : include : DivFrame para.diversityM 3.5 + include : df.markSet.(mk) + set-base-anchor 'cvDecompose' 0 0 + include : AHalfShapeMask 0 df height fStraightBar skLeft + + create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc + define df : DivFrame para.diversityM 3.5 + set-width 0 + include : df.markSet.(mk) + set-mark-anchor 'cvDecompose' 0 0 0 0 + include : AHalfShape 1 df height fStraightBar skRight + + create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc + define df : DivFrame para.diversityM 3.5 + set-width 0 + include : df.markSet.(mk) + set-mark-anchor 'cvDecompose' 0 0 0 0 + include : AHalfShapeMask 1 df height fStraightBar skRight + + select-variant "\(prefix)/Left" (follow -- 'A') + select-variant "\(prefix)/LeftMask" (follow -- 'A') + select-variant "\(prefix)/Right" (follow -- 'A') + select-variant "\(prefix)/RightMask" (follow -- 'A') + + derive-multi-part-glyphs prefix code + list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" + function [srcs gr] : glyph-proc + define df : DivFrame para.diversityM 3.5 + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define { left leftMask right rightMask } srcs + + include [refer-glyph left] AS_BASE ALSO_METRICS + include : difference + refer-glyph right + refer-glyph leftMask + difference + intersection + MaskAbove (height - Stroke) + with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask] + with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask] + + do "RHA" + glyph-block-import Letter-Shared-Shapes : SerifFrame WithSerifOverflowMask + glyph-block-import Letter-Latin-Upper-P : PShape PConfig + glyph-block-import Letter-Latin-X : XConfig XLetterForm XSerifs + + foreach { suffix { fGap slabs revSlabs } } [Object.entries PConfig] : do + local fMotion : slabs === PShape.SlabMotion + local fSlabBot : slabs && slabs !== PShape.SlabMotion + + create-glyph "cyrl/Rha/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital set-base-anchor 'cvDecompose' 0 0 - include : AHalfShape 0 df height fStraightBar skLeft + local subDf : df.sliceFine 3 2 0.575 - create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 - include : df.markSet.(mk) - set-base-anchor 'cvDecompose' 0 0 - include : AHalfShapeMask 0 df height fStraightBar skLeft - - create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3.5 + include : difference + PShape CAP (df -- subDf) (slab -- slabs) + if fGap [PShape.OpenGap (df -- subDf) (top -- CAP) (bot -- [if fSlabBot df.mvs 0])] [glyph-proc] + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [letterShape df top bot turn tension] : glyph-proc + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.rightHalf fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + create-glyph "cyrl/Rha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 set-width 0 - include : df.markSet.(mk) - set-mark-anchor 'cvDecompose' 0 0 0 0 - include : AHalfShape 1 df height fStraightBar skRight + set-mark-anchor 'cvDecompose' 0 0 + include : letterShape df CAP 0 0.1 0.28 - create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3.5 - set-width 0 - include : df.markSet.(mk) - set-mark-anchor 'cvDecompose' 0 0 0 0 - include : AHalfShapeMask 1 df height fStraightBar skRight - - select-variant "\(prefix)/Left" (follow -- 'A') - select-variant "\(prefix)/LeftMask" (follow -- 'A') - select-variant "\(prefix)/Right" (follow -- 'A') - select-variant "\(prefix)/RightMask" (follow -- 'A') - - derive-multi-part-glyphs prefix code - list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" - function [srcs gr] : glyph-proc - define df : DivFrame para.diversityM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] - define { left leftMask right rightMask } srcs - - include [refer-glyph left] AS_BASE ALSO_METRICS - include : difference - refer-glyph right - refer-glyph leftMask - difference - intersection - MaskAbove (height - Stroke) - with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask] - with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask] + select-variant "cyrl/Rha/left" (follow -- 'P') + select-variant "cyrl/Rha/right" + + derive-composites "cyrl/Rha" 0x516 'cyrl/Rha/left' 'cyrl/Rha/right' derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} : function [srcs gr] : glyph-proc define df : DivFrame para.diversityM 3.5 diff --git a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl index 92617a6572..6d97f185fd 100644 --- a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl @@ -7,6 +7,7 @@ glyph-module glyph-block Letter-Latin-Upper-AE-OE : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Latin-Upper-F : EFVJutLength define SLAB-A-NONE 0 @@ -39,7 +40,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin corner df.leftSB 0 [heading Upward] curl df.leftSB (top * 0.1) [heading Upward] quadControls 0 0.3 6 unimportant - corner (eleft - HalfStroke) top [widths.rhs fine] + corner (eleft - HalfStroke) top [widths.rhs fine] corner eleft top corner eleft 0 HBar.t 0 eleft (XH / 2) sw @@ -107,6 +108,27 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.dr df.rightSB top jutTop swVJut include : VSerif.ur df.rightSB 0 jutBot swVJut + do "P/Ya Half" + glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY + glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos + + foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin + local fSlabBot : slabs && slabs !== PShape.SlabMotion + + if [not fTailed] : begin + create-glyph "cyrl/Yae/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + local sw : AESW df CAP + local bp : RBarPos CAP fSlabBot + local subDf : df.sliceFine 3 2 0.5 [HSwToV : 0.25 * sw] + set-base-anchor 'cvDecompose' 0 0 + + include : RevRShape legShape CAP (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- sw) + + eject-contour 'strokeR' + eject-contour 'serifRT' + define AConfig : object straightSerifless { true SLAB-A-NONE } curlySerifless { false SLAB-A-NONE } @@ -149,9 +171,11 @@ glyph-block Letter-Latin-Upper-AE-OE : begin select-variant 'AE/EHalf' (follow -- 'AE/EHalf') select-variant 'smcpAE/AHalf' (follow -- 'A') select-variant 'smcpAE/EHalf' (follow -- 'AE/EHalf') + select-variant 'cyrl/Yae/left' derive-composites "AE" 0xC6 'AE/AHalf' 'AE/EHalf' derive-composites "smcpAE" 0x1D01 'smcpAE/AHalf' 'smcpAE/EHalf' + derive-composites "cyrl/Yae" 0x518 'cyrl/Yae/left' 'AE/EHalf' alias 'cyrl/AE' 0x4D4 'AE' define [OEShape top df slabKind] : glyph-proc diff --git a/font-src/glyphs/letter/latin/lower-p.ptl b/font-src/glyphs/letter/latin/lower-p.ptl index 79c78f9144..5ac21ab879 100644 --- a/font-src/glyphs/letter/latin/lower-p.ptl +++ b/font-src/glyphs/letter/latin/lower-p.ptl @@ -14,24 +14,41 @@ glyph-block Letter-Latin-Lower-P : begin glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook SerifFrame - define [EaredBody top] : glyph-proc + define [SmallThornEaredBody] : glyph-proc include : tagged 'bowl' : OBarLeft.shape - include : tagged 'stemLeft' : VBar.l SB Descender top + include : tagged 'stemLeft' : VBar.l SB Descender Ascender - define [EarlessCornerBody] : glyph-proc + define [EaredBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc + include : tagged 'bowl' : OBarLeft.shape + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) + include : tagged 'stemLeft' : VBar.l left Descender XH sw + + define [EarlessCornerBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc include : tagged 'bowl' : OBarLeft.toothlessTop (rise -- DToothlessRise) (mBlend -- DMBlend) - include : tagged 'stemLeft' : VBar.l SB Descender (XH - DToothlessRise) + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) + include : tagged 'stemLeft' : VBar.l left Descender (XH - DToothlessRise) sw - define [EarlessRoundedBody] : glyph-proc + define [EarlessRoundedBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc include : tagged 'bowl' : OBarLeft.roundedTop (yTerminal -- Descender) + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) - define [SmallPSerifLT top] : return [SerifFrame.fromDf [DivFrame 1] top Descender].lt.outer - define [SmallPSerifLB top] : return [SerifFrame.fromDf [DivFrame 1] top Descender].lb.fullSide + define [SmallPSerifLT df top _sw] : return [SerifFrame.fromDf df top Descender (swRef -- _sw)].lt.outer + define [SmallPSerifLB df top _sw] : return [SerifFrame.fromDf df top Descender (swRef -- _sw)].lb.fullSide - define [FullSerifs top] : composite-proc [SmallPSerifLT top] [SmallPSerifLB top] - define [MotionSerif top] : SmallPSerifLT top - define [BottomSerif top] : SmallPSerifLB top + define [FullSerifs df top _sw] : composite-proc [SmallPSerifLT df top _sw] [SmallPSerifLB df top _sw] + define [MotionSerif df top _sw] : SmallPSerifLT df top _sw + define [BottomSerif df top _sw] : SmallPSerifLB df top _sw + glyph-block-export : PConfig define PConfig : SuffixCfg.weave object # body eared EaredBody @@ -45,18 +62,20 @@ glyph-block Letter-Latin-Lower-P : begin foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do local yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5 + local df : DivFrame 1 + create-glyph "p.\(suffix)" : glyph-proc include : MarkSet.p - include : Body XH - include : Serifs XH + include : Body + include : Serifs df XH include : LeaningAnchor.Below.VBar.l SB set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) create-glyph "thorn.\(suffix)" : glyph-proc include : MarkSet.bp - include : Body Ascender - include : Serifs Ascender + include : SmallThornEaredBody + include : Serifs df Ascender include : LeaningAnchor.Above.VBar.l SB include : LeaningAnchor.Below.VBar.l SB set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay diff --git a/font-src/glyphs/letter/latin/upper-p.ptl b/font-src/glyphs/letter/latin/upper-p.ptl index 3e4f408022..abfaeafbd4 100644 --- a/font-src/glyphs/letter/latin/upper-p.ptl +++ b/font-src/glyphs/letter/latin/upper-p.ptl @@ -13,124 +13,142 @@ glyph-block Letter-Latin-Upper-P : begin glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Shapes : LetterBarOverlay LeftHook glyph-block-import Letter-Blackboard : BBS BBD - glyph-block-export PShape PShapeOutline RevPShape PBarPosY PRotundaShape BBPShape + glyph-block-export PConfig PShape PShapeOutline RevPShape PBarPosY PRotundaShape BBPShape define [PBarPosY top sw bp] : (top - sw) * bp - sw * PShape.SwBelowBar - define [PRotundaOutlineKnots top mul bp overshoot sw offset endX hook] : begin + define [PRotundaOutlineKnots top df mul bp overshoot sw offset endX hook] : begin local bowlTop (top * 1 - offset) local bowlBottom : [PBarPosY top sw bp] + offset - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local right : RightSB - offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB * mul + local right : df.rightSB - offset local turn : YSmoothMidR bowlTop bowlBottom ada adb return : list - g4 (SB * mul - O) (bowlTop - hook) + g4 (left - O) (bowlTop - hook) hookstart (bowlTop - O) g4 (right - overshoot) turn arcvh - flat ([Math.max (endX + 0.01 + sw / 2 * TanSlope) Middle] + CorrectionOMidX * sw * 0.5) bowlBottom + flat ([Math.max (endX + 0.01 + sw / 2 * TanSlope) df.middle] + CorrectionOMidX * sw * 0.5) bowlBottom curl endX bowlBottom [heading Leftward] - define [PShapeOutlineKnots top mul bp overshoot sw offset] : begin + define [PShapeOutlineKnots top df mul bp overshoot sw offset] : begin local bowlTop (top * 1 - offset) local bowlBottom : [PBarPosY top sw bp] + offset - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local right : RightSB - offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB * mul + local right : df.rightSB - offset local turn : YSmoothMidR bowlTop bowlBottom ada adb return : list - flat (SB * mul - O) bowlTop [heading Rightward] + flat (left - O) bowlTop [heading Rightward] curl (right - turnRadius - CorrectionOMidX * sw) bowlTop archv g4 (right - overshoot) turn arcvh flat (right - turnRadius + CorrectionOMidX * sw) bowlBottom - curl (SB * mul - O) bowlBottom [heading Leftward] + curl (left - O) bowlBottom [heading Leftward] - define [RevPshapeOutlineKnots top mul bp overshoot sw offset] : begin + define [RevPshapeOutlineKnots top df mul bp overshoot sw offset] : begin local bowlTop (top * 1 - offset) - local bowlBottom ((top - sw) * bp - sw * PShape.SwBelowBar + offset) - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local left : SB + offset + local bowlBottom : [PBarPosY top sw bp] + offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB + offset + local right : df.width - df.leftSB * mul local turn : YSmoothMidL bowlTop bowlBottom ada adb return : list - flat (Width - SB * mul + O) bowlTop [heading Leftward] + flat (right + O) bowlTop [heading Leftward] curl (left + turnRadius - CorrectionOMidX * sw) bowlTop archv g4 (left + overshoot) turn arcvh flat (left + turnRadius + CorrectionOMidX * sw) bowlBottom - curl (Width - SB * mul + O) bowlBottom [heading Rightward] + curl (right + O) bowlBottom [heading Rightward] - define [PShapeOutline] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [offset 0]] : glyph-proc + define [PShapeOutline] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [offset 0] + ] : glyph-proc include : spiro-outline - PShapeOutlineKnots top mul bp overshoot sw offset - - define [PShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab null] [withBar true] [setMark false]] : glyph-proc - include : dispiro [widths.rhs sw] [PShapeOutlineKnots top mul bp overshoot sw 0] - if withBar : include : tagged 'strokeL' : VBar.l (SB * mul) 0 top sw - if slab : include : slab top sw mul - - define [PRotundaShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB] [endX SB] [hook Hook]] : glyph-proc + PShapeOutlineKnots top df mul bp overshoot sw offset + + define [PShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] [withBar true] [setMark false] + ] : glyph-proc + include : dispiro [widths.rhs sw] [PShapeOutlineKnots top df mul bp overshoot sw 0] + if withBar : include : tagged 'strokeL' : VBar.l (df.leftSB * mul) 0 top sw + if slab : include : slab top df sw mul + + define [PRotundaShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] [endX SB] [hook Hook] + ] : glyph-proc include : dispiro widths.rhs sw - PRotundaOutlineKnots top mul bp overshoot sw 0 endX hook + PRotundaOutlineKnots top df mul bp overshoot sw 0 endX hook - define [RevPShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB]] : glyph-proc + define [RevPShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] + ] : glyph-proc include : tagged 'bowl' : dispiro widths.lhs sw - RevPshapeOutlineKnots top mul bp overshoot sw 0 - include : tagged 'strokeR' : VBar.r (Width - SB * mul) 0 top sw - - if slab : include : slab top sw mul + RevPshapeOutlineKnots top df mul bp overshoot sw 0 + include : tagged 'strokeR' : VBar.r (df.width - df.leftSB * mul) 0 top sw + if slab : include : slab top df sw mul set PShape.defaultMul 1.25 set PShape.defaultOvershoot (OX * 2) set PShape.BarPos (1 - HBarPos) set PShape.SwBelowBar 0.25 - set PShape.SlabMotion : function [top sw mul] : glyph-proc - include : tagged 'serifLT' : HSerif.lt (SB * mul) top SideJut sw - set PShape.SlabFullSymmetric : function [top sw mul] : glyph-proc - include : tagged 'serifLT' : HSerif.mt (SB * mul + [HSwToV : 0.5 * sw]) top Jut sw - include : tagged 'serifLB' : HSerif.mb (SB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw - set PShape.SlabSymmetric : function [top sw mul] : glyph-proc - include : PShape.SlabMotion top sw mul - include : tagged 'serifLB' : HSerif.mb (SB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw - set PShape.SlabAsymmetric : function [top sw mul] : glyph-proc - include : PShape.SlabMotion top sw mul + set PShape.SlabMotion : function [top df sw mul] : glyph-proc + include : tagged 'serifLT' : HSerif.lt (df.leftSB * mul) top SideJut sw + set PShape.SlabFullSymmetric : function [top df sw mul] : glyph-proc + include : tagged 'serifLT' : HSerif.mt (df.leftSB * mul + [HSwToV : 0.5 * sw]) top Jut sw + include : tagged 'serifLB' : HSerif.mb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw + set PShape.SlabSymmetric : function [top df sw mul] : glyph-proc + include : PShape.SlabMotion top df sw mul + include : tagged 'serifLB' : HSerif.mb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw + set PShape.SlabAsymmetric : function [top df sw mul] : glyph-proc + include : PShape.SlabMotion top df sw mul include : tagged 'serifLB' : union - HSerif.lb (SB * mul) 0 SideJut sw - HSerif.rb (SB * mul + [HSwToV : 0.5 * sw]) 0 MidJutSide sw - set PShape.OpenGap : function [] : with-params [top [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw Stroke]] : VBar.l - SB * mul + [HSwToV sw] + HSerif.lb (df.leftSB * mul) 0 SideJut sw + HSerif.rb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 MidJutSide sw + set PShape.OpenGap : function [] : with-params [top [df [DivFrame 1]] [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw df.mvs]] : VBar.l + df.leftSB * mul + [HSwToV sw] Math.min ([PBarPosY top sw bp] - 0.5 * sw - 0.1) bot Math.max ([PBarPosY top sw bp] + 0.5 * sw + 0.1) [mix top [PBarPosY top sw bp] 0.5] - 0.2 * (RightSB - SB) * ([AdviceStroke 5] / Stroke) - - set RevPShape.SlabMotion : function [top sw mul] : glyph-proc - include : tagged 'serifRT' : HSerif.rt (Width - SB * mul) top SideJut sw - set RevPShape.SlabSymmetric : function [top sw mul] : glyph-proc - include : RevPShape.SlabMotion top sw mul - include : tagged 'serifRB' : HSerif.mb (Width - SB * mul - [HSwToV HalfStroke]) 0 Jut sw - set RevPShape.SlabCyrlItalic : function [top sw mul] : glyph-proc - include : tagged 'serifRB' : HSerif.rb (Width - SB * mul) 0 SideJut sw - set RevPShape.SlabAsymmetric : function [top sw mul] : glyph-proc - include : RevPShape.SlabMotion top sw mul + 0.2 * (df.rightSB - df.leftSB) * ([AdviceStroke 5] / Stroke) + + set RevPShape.SlabMotion : function [top df sw mul] : glyph-proc + include : tagged 'serifRT' : HSerif.rt (df.width - df.leftSB * mul) top SideJut sw + set RevPShape.SlabSymmetric : function [top df sw mul] : glyph-proc + include : RevPShape.SlabMotion top df sw mul + include : tagged 'serifRB' : HSerif.mb (df.width - df.leftSB * mul - [HSwToV HalfStroke]) 0 Jut sw + set RevPShape.SlabCyrlItalic : function [top df sw mul] : glyph-proc + include : tagged 'serifRB' : HSerif.rb (df.width - df.leftSB * mul) 0 SideJut sw + set RevPShape.SlabAsymmetric : function [top df sw mul] : glyph-proc + include : RevPShape.SlabMotion top df sw mul include : tagged 'serifRB' : union - HSerif.rb (Width - SB * mul) 0 SideJut sw - HSerif.lb (Width - SB * mul - [HSwToV : 0.5 * sw]) 0 MidJutSide sw - set RevPShape.OpenGap : function [] : with-params [top [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw Stroke]] : VBar.r - Width - SB * mul - [HSwToV sw] + HSerif.rb (df.width - df.leftSB * mul) 0 SideJut sw + HSerif.lb (df.width - df.leftSB * mul - [HSwToV : 0.5 * sw]) 0 MidJutSide sw + set RevPShape.OpenGap : function [] : with-params [top [df [DivFrame 1]] [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw df.mvs]] : VBar.r + df.width - df.leftSB * mul - [HSwToV sw] Math.min ([PBarPosY top sw bp] - 0.5 * sw - 0.1) bot Math.max ([PBarPosY top sw bp] + 0.5 * sw + 0.1) [mix top [PBarPosY top sw bp] 0.5] - 0.2 * (RightSB - SB) * ([AdviceStroke 5] / Stroke) + 0.2 * (df.rightSB - df.leftSB) * ([AdviceStroke 5] / Stroke) define PConfig : object closedSerifless { false null null } diff --git a/font-src/glyphs/letter/latin/upper-r.ptl b/font-src/glyphs/letter/latin/upper-r.ptl index 6c74f9722b..44ebec52c3 100644 --- a/font-src/glyphs/letter/latin/upper-r.ptl +++ b/font-src/glyphs/letter/latin/upper-r.ptl @@ -11,6 +11,7 @@ glyph-block Letter-Latin-Upper-R : begin glyph-block-import Letter-Latin-Upper-P : PShape RevPShape PBarPosY PRotundaShape BBPShape PShapeOutline glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Shared-Shapes : RightwardTailedBar RetroflexHook + glyph-block-export RConfig RevRShape RBarPos define LEG-SHAPE-CURLY 0 define LEG-SHAPE-STRAIGHT 1 @@ -36,7 +37,7 @@ glyph-block Letter-Latin-Upper-R : begin corner xRightBottom bottom [widths.rhs sw] if slab : begin - include : HSerif.rb xRightBottomSerifStart bottom (SideJut + Jut / 8) + include : HSerif.rb xRightBottomSerifStart bottom (SideJut + Jut / 8) sw define [RLegShape-Curly] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local xRightBottom : RLegTerminalX LEG-SHAPE-CURLY right sw @@ -48,7 +49,7 @@ glyph-block Letter-Latin-Upper-R : begin quadControls 0 0.4 8 g4 left top if slab : begin - include : HSerif.rb right bottom (SideJut + Jut / 8) + include : HSerif.rb right bottom (SideJut + Jut / 8) sw define [RLegShape-Standing] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local fine : RStandingLegFine sw @@ -65,7 +66,7 @@ glyph-block Letter-Latin-Upper-R : begin flat (right + O) [Math.max (yOffset + 1) (ytopRef - bend * charTop / CAP)] [widths.rhs.heading sw Downward] curl (right + O) yOffset [heading Downward] curl (right + O - xOverflow) bottom [heading Downward] - if slab : include : HSerif.rb right bottom SideJut + if slab : include : HSerif.rb right bottom SideJut sw define RLegShapes { RLegShape-Curly RLegShape-Straight RLegShape-Standing } @@ -83,7 +84,7 @@ glyph-block Letter-Latin-Upper-R : begin corner xRightTop top [widths.rhs sw] corner xLeftBottom bottom [widths.lhs sw] if slab : begin - include : HSerif.lb xLeftBottomSerifStart bottom (SideJut + Jut / 8) + include : HSerif.lb xLeftBottomSerifStart bottom (SideJut + Jut / 8) sw define [RevRLegShape-Curly] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local xLeftBottom : RevRLegTerminalX LEG-SHAPE-CURLY left sw @@ -95,7 +96,7 @@ glyph-block Letter-Latin-Upper-R : begin quadControls 0 0.4 8 g4 right top if slab : begin - include : HSerif.lb left bottom (SideJut + Jut / 8) + include : HSerif.lb left bottom (SideJut + Jut / 8) sw define [RevRLegShape-Standing] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local fine : RStandingLegFine sw @@ -112,7 +113,7 @@ glyph-block Letter-Latin-Upper-R : begin flat (left - O) [Math.max (yOffset + 1) (ytopRef - bend * charTop / CAP)] [widths.lhs.heading sw Downward] curl (left - O) yOffset [heading Downward] curl (left - O + xOverflow) bottom [heading Downward] - if slab : include : HSerif.lb left bottom SideJut + if slab : include : HSerif.lb left bottom SideJut sw define RevRLegShapes { RevRLegShape-Curly RevRLegShape-Straight RevRLegShape-Standing } @@ -120,38 +121,38 @@ glyph-block Letter-Latin-Upper-R : begin define [RBarPos charTop slab] : begin PShape.BarPos define [RLegTop charTop sw bp] : (sw / 2) + [PBarPosY charTop sw bp] - define [RShape] : with-params [legShape top bp [mul 1] [slab null] [legSlab false] [open false] [legBottom 0]] : glyph-proc - local right : RightSB - O - [if slab (Jut / 8) 0] + define [RShape] : with-params [legShape top bp [df [DivFrame 1]] [mul 1] [slab null] [legSlab false] [open false] [legBottom 0] [sw Stroke]] : glyph-proc + local right : df.rightSB - O - [if slab (Jut / 8) 0] include : difference - PShape top (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) - if open [PShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot Stroke 0])] [glyph-proc] + PShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference - RLegShapes.(legShape) [RLegTop top Stroke bp] legBottom Middle right top legSlab Stroke 0 - if open [PShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + RLegShapes.(legShape) [RLegTop top sw bp] legBottom df.middle right top legSlab sw 0 + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] - define [RRotundaShape] : with-params [legShape top [mul 1] [pmRotunda 0] [endX Middle] [hook Hook] [pBar 1] [slab null] [legSlab false]] : glyph-proc + define [RRotundaShape] : with-params [legShape top [df [DivFrame 1]] [mul 1] [pmRotunda 0] [endX df.middle] [hook Hook] [pBar 1] [slab null] [legSlab false] [sw Stroke]] : glyph-proc local bp : pBar * [RBarPos top false] - local legTop : RLegTop top Stroke bp - local right (RightSB - O - [if slab (Jut / 8) 0]) - local cor : RLegDiagCor legTop 0 endX right 0 Stroke - local endX1 : endX - [if legShape (HalfStroke * [HSwToV cor]) HalfStroke] + [if legShape [RSlabExtraShift SLAB Stroke] 0] - include : PRotundaShape top (mul -- mul) (bp -- bp) (overshoot -- O) (slab -- false) (endX -- endX1) (hook -- hook) + local legTop : RLegTop top sw bp + local right (df.rightSB - O - [if slab (Jut / 8) 0]) + local cor : RLegDiagCor legTop 0 endX right 0 sw + local endX1 : endX - [if legShape (sw / 2 * [HSwToV cor]) (sw / 2)] + [if legShape [RSlabExtraShift SLAB sw] 0] + include : PRotundaShape top (df -- df) (mul -- mul) (bp -- bp) (overshoot -- O) (slab -- false) (endX -- endX1) (hook -- hook) (sw -- sw) include : difference - RLegShapes.(legShape) legTop 0 endX right top legSlab Stroke 0 + RLegShapes.(legShape) legTop 0 endX right top legSlab sw 0 MaskLeft endX1 - define [RevRShape] : with-params [legShape top bp [slab null] [legSlab false] [mul 1] [tailedShape false] [open false]] : glyph-proc - local left : SB + O + [if slab (Jut / 8) 0] + define [RevRShape] : with-params [legShape top bp [df [DivFrame 1]] [slab null] [legSlab false] [mul 1] [tailedShape false] [open false] [sw Stroke]] : glyph-proc + local left : df.leftSB + O + [if slab (Jut / 8) 0] include : difference - RevPShape top (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) - if open [RevPShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot Stroke 0]) ] [glyph-proc] + RevPShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0]) ] [glyph-proc] include : difference - RevRLegShapes.(legShape) [RLegTop top Stroke bp] 0 left Middle top legSlab Stroke 0 - if open [RevPShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + RevRLegShapes.(legShape) [RLegTop top sw bp] 0 left df.middle top legSlab sw 0 + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] if tailedShape : begin eject-contour 'strokeR' eject-contour 'serifRB' - include : tagged 'strokeR' : RightwardTailedBar (Width - SB * mul) 0 top + include : tagged 'strokeR' : RightwardTailedBar (df.width - df.leftSB * mul) 0 top define [StrikeAnchor] : glyph-proc set-base-anchor 'strike' Middle [mix [PBarPosY CAP Stroke : RBarPos CAP SLAB] CAP 0.5] @@ -228,8 +229,8 @@ glyph-block Letter-Latin-Upper-R : begin include : VBar.l SB (top - 1) CAP include : RShape legShape top (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (legBottom -- Descender) include : match slabs - [Just PShape.SlabSymmetric] : PShape.SlabFullSymmetric CAP Stroke 1 - [Just PShape.SlabMotion] : PShape.SlabMotion CAP Stroke 1 + [Just PShape.SlabSymmetric] : PShape.SlabFullSymmetric CAP [DivFrame 1] Stroke 1 + [Just PShape.SlabMotion] : PShape.SlabMotion CAP [DivFrame 1] Stroke 1 __ : glyph-proc create-glyph "smcpRLongRightLeg.\(suffix)" : glyph-proc diff --git a/font-src/glyphs/letter/latin/x.ptl b/font-src/glyphs/letter/latin/x.ptl index 870a50de31..94114880df 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/font-src/glyphs/letter/latin/x.ptl @@ -13,14 +13,14 @@ glyph-block Letter-Latin-X : begin glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook glyph-block-export HalfXStrand - define [HalfXStrand stb fSlab _leftx lefty rightx righty turn pStraight tension _fine] : glyph-proc + define [HalfXStrand stb fSlab _leftx lefty rightx righty turn pStraight tension _sw] : glyph-proc + local sw : fallback _sw Stroke local sbCor : if stb ([StrokeWidthBlend 1 6] * OX * ([Math.abs (lefty - righty)] / CAP)) 0 - local leftx : _leftx + ([HSwToV HalfStroke] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] - local fine : (_fine || Stroke) * 0.5 + local leftx : _leftx + ([HSwToV : 0.5 * sw] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] if stb : begin - local hst : HalfStroke * [DiagCor (righty - lefty) (rightx - leftx) 0 0] - local hse : HalfStroke * [Math.min 0.97 ([AdviceStroke 3] / Stroke)] + local hst : (0.5 * sw) * [DiagCor (righty - lefty) (rightx - leftx) 0 0] + local hse : (0.5 * sw) * [Math.min 0.97 ([AdviceStroke 3] / Stroke)] local leftx2 : _leftx + ([HSwToV hst] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] include : dispiro corner leftx2 lefty [widths.heading hst hst [if (lefty < righty) Upward Downward]] @@ -28,7 +28,7 @@ glyph-block Letter-Latin-X : begin : else : begin local height : Math.abs (lefty - righty) - local slabClearance : if fSlab [AdviceStroke2 2 3 height] 0 + local slabClearance : if fSlab ((sw / Stroke) * [AdviceStroke2 2 3 height]) 0 local turnyleft : mix lefty righty [if fSlab [Math.max turn (slabClearance / height)] turn] local cyleft : mix turnyleft righty tension local straightxleft : mix leftx rightx pStraight @@ -42,28 +42,56 @@ glyph-block Letter-Latin-X : begin curl rightx righty glyph-block-export XStrand - define [XStrand stb slab _leftx lefty _rightx righty turn pStraight tension] : glyph-proc + define [XStrand stb slab _leftx lefty _rightx righty turn pStraight tension _sw] : glyph-proc local middlex : mix _leftx _rightx 0.5 local middley : mix lefty righty 0.5 - include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension - include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension + include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension _sw + include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension _sw + + define [XChanceryStrand sign leftX leftY rightX rightY fHalf _sw] : begin + local sw : fallback _sw Stroke + local blendK1X : StrokeWidthBlend 0.58 0.65 + local blendK1Y 0.2 + local blendK2X 0.78 + local blendK2Y : StrokeWidthBlend 0.5 0.4 + + local pStraightX : StrokeWidthBlend 0.3 0.35 + local pStraightY : StrokeWidthBlend 0.2 0.25 + + local fine : [AdviceStroke 3] * (sw / Stroke) + + return : dispiro + if fHalf + flat [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] + list + straight.right.start leftX (leftY - sign * sw / 2) [widths.center sw] + alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}} + flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5] + corner [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] + curl [mix leftX rightX (1 - pStraightX)] [mix leftY rightY (1 - pStraightY)] [widths.center : mix sw fine 0.5] + alsoThruThem {{(1 - blendK2X) (1 - blendK2Y)} {(1 - blendK1X) (1 - blendK1Y)}} + straight.right.end rightX (rightY + sign * sw / 2) [widths.center sw] glyph-block-export XCursiveHalfShape - define [XCursiveHalfShape] : with-params [top bottom left right [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] [kThin 0.55] [setMark false]] : glyph-proc + define [XCursiveHalfShape] : with-params [ + top bottom left right + [sw Stroke] [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] + [kThin 0.55] [setMark false] [flatTail false] + ] : glyph-proc local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2) + local div : (right - left) / (RightSB - Middle) define xCenterRight : left + [HSwToV swMid] / 2 - define xCenterLeft : left - [HSwToV swMid] / 2 define xTurn : mix (right - [HSwToV swEnd]) xCenterRight 0.5 - define hook1Depth : Hook + Stroke * 0.125 + define hook1Depth : Hook + sw * 0.125 define hook1StraightDepth : Math.min hook1Depth - swEnd * 1.125 Math.max 1 : hook1Depth / 5 - swEnd / 4 define fineMid : swMid * kThin - define rIn : Math.max (0.4 * (right - left) - [HSwToV : 0.7 * Stroke]) [AdviceStroke 16] + define rIn : Math.max (0.4 * (right - left) - [HSwToV : 0.7 * sw]) [AdviceStroke 16] define flatHookDepth : 1.4 * (right - left) - swEnd - 1.5 * rIn define upperHalf : include : dispiro @@ -75,89 +103,109 @@ glyph-block Letter-Latin-X : begin flat (right - OX) (top - hook1Depth + hook1StraightDepth) [heading Downward] curl (right - OX) (top - hook1Depth) [heading Downward] - define lowerHalf : include : dispiro - flat (xCenterRight - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] - curl (xCenterRight - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) - arcvh 16 - DiagonalTailF 1 [DivFrame 1] (xCenterRight - [HSwToV : 0.5 * Stroke] + TanSlope * rIn) bottom rIn 50 flatHookDepth Stroke + define lowerHalf : include : if flatTail + dispiro + flat (xCenterRight - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] + curl (xCenterRight - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + arcvh + flat (xCenterRight + div * rIn + 0.25 * TanSlope * rIn) bottom [widths.lhs.heading sw Rightward] + curl right bottom + dispiro + flat (xCenterRight - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] + curl (xCenterRight - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + arcvh 16 + DiagonalTailF 1 [DivFrame div] (xCenterRight - [HSwToV : 0.5 * sw] + TanSlope * rIn) bottom rIn 50 flatHookDepth sw if setMark : begin define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1) set-base-anchor 'cyrlDescenderAttach' lowerHalfLastKnot.x lowerHalfLastKnot.y - define [XChanceryStrand sign leftX leftY rightX rightY sw] : begin - local blendK1X : StrokeWidthBlend 0.58 0.65 - local blendK1Y 0.2 - local blendK2X 0.78 - local blendK2Y : StrokeWidthBlend 0.5 0.4 - - local pStraightX : StrokeWidthBlend 0.3 0.35 - local pStraightY : StrokeWidthBlend 0.2 0.25 - - local fine : [AdviceStroke 3] / Stroke * sw - - return : dispiro - straight.right.start leftX (leftY - sign * sw / 2) [widths.center sw] - alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}} - flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5] - corner [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] - curl [mix leftX rightX (1 - pStraightX)] [mix leftY rightY (1 - pStraightY)] [widths.center : mix sw fine 0.5] - alsoThruThem {{(1 - blendK2X) (1 - blendK2Y)} {(1 - blendK1X) (1 - blendK1Y)}} - straight.right.end rightX (rightY + sign * sw / 2) [widths.center sw] - - define Shape : namespace - define [XBase fStraight fSlab top bottom turn tension] : composite-proc - XStrand fStraight fSlab SB bottom RightSB top turn 0.4 tension - XStrand fStraight fSlab SB top RightSB bottom turn 0.4 tension - - export : define [StraightBase fSlab top bottom turn tension] - XBase true fSlab top bottom turn tension - export : define [CurlyBase fSlab top bottom turn tension] - XBase false fSlab top bottom turn tension - - export : define [CursiveBase fSerifs top bottom turn tension] : glyph-proc - include : XCursiveHalfShape top bottom Middle RightSB - include : FlipAround Middle [mix bottom top 0.5] - include : XCursiveHalfShape top bottom Middle RightSB (setMark -- true) - - export : define [SemiChanceryStr fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XStrand true fSlab SB bottom RightSB top turn 0.4 tension - export : define [SemiChanceryCur fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XStrand false fSlab SB bottom RightSB top turn 0.4 tension - export : define [ChanceryBase fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XChanceryStrand (-1) SB bottom RightSB top Stroke - - # Serifs - export : define [FullSerifs top bot] : let [sf : SerifFrame.fromDf [DivFrame 1] top bot] - composite-proc sf.lt.full sf.rt.full sf.lb.full sf.rb.full - export : define [MotionSerifs top bot] : glyph-proc - include : tagged 'serifLT' : HSerif.lt SB top SideJut - export : define [MotionSerifsBilateral top bot] : glyph-proc - include : tagged 'serifLT' : HSerif.lt SB top SideJut - include : tagged 'serifRB' : HSerif.rb RightSB bot SideJut - - define Config : object - straightSerifless { Shape.StraightBase null false } - curlySerifless { Shape.CurlyBase null false } - cursive { Shape.CursiveBase null false } - semiChanceryStraight { Shape.SemiChanceryStr null false } - semiChanceryCurly { Shape.SemiChanceryCur null false } - chancery { Shape.ChanceryBase null false } - straightSerifed { Shape.StraightBase Shape.FullSerifs true } - curlySerifed { Shape.CurlyBase Shape.FullSerifs true } - straightMotionSerifed { Shape.StraightBase Shape.MotionSerifs false } - curlyMotionSerifed { Shape.CurlyBase Shape.MotionSerifs false } - straightBilateralMotionSerifed { Shape.StraightBase Shape.MotionSerifsBilateral false } - curlyBilateralMotionSerifed { Shape.CurlyBase Shape.MotionSerifsBilateral false } - - foreach { suffix { baseShape serifShape fMaskBase} } [Object.entries Config] : do - define [letterShape top bottom turn tension] : glyph-proc - local base : baseShape fMaskBase top bottom turn tension - include : WithSerifOverflowMask fMaskBase top bottom SB RightSB base - if serifShape : include : serifShape top bottom + define STROKE-STRAIGHT 0 + define STROKE-CURLY 1 + define STROKE-CHANCERY 2 + define STROKE-CURSIVE 3 + define STROKE-CURSIVE-FLAT 4 + + glyph-block-export XLetterForm + define [XLetterForm] : with-params [ + df top bot + stroke1 stroke2 + turn tension + [sw df.mvs] + ] : namespace + export : define [base fSlab] : union + match stroke1 + [Just STROKE-STRAIGHT] : XStrand true fSlab df.leftSB bot df.rightSB top turn 0.4 tension sw + [Just STROKE-CURLY] : XStrand false fSlab df.leftSB bot df.rightSB top turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (-1) df.leftSB bot df.rightSB top false sw + ([Just STROKE-CURSIVE] || [Just STROKE-CURSIVE-FLAT]) : composite-proc + XCursiveHalfShape top bot df.middle df.rightSB + sw -- sw + swEnd -- (sw / Stroke) * [AdviceStroke 2.75] + swMid -- (sw / Stroke) * [AdviceStroke 3] + flatTail -- (stroke1 === STROKE-CURSIVE-FLAT) + FlipAround df.middle [mix bot top 0.5] + __ : glyph-proc + match stroke2 + [Just STROKE-STRAIGHT] : XStrand true fSlab df.leftSB top df.rightSB bot turn 0.4 tension sw + [Just STROKE-CURLY] : XStrand false fSlab df.leftSB top df.rightSB bot turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot false sw + [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB + sw -- sw + swEnd -- (sw / Stroke) * [AdviceStroke 2.75] + swMid -- (sw / Stroke) * [AdviceStroke 3] + setMark -- true + __ : glyph-proc + + export : define [rightHalf fSlab] : glyph-proc + local midy : mix top bot 0.5 + + include : union + match stroke1 + [Just STROKE-STRAIGHT] : HalfXStrand true fSlab df.rightSB top df.middle midy turn 0.4 tension sw + [Just STROKE-CURLY] : HalfXStrand false fSlab df.rightSB top df.middle midy turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (-1) df.leftSB bot df.rightSB top true sw + __ : glyph-proc + match stroke2 + [Just STROKE-STRAIGHT] : HalfXStrand true fSlab df.rightSB bot df.middle midy turn 0.4 tension sw + [Just STROKE-CURLY] : HalfXStrand false fSlab df.rightSB bot df.middle midy turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot true sw + [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB + sw -- sw + swEnd -- (sw / Stroke) * [AdviceStroke 2.75] + swMid -- (sw / Stroke) * [AdviceStroke 3] + setMark -- true + __ : glyph-proc + + glyph-block-export XSerifs + define XSerifs : namespace + export : define [Full sf] : composite-proc sf.lt.full sf.rt.full sf.lb.full sf.rb.full + export : define [Motion sf] : composite-proc sf.lt.outer + export : define [BilateralMotion sf] : composite-proc sf.lt.outer sf.rb.outer + + glyph-block-export XConfig + define XConfig : object + straightSerifless { STROKE-STRAIGHT STROKE-STRAIGHT null false } + curlySerifless { STROKE-CURLY STROKE-CURLY null false } + cursive { STROKE-CURSIVE STROKE-CURSIVE null false } + semiChanceryStraight { STROKE-STRAIGHT STROKE-CHANCERY null false } + semiChanceryCurly { STROKE-CURLY STROKE-CHANCERY null false } + chancery { STROKE-CHANCERY STROKE-CHANCERY null false } + straightSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.Full true } + curlySerifed { STROKE-CURLY STROKE-CURLY XSerifs.Full true } + straightMotionSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.Motion false } + curlyMotionSerifed { STROKE-CURLY STROKE-CURLY XSerifs.Motion false } + straightBilateralMotionSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.BilateralMotion false } + curlyBilateralMotionSerifed { STROKE-CURLY STROKE-CURLY XSerifs.BilateralMotion false } + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [letterShape top bot turn tension] : glyph-proc + local df : DivFrame 1 + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : serifShape sf create-glyph "X.\(suffix)" : glyph-proc include : MarkSet.capital diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index ee87fcaebf..b9f3a2135e 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -624,7 +624,7 @@ glyph-block Letter-Shared-Shapes : begin define swMid : mix sw fine 0.7 define dxTurn : [HSwToV : 0.5 * sw] + rIn * df.div - define dxTurnObl : if (sign > 0) (-0.75 * TanSlope * rIn) (0.75 * TanSlope * rIn) + define dxTurnObl : 0.75 * TanSlope * rIn define dyTurn : 0.5 * mocSwMid define dxTailStart : dxTurn + sinAngle * (rIn + 0.5 * mocFine * [mix 1 HVContrast sinAngle]) define dyTailStart : dyTurn + (1 - cosAngle + [if (sign > 0) 0 (TanSlope)]) * (rIn + 0.5 * mocFine) @@ -632,7 +632,7 @@ glyph-block Letter-Shared-Shapes : begin define dyDepth : (depth - 0.5 * sw) * sinAngle return : list g4.[if (sign > 0) "right" "left"].mid - cx + sign * dxTurn + dxTurnObl + cx + sign * (dxTurn - dxTurnObl) cy + O + dyTurn if (sign > 0) widths.center.heading swMid Rightward diff --git a/font-src/meta/aesthetics.ptl b/font-src/meta/aesthetics.ptl index aa6f7ef5e3..726b251c27 100644 --- a/font-src/meta/aesthetics.ptl +++ b/font-src/meta/aesthetics.ptl @@ -456,15 +456,16 @@ export : define [GenDivFrame metrics] : begin local divisions : fallback _divisions this.hPack local keeps : fallback _keeps 2 - return : this.sliceFine divisions keeps ((keeps - 1) / (divisions - 1)) o + return : this.sliceFine divisions keeps ((keeps - 1) / (divisions - 1)) 0 o - public [sliceFine strokes keeps pGaps _o] : begin + public [sliceFine strokes keeps pGap _extraGap _o] : begin local o : fallback _o 0 + local extraGap : fallback _extraGap 0 local oneStroke : metrics.HVContrast * this.mvs local totalGap : this.rightSB - this.leftSB - strokes * oneStroke - 2 * o - local subDfWidth : 2 * this.leftSB + 2 * o + totalGap * pGaps + oneStroke * keeps + local subDfWidth : 2 * this.leftSB + 2 * o + totalGap * pGap + extraGap + oneStroke * keeps local subDfDiv : subDfWidth / metrics.Width return : new CDivFrame subDfDiv keeps (this.leftSB / metrics.SB) this.mvs o diff --git a/font-src/support/util/mask-bit.mjs b/font-src/support/util/mask-bit.mjs index ba517c0f08..5d34996855 100644 --- a/font-src/support/util/mask-bit.mjs +++ b/font-src/support/util/mask-bit.mjs @@ -4,6 +4,9 @@ export function maskBit(x, y) { export function maskBits(x, y) { return x & y; } +export function maskOffBits(x, y) { + return x & ~y; +} export function bitOr(...xs) { let x = 0; for (const a of xs) x |= a; diff --git a/params/variants.toml b/params/variants.toml index 7b3fd2b4f1..518b26f032 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1280,12 +1280,14 @@ rank = 1 descriptionAffix = "straight shape" selectorAffix.X = "straight" selectorAffix."X/sansSerif" = "straight" +selectorAffix."cyrl/Rha/right" = "straight" [prime.capital-x.variants-buildup.stages.body.curly] rank = 2 descriptionAffix = "curly shape" selectorAffix.X = "curly" selectorAffix."X/sansSerif" = "curly" +selectorAffix."cyrl/Rha/right" = "curly" [prime.capital-x.variants-buildup.stages.serifs.serifless] rank = 1 @@ -1293,18 +1295,21 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.X = "serifless" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifless" [prime.capital-x.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs" selectorAffix.X = "motionSerifed" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifless" [prime.capital-x.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix.X = "serifed" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifed" @@ -3976,6 +3981,7 @@ descriptionAffix = "straight shape" selectorAffix.x = "straight" selectorAffix."x/sansSerif" = "straight" selectorAffix."cyrl/ha" = "straight" +selectorAffix."cyrl/rha/right" = "straight" [prime.x.variants-buildup.stages.body.curly] rank = 2 @@ -3983,6 +3989,7 @@ descriptionAffix = "curly shape" selectorAffix.x = "curly" selectorAffix."x/sansSerif" = "curly" selectorAffix."cyrl/ha" = "curly" +selectorAffix."cyrl/rha/right" = "curly" [prime.x.variants-buildup.stages.body.cursive] rank = 3 @@ -3991,6 +3998,7 @@ descriptionAffix = "cursive shape" selectorAffix.x = "cursive" selectorAffix."x/sansSerif" = "cursive" selectorAffix."cyrl/ha" = "cursive" +selectorAffix."cyrl/rha/right" = "cursive" [prime.x.variants-buildup.stages.body.semi-chancery-straight] rank = 4 @@ -3999,6 +4007,7 @@ descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix.x = "semiChanceryStraight" selectorAffix."x/sansSerif" = "semiChanceryStraight" selectorAffix."cyrl/ha" = "semiChanceryStraight" +selectorAffix."cyrl/rha/right" = "semiChanceryStraight" [prime.x.variants-buildup.stages.body.semi-chancery-curly] rank = 5 @@ -4007,6 +4016,7 @@ descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix.x = "semiChanceryCurly" selectorAffix."x/sansSerif" = "semiChanceryCurly" selectorAffix."cyrl/ha" = "semiChanceryCurly" +selectorAffix."cyrl/rha/right" = "semiChanceryCurly" [prime.x.variants-buildup.stages.body.chancery] rank = 6 @@ -4015,6 +4025,7 @@ descriptionAffix = "Chancery shape" selectorAffix.x = "chancery" selectorAffix."x/sansSerif" = "chancery" selectorAffix."cyrl/ha" = "chancery" +selectorAffix."cyrl/rha/right" = "chancery" [prime.x.variants-buildup.stages.serifs.serifless] rank = 1 @@ -4023,6 +4034,7 @@ descriptionJoiner = "without" selectorAffix.x = "serifless" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "serifless" +selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.motion-serifed] rank = 2 @@ -4030,6 +4042,7 @@ descriptionAffix = "motion serifs" selectorAffix.x = "motionSerifed" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "motionSerifed" +selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.serifed] rank = 3 @@ -4037,6 +4050,7 @@ descriptionAffix = "serifs" selectorAffix.x = "serifed" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "serifed" +selectorAffix."cyrl/rha/right" = "serifed" @@ -5911,16 +5925,19 @@ next = "openness" rank = 1 descriptionAffix = "straight leg" selectorAffix."cyrl/Ya" = "straight" +selectorAffix."cyrl/Yae/left" = "straight" [prime.cyrl-capital-ya.variants-buildup.stages.leg.curly] rank = 2 descriptionAffix = "curly leg" selectorAffix."cyrl/Ya" = "curly" +selectorAffix."cyrl/Yae/left" = "curly" [prime.cyrl-capital-ya.variants-buildup.stages.leg.standing] rank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/Ya" = "standing" +selectorAffix."cyrl/Yae/left" = "standing" [prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] next = "serifs" @@ -5929,27 +5946,32 @@ next = "serifs" rank = 1 keyAffix = "" selectorAffix."cyrl/Ya" = "" +selectorAffix."cyrl/Yae/left" = "" [prime.cyrl-capital-ya.variants-buildup.stages.openness.open] rank = 2 descriptionAffix = "open contour" selectorAffix."cyrl/Ya" = "open" +selectorAffix."cyrl/Yae/left" = "open" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix."cyrl/Ya" = "serifless" +selectorAffix."cyrl/Yae/left" = "serifless" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs at bottom-left" selectorAffix."cyrl/Ya" = "bottomRightSerifed" +selectorAffix."cyrl/Yae/left" = "bottomRightSerifed" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix."cyrl/Ya" = "serifed" +selectorAffix."cyrl/Yae/left" = "bottomRightSerifed" @@ -5970,18 +5992,21 @@ rank = 1 groupRank = 1 descriptionAffix = "straight leg" selectorAffix."cyrl/ya" = "straight" +selectorAffix."cyrl/yae/left" = "straight" [prime.cyrl-ya.variants-buildup.stages.leg.curly] rank = 2 groupRank = 2 descriptionAffix = "curly leg" selectorAffix."cyrl/ya" = "curly" +selectorAffix."cyrl/yae/left" = "curly" [prime.cyrl-ya.variants-buildup.stages.leg.standing] rank = 3 groupRank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/ya" = "standing" +selectorAffix."cyrl/yae/left" = "standing" [prime.cyrl-ya.variants-buildup.stages.openness."*"] next = "tails" @@ -5991,12 +6016,14 @@ rank = 1 groupRrank = 10 keyAffix = "" selectorAffix."cyrl/ya" = "" +selectorAffix."cyrl/yae/left" = "" [prime.cyrl-ya.variants-buildup.stages.openness.open] rank = 2 groupRrank = 20 descriptionAffix = "open contour" selectorAffix."cyrl/ya" = "open" +selectorAffix."cyrl/yae/left" = "open" [prime.cyrl-ya.variants-buildup.stages.tails."*"] next = "serifs" @@ -6005,27 +6032,32 @@ next = "serifs" rank = 1 keyAffix = "" selectorAffix."cyrl/ya" = "" +selectorAffix."cyrl/yae/left" = "" [prime.cyrl-ya.variants-buildup.stages.tails.tailed] rank = 2 descriptionAffix = "tail" selectorAffix."cyrl/ya" = "tailed" +selectorAffix."cyrl/yae/left" = "" [prime.cyrl-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix."cyrl/ya" = "serifless" +selectorAffix."cyrl/yae/left" = "serifless" [prime.cyrl-ya.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs at bottom-left" selectorAffix."cyrl/ya" = "bottomRightSerifed" +selectorAffix."cyrl/yae/left" = "bottomRightSerifed" [prime.cyrl-ya.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix."cyrl/ya" = "smallCyrl" +selectorAffix."cyrl/yae/left" = "bottomRightSerifed" @@ -6625,7 +6657,7 @@ tagKind = "symbol" [prime.underscore.variants.above-baseline] rank = 1 -description = "Extra-high `_`, placed right below baseline" +description = "Extra-high `_`, placed right above baseline" selector.underscore = "aboveBaseline" [prime.underscore.variants.high] From 2abffb0e697620ba0d7837fde36635cfa3bb7843 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 16:16:17 -0800 Subject: [PATCH 15/59] Bugfixes for LHA (#2018, #2088) --- .../glyphs/letter/latin-ext/lower-ae-oe.ptl | 32 ++++++++++++------- font-src/glyphs/letter/latin/x.ptl | 27 +++++++++------- font-src/glyphs/letter/shared.ptl | 2 +- 3 files changed, 37 insertions(+), 24 deletions(-) diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 9dafe24528..00c7bc20e3 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -18,6 +18,13 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local shift : pShift * subDfFullShift return { subDf shift } + glyph-block-export SubDfAndShiftEx + define [SubDfAndShiftEx p q pShift df _o] : begin + local subDf : df.slice p q _o + local subDfFullShift : df.rightSB - subDf.rightSB + local shift : pShift * subDfFullShift + return { subDf shift } + do "a subglyphs" define [AAShape body hookStyle pShift df o] : begin local { subDf shift } : SubDfAndShift pShift df o @@ -247,9 +254,12 @@ glyph-block Letter-Latin-Lower-AE-OE : begin [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer __ : glyph-proc - define [letterShape df top bot turn tension] : glyph-proc + define [LhaRightLetterShape df top bot turn tension] : glyph-proc local stroke1f : if (stroke1 == 3) 4 stroke1 local lf : XLetterForm df top bot stroke1f stroke2 turn tension + sw -- df.mvs + swCursiveEnd -- [AdviceStroke 3 df.div] + swCursiveMid -- df.mvs include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase if serifShape : begin local sf : SerifFrame.fromDf df top bot @@ -265,20 +275,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : halfLetterShape df XH 0 0.1 0.20 create-glyph "cyrl/lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityM 3.5 set-width 0 set-mark-anchor 'cvDecompose' 0 0 - local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] : letterShape subDf XH 0 0.1 0.20 + local { subDf shift } : SubDfAndShiftEx 6 4 1 df + include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf XH 0 0.1 0.20 create-glyph "cyrl/Lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3 + local df : DivFrame para.diversityM 3.5 set-width 0 set-mark-anchor 'cvDecompose' 0 0 - local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] : letterShape subDf CAP 0 0.1 0.28 + local { subDf shift } : SubDfAndShiftEx 6 4 1 df + include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf CAP 0 0.1 0.28 do "other subglyphs" # Te @@ -314,16 +324,16 @@ glyph-block Letter-Latin-Lower-AE-OE : begin # El glyph-block-import Letter-Cyrillic-El : CyrElShape create-glyph 'cyrl/Lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityM 3.5 include : df.markSet.capital - local { subDf } : SubDfAndShift 0 df + local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) CAP 0 [if SLAB 4 0] df.mvs create-glyph 'cyrl/lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3 + local df : include : DivFrame para.diversityM 3.5 include : df.markSet.e - local { subDf } : SubDfAndShift 0 df + local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) XH 0 [if SLAB 4 0] df.mvs diff --git a/font-src/glyphs/letter/latin/x.ptl b/font-src/glyphs/letter/latin/x.ptl index 94114880df..3cead6a3b5 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/font-src/glyphs/letter/latin/x.ptl @@ -34,7 +34,7 @@ glyph-block Letter-Latin-X : begin local straightxleft : mix leftx rightx pStraight local straightyleft : mix cyleft righty pStraight include : dispiro - widths.center + widths.center sw flat leftx lefty [heading [if (lefty < righty) Upward Downward]] curl leftx turnyleft [heading [if (lefty < righty) Upward Downward]] quadControls 0 ((cyleft - turnyleft) / (straightyleft - turnyleft)) 24 @@ -75,8 +75,8 @@ glyph-block Letter-Latin-X : begin glyph-block-export XCursiveHalfShape define [XCursiveHalfShape] : with-params [ - top bottom left right - [sw Stroke] [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] + top bottom left right + [sw Stroke] [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] [kThin 0.55] [setMark false] [flatTail false] ] : glyph-proc local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) @@ -85,7 +85,7 @@ glyph-block Letter-Latin-X : begin define xCenterRight : left + [HSwToV swMid] / 2 define xTurn : mix (right - [HSwToV swEnd]) xCenterRight 0.5 - define hook1Depth : Hook + sw * 0.125 + define hook1Depth : Math.max (sw * 2) (div * (Hook + sw * 0.125)) define hook1StraightDepth : Math.min hook1Depth - swEnd * 1.125 Math.max 1 : hook1Depth / 5 - swEnd / 4 @@ -108,7 +108,7 @@ glyph-block Letter-Latin-X : begin flat (xCenterRight - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] curl (xCenterRight - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) arcvh - flat (xCenterRight + div * rIn + 0.25 * TanSlope * rIn) bottom [widths.lhs.heading sw Rightward] + flat (xCenterRight + div * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading sw Rightward] curl right bottom dispiro flat (xCenterRight - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] @@ -132,7 +132,10 @@ glyph-block Letter-Latin-X : begin stroke1 stroke2 turn tension [sw df.mvs] + [swCursiveEnd : (sw / Stroke) * [AdviceStroke 2.75]] + [swCursiveMid : (sw / Stroke) * [AdviceStroke 3]] ] : namespace + local sw df.mvs export : define [base fSlab] : union match stroke1 [Just STROKE-STRAIGHT] : XStrand true fSlab df.leftSB bot df.rightSB top turn 0.4 tension sw @@ -141,8 +144,8 @@ glyph-block Letter-Latin-X : begin ([Just STROKE-CURSIVE] || [Just STROKE-CURSIVE-FLAT]) : composite-proc XCursiveHalfShape top bot df.middle df.rightSB sw -- sw - swEnd -- (sw / Stroke) * [AdviceStroke 2.75] - swMid -- (sw / Stroke) * [AdviceStroke 3] + swEnd -- swCursiveEnd + swMid -- swCursiveMid flatTail -- (stroke1 === STROKE-CURSIVE-FLAT) FlipAround df.middle [mix bot top 0.5] __ : glyph-proc @@ -152,8 +155,8 @@ glyph-block Letter-Latin-X : begin [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot false sw [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB sw -- sw - swEnd -- (sw / Stroke) * [AdviceStroke 2.75] - swMid -- (sw / Stroke) * [AdviceStroke 3] + swEnd -- swCursiveEnd + swMid -- swCursiveMid setMark -- true __ : glyph-proc @@ -172,8 +175,8 @@ glyph-block Letter-Latin-X : begin [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot true sw [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB sw -- sw - swEnd -- (sw / Stroke) * [AdviceStroke 2.75] - swMid -- (sw / Stroke) * [AdviceStroke 3] + swEnd -- swCursiveEnd + swMid -- swCursiveMid setMark -- true __ : glyph-proc @@ -200,7 +203,7 @@ glyph-block Letter-Latin-X : begin foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do define [letterShape top bot turn tension] : glyph-proc - local df : DivFrame 1 + local df : DivFrame 1 2 local lf : XLetterForm df top bot stroke1 stroke2 turn tension include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase if serifShape : begin diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index b9f3a2135e..1b7c8ef635 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -788,7 +788,7 @@ glyph-block Letter-Shared-Shapes : begin widths.lhs fine flat ztop.x ztop.y [heading Downward] curl xb [mix (zbot.y + LongJut) ztop.y 0.25] - alsoThruThem {{0.5 0.94}} + alsoThruThem {{0.2 0.76} {0.3 0.85} {0.5 0.94}} straight.left.end zbot.x (zbot.y + fine) [heading Leftward] glyph-block-export UpwardHookShape From 4831e4e07986f0abaca4fff4d7468dc39dfe4e93 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 12 Nov 2023 19:50:43 -0800 Subject: [PATCH 16/59] Remaining bug fixes (#2018, #2088) --- changes/28.0.0-alpha.1.md | 14 ++++---- .../glyphs/letter/latin-ext/lower-ae-oe.ptl | 32 ++++++++++++++----- .../glyphs/letter/latin-ext/upper-aa-ao.ptl | 19 ++++++----- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 6001e63823..b6d18b847f 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -1,7 +1,7 @@ - * \[**BREAKING**\] The filenames and package filenames are changed. +* \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. - * \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. +* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. - `no-cv-ss` → `noCvSs` - `no-ligation` → `noLigation` - `export-glyph-names` → `exportGlyphNames` @@ -10,9 +10,11 @@ - `compatibility-ligatures` → `compatibilityLigatures` - `exclude-chars` → `excludeChars` - `webfont-formats` → `webfontFormats` - * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. - * \[**BREAKING**\] Reorder of glyph variants: +* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +* \[**BREAKING**\] Reorder of glyph variants: - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. - * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. +* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - Various other glyph variant tags are also changed to reflect this insertion. - * Add hook-inward-serifed variants for `a` (#2085). +* Add Characters: + - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). +* Add hook-inward-serifed variants for `a` (#2085). diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 00c7bc20e3..2e1bb55260 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -203,7 +203,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos - # Ya + # ya foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin local fSlabBot : slabs && slabs !== PShape.SlabMotion @@ -223,7 +223,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin eject-contour 'serifRT' include : VBar.r subDf.rightSB [PBarPosY XH df.mvs bp] XH df.mvs - # P + # p glyph-block-import Letter-Latin-Lower-P : PConfig foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do create-glyph "cyrl/rha/left.\(suffix)" : glyph-proc @@ -234,7 +234,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : Body left -- subDf.leftSB - right -- subDf.rightSB + right -- subDf.rightSB + OX sw -- df.mvs include : Serifs subDf XH df.mvs include : LeaningAnchor.Below.VBar.l SB @@ -275,7 +275,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : halfLetterShape df XH 0 0.1 0.20 create-glyph "cyrl/lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3.5 + local df : DivFrame para.diversityM 3.2 set-width 0 set-mark-anchor 'cvDecompose' 0 0 @@ -283,7 +283,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf XH 0 0.1 0.20 create-glyph "cyrl/Lha/right.\(suffix)" : glyph-proc - local df : DivFrame para.diversityM 3.5 + local df : DivFrame para.diversityM 3.2 set-width 0 set-mark-anchor 'cvDecompose' 0 0 @@ -324,14 +324,14 @@ glyph-block Letter-Latin-Lower-AE-OE : begin # El glyph-block-import Letter-Cyrillic-El : CyrElShape create-glyph 'cyrl/Lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3.5 + local df : include : DivFrame para.diversityM 3.2 include : df.markSet.capital local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) CAP 0 [if SLAB 4 0] df.mvs create-glyph 'cyrl/lha/left' : glyph-proc - local df : include : DivFrame para.diversityM 3.5 + local df : include : DivFrame para.diversityM 3.2 include : df.markSet.e local { subDf } : SubDfAndShiftEx 6 3 0 df set-base-anchor 'cvDecompose' 0 0 @@ -395,7 +395,6 @@ glyph-block Letter-Latin-Lower-AE-OE : begin derive-composites 'oeInv' 0xAB40 'oe/o' 'aeInvE/right' derive-composites 'cyrl/lha' 0x515 'cyrl/lha/left' 'cyrl/lha/right' derive-composites 'cyrl/Lha' 0x514 'cyrl/Lha/left' 'cyrl/Lha/right' - derive-composites 'cyrl/rha' 0x517 'cyrl/rha/left' 'cyrl/rha/right' derive-composites 'cyrl/yae' 0x519 'cyrl/yae/left' 'ae/e' alias 'cyrl/ae' 0x4D5 'ae' @@ -419,3 +418,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin select-variant 'cyrl/este/left' (follow -- 'cBottomSerifOnly') select-variant 'cyrl/este/right' (follow -- 'T') derive-composites 'cyrl/este' null 'cyrl/este/left' 'cyrl/este/right' + + glyph-block-export BuildRha + define [BuildRha srcs] : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.p + + local {ra ha} srcs + include : union + refer-glyph ra + difference + refer-glyph ha + with-transform [ApparentTranslate (-0.25 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [refer-glyph ra] + + derive-multi-part-glyphs 'cyrl/rha' 0x517 { 'cyrl/rha/left' 'cyrl/rha/right' } BuildRha diff --git a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl index 0579daa84c..3662802591 100644 --- a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl +++ b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl @@ -85,10 +85,20 @@ glyph-block Letter-Latin-Upper-AA-AO : begin with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask] with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask] + do "AO" + derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} + function [srcs gr] : glyph-proc + define df : DivFrame para.diversityM 3.5 + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define { left leftMask right } srcs + include [refer-glyph left] AS_BASE ALSO_METRICS + include : difference [refer-glyph right] [refer-glyph leftMask] + do "RHA" glyph-block-import Letter-Shared-Shapes : SerifFrame WithSerifOverflowMask glyph-block-import Letter-Latin-Upper-P : PShape PConfig glyph-block-import Letter-Latin-X : XConfig XLetterForm XSerifs + glyph-block-import Letter-Latin-Lower-AE-OE : BuildRha foreach { suffix { fGap slabs revSlabs } } [Object.entries PConfig] : do local fMotion : slabs === PShape.SlabMotion @@ -124,11 +134,4 @@ glyph-block Letter-Latin-Upper-AA-AO : begin select-variant "cyrl/Rha/left" (follow -- 'P') select-variant "cyrl/Rha/right" - derive-composites "cyrl/Rha" 0x516 'cyrl/Rha/left' 'cyrl/Rha/right' - - derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} : function [srcs gr] : glyph-proc - define df : DivFrame para.diversityM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] - define { left leftMask right } srcs - include [refer-glyph left] AS_BASE ALSO_METRICS - include : difference [refer-glyph right] [refer-glyph leftMask] + derive-multi-part-glyphs "cyrl/Rha" 0x516 {'cyrl/Rha/left' 'cyrl/Rha/right'} BuildRha From e806120dcba9fb17243b1b74af99325e75246442 Mon Sep 17 00:00:00 2001 From: be5invis Date: Mon, 13 Nov 2023 00:40:58 -0800 Subject: [PATCH 17/59] Fix TXTR build for Cyrl (#2081) --- font-src/glyphs/auto-build/transformed.ptl | 3 ++- font-src/glyphs/common/derivatives.ptl | 4 ++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index 5c6944acfe..64f3a7af10 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -726,7 +726,8 @@ glyph-block Autobuild-Transformed-Texture : begin set-width Width if extL : currentGlyph.applyTransform [Translate (-extL * Width) 0] true - link-relations relSets + # Do NOT need this, as texture variants are applied AFTER cv/ss + # link-relations relSets define ranges : list list 0x41 0x5A diff --git a/font-src/glyphs/common/derivatives.ptl b/font-src/glyphs/common/derivatives.ptl index 37267af79b..ebc6510bfa 100644 --- a/font-src/glyphs/common/derivatives.ptl +++ b/font-src/glyphs/common/derivatives.ptl @@ -71,6 +71,7 @@ glyph-block Common-Derivatives : begin # Build principal local gndSource : Fn gnSources null null + local gSource : query-glyph gndSource linksGnMap.set [keyOfGnList gnSources] gndSource local mesh : getGrMesh gnSources Query query-glyph @@ -82,6 +83,9 @@ glyph-block Common-Derivatives : begin local gnDerivedTo : Fn to gr from linksGnMap.set key gnDerivedTo + local gDerivedTo : query-glyph gnDerivedTo + if (gSource && gDerivedTo) : gSource.dependsOn gDerivedTo + # Link related derivatives foreach { gr from to } [items-of mesh] : begin local gndFrom : linksGnMap.get [keyOfGnList from] From fadc3603b3d2beaee3635b5735cabe728925a232 Mon Sep 17 00:00:00 2001 From: be5invis Date: Mon, 13 Nov 2023 02:41:50 -0800 Subject: [PATCH 18/59] Refinements --- .../glyphs/letter/latin-ext/lower-ae-oe.ptl | 5 +- font-src/glyphs/letter/latin/k.ptl | 2 +- font-src/glyphs/letter/latin/lower-f.ptl | 2 +- font-src/glyphs/letter/latin/lower-il.ptl | 2 +- font-src/glyphs/letter/latin/lower-j.ptl | 2 +- font-src/glyphs/letter/latin/lower-q.ptl | 2 +- font-src/glyphs/letter/latin/lower-t.ptl | 2 +- font-src/glyphs/letter/latin/x.ptl | 66 ++++++++++--------- font-src/glyphs/letter/shared.ptl | 13 ++-- 9 files changed, 50 insertions(+), 46 deletions(-) diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 2e1bb55260..471cab1cdc 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -258,8 +258,9 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local stroke1f : if (stroke1 == 3) 4 stroke1 local lf : XLetterForm df top bot stroke1f stroke2 turn tension sw -- df.mvs - swCursiveEnd -- [AdviceStroke 3 df.div] - swCursiveMid -- df.mvs + swCursiveEnd -- [AdviceStroke 3 df.div] + swCursiveCoEnd -- df.mvs + swCursiveMid -- df.mvs include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase if serifShape : begin local sf : SerifFrame.fromDf df top bot diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index ab58b08a56..308ef080f1 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -322,7 +322,7 @@ glyph-block Letter-Latin-K : begin dispiro flat xDTStart dim.arcTerminalY [widths.center swDiagTailAdj] curl (xDTEnd + 0.125 * dtInnerRadius) (0.9 * swDiagTail + 0.5 * dtInnerRadius) - DiagonalTailF 1 [DivFrame 1] xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail + DiagonalTailF 1 xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs define [KHookTopBar slabLegs straightBar] : TopHook.lBarInner diff --git a/font-src/glyphs/letter/latin/lower-f.ptl b/font-src/glyphs/letter/latin/lower-f.ptl index af9720b9f9..1d7243e968 100644 --- a/font-src/glyphs/letter/latin/lower-f.ptl +++ b/font-src/glyphs/letter/latin/lower-f.ptl @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Lower-F : begin local xBarMiddle : barLeft + [HSwToV HalfStroke] return : dispiro flat xBarMiddle 0.1 [widths.center.heading Stroke Downward] - DiagonalTailL df xBarMiddle Descender [DiagonalTailStdDepth df Stroke] Stroke + DiagonalTailL xBarMiddle Descender [DiagonalTailStdDepth df Stroke] Stroke glyph-block-export StdSmallFBarLeftPos define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast diff --git a/font-src/glyphs/letter/latin/lower-il.ptl b/font-src/glyphs/letter/latin/lower-il.ptl index 7300e42a5b..28da42f0fe 100644 --- a/font-src/glyphs/letter/latin/lower-il.ptl +++ b/font-src/glyphs/letter/latin/lower-il.ptl @@ -133,7 +133,7 @@ glyph-block Letter-Latin-Lower-I : begin include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] - DiagonalTailR df xMiddle 0 [DiagonalTailStdDepth df df.mvs] df.mvs + DiagonalTailR xMiddle 0 [DiagonalTailStdDepth df df.mvs] df.mvs export : define [PhoneticLeft df top xMiddle] : glyph-proc include : dispiro diff --git a/font-src/glyphs/letter/latin/lower-j.ptl b/font-src/glyphs/letter/latin/lower-j.ptl index 036b6af0d2..02f3871a22 100644 --- a/font-src/glyphs/letter/latin/lower-j.ptl +++ b/font-src/glyphs/letter/latin/lower-j.ptl @@ -71,7 +71,7 @@ glyph-block Letter-Latin-Lower-J : begin include : dispiro widths.center flat xMiddle top [heading Downward] - DiagonalTailL df xMiddle Descender [DiagonalTailStdDepth dfHook Stroke] Stroke + DiagonalTailL xMiddle Descender [DiagonalTailStdDepth dfHook Stroke] Stroke set-base-anchor "trailing" (xMiddle - [HSwToV HalfStroke]) Descender define Serifs : namespace diff --git a/font-src/glyphs/letter/latin/lower-q.ptl b/font-src/glyphs/letter/latin/lower-q.ptl index c813bbfbf9..e408ef92c0 100644 --- a/font-src/glyphs/letter/latin/lower-q.ptl +++ b/font-src/glyphs/letter/latin/lower-q.ptl @@ -22,7 +22,7 @@ glyph-block Letter-Latin-Lower-Q : begin local xMid : x0 - [HSwToV HalfStroke] return : dispiro flat xMid yt [widths.center.heading Stroke Downward] - DiagonalTailR df xMid yb (0.875 * Hook - Stroke * 0.375) Stroke + DiagonalTailR xMid yb (0.875 * Hook - Stroke * 0.375) Stroke define [EaredBody terminal top bottom] : glyph-proc set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender diff --git a/font-src/glyphs/letter/latin/lower-t.ptl b/font-src/glyphs/letter/latin/lower-t.ptl index e22043f0dc..18e6ee640c 100644 --- a/font-src/glyphs/letter/latin/lower-t.ptl +++ b/font-src/glyphs/letter/latin/lower-t.ptl @@ -85,7 +85,7 @@ glyph-block Letter-Latin-Lower-T : begin local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagonalTailStdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] return : dispiro flat xMid top [widths.center.heading sw Downward] - DiagonalTailR df xMid bot hookDepth sw + DiagonalTailR xMid bot hookDepth sw ########################################################################################### diff --git a/font-src/glyphs/letter/latin/x.ptl b/font-src/glyphs/letter/latin/x.ptl index 3cead6a3b5..b7a57ba76e 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/font-src/glyphs/letter/latin/x.ptl @@ -76,45 +76,46 @@ glyph-block Letter-Latin-X : begin glyph-block-export XCursiveHalfShape define [XCursiveHalfShape] : with-params [ top bottom left right - [sw Stroke] [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] - [kThin 0.55] [setMark false] [flatTail false] + [swMid : AdviceStroke 2.75] + [swEnd : AdviceStroke 3] + [swCoEnd : AdviceStroke 2] + [setMark false] [flatTail false] ] : glyph-proc local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2) local div : (right - left) / (RightSB - Middle) - - define xCenterRight : left + [HSwToV swMid] / 2 - define xTurn : mix (right - [HSwToV swEnd]) xCenterRight 0.5 - define hook1Depth : Math.max (sw * 2) (div * (Hook + sw * 0.125)) - define hook1StraightDepth : Math.min - hook1Depth - swEnd * 1.125 - Math.max 1 : hook1Depth / 5 - swEnd / 4 - - define fineMid : swMid * kThin - define rIn : Math.max (0.4 * (right - left) - [HSwToV : 0.7 * sw]) [AdviceStroke 16] - define flatHookDepth : 1.4 * (right - left) - swEnd - 1.5 * rIn - - define upperHalf : include : dispiro - flat (xCenterRight - [HSwToV fineMid]) ([mix bottom top 0.5] + O) [widths.rhs.heading fineMid Upward] - curl (xCenterRight - [HSwToV fineMid]) (top - ada) + local divHook : Math.min div 1 + + local fineMid : 0.55 * swMid + local xMidBarRightEdge : left + [HSwToV swMid] / 2 + local xUpperTurn : mix (right - [HSwToV swEnd]) xMidBarRightEdge 0.5 + local upperHookDepth : Math.max (swEnd * 2) ([Math.sqrt divHook] * (Hook + swEnd * 0.125)) + local upperHookStraightDepth : Math.min + upperHookDepth - swEnd * 1.125 + Math.max 1 : upperHookDepth / 5 - swEnd / 4 + local upperHalf : include : dispiro + flat (xMidBarRightEdge - [HSwToV fineMid]) ([mix bottom top 0.5] + O) [widths.rhs.heading fineMid Upward] + curl (xMidBarRightEdge - [HSwToV fineMid]) (top - ada) arcvh - ShoulderMidKnotRhs xTurn (top - O) fineMid swEnd (+1) (-1) + ShoulderMidKnotRhs xUpperTurn (top - O) fineMid swEnd (+1) (-1) archv - flat (right - OX) (top - hook1Depth + hook1StraightDepth) [heading Downward] - curl (right - OX) (top - hook1Depth) [heading Downward] + flat (right - OX) (top - upperHookDepth + upperHookStraightDepth) [heading Downward] + curl (right - OX) (top - upperHookDepth) [heading Downward] - define lowerHalf : include : if flatTail + local rIn : Math.max [AdviceStroke 16] (0.4 * (right - left) - [HSwToV : 0.5 * swMid]) + local flatHookDepth : 1.3 * (right - left) - (0.5 - TanSlope) * swEnd - 1.5 * (rIn + 0.5 * swMid) + local lowerHalf : include : if flatTail dispiro - flat (xCenterRight - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] - curl (xCenterRight - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + flat (xMidBarRightEdge - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] + curl (xMidBarRightEdge - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) arcvh - flat (xCenterRight + div * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading sw Rightward] + flat (xMidBarRightEdge + div * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading swCoEnd Rightward] curl right bottom dispiro - flat (xCenterRight - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] - curl (xCenterRight - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + flat (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] + curl (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) arcvh 16 - DiagonalTailF 1 [DivFrame div] (xCenterRight - [HSwToV : 0.5 * sw] + TanSlope * rIn) bottom rIn 50 flatHookDepth sw + DiagonalTailF 1 (xMidBarRightEdge - [HSwToV : 0.5 * swCoEnd] + TanSlope * rIn) bottom rIn 50 flatHookDepth swCoEnd if setMark : begin define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1) @@ -132,8 +133,9 @@ glyph-block Letter-Latin-X : begin stroke1 stroke2 turn tension [sw df.mvs] - [swCursiveEnd : (sw / Stroke) * [AdviceStroke 2.75]] - [swCursiveMid : (sw / Stroke) * [AdviceStroke 3]] + [swCursiveMid : (sw / Stroke) * [AdviceStroke 2.75]] + [swCursiveEnd : (sw / Stroke) * [AdviceStroke 3]] + [swCursiveCoEnd : (sw / Stroke) * [AdviceStroke 2]] ] : namespace local sw df.mvs export : define [base fSlab] : union @@ -143,7 +145,7 @@ glyph-block Letter-Latin-X : begin [Just STROKE-CHANCERY] : XChanceryStrand (-1) df.leftSB bot df.rightSB top false sw ([Just STROKE-CURSIVE] || [Just STROKE-CURSIVE-FLAT]) : composite-proc XCursiveHalfShape top bot df.middle df.rightSB - sw -- sw + swCoEnd -- swCursiveCoEnd swEnd -- swCursiveEnd swMid -- swCursiveMid flatTail -- (stroke1 === STROKE-CURSIVE-FLAT) @@ -154,7 +156,7 @@ glyph-block Letter-Latin-X : begin [Just STROKE-CURLY] : XStrand false fSlab df.leftSB top df.rightSB bot turn 0.4 tension sw [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot false sw [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB - sw -- sw + swCoEnd -- swCursiveCoEnd swEnd -- swCursiveEnd swMid -- swCursiveMid setMark -- true @@ -174,7 +176,7 @@ glyph-block Letter-Latin-X : begin [Just STROKE-CURLY] : HalfXStrand false fSlab df.rightSB bot df.middle midy turn 0.4 tension sw [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot true sw [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB - sw -- sw + swCoEnd -- swCursiveCoEnd swEnd -- swCursiveEnd swMid -- swCursiveMid setMark -- true diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index 1b7c8ef635..b08b2bb3f3 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -613,7 +613,7 @@ glyph-block Letter-Shared-Shapes : begin define [DiagonalTailInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) glyph-block-export DiagonalTailF - define [DiagonalTailF sign df cx cy rIn angle depth sw] : begin + define [DiagonalTailF sign cx cy rIn angle depth sw] : begin define tailAngle : angle / 180 * Math.PI define sinAngle : Math.sin tailAngle define cosAngle : Math.cos tailAngle @@ -623,7 +623,7 @@ glyph-block Letter-Shared-Shapes : begin define fine : mocFine / [mix 1 HVContrast 0.375] define swMid : mix sw fine 0.7 - define dxTurn : [HSwToV : 0.5 * sw] + rIn * df.div + define dxTurn : [HSwToV : 0.5 * sw] + rIn define dxTurnObl : 0.75 * TanSlope * rIn define dyTurn : 0.5 * mocSwMid define dxTailStart : dxTurn + sinAngle * (rIn + 0.5 * mocFine * [mix 1 HVContrast sinAngle]) @@ -648,26 +648,27 @@ glyph-block Letter-Shared-Shapes : begin # widths.center : mix swMid fine (1 / 2) flat (cx + sign * dxTailStart) (cy + O + dyTailStart) [widths.center fine] curl (cx + sign * dxTailStart + sign * dxDepth) (cy + O + dyTailStart + dyDepth) + define [DiagonalTailFArc2K tailAngle t] : list [Math.sin (t * tailAngle)] / [Math.sin tailAngle] (1 - [Math.cos (t * tailAngle)]) / (1 - [Math.cos tailAngle]) begin t glyph-block-export DiagonalTailR - define [DiagonalTailR df cx cy depth sw] : begin + define [DiagonalTailR cx cy depth sw] : begin define rInY : DiagonalTailInnerRadius return : list curl cx (cy + sw + rInY) arcvh 8 - DiagonalTailF (+1) df cx cy rInY DiagTailDefaultAngle depth sw + DiagonalTailF (+1) cx cy rInY DiagTailDefaultAngle depth sw glyph-block-export DiagonalTailL - define [DiagonalTailL df cx cy depth sw] : begin + define [DiagonalTailL cx cy depth sw] : begin define rInY : DiagonalTailInnerRadius return : list curl cx (cy + sw + rInY) arcvh 8 - DiagonalTailF (-1) df cx cy rInY DiagTailDefaultAngle depth sw + DiagonalTailF (-1) cx cy rInY DiagTailDefaultAngle depth sw define [JutIn left right jut swRef hSplit] : begin local ink : HSwToV swRef From 9f860ee92e0cf24725a6ba2a7d0b4a42eabc7e26 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 14 Nov 2023 15:06:28 -0500 Subject: [PATCH 19/59] Remove earless-rounded variants of hooktop letters (#2090) --- changes/28.0.0-alpha.1.md | 2 ++ font-src/glyphs/letter/latin/c.ptl | 9 --------- font-src/glyphs/letter/latin/lower-b.ptl | 4 ++-- font-src/glyphs/letter/latin/lower-d.ptl | 9 ++------- font-src/glyphs/letter/latin/lower-g.ptl | 1 - font-src/glyphs/letter/latin/lower-p.ptl | 2 +- font-src/glyphs/letter/latin/upper-b.ptl | 2 +- font-src/glyphs/letter/latin/upper-d.ptl | 2 +- font-src/glyphs/symbol/letter.ptl | 4 +++- params/variants.toml | 12 ++++++------ 10 files changed, 18 insertions(+), 29 deletions(-) diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index b6d18b847f..0c035db648 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -18,3 +18,5 @@ * Add Characters: - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). * Add hook-inward-serifed variants for `a` (#2085). +* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. +* Remove earless-corner variants for `U+027E`. diff --git a/font-src/glyphs/letter/latin/c.ptl b/font-src/glyphs/letter/latin/c.ptl index 3359764b1c..fe361033f7 100644 --- a/font-src/glyphs/letter/latin/c.ptl +++ b/font-src/glyphs/letter/latin/c.ptl @@ -290,13 +290,6 @@ glyph-block Letter-Latin-C : begin include : VBar.r RightSB Descender [ArcStartSerifDepth Hook] [ArcStartSerifWidth Stroke] if styBot : let [sf : SerifFrame.fromDf [DivFrame 1] CAP Descender] : include sf.rb.full - create-glyph "currency/somSign.\(suffix)" : glyph-proc - include : MarkSet.capital - local height : mix XH CAP (2 / 3) - local lf : CLetterForm [DivFrame 1] sty styBot height (height - XH) - include : lf.full - include : HBar.b SB RightSB 0 markStroke - select-variant 'C' 'C' link-reduced-variant 'C/sansSerif' 'C' MathSansSerif select-variant 'revC' 0x2183 (follow -- 'C') @@ -346,8 +339,6 @@ glyph-block Letter-Latin-C : begin CShapeT spiro-outline 0.1 [DivFrame 1] SLAB-NONE SLAB-NONE XH 0 SmallArchDepthA SmallArchDepthB Hook BBS VBar.l (SB + BBD + OX) 0 CAP BBS - select-variant 'currency/somSign' 0x20C0 (follow -- 'c') - create-glyph 'currency/euroSign/overlay' : union LetterBarOverlay.l SB (CAP * 0.4) LetterBarOverlay.l SB (CAP * 0.6) diff --git a/font-src/glyphs/letter/latin/lower-b.ptl b/font-src/glyphs/letter/latin/lower-b.ptl index 24e2f2717b..f12020dc87 100644 --- a/font-src/glyphs/letter/latin/lower-b.ptl +++ b/font-src/glyphs/letter/latin/lower-b.ptl @@ -48,7 +48,7 @@ glyph-block Letter-Latin-Lower-B : begin set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay set-base-anchor 'overlay' Middle (XH / 2) - create-glyph "bBar.\(suffix)" : glyph-proc + create-glyph "bStroke.\(suffix)" : glyph-proc include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) @@ -72,7 +72,7 @@ glyph-block Letter-Latin-Lower-B : begin eject-contour 'serifLT' select-variant 'b' 'b' - select-variant 'bBar' 0x180 (follow -- 'b') + select-variant 'bStroke' 0x180 (follow -- 'b') select-variant 'bSlash' 0x2422 (follow -- 'b') select-variant 'latn/be' 0x183 (follow -- 'b') diff --git a/font-src/glyphs/letter/latin/lower-d.ptl b/font-src/glyphs/letter/latin/lower-d.ptl index 47fabb013c..b661c4905e 100644 --- a/font-src/glyphs/letter/latin/lower-d.ptl +++ b/font-src/glyphs/letter/latin/lower-d.ptl @@ -54,10 +54,6 @@ glyph-block Letter-Latin-Lower-D : begin ada -- [df.archDepthA SmallArchDepth df.mvs] adb -- [df.archDepthB SmallArchDepth df.mvs] - define [ToothlessRoundedHBBBody df yTop] : union - ToothlessRoundedBody df yTop - tagged 'rightBar' : VBar.r df.rightSB 0 yTop - define [TailedBody df yTop] : union OBarRight.shape left -- df.leftSB @@ -79,7 +75,6 @@ glyph-block Letter-Latin-Lower-D : begin toothlessCorner ToothlessCornerBody toothlessCornerHBB ToothlessCornerHBBBody toothlessRounded ToothlessRoundedBody - toothlessRoundedHBB ToothlessRoundedHBBBody tailed TailedBody function [body] : object # serifs @@ -102,7 +97,7 @@ glyph-block Letter-Latin-Lower-D : begin include : LeaningAnchor.Above.VBar.r df.rightSB set-base-anchor 'overlayOnExtension' (df.rightSB - [HSwToV : 0.5 * Stroke]) yOverlay - create-glyph "dcroat.\(suffix)" : glyph-proc + create-glyph "dStroke.\(suffix)" : glyph-proc local df : DivFrame 1 include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.r.in df.rightSB XH (Ascender - [if topSerif Stroke 0]) @@ -145,7 +140,7 @@ glyph-block Letter-Latin-Lower-D : begin select-variant 'd' 'd' select-variant 'dCaronBase' (follow -- 'd') - select-variant 'dcroat' 0x111 (follow -- 'd') + select-variant 'dStroke' 0x111 (follow -- 'd') select-variant 'latn/de' 0x18C (follow -- 'd') alias 'cyrl/deKomi' 0x501 'd' link-reduced-variant 'd/sansSerif' 'd' MathSansSerif diff --git a/font-src/glyphs/letter/latin/lower-g.ptl b/font-src/glyphs/letter/latin/lower-g.ptl index a6293140fc..be1809e7ec 100644 --- a/font-src/glyphs/letter/latin/lower-g.ptl +++ b/font-src/glyphs/letter/latin/lower-g.ptl @@ -164,7 +164,6 @@ glyph-block Letter-Latin-Lower-G : begin earlessCorner { SingleStorey.EarlessCornerBody DToothlessRise } earlessCornerHTB { SingleStorey.EarlessCornerBody 0 } earlessRounded { SingleStorey.EarlessRoundedBody (XH - SmallArchDepthA) } - earlessRoundedHTB { SingleStorey.EarlessRoundedBody 0 } scriptCut { SingleStorey.ScriptCutBody (Stroke / 2) } foreach { suffix { hookShape {bodyShape hookStart} } } [Object.entries SingleStoreyConfig] : do diff --git a/font-src/glyphs/letter/latin/lower-p.ptl b/font-src/glyphs/letter/latin/lower-p.ptl index 5ac21ab879..2fc5506de3 100644 --- a/font-src/glyphs/letter/latin/lower-p.ptl +++ b/font-src/glyphs/letter/latin/lower-p.ptl @@ -106,7 +106,7 @@ glyph-block Letter-Latin-Lower-P : begin CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnExension' - derive-glyphs 'cyrl/rrTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc + derive-glyphs 'cyrl/erTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS include : dispiro widths.center [AdviceStroke 4] diff --git a/font-src/glyphs/letter/latin/upper-b.ptl b/font-src/glyphs/letter/latin/upper-b.ptl index 217b3152df..fc6a049a9b 100644 --- a/font-src/glyphs/letter/latin/upper-b.ptl +++ b/font-src/glyphs/letter/latin/upper-b.ptl @@ -233,7 +233,7 @@ glyph-block Letter-Latin-Upper-B : begin include : ItalicCyrveShape XH create-glyph 'grek/betaSymbol' 0x3D0 : glyph-proc - include : MarkSet.e + include : MarkSet.b include : ItalicCyrveShape Ascender alias 'cyrl/ve.BGR' null 'grek/betaSymbol' diff --git a/font-src/glyphs/letter/latin/upper-d.ptl b/font-src/glyphs/letter/latin/upper-d.ptl index da86cfc43e..0912c31e70 100644 --- a/font-src/glyphs/letter/latin/upper-d.ptl +++ b/font-src/glyphs/letter/latin/upper-d.ptl @@ -99,7 +99,7 @@ glyph-block Letter-Latin-Upper-D : begin include [refer-glyph src] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB Stroke (CAP - Stroke) space -- { 0 (RightSB - [HSwToV Stroke]) } - alias 'Dcroat' 0x110 'Eth' + alias 'DStroke' 0x110 'Eth' alias 'arficanD' 0x189 'Eth' select-variant 'Dhookleft' 0x18A diff --git a/font-src/glyphs/symbol/letter.ptl b/font-src/glyphs/symbol/letter.ptl index fcd7e3d3be..2126b4e9e0 100644 --- a/font-src/glyphs/symbol/letter.ptl +++ b/font-src/glyphs/symbol/letter.ptl @@ -72,7 +72,7 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/wonSign' 0x20A9 'W' 'currency/overlay/W' - derive-composites 'currency/dongSign' 0x20AB 'dcroat' 'sbRsbUnderlineBelow' + derive-composites 'currency/dongSign' 0x20AB 'dStroke' 'sbRsbUnderlineBelow' derive-composites 'currency/kipSign' 0x20AD 'K' 'hStrike' create-glyph 'currency/tugrikOverride' : glyph-proc @@ -90,6 +90,8 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/guaraniSign' 0x20B2 'G' 'longVStrokeOver' derive-composites 'currency/cediSign' 0x20B5 'C' 'longVStrokeOver' + derive-composites 'currency/somSign' 0x20C0 'cyrl/es' 'sbRsbUnderlineBelow' + glyph-block Symbol-Letter : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives diff --git a/params/variants.toml b/params/variants.toml index 518b26f032..eabe56b94f 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1832,10 +1832,10 @@ selectorAffix.d = "toothlessRounded" selectorAffix."d/sansSerif" = "toothlessRounded" selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/descBase" = "toothed" -selectorAffix."d/hookBottomBase" = "toothlessRoundedHBB" +selectorAffix."d/hookBottomBase" = "toothed" selectorAffix.dCurlyTail = "toothed" selectorAffix.dHookTop = "toothlessRounded" -selectorAffix."dHookTop/hookBottomBase" = "toothlessRoundedHBB" +selectorAffix."dHookTop/hookBottomBase" = "toothed" selectorAffix."cyrl/djeKomi" = "toothlessRounded" [prime.d.variants-buildup.stages.body.tailed] @@ -2166,7 +2166,7 @@ descriptionAffix = "earless (cornered top-right)" selectorAffix.g = "earlessCorner" selectorAffix."g/sansSerif" = "earlessCorner" selectorAffix."gScript" = "scriptCut" -selectorAffix."gScript/hookTopBase" = "serifless" +selectorAffix."gScript/hookTopBase" = "earlessCornerHTB" selectorAffix."gScriptCrossedTail" = "scriptCut" selectorAffix."g/single" = "earlessCorner" @@ -3169,7 +3169,7 @@ rank = 3 descriptionAffix = "earless (rounded) shape" selectorAffix.p = "earlessRounded" selectorAffix."p/sansSerif" = "earlessRounded" -selectorAffix."p/hookTopBase" = "earlessRounded" +selectorAffix."p/hookTopBase" = "eared" [prime.p.variants-buildup.stages.serifs.serifless] rank = 1 @@ -3239,7 +3239,7 @@ rank = 3 descriptionAffix = "earless (rounded) shape" selectorAffix.q = "earlessRounded" selectorAffix."q/sansSerif" = "earlessRounded" -selectorAffix."q/hookTopBase" = "earlessRounded" +selectorAffix."q/hookTopBase" = "" selectorAffix.qRTail = "earlessRounded" [prime.q.variants-buildup.stages.terminal."*"] @@ -3339,7 +3339,7 @@ selectorAffix.r = "earlessCorner" selectorAffix."r/sansSerif" = "earlessCorner" selectorAffix.rRTail = "earlessCorner" selectorAffix."rTurnRTail" = "" -selectorAffix."rFlap" = "earlessCorner" +selectorAffix."rFlap" = "earlessRounded" selectorAffix."iFishHook" = "" [prime.r.variants-buildup.stages.body.earless-rounded] From 6b6b11cc7735555d2ef20a2e760b1080a608affa Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 15 Nov 2023 13:57:23 -0500 Subject: [PATCH 20/59] Add various medievalist punctuation characters. (#2091) --- changes/28.0.0-alpha.1.md | 3 ++ font-src/glyphs/space/index.ptl | 2 + .../glyphs/symbol/punctuation/ellipsis.ptl | 1 + font-src/glyphs/symbol/punctuation/small.ptl | 50 ++++++++++++++++++- 4 files changed, 54 insertions(+), 2 deletions(-) diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 0c035db648..74c2508cef 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -17,6 +17,9 @@ - Various other glyph variant tags are also changed to reflect this insertion. * Add Characters: - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). + - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). * Add hook-inward-serifed variants for `a` (#2085). * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. * Remove earless-corner variants for `U+027E`. diff --git a/font-src/glyphs/space/index.ptl b/font-src/glyphs/space/index.ptl index 3fc15fda73..da1fff0337 100644 --- a/font-src/glyphs/space/index.ptl +++ b/font-src/glyphs/space/index.ptl @@ -39,6 +39,8 @@ glyph-block Spaces : begin set-width 0 alias 'nonmarkingreturn' 0x000D 'zwsp' + alias 'lineSeparator' 0x2028 'zwsp' + alias 'paragraphSeparator' 0x2029 'zwsp' alias 'wj' 0x2060 'zwsp' alias 'funcApp' 0x2061 'zwsp' alias 'invisibleTimes' 0x2062 'zwsp' diff --git a/font-src/glyphs/symbol/punctuation/ellipsis.ptl b/font-src/glyphs/symbol/punctuation/ellipsis.ptl index 18df5d8ad5..af2210586a 100644 --- a/font-src/glyphs/symbol/punctuation/ellipsis.ptl +++ b/font-src/glyphs/symbol/punctuation/ellipsis.ptl @@ -9,6 +9,7 @@ glyph-block Symbol-Punctuation-Ellipsis : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-export EllipsisDotRadius define [EllipsisDotRadius nDots space] : begin return : 0.5 * [AdviceStroke (nDots + 1.5) (space / Width)] * PeriodSize / Stroke diff --git a/font-src/glyphs/symbol/punctuation/small.ptl b/font-src/glyphs/symbol/punctuation/small.ptl index 66d227022e..98e26974a2 100644 --- a/font-src/glyphs/symbol/punctuation/small.ptl +++ b/font-src/glyphs/symbol/punctuation/small.ptl @@ -9,6 +9,7 @@ glyph-module glyph-block Symbol-Punctuation-Small : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Symbol-Punctuation-Ellipsis EllipsisDotRadius foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "period.\(suffix)" : glyph-proc @@ -206,6 +207,27 @@ glyph-block Symbol-Punctuation-Small : begin include : with-transform [ApparentTranslate (-multiDotShift) 0] : composite-proc refer-glyph "halfXhSmallPeriod.\(suffix)" + create-glyph "geor/paragraphSeparator.\(suffix)" : glyph-proc + include : with-transform [ApparentTranslate (+multiDotShift) 0] : composite-proc + refer-glyph "halfXhSmallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShift) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "twoDotOverOneDotPunct.\(suffix)" : glyph-proc + include [refer-glyph "smallPeriod.\(suffix)"] + include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc + refer-glyph "xhSmallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc + refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "oneDotOverTwoDotPunct.\(suffix)" : glyph-proc + include [refer-glyph "xhSmallPeriod.\(suffix)"] + include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + create-glyph "fourDotPunct.\(suffix)" : glyph-proc include [refer-glyph "smallPeriod.\(suffix)"] include [refer-glyph "xhSmallPeriod.\(suffix)"] @@ -222,15 +244,29 @@ glyph-block Symbol-Punctuation-Small : begin include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc refer-glyph "halfCapSmallPeriod.\(suffix)" - create-glyph "fiveDotPunct.\(suffix)" : glyph-proc + create-glyph "squareFourDotPunct.\(suffix)" : glyph-proc include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc refer-glyph "smallPeriod.\(suffix)" refer-glyph "xhSmallPeriod.\(suffix)" include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc refer-glyph "smallPeriod.\(suffix)" refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "fiveDotPunct.\(suffix)" : glyph-proc + include : refer-glyph "squareFourDotPunct.\(suffix)" include : refer-glyph "halfXhSmallPeriod.\(suffix)" + create-glyph "fiveDotMark.\(suffix)" : glyph-proc + local l : mix SB 0 0.5 + local r : mix RightSB Width 0.5 + local radius : EllipsisDotRadius 3 [Math.min XH (r - l)] + include : DrawAt Middle radius (kDotRadius * radius - overshoot) + include : DrawAt Middle (XH / 2) (kDotRadius * radius - overshoot) + include : DrawAt Middle (XH - radius) (kDotRadius * radius - overshoot) + + include : DrawAt (l + radius) (XH / 2) (kDotRadius * radius - overshoot) + include : DrawAt (r - radius) (XH / 2) (kDotRadius * radius - overshoot) + create-glyph "dottedCross.\(suffix)" : glyph-proc include : HBar.m [mix 0 SB 0.5] [mix Width RightSB 0.5] (XH / 2) OperatorStroke include : VBar.m Middle 0 XH OperatorStroke @@ -246,13 +282,23 @@ glyph-block Symbol-Punctuation-Small : begin select-variant 'modifierLetterRaisedColon' 0x2F8 (follow -- 'punctuationDot') select-variant 'semicolon' ';' (follow -- 'punctuationDot') select-variant 'invertSemicolon' 0x204F (follow -- 'punctuationDot') + select-variant 'threeDotPunct' 0x2056 (follow -- 'punctuationDot') + select-variant 'geor/paragraphSeparator' 0x10FB (follow -- 'punctuationDot') + select-variant 'twoDotOverOneDotPunct' 0x2E2A (follow -- 'punctuationDot') + select-variant 'oneDotOverTwoDotPunct' 0x2E2B (follow -- 'punctuationDot') + select-variant 'fourDotPunct' 0x2058 (follow -- 'punctuationDot') + select-variant 'squareFourDotPunct' 0x2E2C (follow -- 'punctuationDot') select-variant 'fiveDotPunct' 0x2059 (follow -- 'punctuationDot') + select-variant 'fiveDotMark' 0x2E2D (follow -- 'punctuationDot') + select-variant 'capColon' 0x205A (follow -- 'punctuationDot') select-variant 'capFourDotPunct' 0x205B (follow -- 'punctuationDot') + select-variant 'dottedCross' 0x205C (follow -- 'punctuationDot') - alias 'greekquestion' 0x37E 'semicolon' + + alias 'grek/question' 0x37E 'semicolon' turned 'turnSemiColon' 0x2E35 'semicolon' [DivFrame para.diversityF].middle (XH / 2) From 7f35523506a00545100389bc90923eacdbf3fa6c Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 16 Nov 2023 20:42:26 -0500 Subject: [PATCH 21/59] Add three combining characters and two spacing characters. (#2092) * Add characters, three combining and two spacing. * typo --- changes/28.0.0-alpha.1.md | 4 + font-src/glyphs/auto-build/transformed.ptl | 90 ++++++++++--------- .../letter/latin-ext/flattened-open-a.ptl | 27 ++++++ font-src/glyphs/letter/latin.ptl | 1 + font-src/glyphs/marks/above.ptl | 30 +++++++ .../symbol/punctuation/quotes-and-primes.ptl | 4 + 6 files changed, 112 insertions(+), 44 deletions(-) create mode 100644 font-src/glyphs/letter/latin-ext/flattened-open-a.ptl diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md index 74c2508cef..96dcc366fe 100644 --- a/changes/28.0.0-alpha.1.md +++ b/changes/28.0.0-alpha.1.md @@ -18,7 +18,11 @@ * Add Characters: - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). * Add hook-inward-serifed variants for `a` (#2085). * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index 64f3a7af10..a7170f802a 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -115,6 +115,11 @@ glyph-block Autobuild-Transformed : begin list 0x2077 'seven.lnum' list 0x2078 'eight.lnum' list 0x2079 'nine.lnum' + list 0x207A 'plus' + list 0x207B 'minus' + list 0x207C 'equal' + list 0x207D 'parenLeft' + list 0x207E 'parenRight' list 0x02B0 'h' list 0x02B1 'hHookTop' list 0x02B2 'j' @@ -179,9 +184,9 @@ glyph-block Autobuild-Transformed : begin list 0x1DA6 'smcpI' list 0x1DA7 'smcpIBarOver' list 0x1DA8 'jCurlyTail' - list 0x1DAB 'smcpL' list 0x1DA9 'lRTail' list 0x1DAA 'lPalatalHook' + list 0x1DAB 'smcpL' list 0x1DAC 'meng' list 0x1DAD 'turnmLeg' list 0x1DAE 'nLTail' @@ -197,11 +202,11 @@ glyph-block Autobuild-Transformed : begin list 0x1DB8 'smcpU' list 0x1DB9 'vHookTop' list 0x1DBA 'turnv' + list 0x1DBB 'z' list 0x1DBC 'zRTailBR' list 0x1DBD 'zCurlyTail' list 0x1DBE 'ezh' list 0x1DBF 'grek/theta' - list 0x1DBB 'z' list 0x1D2C 'A' list 0x1D2E 'B' list 0x1D2F 'BBar' @@ -225,11 +230,7 @@ glyph-block Autobuild-Transformed : begin list 0x1D41 'U' list 0x1D42 'W' list 0x2C7D 'V' - list 0x207A 'plus' - list 0x207B 'minus' - list 0x207C 'equal' - list 0x207D 'parenLeft' - list 0x207E 'parenRight' + list 0x2E0B 'mathBox' list 0xA69C 'cyrl/yer' list 0xA69D 'cyrl/yeri' list 0xA702 'subst' @@ -249,52 +250,52 @@ glyph-block Autobuild-Transformed : begin list 0xAB5D 'lInvLazySOver' list 0xAB5E 'lTildeOver' list 0xAB69 'turnw' - list 0x107AF 'tRTail' + list 0x10780 'smcpAA' + list 0x10781 'triangleColon' + list 0x10782 'halfTriangleColon' + list 0x10783 'ae' + list 0x10784 'smcpB' + list 0x10785 'bHookTop' list 0x1078B 'dHookBottom' - list 0x107A5 'q' + list 0x1078C 'dHookTop' + list 0x1078D 'dHookTopBottom' + list 0x1078E 'eRev' + list 0x1078F 'epsilonRevClosed' + list 0x10791 'ramshorn' list 0x10792 'smcpG' - list 0x107B3 'glottalStopBar' + list 0x10793 'gScriptHookTop' + list 0x10794 'smcpGHookTop' list 0x10795 'hBar' - list 0x10797 'hengHookTop' - list 0x107B0 'vHookRight' - list 0x107A9 'rFlap' - list 0x107A8 'rRTail' - list 0x107BA 'sCurlyTail' - list 0x10784 'smcpB' - list 0x107AA 'smcpR' list 0x10796 'smcpH' - list 0x107B4 'revGlottalStopBar' + list 0x10797 'hengHookTop' + list 0x10798 'dotlessjBarHookTop' list 0x1079B 'lBelt' - list 0x1079E 'lyogh' + list 0x1079C 'smcpLBelt' list 0x1079D 'lBeltRTail' + list 0x1079E 'lyogh' list 0x1079F 'lyoghRTail' - list 0x107A1 'turnyBelt' - list 0x1079C 'smcpLBelt' list 0x107A0 'turny' + list 0x107A1 'turnyBelt' + list 0x107A2 'oSlash' + list 0x107A3 'smcpOE' + list 0x107A4 'closeomega' + list 0x107A5 'q' list 0x107A6 'turnrLongLeg' list 0x107A7 'rTurnLongLetRTail' - list 0x10780 'smcpAA' - list 0x10785 'bHookTop' - list 0x1078C 'dHookTop' - list 0x1078D 'dHookTopBottom' - list 0x10798 'dotlessjBarHookTop' - list 0x10793 'gScriptHookTop' - list 0x10794 'smcpGHookTop' + list 0x107A8 'rRTail' + list 0x107A9 'rFlap' + list 0x107AA 'smcpR' + list 0x107AF 'tRTail' + list 0x107B0 'vHookRight' + list 0x107B2 'smcpY' + list 0x107B3 'glottalStopBar' + list 0x107B4 'revGlottalStopBar' list 0x107B5 'bullEye' list 0x107B6 'dentalclick' + list 0x107B7 'alveolarlateralclick' list 0x107B8 'palatoalveolarclick' list 0x107B9 'retroflexClickHook' - list 0x107B7 'alveolarlateralclick' - list 0x107B2 'smcpY' - list 0x107A4 'closeomega' - list 0x107A2 'oSlash' - list 0x1078E 'eRev' - list 0x10791 'ramshorn' - list 0x1078F 'epsilonRevClosed' - list 0x10783 'ae' - list 0x107A3 'smcpOE' - list 0x10781 'triangleColon' - list 0x10782 'halfTriangleColon' + list 0x107BA 'sCurlyTail' list 0x1E030 'cyrl/a' list 0x1E031 'cyrl/be' list 0x1E032 'cyrl/ve' @@ -396,6 +397,11 @@ glyph-block Autobuild-Transformed : begin list 0x2087 'seven.lnum' list 0x2088 'eight.lnum' list 0x2089 'nine.lnum' + list 0x208A 'plus' + list 0x208B 'minus' + list 0x208C 'equal' + list 0x208D 'parenLeft' + list 0x208E 'parenRight' list 0x2090 'a' list 0x2091 'e' list 0x2092 'o' @@ -419,11 +425,6 @@ glyph-block Autobuild-Transformed : begin list 0x1D69 'grek/phi' list 0x1D6A 'grek/chi' list 0x2C7C 'j' - list 0x208A 'plus' - list 0x208B 'minus' - list 0x208C 'equal' - list 0x208D 'parenLeft' - list 0x208E 'parenRight' list 0xA700 'subst' list 0xA701 'substBarNoRise' list 0xA706 'supst' @@ -509,6 +510,7 @@ glyph-block Autobuild-Transformed : begin list 0x36C 'r' list 0x36E 'v' list 0x36F 'x' + list 0x1DD3 'flattenedOpena' list 0x1DD4 'ae' list 0x1DD5 'ao' list 0x1DDB 'smcpG' diff --git a/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl b/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl new file mode 100644 index 0000000000..b2a38e06da --- /dev/null +++ b/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl @@ -0,0 +1,27 @@ +$$include '../../../meta/macros.ptl' + +import [mix linreg clamp fallback] from"../../../support/utils.mjs" + + +glyph-module + +glyph-block Letter-Latin-Flattened-Open-A : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + create-glyph 'flattenedOpena' : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + + include : dispiro + g4.down.start df.leftSB (0.5 * XH) [widths.center.heading df.mvs Downward] + arcvh + g4.right.mid [mix df.middle df.leftSB 0.5] (0.5 * df.mvs) [heading Rightward] + archv + g4.up.end df.middle (0.5 * XH) [heading Upward] + include : dispiro + g4.down.start df.middle (0.5 * XH) [widths.center.heading df.mvs Downward] + arcvh + g4.right.mid [mix df.middle df.rightSB 0.5] (0.5 * df.mvs) [heading Rightward] + archv + g4.up.end df.rightSB (0.5 * XH) [heading Upward] diff --git a/font-src/glyphs/letter/latin.ptl b/font-src/glyphs/letter/latin.ptl index 3df10461e2..112e6b91c5 100644 --- a/font-src/glyphs/letter/latin.ptl +++ b/font-src/glyphs/letter/latin.ptl @@ -51,6 +51,7 @@ export : define [apply] : begin run-glyph-module "./latin-ext/eszet.mjs" run-glyph-module "./latin-ext/eth.mjs" run-glyph-module "./latin-ext/ezh.mjs" + run-glyph-module "./latin-ext/flattened-open-a.mjs" run-glyph-module "./latin-ext/gha.mjs" # run-glyph-module "./latin-ext/f-ligatures.mjs" run-glyph-module "./latin-ext/glottal-stop.mjs" diff --git a/font-src/glyphs/marks/above.ptl b/font-src/glyphs/marks/above.ptl index 3d82e9ebd1..830d6cfa89 100644 --- a/font-src/glyphs/marks/above.ptl +++ b/font-src/glyphs/marks/above.ptl @@ -1061,6 +1061,36 @@ glyph-block Mark-Above : begin include : FlipAround markMiddle [mix aboveMarkTop aboveMarkBot 0.5] include : StdAnchors.wide + create-glyph 'breveMacronAbove' 0x1DCB : glyph-proc + set-width 0 + include : StdAnchors.wide + + local sw : [AdviceStroke 3.5] / Stroke * markStroke + local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 + + include : dispiro + g4.down.start (markMiddle - extend) aboveMarkTop [widths.center.heading sw Downward] + arcvh + g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] + archv + g4.up.end markMiddle aboveMarkTop [heading Upward] + include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw + + create-glyph 'macronBreveAbove' 0x1DCC : glyph-proc + set-width 0 + include : StdAnchors.wide + + local sw : [AdviceStroke 3.5] / Stroke * markStroke + local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 + + include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw + include : dispiro + g4.down.start markMiddle aboveMarkTop [widths.center.heading sw Downward] + arcvh + g4.right.mid [mix markMiddle (markMiddle + extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] + archv + g4.up.end (markMiddle + extend) aboveMarkTop [heading Upward] + create-glyph 'plusAbove' 0x1AC8 : glyph-proc set-width 0 include : StdAnchors.mediumWide diff --git a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl index 95d2aac209..4a261eff5c 100644 --- a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl +++ b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl @@ -232,4 +232,8 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin g4.down.mid (Middle - height / 4 + O) [mix quoteBottom quoteTop 0.5] [widths.lhs.heading [AdviceStroke 3.5] Downward] arcvh g4.right.end (Middle + height / 4) (quoteBottom + O) [widths.lhs.heading [AdviceStroke 3] Rightward] + turned 'modifierLetterRightHalfRing' 0x2BE 'modifierLetterLeftHalfRing' Middle [mix quoteBottom quoteTop 0.5] + + derive-composites 'hypodiastole' 0x2E12 'modifierLetterRightHalfRing' + ApparentTranslate 0 ([mix [mix [mix PeriodSize commaLow 0.5] yCurlyQuotes 0.5] quoteBottom (-1)] - quoteTop) From dcc2de59f43c52b94317ce50289666f1841f5f5c Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 16 Nov 2023 19:32:03 -0800 Subject: [PATCH 22/59] Produce more meaningful glyph names --- font-src/gen/otd-conv/glyph-name.mjs | 73 +++++++++++++++++++--------- font-src/gen/otd-conv/glyphs.mjs | 34 ++++++++++--- font-src/support/gr.mjs | 3 ++ 3 files changed, 82 insertions(+), 28 deletions(-) diff --git a/font-src/gen/otd-conv/glyph-name.mjs b/font-src/gen/otd-conv/glyph-name.mjs index f125839b26..4b6ac5357a 100644 --- a/font-src/gen/otd-conv/glyph-name.mjs +++ b/font-src/gen/otd-conv/glyph-name.mjs @@ -1,4 +1,4 @@ -import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01 } from "../../support/gr.mjs"; +import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01, CvDecompose } from "../../support/gr.mjs"; const ApplePostNames = new Map([ /* spell-checker: disable */ @@ -267,7 +267,7 @@ export function byCode(gSrc, primaryUnicode, conflictSet) { let preferredName = null; if (primaryUnicode) { preferredName = - ApplePostNames.get(primaryUnicode) || `u${formatCodePointHex(primaryUnicode)}`; + ApplePostNames.get(primaryUnicode) || `uni${formatCodePointHex(primaryUnicode)}`; } if (preferredName && !conflictSet.has(preferredName)) { conflictSet.add(preferredName); @@ -278,30 +278,16 @@ function formatCodePointHex(u) { return u.toString(16).padStart(4, "0").toUpperCase(); } -export function bySpacing(gSrcBase, gOtBase, internalNameMap, conflictSet) { - if (!gOtBase.name) return 0; - let n = 0; - n += nameByPairGr(Nwid, Wwid, "NWID", "WWID", gSrcBase, gOtBase, internalNameMap, conflictSet); - n += nameByPairGr(Wwid, Nwid, "WWID", "NWID", gSrcBase, gOtBase, internalNameMap, conflictSet); - return n; -} +/////////////////////////////////////////////////////////////////////////////////////////////////// -const NamingGr = [TieMark, VS01]; - -export function byGr(gSrcBase, gOtBase, internalNameMap, conflictSet) { +export function bySpacing(gSrcBase, gOtBase, internalNameMap, conflictSet) { if (!gOtBase.name) return 0; let n = 0; - for (const cv of AnyCv.query(gSrcBase)) { - n += nameByGr(cv, gSrcBase, gOtBase, internalNameMap, conflictSet); - } - for (const gr of NamingGr) { - if (gr.get(gSrcBase)) { - n += nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet); - } - } + n += byPairGrImpl(Nwid, "NWID", "WWID", gSrcBase, gOtBase, internalNameMap, conflictSet); + n += byPairGrImpl(Wwid, "WWID", "NWID", gSrcBase, gOtBase, internalNameMap, conflictSet); return n; } -function nameByPairGr(grCis, grTrans, tagCis, tagTrans, gSrcBase, gOtBase, nm, conflictSet) { +function byPairGrImpl(grCis, tagCis, tagTrans, gSrcBase, gOtBase, nm, conflictSet) { const gnDst = grCis.get(gSrcBase); if (!gnDst) return 0; const gOtDst = nm.get(gnDst); @@ -317,7 +303,48 @@ function nameByPairGr(grCis, grTrans, tagCis, tagTrans, gSrcBase, gOtBase, nm, c } return 0; } -function nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +export function byDecompose(gSrcBase, gOtBase, internalNameMap, conflictSet) { + const parts = CvDecompose.get(gSrcBase); + + if (!parts || !parts.length) return 0; + + let newNamesCount = 0; + for (const [index, gnPart] of parts.entries()) { + const gComponent = internalNameMap.get(gnPart); + + if (!gComponent || gComponent.name) continue; + + const nameT = CvDecompose.amendOtName(gOtBase.name, index); + if (!conflictSet.has(nameT)) { + conflictSet.add(nameT); + gComponent.name = nameT; + newNamesCount++; + } + } + + return newNamesCount; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +const NamingGr = [TieMark, VS01]; +export function byGr(gSrcBase, gOtBase, internalNameMap, conflictSet) { + if (!gOtBase.name) return 0; + let n = 0; + for (const cv of AnyCv.query(gSrcBase)) { + n += nameByGrImpl(cv, gSrcBase, gOtBase, internalNameMap, conflictSet); + } + for (const gr of NamingGr) { + if (gr.get(gSrcBase)) { + n += nameByGrImpl(gr, gSrcBase, gOtBase, internalNameMap, conflictSet); + } + } + return n; +} +function nameByGrImpl(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { const gnDst = gr.get(gSrcBase); if (!gnDst) return 0; const gOtDst = internalNameMap.get(gnDst); @@ -331,6 +358,8 @@ function nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { return 0; } +/////////////////////////////////////////////////////////////////////////////////////////////////// + export function byBuildOrder(rank, gSrc, gnOrig) { if (!gnOrig) gnOrig = `.g${rank}`; gnOrig = Joining.amendOtName(gnOrig, Joining.get(gSrc)); diff --git a/font-src/gen/otd-conv/glyphs.mjs b/font-src/gen/otd-conv/glyphs.mjs index e3890cf956..b288a2ba7c 100644 --- a/font-src/gen/otd-conv/glyphs.mjs +++ b/font-src/gen/otd-conv/glyphs.mjs @@ -3,7 +3,7 @@ import { Ot } from "ot-builder"; import { Point } from "../../support/geometry/point.mjs"; import * as Gr from "../../support/gr.mjs"; -import { byBuildOrder, byCode, byGr, bySpacing } from "./glyph-name.mjs"; +import * as GlyphName from "./glyph-name.mjs"; function byRank([gna, a], [gnb, b]) { return ( @@ -54,7 +54,6 @@ class MappedGlyphStore { } } fillOtGlyphNames() { - let gid = 0; let conflictSet = new Set(); let rev = new Map(); for (const [u, g] of this.m_primaryUnicodeMapping) rev.set(g, u); @@ -62,29 +61,52 @@ class MappedGlyphStore { ([a], [b]) => a.subRank - b.subRank ); for (const [gSrc, gOt] of glyphsInBuildOrder) gOt.name = undefined; + // Name by Unicode for (const [gSrc, gOt] of glyphsInBuildOrder) { - gOt.name = byCode(gSrc, rev.get(gSrc), conflictSet); + gOt.name = GlyphName.byCode(gSrc, rev.get(gSrc), conflictSet); } + // Name by NWID/WWID let nNewNames = 0; do { nNewNames = 0; for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { - nNewNames += bySpacing(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); + nNewNames += GlyphName.bySpacing( + gSrcBase, + gOtBase, + this.m_nameMapping, + conflictSet + ); } } while (nNewNames > 0); + + // Name by decompose + do { + nNewNames = 0; + for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { + nNewNames += GlyphName.byDecompose( + gSrcBase, + gOtBase, + this.m_nameMapping, + conflictSet + ); + } + } while (nNewNames > 0); + // Name by Gr do { nNewNames = 0; for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { - nNewNames += byGr(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); + nNewNames += GlyphName.byGr(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); } } while (nNewNames > 0); + // Name rest for (const [gSrc, gOt] of glyphsInBuildOrder) { - gOt.name = byBuildOrder(gSrc.subRank, gSrc, gOt.name); + gOt.name = GlyphName.byBuildOrder(gSrc.subRank, gSrc, gOt.name); } + // validate { let gnSet = new Set(); diff --git a/font-src/support/gr.mjs b/font-src/support/gr.mjs index 608916478a..d492bdf52a 100644 --- a/font-src/support/gr.mjs +++ b/font-src/support/gr.mjs @@ -78,6 +78,9 @@ function DecompositionProp(key) { if (!Array.isArray(composition)) throw new Error("Must supply a GID array"); if (!glyph.related) glyph.related = {}; glyph.related[key] = composition; + }, + amendOtName(baseName, index) { + return `${baseName}.d${index}`; } }; } From 0581f7b0249e8c7f8ac97a60d20ad4af03e0d15e Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 16 Nov 2023 23:42:13 -0800 Subject: [PATCH 23/59] Diagonal tail optimization --- font-src/glyphs/letter/latin/k.ptl | 6 +- font-src/glyphs/letter/latin/lower-f.ptl | 4 +- font-src/glyphs/letter/latin/lower-il.ptl | 4 +- font-src/glyphs/letter/latin/lower-j.ptl | 4 +- font-src/glyphs/letter/latin/lower-q.ptl | 4 +- font-src/glyphs/letter/latin/lower-t.ptl | 18 +-- font-src/glyphs/letter/latin/v.ptl | 4 +- font-src/glyphs/letter/latin/w.ptl | 4 +- font-src/glyphs/letter/latin/x.ptl | 4 +- font-src/glyphs/letter/shared.ptl | 133 +++++++++++----------- 10 files changed, 94 insertions(+), 91 deletions(-) diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index 308ef080f1..a8fc718a67 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-K : begin glyph-block-import Mark-Above : aboveMarkMid glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors LeaningAnchor - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender + glyph-block-import Letter-Shared-Shapes : DiagTail CyrDescender glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook TopHook local [KBalance slabLT straightBar] : if straightBar (Width / 32) 0 @@ -315,14 +315,14 @@ glyph-block Letter-Latin-K : begin define xDTStart : dim.arcTerminalX + [HSwToV swDiagTail] + xDTGap define xDTEnd : dim.kshRight - 0.8 * Hook - [HSwToV : 0.25 * swDiagTail] + xDTGap * 0.625 define tailAngle : Math.min 85 (50 + [Math.atan2 (0.75 * swDiagTail) Hook] / Math.PI * 180) - define dtInnerRadius : [clamp 0.125 1 : mix 1 (Width / UPM * 2) 3] * [DiagonalTailInnerRadius] + define dtInnerRadius : [clamp 0.125 1 : mix 1 (Width / UPM * 2) 3] * [DiagTail.DefaultInnerRadius] set-base-anchor 'legOverlay' [mix xDTStart xDTEnd : StrokeWidthBlend 0.65 0.75] [mix dim.arcTerminalY 0 : StrokeWidthBlend 0.6 0.65] include : difference dispiro flat xDTStart dim.arcTerminalY [widths.center swDiagTailAdj] curl (xDTEnd + 0.125 * dtInnerRadius) (0.9 * swDiagTail + 0.5 * dtInnerRadius) - DiagonalTailF 1 xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail + DiagTail.F 1 xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs define [KHookTopBar slabLegs straightBar] : TopHook.lBarInner diff --git a/font-src/glyphs/letter/latin/lower-f.ptl b/font-src/glyphs/letter/latin/lower-f.ptl index 1d7243e968..8cdaf17da8 100644 --- a/font-src/glyphs/letter/latin/lower-f.ptl +++ b/font-src/glyphs/letter/latin/lower-f.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-F : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailL DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook define [SetPalatalHookPos barLeft] : glyph-proc @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Lower-F : begin local xBarMiddle : barLeft + [HSwToV HalfStroke] return : dispiro flat xBarMiddle 0.1 [widths.center.heading Stroke Downward] - DiagonalTailL xBarMiddle Descender [DiagonalTailStdDepth df Stroke] Stroke + DiagTail.L xBarMiddle Descender [DiagTail.StdDepth df Stroke] Stroke glyph-block-export StdSmallFBarLeftPos define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast diff --git a/font-src/glyphs/letter/latin/lower-il.ptl b/font-src/glyphs/letter/latin/lower-il.ptl index 28da42f0fe..fc68d0b311 100644 --- a/font-src/glyphs/letter/latin/lower-il.ptl +++ b/font-src/glyphs/letter/latin/lower-il.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-I : begin glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition glyph-block-import Letter-Shared : CreateCommaCaronComposition CreateOgonekComposition - glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailR DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay PalatalHook glyph-block-import Letter-Shared-Shapes : RetroflexHook LetterBarOverlay RightwardTailedBar @@ -133,7 +133,7 @@ glyph-block Letter-Latin-Lower-I : begin include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] - DiagonalTailR xMiddle 0 [DiagonalTailStdDepth df df.mvs] df.mvs + DiagTail.R xMiddle 0 [DiagTail.StdDepth df df.mvs] df.mvs export : define [PhoneticLeft df top xMiddle] : glyph-proc include : dispiro diff --git a/font-src/glyphs/letter/latin/lower-j.ptl b/font-src/glyphs/letter/latin/lower-j.ptl index 02f3871a22..ea93ef12f7 100644 --- a/font-src/glyphs/letter/latin/lower-j.ptl +++ b/font-src/glyphs/letter/latin/lower-j.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-J : begin glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth LetterBarOverlay - glyph-block-import Letter-Shared-Shapes : DiagonalTailL DiagonalTailStdDepth TopHook + glyph-block-import Letter-Shared-Shapes : DiagTail TopHook glyph-block-import Letter-Blackboard : BBS BBD glyph-block-export FlatHookDotlessJShape @@ -71,7 +71,7 @@ glyph-block Letter-Latin-Lower-J : begin include : dispiro widths.center flat xMiddle top [heading Downward] - DiagonalTailL xMiddle Descender [DiagonalTailStdDepth dfHook Stroke] Stroke + DiagTail.L xMiddle Descender [DiagTail.StdDepth dfHook Stroke] Stroke set-base-anchor "trailing" (xMiddle - [HSwToV HalfStroke]) Descender define Serifs : namespace diff --git a/font-src/glyphs/letter/latin/lower-q.ptl b/font-src/glyphs/letter/latin/lower-q.ptl index e408ef92c0..2c6b912165 100644 --- a/font-src/glyphs/letter/latin/lower-q.ptl +++ b/font-src/glyphs/letter/latin/lower-q.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-Q : begin glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight RightwardTailedBar DToothlessRise - glyph-block-import Letter-Shared-Shapes : DMBlend DiagonalTailR DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : DMBlend DiagTail glyph-block-import Letter-Shared-Shapes : TopHook RetroflexHook define TERMINAL-NORMAL 0 @@ -22,7 +22,7 @@ glyph-block Letter-Latin-Lower-Q : begin local xMid : x0 - [HSwToV HalfStroke] return : dispiro flat xMid yt [widths.center.heading Stroke Downward] - DiagonalTailR xMid yb (0.875 * Hook - Stroke * 0.375) Stroke + DiagTail.R xMid yb (0.875 * Hook - Stroke * 0.375) Stroke define [EaredBody terminal top bottom] : glyph-proc set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender diff --git a/font-src/glyphs/letter/latin/lower-t.ptl b/font-src/glyphs/letter/latin/lower-t.ptl index 18e6ee640c..b330be8cdf 100644 --- a/font-src/glyphs/letter/latin/lower-t.ptl +++ b/font-src/glyphs/letter/latin/lower-t.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-T : begin glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateCommaCaronComposition glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth ConnectedCedilla SerifedArcEnd - glyph-block-import Letter-Shared-Shapes : DiagonalTailR DiagonalTailStdDepth DToothlessRise + glyph-block-import Letter-Shared-Shapes : DiagTail DToothlessRise glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook glyph-block-import Letter-Latin-S : SAutoSlabEnd AdviceSArchDepth glyph-block-import Letter-Blackboard : BBS BBD @@ -36,8 +36,8 @@ glyph-block Letter-Latin-Lower-T : begin ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} - __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.div]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} + __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.div]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} define [XHookTerminal df sym] : match sym [Just SYM-LEFT] df.rightSB @@ -79,13 +79,13 @@ glyph-block Letter-Latin-Lower-T : begin export : define [Retroflex df sym top bot] : Flat.Retroflex df sym top bot - define DiagTail : namespace + define DiagonalTailed : namespace define [HookShape df sym top bot sw] : begin local xMid : [BarLeftPos df sym] + [HSwToV HalfStroke] - local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagonalTailStdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] + local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagTail.StdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] return : dispiro flat xMid top [widths.center.heading sw Downward] - DiagonalTailR xMid bot hookDepth sw + DiagTail.R xMid bot hookDepth sw ########################################################################################### @@ -108,7 +108,7 @@ glyph-block Letter-Latin-Lower-T : begin define Flat : namespace export : define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] [mix df.width df.rightSB [mix 1 df.div 2]]} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB [mix 1 df.div 2]]} __ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB [mix 1 df.div 2]]} @@ -180,7 +180,7 @@ glyph-block Letter-Latin-Lower-T : begin __ : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] (df.middle + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) (df.middle + LongJut * [Math.sqrt df.div])} __ {(df.middle - LongJut * [Math.sqrt df.div]) (df.middle + LongJut * [Math.sqrt df.div])} export : define [Body df sym top bot] : glyph-proc @@ -207,7 +207,7 @@ glyph-block Letter-Latin-Lower-T : begin define SmallTConfig : SuffixCfg.weave object # body bentHook { [DivFrame 1] BentHook } - diagonalTailed { dfNarrowT DiagTail } + diagonalTailed { dfNarrowT DiagonalTailed } flatHook { dfNarrowT Flat } hookless { dfNarrowT Hookless } object # symmetry diff --git a/font-src/glyphs/letter/latin/v.ptl b/font-src/glyphs/letter/latin/v.ptl index 50cea33c74..fadf89448f 100644 --- a/font-src/glyphs/letter/latin/v.ptl +++ b/font-src/glyphs/letter/latin/v.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-V : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-export VShape VShapeOutline - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame PalatalHook + glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame PalatalHook glyph-block-import Letter-Blackboard : BBS BBD define VCornerHalfWidth : HSwToV : 1.15 * HalfStroke @@ -108,7 +108,7 @@ glyph-block Letter-Latin-V : begin define yArcRight : [mix 0 top 0.6] - sw * 0.2 define xArcEnd : [mix SB RightSB 0.8] + sw * 0.375 define yArcEnd : top - O - define rInY : DiagonalTailInnerRadius + define rInY : DiagTail.DefaultInnerRadius define xArcMidBottom : xBar + [HSwToV sw] + [HSwToV rInY] + CorrectionOMidX * sw include : dispiro diff --git a/font-src/glyphs/letter/latin/w.ptl b/font-src/glyphs/letter/latin/w.ptl index 2d4240b375..e21b03953e 100644 --- a/font-src/glyphs/letter/latin/w.ptl +++ b/font-src/glyphs/letter/latin/w.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Latin-W : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame VerticalHook + glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame VerticalHook glyph-block-import Letter-Latin-Upper-M : MShape define FORM-CURLY 0 @@ -278,7 +278,7 @@ glyph-block Letter-Latin-W : begin define x1 : df.leftSB + 0 * OX define y3 : mix fine top 0.375 define y4 : mix y3 top 0.5 - define rInY : 1 * [DiagonalTailInnerRadius] + define rInY : 1 * [DiagTail.DefaultInnerRadius] include : dispiro widths.lhs fine diff --git a/font-src/glyphs/letter/latin/x.ptl b/font-src/glyphs/letter/latin/x.ptl index b7a57ba76e..4ba14ac77b 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/font-src/glyphs/letter/latin/x.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-X : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs SerifFrame WithSerifOverflowMask - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF + glyph-block-import Letter-Shared-Shapes : DiagTail glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook glyph-block-export HalfXStrand @@ -115,7 +115,7 @@ glyph-block Letter-Latin-X : begin flat (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] curl (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) arcvh 16 - DiagonalTailF 1 (xMidBarRightEdge - [HSwToV : 0.5 * swCoEnd] + TanSlope * rIn) bottom rIn 50 flatHookDepth swCoEnd + DiagTail.F 1 (xMidBarRightEdge - [HSwToV : 0.5 * swCoEnd] + TanSlope * rIn) bottom rIn 50 flatHookDepth swCoEnd if setMark : begin define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1) diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index b08b2bb3f3..1fe516099c 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -603,72 +603,75 @@ glyph-block Letter-Shared-Shapes : begin export : define [InwardR cx cy stroke hook] : begin return : tagged 'arcEndSerifR' : VBar.r cx (cy + hook + DToothlessRise / 2) (cy + DToothlessRise) [ArcStartSerifWidth stroke] - define DiagTailDefaultAngle 40 - - glyph-block-export DiagonalTailStdDepth - define [DiagonalTailStdDepth df sw] : Math.max (0.5 * sw) - df.div * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw - - glyph-block-export DiagonalTailInnerRadius - define [DiagonalTailInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) - - glyph-block-export DiagonalTailF - define [DiagonalTailF sign cx cy rIn angle depth sw] : begin - define tailAngle : angle / 180 * Math.PI - define sinAngle : Math.sin tailAngle - define cosAngle : Math.cos tailAngle - - define mocFine : [AdviceStroke 3] / Stroke * sw - define mocSwMid : mix sw mocFine (2 / 3) - define fine : mocFine / [mix 1 HVContrast 0.375] - define swMid : mix sw fine 0.7 - - define dxTurn : [HSwToV : 0.5 * sw] + rIn - define dxTurnObl : 0.75 * TanSlope * rIn - define dyTurn : 0.5 * mocSwMid - define dxTailStart : dxTurn + sinAngle * (rIn + 0.5 * mocFine * [mix 1 HVContrast sinAngle]) - define dyTailStart : dyTurn + (1 - cosAngle + [if (sign > 0) 0 (TanSlope)]) * (rIn + 0.5 * mocFine) - define dxDepth : (depth - 0.5 * sw) * cosAngle - define dyDepth : (depth - 0.5 * sw) * sinAngle - return : list - g4.[if (sign > 0) "right" "left"].mid - cx + sign * (dxTurn - dxTurnObl) - cy + O + dyTurn - if (sign > 0) - widths.center.heading swMid Rightward - widths.center.heading swMid Leftward - if (sign <= 0) {} : alsoThruThem - list - DiagonalTailFArc2K tailAngle (1 / 4) - DiagonalTailFArc2K tailAngle (2 / 4) - DiagonalTailFArc2K tailAngle (3 / 4) - # if (sign <= 0) {} : alsoThru.g2 - # [Math.sin (tailAngle / 2)] / [Math.sin tailAngle] - # (1 - [Math.cos (tailAngle / 2)]) / (1 - [Math.cos tailAngle]) - # widths.center : mix swMid fine (1 / 2) - flat (cx + sign * dxTailStart) (cy + O + dyTailStart) [widths.center fine] - curl (cx + sign * dxTailStart + sign * dxDepth) (cy + O + dyTailStart + dyDepth) - - define [DiagonalTailFArc2K tailAngle t] : list - [Math.sin (t * tailAngle)] / [Math.sin tailAngle] - (1 - [Math.cos (t * tailAngle)]) / (1 - [Math.cos tailAngle]) - begin t - - glyph-block-export DiagonalTailR - define [DiagonalTailR cx cy depth sw] : begin - define rInY : DiagonalTailInnerRadius - return : list - curl cx (cy + sw + rInY) - arcvh 8 - DiagonalTailF (+1) cx cy rInY DiagTailDefaultAngle depth sw + glyph-block-export DiagTail + define DiagTail : namespace - glyph-block-export DiagonalTailL - define [DiagonalTailL cx cy depth sw] : begin - define rInY : DiagonalTailInnerRadius - return : list - curl cx (cy + sw + rInY) - arcvh 8 - DiagonalTailF (-1) cx cy rInY DiagTailDefaultAngle depth sw + export : define DefaultAngle 40 + + export : define [StdDepth df sw] : Math.max (0.5 * sw) + df.div * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw + + export : define [DefaultInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) + + define [FineSw sw] : begin + define mocFine : [AdviceStroke 3] / Stroke * sw + return : mocFine / [mix 1 HVContrast 0.375] + + define DiagTailSuperness DesignParameters.superness + + export : define [F sign cx cy rIn angle depth sw] : begin + define tailAngle : angle / 180 * Math.PI + define {cosAngle sinAngle} : superEllipse tailAngle + define {dCosAngle dSinAngle} : superEllipseDerivative tailAngle + + define fine : FineSw sw + define r : rIn + 0.5 * fine + define dxTurn : [HSwToV : 0.5 * sw] + rIn + 0.5 * sign * TanSlope * fine + define dxTailStart : dxTurn + sinAngle * (r * [mix 1 HVContrast sinAngle]) + define dyTailStart : (rIn + fine) - cosAngle * r + define dxDepth : (depth - 0.25 * sw) * +dSinAngle + define dyDepth : (depth - 0.25 * sw) * -dCosAngle + return : list + g4.[if (sign > 0) "right" "left"].mid + cx + sign * dxTurn + cy + O + 0.5 * fine + widths.center fine + alsoThruThem : FArc tailAngle 4 + flat (cx + sign * dxTailStart) (cy + O + dyTailStart) [widths.center fine] + curl (cx + sign * (dxTailStart + dxDepth)) (cy + O + dyTailStart + dyDepth) + + define [superEllipse theta] : list + Math.pow [Math.cos theta] (2 / DiagTailSuperness) + Math.pow [Math.sin theta] (2 / DiagTailSuperness) + + define [superEllipseDerivative theta] : begin + local dc : (-2 / DiagTailSuperness) * [Math.sin theta] * [Math.pow [Math.cos theta] (2 / DiagTailSuperness - 1)] + local ds : (+2 / DiagTailSuperness) * [Math.cos theta] * [Math.pow [Math.sin theta] (2 / DiagTailSuperness - 1)] + local h : Math.hypot dc ds + return : list (dc / h) (ds / h) + + define [FArc tailAngle n] : begin + local results {} + foreach i [range 1 n] : begin + local t : i / n + local {tc ts} : superEllipse (t * tailAngle) + local {ec es} : superEllipse tailAngle + results.push : list (ts / es) ((1 - tc) / (1 - ec)) + return results + + export : define [R cx cy depth sw] : begin + define rInY : DefaultInnerRadius + return : list + curl cx (cy + [FineSw sw] + rInY) + arcvh 8 DiagTailSuperness + F (+1) cx cy rInY DefaultAngle depth sw + + export : define [L cx cy depth sw] : begin + define rInY : DefaultInnerRadius + return : list + curl cx (cy + [FineSw sw] + rInY) + arcvh 8 DiagTailSuperness + F (-1) cx cy rInY DefaultAngle depth sw define [JutIn left right jut swRef hSplit] : begin local ink : HSwToV swRef From a614952bf771cf2d5d07b7e3c2be1a857cf7d59a Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 18 Nov 2023 10:44:06 -0800 Subject: [PATCH 24/59] Release 28.0.0-alpha.1 --- CHANGELOG.md | 191 +--- doc/PACKAGE-LIST.md | 282 +++--- doc/character-variants.md | 178 ++-- doc/custom-build.md | 42 +- doc/cv-influences.md | 96 +- doc/packages-sha.txt | 908 +++++++++--------- ...ning-diacritical-marks-supplement.dark.svg | 192 ++-- ...ing-diacritical-marks-supplement.light.svg | 192 ++-- images/cs-block-currency-symbols.dark.svg | 2 +- images/cs-block-currency-symbols.light.svg | 2 +- images/cs-block-cyrillic-extended-a.dark.svg | 2 +- images/cs-block-cyrillic-extended-a.light.svg | 2 +- images/cs-block-cyrillic-extended-b.dark.svg | 4 +- images/cs-block-cyrillic-extended-b.light.svg | 4 +- images/cs-block-cyrillic-extended-d.dark.svg | 6 +- images/cs-block-cyrillic-extended-d.light.svg | 6 +- images/cs-block-cyrillic-supplement.dark.svg | 125 +-- images/cs-block-cyrillic-supplement.light.svg | 125 +-- images/cs-block-cyrillic.dark.svg | 12 +- images/cs-block-cyrillic.light.svg | 12 +- ...-enclosed-alphanumeric-supplement.dark.svg | 2 +- ...enclosed-alphanumeric-supplement.light.svg | 2 +- .../cs-block-enclosed-alphanumerics.dark.svg | 2 +- .../cs-block-enclosed-alphanumerics.light.svg | 2 +- images/cs-block-general-punctuation.dark.svg | 8 +- images/cs-block-general-punctuation.light.svg | 8 +- images/cs-block-georgian.dark.svg | 409 ++++++++ images/cs-block-georgian.light.svg | 409 ++++++++ images/cs-block-number-forms.dark.svg | 8 +- images/cs-block-number-forms.light.svg | 8 +- images/cs-block-phonetic-extensions.dark.svg | 2 +- images/cs-block-phonetic-extensions.light.svg | 2 +- ...block-superscripts-and-subscripts.dark.svg | 2 +- ...lock-superscripts-and-subscripts.light.svg | 2 +- ...cs-block-supplemental-punctuation.dark.svg | 146 +-- ...s-block-supplemental-punctuation.light.svg | 146 +-- images/cv-cyrl-el-straight.dark.svg | 2 +- images/cv-cyrl-el-straight.light.svg | 2 +- images/cv-cyrl-el-tailed.dark.svg | 2 +- images/cv-cyrl-el-tailed.light.svg | 2 +- ...gonal-tailed-crossbar-at-x-height.dark.svg | 2 +- ...onal-tailed-crossbar-at-x-height.light.svg | 2 +- images/cv-f-diagonal-tailed.dark.svg | 2 +- images/cv-f-diagonal-tailed.light.svg | 2 +- ...gonal-tailed-crossbar-at-x-height.dark.svg | 2 +- ...onal-tailed-crossbar-at-x-height.light.svg | 2 +- .../cv-f-flat-hook-diagonal-tailed.dark.svg | 2 +- .../cv-f-flat-hook-diagonal-tailed.light.svg | 2 +- images/cv-i-diagonal-tailed.dark.svg | 2 +- images/cv-i-diagonal-tailed.light.svg | 2 +- images/cv-i-serifed-diagonal-tailed.dark.svg | 2 +- images/cv-i-serifed-diagonal-tailed.light.svg | 2 +- images/cv-j-diagonal-tailed-serifed.dark.svg | 2 +- images/cv-j-diagonal-tailed-serifed.light.svg | 2 +- .../cv-j-diagonal-tailed-serifless.dark.svg | 2 +- .../cv-j-diagonal-tailed-serifless.light.svg | 2 +- ...diagonal-tailed-cursive-serifless.dark.svg | 2 +- ...iagonal-tailed-cursive-serifless.light.svg | 2 +- ...l-tailed-cursive-top-left-serifed.dark.svg | 2 +- ...-tailed-cursive-top-left-serifed.light.svg | 2 +- images/cv-l-diagonal-tailed.dark.svg | 2 +- images/cv-l-diagonal-tailed.light.svg | 2 +- images/cv-l-serifed-diagonal-tailed.dark.svg | 2 +- images/cv-l-serifed-diagonal-tailed.light.svg | 2 +- ...diagonal-tailed-middle-serifed-xh.dark.svg | 2 +- ...iagonal-tailed-middle-serifed-xh.light.svg | 2 +- ...ok-diagonal-tailed-middle-serifed.dark.svg | 2 +- ...k-diagonal-tailed-middle-serifed.light.svg | 2 +- ...-long-s-bent-hook-diagonal-tailed.dark.svg | 2 +- ...long-s-bent-hook-diagonal-tailed.light.svg | 2 +- ...diagonal-tailed-middle-serifed-xh.dark.svg | 2 +- ...iagonal-tailed-middle-serifed-xh.light.svg | 2 +- ...ok-diagonal-tailed-middle-serifed.dark.svg | 2 +- ...k-diagonal-tailed-middle-serifed.light.svg | 2 +- ...-long-s-flat-hook-diagonal-tailed.dark.svg | 2 +- ...long-s-flat-hook-diagonal-tailed.light.svg | 2 +- images/cv-lower-chi-chancery.dark.svg | 2 +- images/cv-lower-chi-chancery.light.svg | 2 +- images/cv-lower-iota-diagonal-tailed.dark.svg | 2 +- .../cv-lower-iota-diagonal-tailed.light.svg | 2 +- ...ower-iota-serifed-diagonal-tailed.dark.svg | 2 +- ...wer-iota-serifed-diagonal-tailed.light.svg | 2 +- images/cv-lower-tau-diagonal-tailed.dark.svg | 2 +- images/cv-lower-tau-diagonal-tailed.light.svg | 2 +- ...-q-diagonal-tailed-motion-serifed.dark.svg | 2 +- ...q-diagonal-tailed-motion-serifed.light.svg | 2 +- .../cv-q-diagonal-tailed-serifless.dark.svg | 2 +- .../cv-q-diagonal-tailed-serifless.light.svg | 2 +- ...-corner-diagonal-tailed-serifless.dark.svg | 2 +- ...corner-diagonal-tailed-serifless.light.svg | 2 +- ...rounded-diagonal-tailed-serifless.dark.svg | 2 +- ...ounded-diagonal-tailed-serifless.light.svg | 2 +- ...onal-tailed-asymmetric-short-neck.dark.svg | 2 +- ...nal-tailed-asymmetric-short-neck.light.svg | 2 +- ...nal-tailed-asymmetric-short-neck2.dark.svg | 2 +- ...al-tailed-asymmetric-short-neck2.light.svg | 2 +- .../cv-t-diagonal-tailed-asymmetric.dark.svg | 2 +- .../cv-t-diagonal-tailed-asymmetric.light.svg | 2 +- .../cv-t-diagonal-tailed-short-neck.dark.svg | 2 +- .../cv-t-diagonal-tailed-short-neck.light.svg | 2 +- .../cv-t-diagonal-tailed-short-neck2.dark.svg | 2 +- ...cv-t-diagonal-tailed-short-neck2.light.svg | 2 +- images/cv-t-diagonal-tailed.dark.svg | 2 +- images/cv-t-diagonal-tailed.light.svg | 2 +- images/cv-x-cursive.dark.svg | 2 +- images/cv-x-cursive.light.svg | 2 +- images/languages.dark.svg | 4 +- images/languages.light.svg | 4 +- images/matrix.dark.svg | 6 +- images/matrix.light.svg | 6 +- images/package-sample-Iosevka.dark.svg | 2 +- images/package-sample-Iosevka.light.svg | 2 +- images/package-sample-IosevkaAile.dark.svg | 6 +- images/package-sample-IosevkaAile.light.svg | 6 +- images/package-sample-IosevkaCurly.dark.svg | 2 +- images/package-sample-IosevkaCurly.light.svg | 2 +- .../package-sample-IosevkaCurlySlab.dark.svg | 4 +- .../package-sample-IosevkaCurlySlab.light.svg | 4 +- images/package-sample-IosevkaEtoile.dark.svg | 6 +- images/package-sample-IosevkaEtoile.light.svg | 6 +- images/package-sample-IosevkaFixed.dark.svg | 2 +- images/package-sample-IosevkaFixed.light.svg | 2 +- .../package-sample-IosevkaFixedCurly.dark.svg | 2 +- ...package-sample-IosevkaFixedCurly.light.svg | 2 +- ...kage-sample-IosevkaFixedCurlySlab.dark.svg | 4 +- ...age-sample-IosevkaFixedCurlySlab.light.svg | 4 +- .../package-sample-IosevkaFixedSS01.dark.svg | 2 +- .../package-sample-IosevkaFixedSS01.light.svg | 2 +- .../package-sample-IosevkaFixedSS02.dark.svg | 2 +- .../package-sample-IosevkaFixedSS02.light.svg | 2 +- .../package-sample-IosevkaFixedSS03.dark.svg | 2 +- .../package-sample-IosevkaFixedSS03.light.svg | 2 +- .../package-sample-IosevkaFixedSS04.dark.svg | 2 +- .../package-sample-IosevkaFixedSS04.light.svg | 2 +- .../package-sample-IosevkaFixedSS05.dark.svg | 2 +- .../package-sample-IosevkaFixedSS05.light.svg | 2 +- .../package-sample-IosevkaFixedSS06.dark.svg | 2 +- .../package-sample-IosevkaFixedSS06.light.svg | 2 +- .../package-sample-IosevkaFixedSS07.dark.svg | 2 +- .../package-sample-IosevkaFixedSS07.light.svg | 2 +- .../package-sample-IosevkaFixedSS08.dark.svg | 2 +- .../package-sample-IosevkaFixedSS08.light.svg | 2 +- .../package-sample-IosevkaFixedSS09.dark.svg | 2 +- .../package-sample-IosevkaFixedSS09.light.svg | 2 +- .../package-sample-IosevkaFixedSS10.dark.svg | 2 +- .../package-sample-IosevkaFixedSS10.light.svg | 2 +- .../package-sample-IosevkaFixedSS11.dark.svg | 2 +- .../package-sample-IosevkaFixedSS11.light.svg | 2 +- .../package-sample-IosevkaFixedSS12.dark.svg | 2 +- .../package-sample-IosevkaFixedSS12.light.svg | 2 +- .../package-sample-IosevkaFixedSS13.dark.svg | 2 +- .../package-sample-IosevkaFixedSS13.light.svg | 2 +- .../package-sample-IosevkaFixedSS14.dark.svg | 2 +- .../package-sample-IosevkaFixedSS14.light.svg | 2 +- .../package-sample-IosevkaFixedSS15.dark.svg | 2 +- .../package-sample-IosevkaFixedSS15.light.svg | 2 +- .../package-sample-IosevkaFixedSS16.dark.svg | 2 +- .../package-sample-IosevkaFixedSS16.light.svg | 2 +- .../package-sample-IosevkaFixedSS17.dark.svg | 2 +- .../package-sample-IosevkaFixedSS17.light.svg | 2 +- .../package-sample-IosevkaFixedSS18.dark.svg | 2 +- .../package-sample-IosevkaFixedSS18.light.svg | 2 +- .../package-sample-IosevkaFixedSlab.dark.svg | 4 +- .../package-sample-IosevkaFixedSlab.light.svg | 4 +- images/package-sample-IosevkaSS01.dark.svg | 2 +- images/package-sample-IosevkaSS01.light.svg | 2 +- images/package-sample-IosevkaSS02.dark.svg | 2 +- images/package-sample-IosevkaSS02.light.svg | 2 +- images/package-sample-IosevkaSS03.dark.svg | 2 +- images/package-sample-IosevkaSS03.light.svg | 2 +- images/package-sample-IosevkaSS04.dark.svg | 2 +- images/package-sample-IosevkaSS04.light.svg | 2 +- images/package-sample-IosevkaSS05.dark.svg | 2 +- images/package-sample-IosevkaSS05.light.svg | 2 +- images/package-sample-IosevkaSS06.dark.svg | 2 +- images/package-sample-IosevkaSS06.light.svg | 2 +- images/package-sample-IosevkaSS07.dark.svg | 2 +- images/package-sample-IosevkaSS07.light.svg | 2 +- images/package-sample-IosevkaSS08.dark.svg | 2 +- images/package-sample-IosevkaSS08.light.svg | 2 +- images/package-sample-IosevkaSS09.dark.svg | 2 +- images/package-sample-IosevkaSS09.light.svg | 2 +- images/package-sample-IosevkaSS10.dark.svg | 2 +- images/package-sample-IosevkaSS10.light.svg | 2 +- images/package-sample-IosevkaSS11.dark.svg | 2 +- images/package-sample-IosevkaSS11.light.svg | 2 +- images/package-sample-IosevkaSS12.dark.svg | 2 +- images/package-sample-IosevkaSS12.light.svg | 2 +- images/package-sample-IosevkaSS13.dark.svg | 2 +- images/package-sample-IosevkaSS13.light.svg | 2 +- images/package-sample-IosevkaSS14.dark.svg | 2 +- images/package-sample-IosevkaSS14.light.svg | 2 +- images/package-sample-IosevkaSS15.dark.svg | 2 +- images/package-sample-IosevkaSS15.light.svg | 2 +- images/package-sample-IosevkaSS16.dark.svg | 2 +- images/package-sample-IosevkaSS16.light.svg | 2 +- images/package-sample-IosevkaSS17.dark.svg | 2 +- images/package-sample-IosevkaSS17.light.svg | 2 +- images/package-sample-IosevkaSS18.dark.svg | 2 +- images/package-sample-IosevkaSS18.light.svg | 2 +- images/package-sample-IosevkaSlab.dark.svg | 4 +- images/package-sample-IosevkaSlab.light.svg | 4 +- images/package-sample-IosevkaTerm.dark.svg | 2 +- images/package-sample-IosevkaTerm.light.svg | 2 +- .../package-sample-IosevkaTermCurly.dark.svg | 2 +- .../package-sample-IosevkaTermCurly.light.svg | 2 +- ...ckage-sample-IosevkaTermCurlySlab.dark.svg | 4 +- ...kage-sample-IosevkaTermCurlySlab.light.svg | 4 +- .../package-sample-IosevkaTermSS01.dark.svg | 2 +- .../package-sample-IosevkaTermSS01.light.svg | 2 +- .../package-sample-IosevkaTermSS02.dark.svg | 2 +- .../package-sample-IosevkaTermSS02.light.svg | 2 +- .../package-sample-IosevkaTermSS03.dark.svg | 2 +- .../package-sample-IosevkaTermSS03.light.svg | 2 +- .../package-sample-IosevkaTermSS04.dark.svg | 2 +- .../package-sample-IosevkaTermSS04.light.svg | 2 +- .../package-sample-IosevkaTermSS05.dark.svg | 2 +- .../package-sample-IosevkaTermSS05.light.svg | 2 +- .../package-sample-IosevkaTermSS06.dark.svg | 2 +- .../package-sample-IosevkaTermSS06.light.svg | 2 +- .../package-sample-IosevkaTermSS07.dark.svg | 2 +- .../package-sample-IosevkaTermSS07.light.svg | 2 +- .../package-sample-IosevkaTermSS08.dark.svg | 2 +- .../package-sample-IosevkaTermSS08.light.svg | 2 +- .../package-sample-IosevkaTermSS09.dark.svg | 2 +- .../package-sample-IosevkaTermSS09.light.svg | 2 +- .../package-sample-IosevkaTermSS10.dark.svg | 2 +- .../package-sample-IosevkaTermSS10.light.svg | 2 +- .../package-sample-IosevkaTermSS11.dark.svg | 2 +- .../package-sample-IosevkaTermSS11.light.svg | 2 +- .../package-sample-IosevkaTermSS12.dark.svg | 2 +- .../package-sample-IosevkaTermSS12.light.svg | 2 +- .../package-sample-IosevkaTermSS13.dark.svg | 2 +- .../package-sample-IosevkaTermSS13.light.svg | 2 +- .../package-sample-IosevkaTermSS14.dark.svg | 2 +- .../package-sample-IosevkaTermSS14.light.svg | 2 +- .../package-sample-IosevkaTermSS15.dark.svg | 2 +- .../package-sample-IosevkaTermSS15.light.svg | 2 +- .../package-sample-IosevkaTermSS16.dark.svg | 2 +- .../package-sample-IosevkaTermSS16.light.svg | 2 +- .../package-sample-IosevkaTermSS17.dark.svg | 2 +- .../package-sample-IosevkaTermSS17.light.svg | 2 +- .../package-sample-IosevkaTermSS18.dark.svg | 2 +- .../package-sample-IosevkaTermSS18.light.svg | 2 +- .../package-sample-IosevkaTermSlab.dark.svg | 4 +- .../package-sample-IosevkaTermSlab.light.svg | 4 +- images/ss-i-off-0.dark.svg | 2 +- images/ss-i-off-0.light.svg | 2 +- images/ss-i-ss01-1.dark.svg | 2 +- images/ss-i-ss01-1.light.svg | 2 +- images/ss-i-ss02-1.dark.svg | 2 +- images/ss-i-ss02-1.light.svg | 2 +- images/ss-i-ss03-1.dark.svg | 2 +- images/ss-i-ss03-1.light.svg | 2 +- images/ss-i-ss04-1.dark.svg | 2 +- images/ss-i-ss04-1.light.svg | 2 +- images/ss-i-ss05-1.dark.svg | 2 +- images/ss-i-ss05-1.light.svg | 2 +- images/ss-i-ss06-1.dark.svg | 2 +- images/ss-i-ss06-1.light.svg | 2 +- images/ss-i-ss07-1.dark.svg | 2 +- images/ss-i-ss07-1.light.svg | 2 +- images/ss-i-ss08-1.dark.svg | 2 +- images/ss-i-ss08-1.light.svg | 2 +- images/ss-i-ss09-1.dark.svg | 2 +- images/ss-i-ss09-1.light.svg | 2 +- images/ss-i-ss10-1.dark.svg | 2 +- images/ss-i-ss10-1.light.svg | 2 +- images/ss-i-ss11-1.dark.svg | 2 +- images/ss-i-ss11-1.light.svg | 2 +- images/ss-i-ss12-1.dark.svg | 2 +- images/ss-i-ss12-1.light.svg | 2 +- images/ss-i-ss13-1.dark.svg | 2 +- images/ss-i-ss13-1.light.svg | 2 +- images/ss-i-ss14-1.dark.svg | 2 +- images/ss-i-ss14-1.light.svg | 2 +- images/ss-i-ss15-1.dark.svg | 22 +- images/ss-i-ss15-1.light.svg | 22 +- images/ss-i-ss16-1.dark.svg | 2 +- images/ss-i-ss16-1.light.svg | 2 +- images/ss-i-ss17-1.dark.svg | 2 +- images/ss-i-ss17-1.light.svg | 2 +- images/ss-i-ss18-1.dark.svg | 2 +- images/ss-i-ss18-1.light.svg | 2 +- images/ss-i-ss20-1.dark.svg | 2 +- images/ss-i-ss20-1.light.svg | 2 +- images/ss-u-off-0.dark.svg | 2 +- images/ss-u-off-0.light.svg | 2 +- images/ss-u-ss01-1.dark.svg | 2 +- images/ss-u-ss01-1.light.svg | 2 +- images/ss-u-ss02-1.dark.svg | 2 +- images/ss-u-ss02-1.light.svg | 2 +- images/ss-u-ss03-1.dark.svg | 2 +- images/ss-u-ss03-1.light.svg | 2 +- images/ss-u-ss04-1.dark.svg | 2 +- images/ss-u-ss04-1.light.svg | 2 +- images/ss-u-ss05-1.dark.svg | 2 +- images/ss-u-ss05-1.light.svg | 2 +- images/ss-u-ss06-1.dark.svg | 2 +- images/ss-u-ss06-1.light.svg | 2 +- images/ss-u-ss07-1.dark.svg | 2 +- images/ss-u-ss07-1.light.svg | 2 +- images/ss-u-ss08-1.dark.svg | 2 +- images/ss-u-ss08-1.light.svg | 2 +- images/ss-u-ss09-1.dark.svg | 2 +- images/ss-u-ss09-1.light.svg | 2 +- images/ss-u-ss10-1.dark.svg | 2 +- images/ss-u-ss10-1.light.svg | 2 +- images/ss-u-ss11-1.dark.svg | 2 +- images/ss-u-ss11-1.light.svg | 2 +- images/ss-u-ss12-1.dark.svg | 2 +- images/ss-u-ss12-1.light.svg | 2 +- images/ss-u-ss13-1.dark.svg | 2 +- images/ss-u-ss13-1.light.svg | 2 +- images/ss-u-ss14-1.dark.svg | 2 +- images/ss-u-ss14-1.light.svg | 2 +- images/ss-u-ss15-1.dark.svg | 2 +- images/ss-u-ss15-1.light.svg | 2 +- images/ss-u-ss16-1.dark.svg | 2 +- images/ss-u-ss16-1.light.svg | 2 +- images/ss-u-ss17-1.dark.svg | 2 +- images/ss-u-ss17-1.light.svg | 2 +- images/ss-u-ss18-1.dark.svg | 2 +- images/ss-u-ss18-1.light.svg | 2 +- images/ss-u-ss20-1.dark.svg | 2 +- images/ss-u-ss20-1.light.svg | 2 +- utility/generate-samples/templates/matrix.mjs | 24 +- utility/generate-samples/themes/index.mjs | 2 + 328 files changed, 2516 insertions(+), 1723 deletions(-) create mode 100644 images/cs-block-georgian.dark.svg create mode 100644 images/cs-block-georgian.light.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df4bee617..082953331d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,163 +1,34 @@ ## Modifications since last major version -### 27.3.5 - -* Add italic form of CYRILLIC SMALL LETTER THREE-LEGGED TE (`U+1C85`). -* Add top-right serif to fully serifed form for CYRILLIC SMALL LETTER TALL TE (`U+1C84`). -* Fix serifs of GREEK LETTER DIGAMMA (`U+03DC`) under `ss12`. -* Improve crossbar position of GREEK SMALL LETTER DIGAMMA (`U+03DD`) and add a middle serif under slab. -* Refine Greek Capital Sho (U+03F7) glyph (#2079). -* \[Experimental\] Add a font feature for texture control (#2081). - - Currently only available through custom builds with `build-texture-feature = true`. -* Make SYMBOL FOR DELETE FORM TWO (`U+2425`) narrow by default, align with other Control Pictures characters (#2084). -* Make APL FUNCTIONAL SYMBOL CIRCLE STAR (`U+235F`) always be five-pointed and upright, to align its pentagram history (#2083). - - -### 27.3.4 - -* Disunify anonymous untagged variant selectors for Cyrillic Capital Yeri/Yery for consistency in style-driven configurations. -* Make LATIN CAPITAL LETTER Y WITH LOOP (`U+1EFE`) follow variants of capital `Y` (`cv24`) for a more balanced slab-italic form like that of Cyrillic Capital U. -* Remove `base-serifed`-only variants for CYRILLIC SMALL LETTER STRAIGHT U (`U+04AF`, `U+04B1`). -* Make Etoile use `flat-bottom-serifed` for `M` and Cyrillic Lower Em (`cv13`, `cv74`). - - -### 27.3.3 - -* Make `cv96` take effect on math asterisk operators (#2066). -* Fix serifs of italic small Yat in Etoile (#2067). -* Add characters: - - LEFTWARDS HARPOON WITH BARB UP TO BAR (`U+2952`) .. DOWNWARDS HARPOON WITH BARB LEFT FROM BAR (`U+2961`). - - -### 27.3.2 - -* Fix overlapping serifs of italic Yat (#2061). -* Fix width of VERY MUCH GREATER-THAN (`U+22D9`). -* Remove duplicate variants for `U+0181`, `U+018A`, `U+01A4`, and `U+2C64`. -* Remove asymmetric variants for small capital `B` (`U+0299`, `U+1D03`) and Cyrillic Lower Ve (`U+0432`). - - -### 27.3.1 - -* Fix application of `cv39` on italic Cyrillic Yat. -* Fix mark placement for `U+024F`. -* Fix overlay placement of Tugrik Sign (U+20AE) under Etoile (#2060). - - -### 27.3.0 - -* Make the tailed variants of `i` and `l` use the fully-tailed shape even when upright, as is consistent with `t = bent-hook` (#1692). - - The old, slightly-curly variants for `i`, `l`, iota (`ι`) and tau (`τ`) are moved to `semi-tailed` variants. - - Corresponded SSes are changed to keep the shape identical to the old version. -* Make Cyrillic Yat to follow Yeri variants. Italic Yat will also respond to variants of `n` (#2047). -* Add short-tailed lowercase tau (`τ`) (#2050). -* Fix tailed variants for `U+02A0`. -* Stylistic set fixes: - * Fix `cv44` and `cv99` for `ss13`. - * Fix `cv48` and `cv54` for `ss17`. - * Fix `cv51` for Etoile. - * Fix `cv52` for `ss15` and Etoile. - * Fix `cv58` for `ss15`. - * Fix `cv59` for `ss07`. - * Fix `cv61` for `ss15` and `ss17`. - * Fix `cv66` for `ss01`, `ss06`, and `ss15`. - * Fix `vsAF` for `ss11`. - * Fix `vsAL` for `ss09` and `ss18`. - - -### 27.2.1 - -* Refine shape of flat `5` (#2030). -* Fix `ss02`, `ss04`, `ss06`, `ss13`, `ss17`'s application on `i` and `j` (#2033). -* Add tailed lower lambda (#2036). -* Add Chancery and Semi-Chancery variants for lowercase `x` and Greek Chi (#2037). -* Add `arrow-lr` ligation group for C-like's spaceship operators (#2041). -* Add raised cap-height cent sign (`¢`) variants to `VSAM` (#2044). -* Fix `cv02`, `cv04`, `cv05`, `cv06`, `cv11`, `cv12`, `cv15`, `cv17`, `cv18`, `cv25`, `cv28`, `cv43`, `cv70`, `cv71`, `cv81`, and `cv82` for `ss17` under slab. - - -### 27.2.0 - -* Add characters - - TELEPHONE RECORDER (`U+2315`) (#2020). - - COUNTERSINK (`U+2335`) (#2020). - - BROKEN CIRCLE WITH NORTHWEST ARROW (`U+238B`) (#2020). - - TRIPLE PLUS (`U+29FB`) (#2020). -* Correction of letter assignments for stylistic styles: - - Fix `cv10` and `cv30` for `ss14`. - - Fix `cv12`, `cv36`, and `cv82` for `ss16`. - - Fix `cv22`, `cv31`, `cv47`, and `cv91` for `ss07`. - - Fix `cv26` for `ss07`, `ss14`, and `ss15`. - - Fix `cv28`, `cv43`, and `cv70` for `ss01`, `ss04`, `ss05`, `ss06`, `ss07`, `ss13`, and `ss16`. - - Fix `cv55` for `ss03`, `ss09`, `cv12`, and `ss14`. - - Fix `cv53` and `cv84` for `ss10`. - - Fix `cv58` for `ss06` and `ss10`. - - Fix `cv59` for `ss09` and `ss18`. - - Fix `cv61` for `ss08` and `ss20`. - - Fix `cv62` for `ss01`. - - Fix `cv63` for `ss02`, `ss05`, and `ss12`. - - Fix `cv68` for `ss03`. - - Fix `cv72` for `ss03`, `ss05`, `ss06`, `cv07`, and `ss13`. - - Fix `cv77` for `ss03`, `ss04`, `ss06`, `ss07`, `ss08`, `ss12`, `ss13`, and `ss18`. - - Fix `cv79` and `cv80` for `ss01`, `ss02`, `ss04`, `ss05`, `ss06`, `ss07`, `ss09`, `ss12`, `ss13`, `ss14`, `ss16`, `ss18`, and Aile. - - Fix `cv88` for `ss18`. - - Fix `vsAA` and `vsAM` for `ss06`. - - Fix `vsAG` for `ss03` and Etoile. - - -### 27.1.0 - -* \[**Breaking**\] Change of variant names: - - `five`.`vertical-upper-left-bar` → `five`.`upright-arched` - - `five`.`oblique-upper-left-bar` → `five`.`oblique-arched` -* Add characters: - - CYRILLIC CAPITAL LETTER DCHE (`U+052C`) (#1897). - - CYRILLIC SMALL LETTER DCHE (`U+052D`) (#1897). -* Add separate variant selector `VXAA` for Cyrillic Lower Er (`р`) (#2006). -* Add separate variant selector `VXAB` for Cyrillic Lower U (`у`) (#2006). -* Add flat middle stroke variant for `5` (#1995). -* Fix variants for Serbian Cyrillic Lower Pe (`п`). - - -### 27.0.2 - -* Add Characters - - LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG (`U+AB46`). -* Add variants for Cyrillic lower Ef (`ф`) with a split bowl (#1992). -* Add Bulgarian local variants for Cyrillic Ef (`Ф`,`ф`). -* Fix serifs in `U+01A6`. -* Improve serifs of Turn M (`U+019C`, `U+026F`) under quasi-proportional. -* Make Turn h (`U+0265`) and Turn M with Long Leg (`U+0270`) follow serif variants of `u`. -* Optimize geometry for `U+A65A` and `U+A65B` under extended width. -* Fix assignment of `8` for `ss14` (#1999). - - -### 27.0.1 - -* Add Characters - - VERY MUCH LESS-THAN (`U+22D8`) (#1990). - - VERY MUCH GREATER-THAN (`U+22D9`) (#1990). - - -### 27.0.0 - -* \[**Breaking**\] Variants for `π`, `τ` and `«` are inserted into the main tag sequence. As a consequence, variant features after them have the tags changed. -* \[**Breaking**\] Reordered variants of Eszet. -* \[**Breaking**\] Change of variant names: - - `upper-r`.`straight-motion-serifed` → `upper-r`.`straight-top-left-serifed` - - `upper-r`.`curly-motion-serifed` → `upper-r`.`curly-top-left-serifed` - - `upper-r`.`standing-motion-serifed` → `upper-r`.`standing-top-left-serifed` - - `upper-r`.`straight-open-motion-serifed` → `upper-r`.`straight-open-top-left-serifed` - - `upper-r`.`curly-open-motion-serifed` → `upper-r`.`curly-open-top-left-serifed` - - `upper-r`.`standing-open-motion-serifed` → `upper-r`.`standing-open-top-left-serifed` -* Add characters: - - COMBINING RING OVERLAY (`U+20D8`). -* Add bottom-right and top-left bottom-right serifed variants of `R`. -* Add bottom-left motion serifed variants of Cyrillic Ya (`Я`,`я`). -* Add cursive variants for Cyrillic Capital/Small Zhe (`Ж`,`ж`) (#1762). -* Allow R Rotunda (`U+A75A`, `U+A75B`) and Indian Rupee Sign (`U+20B9`) to have a bottom-right serif. -* Add OpenType `zero` feature (#1966). -* Fix broken geometry of `U+AB3A` under condensed width. -* Improve bowl shape of Latin Phi (`U+0278`). -* Fix dot radius of COMBINING THREE DOTS ABOVE (`U+20DB`), COMBINING FOUR DOTS ABOVE (`U+20DC`), and COMBINING TRIPLE UNDERDOT (`U+20D8`). +### 28.0.0-alpha.1 + +* \[**BREAKING**\] The filenames and package filenames are changed. + - They will now use PascalCase instead of kebab-case. + - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. +* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` +* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +* \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. +* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. +* Add Characters: + - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). + - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). +* Add hook-inward-serifed variants for `a` (#2085). +* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. +* Remove earless-corner variants for `U+027E`. diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 83f7090694..1e67d095dc 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,4 +1,4 @@ -# Package list of Release 27.3.5 +# Package list of Release 28.0.0-alpha.1 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -19,145 +19,145 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index 4657507c5d..a0dad70325 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -2034,9 +2034,9 @@ cv61 + - @@ -2113,11 +2113,11 @@ cv65 + - @@ -2614,19 +2614,19 @@ -cv84 +cv84 + + + - - - - - - + + + 1 @@ -2643,13 +2643,18 @@ 12 - - - - - - - + + + + + + + + + + + + 13 @@ -2658,7 +2663,40 @@ 16 17 18 - +19 +20 +21 +22 +23 +24 + + + + + + + + + + + + + + + + +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 cv85 @@ -3028,6 +3066,30 @@ VSAB + + + + + + +1 +2 +3 + + + +VSAC + + + + + +1 +2 + + + +VSAD @@ -3040,7 +3102,7 @@ -VSAC +VSAE @@ -3053,7 +3115,7 @@ -VSAD +VSAF @@ -3064,7 +3126,7 @@ -VSAE +VSAG @@ -3087,7 +3149,7 @@ -VSAF +VSAH @@ -3110,7 +3172,7 @@ -VSAG +VSAI @@ -3135,7 +3197,7 @@ -VSAH +VSAJ @@ -3154,7 +3216,26 @@ -VSAI +VSAK + + + + + + + + + +1 +2 +3 +4 +5 +6 + + + +VSAL @@ -3169,7 +3250,7 @@ -VSAJ +VSAM @@ -3180,31 +3261,7 @@ -VSAK - - - - - -1 -2 - - - -VSAL - - - - - - -1 -2 -3 - - - -VSAM +VSAN @@ -3217,7 +3274,7 @@ -VSAN +VSAO @@ -3228,25 +3285,6 @@ -VSAO - - - - - - - - - -1 -2 -3 -4 -5 -6 - - - VSAP diff --git a/doc/custom-build.md b/doc/custom-build.md index d34bc98d8f..534209d4c1 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -374,7 +374,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Λ` (Greek capital Lambda (`Λ`)):
capital-lambda = 'straight-serifless', cv60 = 1
Greek capital Lambda (Λ) with straight shape; without serifs (default for Sans)
capital-lambda = 'straight-top-serifed', cv60 = 2
Greek capital Lambda (Λ) with straight shape, and serifs at top
capital-lambda = 'straight-base-serifed', cv60 = 3
Greek capital Lambda (Λ) with straight shape, and serifs at base (default for Slab)
capital-lambda = 'straight-tri-serifed', cv60 = 4
Greek capital Lambda (Λ) with straight shape, and serifs at both top and base
capital-lambda = 'curly-serifless', cv60 = 5
Greek capital Lambda (Λ) with curly shape; without serifs
capital-lambda = 'curly-top-serifed', cv60 = 6
Greek capital Lambda (Λ) with curly shape, and serifs at top
capital-lambda = 'curly-base-serifed', cv60 = 7
Greek capital Lambda (Λ) with curly shape, and serifs at base
capital-lambda = 'curly-tri-serifed', cv60 = 8
Greek capital Lambda (Λ) with curly shape, and serifs at both top and base
- Styles for `λ` (Greek small Lambda): -
lower-lambda = 'straight', cv61 = 1
More-straight Greek small Lambda (λ) (default for Sans Upright, Sans Italic, Slab Italic)
lower-lambda = 'straight-turn', cv61 = 2
Greek small Lambda (λ) with straight upper and a tail turns leftward (default for Slab Upright)
lower-lambda = 'curly', cv61 = 3
More curly Greek small Lambda (λ), like Iosevka 2.x
lower-lambda = 'curly-turn', cv61 = 4
More curly Greek small Lambda (λ), like Iosevka 2.x, with a tail turns leftward
lower-lambda = 'tailed-turn', cv61 = 5
More curly Greek small Lambda (λ), with a tail turns leftward at top and a tail turns right at bottom-right
lower-lambda = 'curly-tailed-turn', cv61 = 6
More curly Greek small Lambda (λ), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg
+
lower-lambda = 'straight', cv61 = 1
More-straight Greek small Lambda (λ) (default for Sans Upright, Sans Italic, Slab Italic)
lower-lambda = 'straight-turn', cv61 = 2
Greek small Lambda (λ) with straight upper and a tail turns leftward (default for Slab Upright)
lower-lambda = 'tailed-turn', cv61 = 3
More curly Greek small Lambda (λ), with a tail turns leftward at top and a tail turns right at bottom-right
lower-lambda = 'curly', cv61 = 4
More curly Greek small Lambda (λ), like Iosevka 2.x
lower-lambda = 'curly-turn', cv61 = 5
More curly Greek small Lambda (λ), like Iosevka 2.x, with a tail turns leftward
lower-lambda = 'curly-tailed-turn', cv61 = 6
More curly Greek small Lambda (λ), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg
- Styles for `μ` (Greek small Mu):
lower-mu = 'toothed-serifless', cv62 = 1
Greek small Mu (μ) with toothed shape; without serifs
lower-mu = 'toothed-motion-serifed', cv62 = 2
Greek small Mu (μ) with toothed shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothed-bottom-right-serifed', cv62 = 3
Greek small Mu (μ) with toothed shape, and serif at bottom-right
lower-mu = 'toothed-serifed', cv62 = 4
Greek small Mu (μ) with toothed shape, and serifs
lower-mu = 'tailed-serifless', cv62 = 5
Greek small Mu (μ) with tailed shape; without serifs (default for Sans)
lower-mu = 'tailed-motion-serifed', cv62 = 6
Greek small Mu (μ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
lower-mu = 'tailed-serifed', cv62 = 7
Greek small Mu (μ) with tailed shape, and serifs (default for Slab Upright)
lower-mu = 'toothless-corner-serifless', cv62 = 8
Greek small Mu (μ) with toothless (corner bottom-right) shape; without serifs
lower-mu = 'toothless-corner-motion-serifed', cv62 = 9
Greek small Mu (μ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-corner-serifed', cv62 = 10
Greek small Mu (μ) with toothless (corner bottom-right) shape, and serifs
lower-mu = 'toothless-rounded-serifless', cv62 = 11
Greek small Mu (μ) with toothless (rounded) shape; without serifs
lower-mu = 'toothless-rounded-motion-serifed', cv62 = 12
Greek small Mu (μ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-rounded-serifed', cv62 = 13
Greek small Mu (μ) with toothless (rounded) shape, and serifs
- Styles for `ξ` (Greek lower Xi): @@ -382,7 +382,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `π` (Greek lower Pi):
lower-pi = 'tailless', cv64 = 1
Greek lower Pi (π) with a tailless shape
lower-pi = 'tailed', cv64 = 2
Greek lower Pi (π) with a tailed shape (default)
lower-pi = 'small-capital', cv64 = 3
Greek lower Pi (π) with a small-capital shape
- Styles for `τ` (Greek lower Tau): -
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'tailed', cv65 = 2
Greek lower Tau (τ) with curly tail
lower-tau = 'flat-tailed', cv65 = 3
Greek lower Tau (τ) with a flat tail (default)
lower-tau = 'diagonal-tailed', cv65 = 4
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 5
Greek lower Tau (τ) with a slightly curly tail
lower-tau = 'short-tailed', cv65 = 6
Greek lower Tau (τ) with a very short tail
+
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'short-tailed', cv65 = 2
Greek lower Tau (τ) with a very short tail
lower-tau = 'tailed', cv65 = 3
Greek lower Tau (τ) with curly tail
lower-tau = 'flat-tailed', cv65 = 4
Greek lower Tau (τ) with a flat tail (default)
lower-tau = 'diagonal-tailed', cv65 = 5
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 6
Greek lower Tau (τ) with a slightly curly tail
- Styles for `χ` (Greek lower Chi):
lower-chi = 'straight-serifless', cv66 = 1
Greek lower Chi (χ) with straight shape; without serifs (default for Sans)
lower-chi = 'straight-motion-serifed', cv66 = 2
Greek lower Chi (χ) with straight shape, and motion serifs
lower-chi = 'straight-serifed', cv66 = 3
Greek lower Chi (χ) with straight shape, and serifs (default for Slab)
lower-chi = 'curly-serifless', cv66 = 4
Greek lower Chi (χ) with curly shape; without serifs
lower-chi = 'curly-motion-serifed', cv66 = 5
Greek lower Chi (χ) with curly shape, and motion serifs
lower-chi = 'curly-serifed', cv66 = 6
Greek lower Chi (χ) with curly shape, and serifs
lower-chi = 'semi-chancery-straight', cv66 = 7
Greek lower Chi (χ) with Semi-chancery shape with straight counter-leg
lower-chi = 'semi-chancery-curly', cv66 = 8
Greek lower Chi (χ) with Semi-chancery shape with curly counter-leg
lower-chi = 'chancery', cv66 = 9
Greek lower Chi (χ) with Chancery shape
- Styles for `Ж` (Cyrillic Capital Zhe): @@ -420,7 +420,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Я` (Cyrillic Capital Ya):
cyrl-capital-ya = 'straight-serifless', cv83 = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv83 = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv83 = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'straight-open-serifless', cv83 = 4
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv83 = 5
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv83 = 6
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-serifless', cv83 = 7
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv83 = 8
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv83 = 9
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv83 = 10
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv83 = 11
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv83 = 12
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-serifless', cv83 = 13
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv83 = 14
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv83 = 15
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'standing-open-serifless', cv83 = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv83 = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv83 = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
- Styles for `я` (Cyrillic Lower Ya): -
cyrl-ya = 'straight-serifless', cv84 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv84 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv84 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-open-serifless', cv84 = 4
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv84 = 5
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv84 = 6
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'curly-serifless', cv84 = 7
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv84 = 8
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv84 = 9
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-open-serifless', cv84 = 10
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv84 = 11
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv84 = 12
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'standing-serifless', cv84 = 13
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv84 = 14
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv84 = 15
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-open-serifless', cv84 = 16
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv84 = 17
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv84 = 18
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
+
cyrl-ya = 'straight-serifless', cv84 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv84 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv84 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-tailed-serifless', cv84 = 4
Cyrillic Lower Ya (я) with straight leg, and tail; without serifs
cyrl-ya = 'straight-tailed-motion-serifed', cv84 = 5
Cyrillic Lower Ya (я) with straight leg, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-tailed-serifed', cv84 = 6
Cyrillic Lower Ya (я) with straight leg, tail, and serifs
cyrl-ya = 'straight-open-serifless', cv84 = 7
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv84 = 8
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv84 = 9
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'straight-open-tailed-serifless', cv84 = 10
Cyrillic Lower Ya (я) with straight leg, open contour, and tail; without serifs
cyrl-ya = 'straight-open-tailed-motion-serifed', cv84 = 11
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-open-tailed-serifed', cv84 = 12
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and serifs
cyrl-ya = 'curly-serifless', cv84 = 13
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv84 = 14
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv84 = 15
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-tailed-serifless', cv84 = 16
Cyrillic Lower Ya (я) with curly leg, and tail; without serifs
cyrl-ya = 'curly-tailed-motion-serifed', cv84 = 17
Cyrillic Lower Ya (я) with curly leg, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-tailed-serifed', cv84 = 18
Cyrillic Lower Ya (я) with curly leg, tail, and serifs
cyrl-ya = 'curly-open-serifless', cv84 = 19
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv84 = 20
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv84 = 21
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'curly-open-tailed-serifless', cv84 = 22
Cyrillic Lower Ya (я) with curly leg, open contour, and tail; without serifs
cyrl-ya = 'curly-open-tailed-motion-serifed', cv84 = 23
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-open-tailed-serifed', cv84 = 24
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and serifs
cyrl-ya = 'standing-serifless', cv84 = 25
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv84 = 26
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv84 = 27
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-tailed-serifless', cv84 = 28
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and tail; without serifs
cyrl-ya = 'standing-tailed-motion-serifed', cv84 = 29
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and motion serifs at bottom-left
cyrl-ya = 'standing-tailed-serifed', cv84 = 30
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and serifs
cyrl-ya = 'standing-open-serifless', cv84 = 31
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv84 = 32
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv84 = 33
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
cyrl-ya = 'standing-open-tailed-serifless', cv84 = 34
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and tail; without serifs
cyrl-ya = 'standing-open-tailed-motion-serifed', cv84 = 35
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'standing-open-tailed-serifed', cv84 = 36
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and serifs
- Styles for `0`:
zero = 'unslashed', cv85 = 1
Zero (0) with standard body shape; without slash
zero = 'slashed', cv85 = 2
Zero (0) with standard body shape, and slash (default)
zero = 'reverse-slashed', cv85 = 3
Zero (0) with standard body shape, and revese slash
zero = 'tall-slashed', cv85 = 4
Zero (0) with standard body shape, and tall slash
zero = 'tall-reverse-slashed', cv85 = 5
Zero (0) with standard body shape, and tall reverse slash
zero = 'dotted', cv85 = 6
Zero (0) with standard body shape, and center dot
zero = 'long-dotted', cv85 = 7
Zero (0) with standard body shape, and long center dot
zero = 'slashed-split', cv85 = 8
Zero (0) with standard body shape, and slash separated from the outline
zero = 'reverse-slashed-split', cv85 = 9
Zero (0) with standard body shape, and reverse slash separated from the outline
zero = 'broken-slash', cv85 = 10
Zero (0) with standard body shape, and slash broken in the middle (like in Fixedsys)
zero = 'broken-reverse-slash', cv85 = 11
Zero (0) with standard body shape, and reverse slash broken in the middle
zero = 'broken-vertical-bar', cv85 = 12
Zero (0) with standard body shape, and vertical bar broken in the middle
zero = 'slashed-cutout', cv85 = 13
Zero (0) with standard body shape, and a slash cutout
zero = 'reverse-slashed-cutout', cv85 = 14
Zero (0) with standard body shape, and a reverse-slash cutout
zero = 'tall-slashed-cutout', cv85 = 15
Zero (0) with standard body shape, and a taller slash cutout
zero = 'tall-reverse-slashed-cutout', cv85 = 16
Zero (0) with standard body shape, and a taller reverse-slash cutout
zero = 'vertical-bar-cutout', cv85 = 17
Zero (0) with standard body shape, and a vertical bar cutout
zero = 'top-right-cutout', cv85 = 18
Zero (0) with standard body shape, and the top-right bit cutout
zero = 'oval-unslashed', cv85 = 19
Zero (0) with oval body shape; without slash
zero = 'oval-slashed', cv85 = 20
Zero (0) with oval body shape, and slash
zero = 'oval-reverse-slashed', cv85 = 21
Zero (0) with oval body shape, and revese slash
zero = 'oval-tall-slashed', cv85 = 22
Zero (0) with oval body shape, and tall slash
zero = 'oval-tall-reverse-slashed', cv85 = 23
Zero (0) with oval body shape, and tall reverse slash
zero = 'oval-dotted', cv85 = 24
Zero (0) with oval body shape, and center dot
zero = 'oval-long-dotted', cv85 = 25
Zero (0) with oval body shape, and long center dot
zero = 'oval-slashed-split', cv85 = 26
Zero (0) with oval body shape, and slash separated from the outline
zero = 'oval-reverse-slashed-split', cv85 = 27
Zero (0) with oval body shape, and reverse slash separated from the outline
zero = 'oval-broken-slash', cv85 = 28
Zero (0) with oval body shape, and slash broken in the middle (like in Fixedsys)
zero = 'oval-broken-reverse-slash', cv85 = 29
Zero (0) with oval body shape, and reverse slash broken in the middle
zero = 'oval-broken-vertical-bar', cv85 = 30
Zero (0) with oval body shape, and vertical bar broken in the middle
zero = 'oval-slashed-cutout', cv85 = 31
Zero (0) with oval body shape, and a slash cutout
zero = 'oval-reverse-slashed-cutout', cv85 = 32
Zero (0) with oval body shape, and a reverse-slash cutout
zero = 'oval-tall-slashed-cutout', cv85 = 33
Zero (0) with oval body shape, and a taller slash cutout
zero = 'oval-tall-reverse-slashed-cutout', cv85 = 34
Zero (0) with oval body shape, and a taller reverse-slash cutout
zero = 'oval-vertical-bar-cutout', cv85 = 35
Zero (0) with oval body shape, and a vertical bar cutout
zero = 'oval-top-right-cutout', cv85 = 36
Zero (0) with oval body shape, and the top-right bit cutout
zero = 'diamond-unslashed', cv85 = 37
Zero (0) with diamond body shape; without slash
zero = 'diamond-slashed', cv85 = 38
Zero (0) with diamond body shape, and slash
zero = 'diamond-reverse-slashed', cv85 = 39
Zero (0) with diamond body shape, and revese slash
zero = 'diamond-tall-slashed', cv85 = 40
Zero (0) with diamond body shape, and tall slash
zero = 'diamond-tall-reverse-slashed', cv85 = 41
Zero (0) with diamond body shape, and tall reverse slash
zero = 'diamond-dotted', cv85 = 42
Zero (0) with diamond body shape, and center dot
zero = 'diamond-long-dotted', cv85 = 43
Zero (0) with diamond body shape, and long center dot
zero = 'diamond-slashed-split', cv85 = 44
Zero (0) with diamond body shape, and slash separated from the outline
zero = 'diamond-reverse-slashed-split', cv85 = 45
Zero (0) with diamond body shape, and reverse slash separated from the outline
zero = 'diamond-broken-slash', cv85 = 46
Zero (0) with diamond body shape, and slash broken in the middle (like in Fixedsys)
zero = 'diamond-broken-reverse-slash', cv85 = 47
Zero (0) with diamond body shape, and reverse slash broken in the middle
zero = 'diamond-broken-vertical-bar', cv85 = 48
Zero (0) with diamond body shape, and vertical bar broken in the middle
zero = 'diamond-slashed-cutout', cv85 = 49
Zero (0) with diamond body shape, and a slash cutout
zero = 'diamond-reverse-slashed-cutout', cv85 = 50
Zero (0) with diamond body shape, and a reverse-slash cutout
zero = 'diamond-tall-slashed-cutout', cv85 = 51
Zero (0) with diamond body shape, and a taller slash cutout
zero = 'diamond-tall-reverse-slashed-cutout', cv85 = 52
Zero (0) with diamond body shape, and a taller reverse-slash cutout
zero = 'diamond-vertical-bar-cutout', cv85 = 53
Zero (0) with diamond body shape, and a vertical bar cutout
zero = 'diamond-top-right-cutout', cv85 = 54
Zero (0) with diamond body shape, and the top-right bit cutout
- Styles for `1`: @@ -450,37 +450,37 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `*`:
asterisk = 'penta-high', cv98 = 1
Asterisk (*) with five-pointed shape, and high position (default)
asterisk = 'penta-mid', cv98 = 2
Asterisk (*) with five-pointed shape, and medium position
asterisk = 'penta-low', cv98 = 3
Asterisk (*) with five-pointed shape, and low position
asterisk = 'turn-penta-high', cv98 = 4
Asterisk (*) with turned five-pointed shape, and high position
asterisk = 'turn-penta-mid', cv98 = 5
Asterisk (*) with turned five-pointed shape, and medium position
asterisk = 'turn-penta-low', cv98 = 6
Asterisk (*) with turned five-pointed shape, and low position
asterisk = 'hex-high', cv98 = 7
Asterisk (*) with six-pointed shape, and high position
asterisk = 'hex-mid', cv98 = 8
Asterisk (*) with six-pointed shape, and medium position
asterisk = 'hex-low', cv98 = 9
Asterisk (*) with six-pointed shape, and low position
asterisk = 'turn-hex-high', cv98 = 10
Asterisk (*) with turned six-pointed shape, and high position
asterisk = 'turn-hex-mid', cv98 = 11
Asterisk (*) with turned six-pointed shape, and medium position
asterisk = 'turn-hex-low', cv98 = 12
Asterisk (*) with turned six-pointed shape, and low position
- Styles for `_`: -
underscore = 'above-baseline', cv99 = 1
Extra-high _, placed right below baseline
underscore = 'high', cv99 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv99 = 3
Lower underscore _, placed right above descender line
+
underscore = 'above-baseline', cv99 = 1
Extra-high _, placed right above baseline
underscore = 'high', cv99 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv99 = 3
Lower underscore _, placed right above descender line
- Styles for `^`:
caret = 'high', VSAA = 1
Higher circumflex ^
caret = 'medium', VSAA = 2
Lower circumflex ^ (default)
caret = 'low', VSAA = 3
Lower circumflex ^
+ - Styles for `` ` ``: +
ascii-grave = 'straight', VSAB = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAB = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAB = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
+ - Styles for `'`: +
ascii-single-quote = 'straight', VSAC = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAC = 2
Show ASCII quote (") as raised comma.
- Styles for `(`, `)`: -
paren = 'normal', VSAB = 1
Parenthesis with normal contour (default)
paren = 'large-contour', VSAB = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', VSAB = 3
Parenthesis with flat arc, like that in JetBrains Mono
+
paren = 'normal', VSAD = 1
Parenthesis with normal contour (default)
paren = 'large-contour', VSAD = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', VSAD = 3
Parenthesis with flat arc, like that in JetBrains Mono
- Styles for `{`, `}`: -
brace = 'straight', VSAC = 1
More straight braces
brace = 'curly', VSAC = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAC = 3
Curly braces with flat boundary shape
+
brace = 'straight', VSAE = 1
More straight braces
brace = 'curly', VSAE = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAE = 3
Curly braces with flat boundary shape
- Styles for `«`, `»` (Guillemets): -
guillemet = 'straight', VSAD = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAD = 2
Curly Guillemets (« ») (default)
+
guillemet = 'straight', VSAF = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAF = 2
Curly Guillemets (« ») (default)
- Styles for `#`: -
number-sign = 'upright', VSAE = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAE = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAE = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAE = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAE = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAE = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAE = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAE = 8
Number sign with slanted bars, open inner, and taller than digits
+
number-sign = 'upright', VSAG = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAG = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAG = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAG = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAG = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAG = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAG = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAG = 8
Number sign with slanted bars, open inner, and taller than digits
- Styles for `&`: -
ampersand = 'closed', VSAF = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAF = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAF = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAF = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAF = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAF = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAF = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAF = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
+
ampersand = 'closed', VSAH = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAH = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAH = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAH = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAH = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAH = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAH = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAH = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
- Styles for `@`: -
at = 'threefold', VSAG = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAG = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAG = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAG = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAG = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAG = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAG = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAG = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAG = 9
At symbol (@) with compact body
+
at = 'threefold', VSAI = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAI = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAI = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAI = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAI = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAI = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAI = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAI = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAI = 9
At symbol (@) with compact body
- Styles for `$`: -
dollar = 'open', VSAH = 1
Dollar symbol with open contour
dollar = 'through', VSAH = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAH = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAH = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAH = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAH = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
+
dollar = 'open', VSAJ = 1
Dollar symbol with open contour
dollar = 'through', VSAJ = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAJ = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAJ = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAJ = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAJ = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
+ - Styles for `¢`: +
cent = 'open', VSAK = 1
Cent sign (¢) with open contour
cent = 'through', VSAK = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAK = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAK = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAK = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAK = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
- Styles for `%`: -
percent = 'dots', VSAI = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAI = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAI = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAI = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
+
percent = 'dots', VSAL = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAL = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAL = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAL = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
- Styles for `|`, `¦`: -
bar = 'natural-slope', VSAJ = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAJ = 2
Bar punctuations (|) is forced upright under italics and oblique
- - Styles for `'`: -
ascii-single-quote = 'straight', VSAK = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAK = 2
Show ASCII quote (") as raised comma.
- - Styles for `` ` ``: -
ascii-grave = 'straight', VSAL = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAL = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAL = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
+
bar = 'natural-slope', VSAM = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAM = 2
Bar punctuations (|) is forced upright under italics and oblique
- Styles for `?`: -
question = 'smooth', VSAM = 1
Smooth question mark (?) (default)
question = 'corner', VSAM = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAM = 3
Question mark (?) with a corner at middle and flat hook
+
question = 'smooth', VSAN = 1
Smooth question mark (?) (default)
question = 'corner', VSAN = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAN = 3
Question mark (?) with a corner at middle and flat hook
- Styles for `¶`: -
pilcrow = 'high', VSAN = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAN = 2
Lower pilcrow sign
- - Styles for `¢`: -
cent = 'open', VSAO = 1
Cent sign (¢) with open contour
cent = 'through', VSAO = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAO = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAO = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAO = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAO = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
+
pilcrow = 'high', VSAO = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAO = 2
Lower pilcrow sign
- Styles for `∂` (Partial derivative symbol):
partial-derivative = 'straight-bar', VSAP = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAP = 2
The upper bar of the partial derivative symbol is curly (default)
- Styles for `µ` (Micro sign): diff --git a/doc/cv-influences.md b/doc/cv-influences.md index 60c259e411..5cb6472cd1 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -21,7 +21,7 @@ - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: @@ -61,7 +61,7 @@ - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: @@ -93,7 +93,7 @@ - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: @@ -121,7 +121,7 @@ - `cv30`: - e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) + e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ԙ (`U+0519`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) - `cv31`: @@ -193,7 +193,7 @@ - `cv48`: - x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) + x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ԕ (`U+0515`), ԗ (`U+0517`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) - `cv49`: @@ -305,7 +305,7 @@ - `cv76`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: @@ -333,11 +333,11 @@ - `cv83`: - Я (`U+042F`) + Я (`U+042F`), Ԙ (`U+0518`) - `cv84`: - я (`U+044F`) + я (`U+044F`), ԙ (`U+0519`) - `cv85`: @@ -385,7 +385,7 @@ - `cv96`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: @@ -405,55 +405,55 @@ - `VSAB`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \` (`U+0060`) - `VSAC`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ' (`U+0027`) - `VSAD`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAE`: - \# (`U+0023`), ᫆ (`U+1AC6`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAF`: - & (`U+0026`), ⅋ (`U+214B`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAG`: - @ (`U+0040`) + \# (`U+0023`), ᫆ (`U+1AC6`) - `VSAH`: - $ (`U+0024`), 🄏 (`U+1F10F`) + & (`U+0026`), ⅋ (`U+214B`) - `VSAI`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + @ (`U+0040`) -- `VSAK`: +- `VSAJ`: - ' (`U+0027`) + $ (`U+0024`), 🄏 (`U+1F10F`) -- `VSAL`: +- `VSAK`: - \` (`U+0060`) + ¢ (`U+00A2`) -- `VSAM`: +- `VSAL`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAN`: - ¶ (`U+00B6`), ⁋ (`U+204B`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAO`: - ¢ (`U+00A2`) + ¶ (`U+00B6`), ⁋ (`U+204B`) - `VSAP`: @@ -484,7 +484,7 @@ - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: @@ -524,7 +524,7 @@ - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: @@ -556,7 +556,7 @@ - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: @@ -584,7 +584,7 @@ - `cv30`: - e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) + e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ԙ (`U+0519`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) - `cv31`: @@ -656,7 +656,7 @@ - `cv48`: - x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) + x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ԕ (`U+0515`), ԗ (`U+0517`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) - `cv49`: @@ -768,7 +768,7 @@ - `cv76`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: @@ -796,11 +796,11 @@ - `cv83`: - Я (`U+042F`) + Я (`U+042F`), Ԙ (`U+0518`) - `cv84`: - я (`U+044F`) + я (`U+044F`), ԙ (`U+0519`) - `cv85`: @@ -848,7 +848,7 @@ - `cv96`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: @@ -868,59 +868,59 @@ - `VSAB`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \` (`U+0060`) - `VSAC`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ' (`U+0027`) - `VSAD`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAE`: - \# (`U+0023`), ᫆ (`U+1AC6`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAF`: - & (`U+0026`), ⅋ (`U+214B`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAG`: - @ (`U+0040`) + \# (`U+0023`), ᫆ (`U+1AC6`) - `VSAH`: - $ (`U+0024`), 🄏 (`U+1F10F`) + & (`U+0026`), ⅋ (`U+214B`) - `VSAI`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + @ (`U+0040`) - `VSAJ`: - | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) + $ (`U+0024`), 🄏 (`U+1F10F`) - `VSAK`: - ' (`U+0027`) + ¢ (`U+00A2`) - `VSAL`: - \` (`U+0060`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAM`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) - `VSAN`: - ¶ (`U+00B6`), ⁋ (`U+204B`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAO`: - ¢ (`U+00A2`) + ¶ (`U+00B6`), ⁋ (`U+204B`) - `VSAP`: diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index 68b5a1384a..d4db981e96 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,456 +1,452 @@ -e385e21e8ca96e4dfd412d1a117f278a173637e9e63083e1cd560b6323fa89cb undefined -8404c941d3fac293355b65c23a6bee8be499a468d660c163f2dfea70d1e2da49 undefined -b12da78e9d6f272b1fc23cd6ee8de5d1103f11a322cd5432cfcf3e30b5c03920 undefined -06e4ac5cf44c8228fc491b352fbe41dc74ecf9ae574b089edbeccb14f99c2af5 undefined -8f77f1a17bde3de6b4a39f0bf0622c533ea554c6f19821052b391a26393a3207 undefined -9cfce3ccf22dfe978848c42addc76397098a868512ceb77ef60637fdcf694cb0 undefined -361f48d641c02318b70ce4e1f93fb743b9d4b3379498837f1b5f75394948dc81 undefined -47f7a127a8b9525c2a3b1729649c53acb29c0ce5ee05093c27594ef6c64a8ca1 undefined -9566205a0378b1242e5c5dfb5e3559a59e95514261863d9e0373a28a96a035a5 undefined -bbbb829c8cbe50478e027cd7529e8abb0e5a246fa1e02a8635503df2648acb95 undefined -66bc860b6aafa4ab06880665927bd8772649401b8235c39a109b6ef966827d0b undefined -fb348a23e3371573e6285c939e88876219847c7824880f38dcf9fe430884bf83 undefined -47a8874c34131dfaee19643168cb841234df0c8e71c91aaaa74fe8b078eb8ab5 undefined -401727c2b4007547a358c7f09f51a1a36236ed55c42f6f5d0c476ac07cb92188 undefined -65ee2d4423cd38a5ceb87d2f40fe6ff7d7bf1a3bfa975444a48e017105f63b51 undefined -9fdfdacbd05940e55b9fda334002f501fea3b0e5daf72b6ec9fd94301eab6755 undefined -38ccb2b79cc42c97f4e91e2013edfccd0606670cf55b909e1a602d0fb3bf0ce5 undefined -03cb2db581cb96ec09a727e76080101c2aefd20c3d6a5a4889a7122342c952a5 undefined -f75729d1feb674a58e1f448b3056b22ab04fc1e88f2184bd72267f58b0922d38 undefined -ab140439642afb85053f79d124a2e5ad9fa95647697c37f9f22e6aea6af0a4d9 undefined -38c4d2f7e30e2f02fc43860a7b9a19af9a5e7a778c5a4fd2aa6414ef90258ad6 undefined -efbeee7ad53e0e92dab60c1246a71c5f82fc9ad2f7b0aa3b76b85dea356e8749 undefined -0763df0e0558a6c4be153016869998573c800237d558f9a6eb3b24376bb023cf undefined -49b416e4f14d5da0597e00d53efdc380dedadf791d229c0a23bb0c29280fc969 undefined -24da413663310eac37f9d8e5a51e10794d9ed7757b7896735cfaabcc433e73fa undefined -ea7c01de5ece31a645f277dbaba38b7e2a15b08ea99318810395296fddddbc77 undefined -1228bf4e1246170b2cd941aa36138065df5367e0ede644987f5dc5c68aab1226 undefined -c2989df0ec9aff9c17e089fa86ae99dad327c763c02fbdbe12afeb6a7d7e69db undefined -8d15f7885d08f70672ebeff96a0c490596fcbf5eb564402301ce190a32229af2 undefined -a92e9caac22b2a285eabd1bf1c92d058056296f79c696d25382c4fa19716d239 undefined -af0a793e7e849c920adb6285831f43333a6de64fbe633267ab07838ea8626b96 undefined -03a6d457e361ef8f7ce425da9ce3efd3866cd018ed736447e479a60af44bb1b6 undefined -f55cf5510fd645510e2240aaf9d428a032db040bf4c77c02884c52ee7c79e8f5 undefined -cfd9b295573d29a49bda4dc4e8c46ed66a9dd172ee1210e29cabfe807823d3ae undefined -cc345dfc3756bd34b3a0d458ad06d175a4e5ad6a44cfe059fe955bbba50ef922 undefined -57a2843b5f9cf35d19f4c6ea6f9b78054c0d4f57244a516d6942b04c4f82703d undefined -38c572df1b3985d80db1630985e8e90acc0d09348f705a6b8d42ef45f70f095c undefined -729b953108ba5db27f9246b3f305434595099a4da16d2d2d67753663d94a8362 undefined -30a67db499099ce0936a3e95d84fd1af9ae8d139303dfdb4e34f905649375d12 undefined -2255db3b3429df0a91a6f478e7447357a2f7bbfc8d55aad231aa8704857e7e74 undefined -b4ec912aa01834e5f85086f117b1b6ce37b35944c61c5f86b704f9a1d0871de7 undefined -9415a8d166ec916311d226ce9e0eab03b8fab7ca7667721f67614834c511b657 undefined -cac67ac6540c8e5f9b462edee095643e3ca4afc5f90aab37538c711dbe3a54fe undefined -c70a7296986e826c0b80df19a0c57c95f06584e83476bcbaac9247620aeb5775 undefined -6df038af3dcc4b2e769c9acd99e9eff89e433d1edd294c2a05ba35e585a62a95 undefined -fe731642e77885fc6c0a80f8bb9f9fffe6e722dd23dcb8f9421fbdbde2d7e887 undefined -e12e0e1105d8ad5be4dd96b46d61e645bfc94422586b89387bda1877f9604499 undefined -a8e4f0efaa70a225406b3dbe8f73f7e5123a4e49ac21500b6de06d4fc2d903dd undefined -8078ec7bcbde5fe6ec5370ec696d7e85ce43eae66f307a2044c4886dd8c5e31f undefined -86a9a5c1bec3bf574994b04cb613ca80de87c05380659d92c4fc8cff1d61e450 undefined -aa5f5d2617345b212ccc73a2026985c348b32fa0509b91ff3a411278eb8148e9 undefined -e2aa66cb754965f43df4aba79a7066b6bb2a954c17f3256bc7af7d986f91a529 undefined -4444a2e9c6951fdd83046749add9f6615bffe47e051588ad7c8b710f51244cd2 undefined -8d61a0e436b1210e5a9dd0b6e90c08b3c3788c43d87ebbc95a3cee312bc4f842 undefined -9b3496cd5d4f712518d40e00f47ffc821d11e9f26d2b8476ef06277b5cb542ad undefined -2726cf36edfed882096127467cc1a6800fc0e587fc8cbbbdea89b41ee39d06e5 undefined -58bc731432a0e66bef02eb6170dd9901d282dbd6910e3181674eb33827baf15e undefined -9c0b279367992868efbdd73a487fe5a64c66427ad07f48584f78cd1853e1391f undefined -6f301428b2b1644ed899b474e3b790b66df64fa6fdfbb6e8cbb7f06865704deb undefined -c3f0a973b4a4b5f0a28569b6ffb1087826ea0927ab5cebd1c2d8e707740d0742 undefined -19e516762b5b7df0c4ea48ec76e98c842b6414af3aaa0dba9d0bee1b0a600e4f undefined -b7f808a6cbd537cd11a01ed8838dbcd88cc1e92cd0ab7a0e05d0875695595758 undefined -2bf31fe90092fc6340ccdeed771618e1cbf01ecf66430029af72a8a06aae4251 undefined -f3ecbd51f881c845c9d9149ae54d01ad49243f87c3558685a4a38f712e4c179a undefined -bb7a4ab9d9c57b0646710610e663e933706e334811cc2280fa0ff2aec0c70ae2 undefined -fbfe5a5c6f403ab4947ea427dce24854712939d74a093d4ca93bc51fa54576a8 undefined -9077e6d850ab7d32a056d36b94b09ddfbba9c853ac459ba96fbbb82823bffff4 undefined -a52f4db9c55bc6da2062ede3f417de2ba6efd3f3cf66858e838c028694cc7e8f undefined -c178510c4218367397c4b302131cfc6edb75905e99d32a75a08028e57b7c3851 undefined -722cf3e67df09878b93b0a0cb3b8f45715b5e87cb41e46f6b887db23862a1be1 undefined -54b21dd6b51a13ce3e292de17c5d26b83dc9b781ebfd5ffcdade093bb21717ab undefined -e6e4112078467bd324eba3ddccde1c58e4d5240549f03341087ec8162a1a1e82 undefined -c4e4b80c783e7b2336bfdcd73e7f2a9b27d8595d14b80c890525c3002983030c undefined -b31dd9d65230e1b41d2c1dd549ae2f859c4e1c98275a71c6c11684c6e36c592a undefined -64d26fda2df50a74881bfb050629520de5f3cad643ac7237cb0d6e3bf8aba01f undefined -62110ce4a4dab1ef664cb7bc2da18167b0d063463b3bbea1aa9bad8d36cb9864 undefined -26f9784d23cbc673a78dbbb918933f3cb82f056642beff18f4bf95a3654bc8cd undefined -16c7367b925d05b345cbb3ab3f2d4173794795833a046edcecd1a44cc7f6b302 undefined -adfca16bbf99372a0c7a07835c62b88ebe0d580247565272e85fe2af706c0a7c undefined -5c2ea130dbd8862da52049fe2a9a9b2592e23474cb87455b9a70847cb05ba142 undefined -0375c946f2f1556dc411e9883304ead6cc634273c2756247292a7bbaf4c1e37a undefined -1cbb522820f55afb2f18d0df90ff59b930b171f1710b695105975a33e9dadf64 undefined -dd2da040b2dc487613cb4a17ccbc8a827b538ba0ae11deb4eabc74ff8227a45e undefined -677a1f017beaad4d6fa4653210b0383aa042567032beacdb06ac3e59e0281643 undefined -4f055e7428f5b2f29f394bedc6ed50c022b0565154a26dfbde934c558d9310cb undefined -657ed6efc8cad38a4d1949d800c12dafb86f45de682ab586a94e0feb0aa8d885 undefined -4dd4412c246d63cb6071af8351aab123fea86dd58f8cbcbcb6d593ac6d8ca29d undefined -66627740368ac9b400cd26bfd37d7199f11c01adbc55253ac80a42286e3639d6 undefined -b4179537bec41548e043bf6f18a139cd11b49de16626c26e6cc06f168cfca747 undefined -f552f0bc751f9cd9765f30c6f1ecb264e07d92e8365226d6588fe7c3839a0543 undefined -1175c3fe781c4b84883af1647a4b190c22252b17f3420c45d4e6d5d36b646add undefined -95a40dc0450f897fecb9d929bdfe728ffbb1c133cc5af34c09ea821c70cf5e84 undefined -3152dc4fcf202dba72da601df33e8564f85c0730ec3e2355bd46005a3df96768 undefined -cb61f64e2d6df25c8d8f80a55536dfb606a974ac9f00a45795c477445e4df6ee undefined -e36af04e3daddca54fb08f931f87afabcaf77c6c7e55a1dfa4a0b301ece31c8d undefined -33733ca2b4064a190c2eef4ae29dbf8a07832498d25b4858edf9149f288f9508 undefined -628ecb7fb3fe555fd24287adf5514b40c0c6a658bb7ec970eac6c76ce2bf8d3d undefined -2470b167bd014a8ee85e0f9c44903176d682705e37679c7a23e2656abe0adebe undefined -409ff1b300ba6230b9089ff16d8100e23804dc1af9964e182be37a1f97497c1a undefined -c1fe513e8f78c891df95829ef2f32340129119c0a529c6267177f5bc8545a179 undefined -bfb7d323d5ce433b947fbfe9556a499f054f0041fe162c85ee1aa27e9f1c4004 undefined -792e9a69fd179f30e89253edbf11cdf020d3b9bb677171f6daff639790d15db0 undefined -52b614b32d031addea84155d727035de69c0b8a727033deb07a9045513d50e72 undefined -3966c2b7764275f00bbb0f2ce2c8cb19e07689ed82c5a6e4997033c2c1c2b418 undefined -4f8a18c7b5a917aad9dd86061299d2181573da6faed942e14eb6fdfcc115142e undefined -374c1d81243611fb7208ed6c7bab21ea3e2135d69cc9e578c458919d448c42cd undefined -92af99ff35077e0937f4be1883607f069d5b3e2a5fa51ef0692469a5a523c422 undefined -ce5c8c4e4d210b10698a4ba60655d6281b1be0c4ac909e3fdf63296ab8dbd78c undefined -96ae84f20c50637c7f804bf31e2edc724b20dcd692b306ca7a7d45b703fef671 undefined -2377a34ea6ad923f2dcc53438b4a7c04da973e295cc9edb3df992a3125ec8162 undefined -0bc22b222a148b4019531bc9980ab272e3b612244cf224ced1e0098f28107347 undefined -786d686a39ed8d2c2c35dac380ff2002e6a322e5a2e5ccead291d133aff56245 undefined -2ca47eb7aae7d9959a7ac6c73e2e9c06f41a18f72e10467f9d9e735edab1e07a undefined -9bd0518e29a4aeb1592f26028fe04a996534e5c0845e3ca8615030f84159a03e undefined -07f04ef2d00a4d011dfe6cd3bba24c0797c444ff67d9ae59983f98702c21c279 undefined -b6566b4a265bb8cb54ba1ec6f9c7751ae37044350d683824685773fd5b8106a1 undefined -ed0d3466c76cb67f3e1879fdc4b6d35b61b1dc039a84e93dc6c41cd5dee481ce undefined -b9fc3fa6a8163347bb4b01a85321cd26a6e3fc89554923c721c969df00b7be84 undefined -9c68211506b84345e3b6715bdb8bc515595cfdc7ac365711e10de5d11e3b0f04 undefined -0cc332984251d2bf9b9019b74ea50b31060fac012b662a150e3ae875bc3a66ba undefined -7c20bb24fb778b168b56c88e08b081ba180b7a30a31163a00f101247a649c6bd undefined -825fcebb5bc1cf4cdf84be2684944a8258d06a44840d95c90a098958231a648b undefined -87d6362bef5bac468c9d932f687c340d8f86c4b8aa6f155b518922ab10d99bec undefined -27fda03d0f28475f36a0f1e4ca7d75e2206b5f7f4193de327ceaa63671217f75 undefined -98d36c5470623dbcc1c076570fb3708d2f6d97f0146a5cd78f473ca1ccd3f8f0 undefined -de1bfcc1b452d099e63caee09c24be443b4f5c4b544855c11aec503720898eb8 undefined -270f98d3583a38402b8cce3153cd8c9de511fd14bf0461d10fb385b8fe0006a3 undefined -047d7fe1005da3e018f86cd5b548d035c9b7a42287c13d7a72014c26d00fba17 undefined -8ad68f8055a57537dc155dfd1c77dc503df560a3e22b03afdcf6de0e50392b03 undefined -58f4ac2cc24d4554b0681d9f8fd07aef1b82c0b8d6a3964e4d6bf609e5b7b2ea undefined -66c9aca9461f67328e31b2caefa9e86cc00d5f8bff2e16ade65d19b3fd250d73 undefined -72f8f71d41b7b3f5e046167be20ff4dbdfb77753cef60a2589bb22ba653d7af5 undefined -7003a2f88437399dfcccf81862b816c0654ef24f64b7ebec26f22ae89c9b5374 undefined -198dde0bb8c7dcb79d693691720d7a99cb352ed252f67baa9b68e5a12f33837c undefined -24666612886c15539ea833c92af4994addda24afd388bfc86dca9785ff6bf262 undefined -8d690014f20fea00d0fbbf0cc6bb9715996d24facdc45a15520ce676a23260c4 undefined -f525058d390af94a75f1906c74ff870dc0d5a0f2f4d45ba04a38d7f1f731ea2b undefined -47bbab26cfba7923d0f8a6176d9723201b521fbe2bc0ad5a514287fdafca5608 undefined -6f021f49fc27ad707b4aedd388f3454d9fe5e52c352b1accc375c79f8b446e08 undefined -1df4b72f55e1d76aafbb13ddbcdb086a33d2f087362c4bf304ff28e8342f6875 undefined -bbfcb2cfb291c8c458e91a313bd82da14727f7f8268bf583d4fd7ada9f826c58 undefined -ccdbe3dbdb920ea76a8a64a5bda6c1172a94211b407039eca237457e2915f34f undefined -07e1cfcd356e4897f3efcf8ffc404dbec37f27dd38461b62d634b4dce71ffbd7 undefined -a44dc45e349aba28e5e7d6f552f887e5d7343a480dbde20d931dbaba350654bb undefined -d85f5349c520f169e5c350c1c6928b687eae9bbb3c679631c3263f8ddd54287c undefined -e455c88f7c33a466ba412ac2c0cf9b5cbfccd8bb6b7531d3a7bd0ce4c5610b74 undefined -910d0a0891c78e14aef6af80888b25be29ea6010d1dace8fde610aa912c3a66c undefined -a48a2528c796254800bae793a7edfb390ca8f06c5b7ba3c477c5327907cf2d5a undefined -81b0280e85847e359e9fa9157001db852cb0bf906bcd3062d14a23d18886174e undefined -cdcb83396359d2c7be000b0245abf47d6f075e80943ef39fc71224b4f118b962 undefined -5acf1981795cc1fedb3e22b4b3b9d388b1be5bf48a3c875df9ad16aa6c152525 undefined -a39ec68bf3a41e06f6aee699db0a78b0a41ace4ca88190ac814d8a2e8b3caefa undefined -379f9bf0d90e0cabbd3230dc6d3cc9eabcfe15e56c92a1960ca6afef50cf073e undefined -c6d276366c9f85493774b0ff226d27cc221518f51f806345a80a3d4afbc8e244 undefined -56fcd8ba78ccbc7aed6858642d07d1ad015cdb9bee8b6210a0ab73595d5a4843 undefined -799b66c1e465ca4834edc76b615b8fc70e7a1d3fc055877cd65dec91260a3a33 undefined -b2482186dfe90e8cfccfb9b9804510594718bf4588f19520efece22bf140e8b9 undefined -67b6de2e175d6580bd368e1227366a66ff046debc2bd3f59cfeee50b322ba8c7 undefined -0e38af36eb8e61888d2b5db09c823d38f6234cdfa789fc38e1f5db47e5940e25 undefined -12f91f008abdd94e21aaa617c567cbc413158c15772d806f8db63f0341c86e45 undefined -e0b6588fd95f8be1c4b57db2d91cf62102ec864e081855463fc677742f3dfd87 undefined -ec13b6e123be8dc4558a058c14908610e2019f3e4eea72b43ab6479d5498aefd undefined -c400c16a55f8e0e651677b3b76e7e99ecda4e7c887a383a78220d5a5089c3924 undefined -d0112be6afbdc5f1c07180c3e70b92b2cf35f3b93275e2fc49fc5089beca1d4f undefined -b377ac652a50569051bd200cf52694aca6018391722c805bf261ffc9f8b120e0 undefined -cf8decd20e947969dd6086cd2d9529ac5466987b085abc37572fe8f3ff2beddf undefined -bae9d99979ec7d5575c6945bf5124b91275b6d1740332f13c5f627341e9f497d undefined -4a4c1c43094d152dff46291010814d7855590dcdd4a08efbc60314b5d9299162 undefined -90bfe8f1fd2d2a3bf71bbb59a000d43ec049f39f9a288ed83c86b6548d22d779 undefined -781a71817ed486d1e7b9a7fce02e01843f0c4fc22441873e91a01913c7de1ead undefined -3cb981e19d4b304ad5408edc60e327097c0628328653d9753730c7c1236bcaf4 undefined -30ea62f0e6c5bb12e7b1d5205de05a456ab4c6f8410ee86cab813917a692e3fc undefined -49e565fb9977df86092eb9cab4f9cc43e698eb801f1723fa86b7a751454702b8 undefined -cc69081d38dbefd835b1a9f02f7e4bb576e60b5180a0988b06cb5617c43c13c4 undefined -f9e2751e13c35a7d1b22e1622c994ecc5b477a2f0841c153d642c18e7348c8e2 undefined -4bec573fa61573e45a017c5e406c3c5254df7a5a07e74ef734da60b259b74109 undefined -31a8df90bf1c7620a14ca90be8a2c86512e7d2498ba7b55a2eb8985b14b1923b undefined -a64e0628960f180403d41ccf0911220653b8973651f6ff0c9484637d4d508ff9 undefined -ad36ab51d1e97afdfdd0e83d619ca856d8e9cdc0bf5f184b55b0c8a2fb2ee1b8 undefined -fcd3bc746c8e4b9c577dbaaab891a5aad9c5d8079c9a67790bbb9fa394155ad0 undefined -d8665674a68ea8c959be686e89548133668d085fbf15a75a1ec3187069bcb3f2 undefined -cc0e8c9a8a0dccaa0bbe6b1903d161dbce6c38bcebd363dec8945c7cd0749d31 undefined -137dbd23789ce058c996ea21907afd4c58ae2aeb2d3dedc8b88b5f945faaa0c2 undefined -260bd1a0ce7be0e77b2f22390420bf0d96c0249090fb3c33136ed8d69fdf8bfa undefined -99b108bb6a20d98a983c3784ecbb7c9175312f478dab3599b5c39ba6b5a18850 undefined -d1bd823c740ac0bafa3b9bb0bbc44e9fce6671ec13efc5f0059de03782bd7264 undefined -ac7f5676560947160a255bdf9850b0513fde7c4c90123795bc74d785cadbccfa undefined -ed60bb9d8f014a284cba53821937640354571e79c5a005feae494696efcd54e7 undefined -2a208698cc318dcfd9f831380fb1f37df9630f61b884429aaa1885bff13a4797 undefined -14463b2782cece3497d507efeefb44c08a66fc4d02173322e1a62bd1e9f5a0af undefined -2f78ab6c09b8d8ef2e0e3b4264ff9a2f5674621f28256079cbe1a1f63265fdba undefined -56c470b7a56d7283fb6f6ab6ece3829d910d6b7163717ed324b5ced956c4a268 undefined -275aed5c3c5a43bb86c6ea6f41a4174f9c18cbcb451ca1c4f8029276a2ae555d undefined -b0e4e76f5e4fb914d757dafd04763aaf37e5b9046fe762d45813fb8743ffe8b7 undefined -0d0c60a370d28e774a64bc0cd1df0570d30b336aa14def706c553680ac96beac undefined -c274f068cc4e7daee8a4fd944325798d5ced54570fd457b9e22aab3458c99b6d undefined -5c364bfb8570311fa94bbfbae41957408c19dc9985ac76f027f0b0f4225332a0 undefined -c9556267ea1c5f3c31a9fc87d1811368c5ab1bdb74128a706a9003d3206faf37 undefined -d0a53296b2387773d34494f83f5faf6289526594d398ef960448e0071761fb92 undefined -093af03c7ca81d4ec9877d32aab481dc3d3d3442d6baa8153482c7469e927268 undefined -6592863a510168ed77559fd9d77e9d74cdf810197f1feaeb08dd06a8659623c3 undefined -5e8267643b2dee564db884dc22f63d52d791b1ab07e279f8eb2cee528955133c undefined -00a5a9dc2f196df2f7296328932b95770607cd5ba2adc5c76870dac56cac0326 undefined -b63ca523a263ad66ef33ae231e356df16eb1cac13096dd1826a9214c506948b7 undefined -245ec774237bbf087562b266cdc712099e7987d079b8879d0ab49dccb090af21 undefined -9ce3044129ffa951443e5baba0279bf75cdf3b00a5e582d9b4c3440a1fd7975f undefined -2d0033bb7914f738c149b1547d87953a3614cf67fbf2998bb70ee4771e477611 undefined -9139237f33a395d9236952a913f768f246397dc4e288a0a5d7430818bfcb2bea undefined -9033b23ff21c78cc36bfa82dfff7cec176301c1a143d297134475dc867a43e99 undefined -66b98eb49bfad7d7b4f3eb7ea93dc2a18a0c9891e9ef68a6d18d5e02149c782a undefined -5f8d82904f27753c12bc7a11fac5f707bf9bc7b62cf04f32400eaa5a6f5d7af5 undefined -ae61872a1eacf7a100fe00971959b7f36ce43efc78f4d05ad80d4d7107414915 undefined -245907a53a6390182f78b771a9830511a40f4f1956a8f155ac3681729693b18d undefined -78770be15e00a452043fcec54bbf4756b53a77513e12365ca436b8a35ef30a52 undefined -43432fa771ed74fecc8c63e56dc8abefc1c1af4621ebedd20c5c364382ace405 undefined -4d8dc8637e52f71573ecc9a8938e7fa21e7fda2910b0d4b36d0c97a838fdd7df undefined -cb47a5debe5abfc8cae5661d1eb20c2c33119be184ea1711977d590632a105c3 undefined -4b8e71c1576903c08481ba169f8cff05b1e4642f571ee7c8d322a392b883a5b4 undefined -01d3e96be1163fcd62cd05f501d1caf141961e0afcee9c56e72f575870ad3f72 undefined -619376037b7d01fdeedee4c3c956212e65f07ddab7f7b55148fea6f2363e4b42 undefined -a2f31353fec97041f89ce85c8740c3e19b362a9d26f2cbadbb1b1c1f35f9e5ab undefined -c470cdb0ddc34cd9d4d5eefb9c92ff428690f1d4c7e57156ac83d1deeb2a3045 undefined -2a44e99917d2525346da3eca4c77746316ad4f97bc1b7040ba033a9dfc45cc84 undefined -0d35ea96962bd7d8161a0592c2009a1aec821d920f40d6d90036ed8953297ec7 undefined -192872824d9b288270be345eb0adc7a9f5b92ebba5483c66fae50c1ccbf55afb undefined -71ef9bb04503f25c96d2d1a6fc2da48b2c7571ba9f094804fa288062f4026d98 undefined -c7b41c7bd8657bea4741859cae911fa323c7671a672b3ced66ab30c3d5dd9550 undefined -5ba46187e72452d5f27dd47ec3681f2dcfb7a3d310f15cc4a831fcddaf61f681 undefined -cd870258750cd38dcdd310ef11c0fb69ecd87289f39bb7e1e5b0882ec62a85f0 undefined -12853c2139e005c3ead07941c30906ea90bd4d389c8e975fc6e28013fe9c961b undefined -463009a4fba0ab6d623ed000329a0c14a0a07f90b571b9637f013d589c421498 undefined -14e4c43cdcc794531ce0978a7d0e11a1c1da9f9d8bdc8d1e916f557f148873e6 undefined -912900233be19e3747adff5453941f70068a9f0c46c4c28be41aa4961316ed65 undefined -b5a6f8293ffcb5f9e42c00569463037f88367ae0729abd4c66b00bf3e600d393 undefined -2e3833c67dc70d166e743c9b8c8dbee8a920e29bfc57b38f67035f57514b285b undefined -2547c4fd8f0820683d0b39a776f307bb6d4acee418eef1ce5bb327facd8fcc3a undefined -b7b4bcf9dea5d901bf17617115a0a8ce2b80a0ce6d5a244073358e907f740529 undefined -53f0a1501c28425fccbfb9eed10cd213c7539e396d0319dd80740d9d25039f60 undefined -da8fa891c11774e7769fcba702feaa7f66102e92861a7a615c2902b992415149 undefined -fb5acce9eb4363a31272f5a5364142d25bb32e4acfc79c5ef0cf0dd0921cc94c undefined -5104bdaa13f296098088165e3e81bbf17742c7e566a3d24c9edba9e9f2e3782d undefined -ec966aa796363108c47e5c364cafbf143499ce512e862040bac351ceb8e10f81 undefined -d684c2845d7d3aaa139e6f350189553a442c2296c0ab348566c1dab6864b1c16 undefined -4d7d969e9d75eaa3b31fde0567163e7b322ebf81fd43332150cd52ceec0b66de undefined -3e9199ef3c66bb1f19de854e3ae3e952c0737ec44577c6e0793001fd5f96f890 undefined -0e090346953cf4197514bf2083166bed7b09d94991a29fce88e679630ab45527 undefined -408c2dd0b5425d1bdbb1a65bb1c01ba7cad4ccac79b4cc21082b2b8b12403299 undefined -7d55d2b4e5419c21320ff5417124206279f9a257696ff353a87d50e25196e84f undefined -62e2dd76ca2517c8bf5a411d1186122a238e61bc26d67f32a70c34d3e7061eb7 undefined -b5c6f4ceee10c9299a13ca8aa213f9ee8e91e380d45cb4ad19b92173f3732bba undefined -fc72103be5121dbff2de480a0d935f1314f02fc3b722fd80a85d6a6be582b657 undefined -f94c67d37796194602c3e315a84a3d39def2a6788bc5bc78531af65a5fa44912 undefined -833b71d1f902d03e9d4b1316df4eba64753f1fbf9273b0715de0682f3dbf0152 undefined -627d9c465bb4d8990d8c91a62c998be0baafa99f1e02febf8391481888a28aa0 undefined -d29512ee6afc22012c9feda6886d9e43dcc7b5c98a9c8c1957c6a7c1bbab20c1 undefined -2e09c1838d2235f4ce86a9613a870f982a5c4214fec6a1e2ddc46c29333c2108 undefined -9b3a178931261ac7efdd711a944e6cd2c4a31ce6c1f6e6c3edbca14e78864e8c undefined -abc4e43c2aa42318aaecde88e1ece00ac922c5a10210958c191247640ecb53af undefined -4cd485e9e776ce295c1f33646a486abe5bb3ae1747a0e424b4de535a704922fe undefined -916b5cd2c7f6380554151f0c10f8fcf42720a3d986577deb3bfb70c739b87aaf undefined -f421da57ad08d32809287cfed61ac6fbeb44204501cb82853b3d7dbcc176ee56 undefined -b464649208c59ab9bc1a42128a2ec2aacfd15a398c67e5763d8fd6f689551aed undefined -f6e402c694bb175237eb0ad382bafc9f763096205e15957035d246b4aac9e146 undefined -7355ffd9e0de822abb349894b4a5bfe901b5bfd03df5bce197616eb5440a1766 undefined -1156232d9837ea8623447d131e7c2392950c632668563e6805d09d462548191b undefined -646ca19cd655d79013cfbec5e2eff5f7ec8886907bf920dadff3eef38a48356f undefined -5df0b97a797d41efd0bd58027bbe73445281bdcd83eb3020534040a5c55a7c84 undefined -33ec84c5e56e81f0b28901a72071e13e9d6a717579092c022923a1156f55434e undefined -e73962e74abd3f3789445662bf73cd764dbad5700b57d10291ce6dabaaf09eaf undefined -80ee544cfd1f98ab8aee553bee0e4be5d1fea5efb00cc98fe1fa9c753fc1a28e undefined -3d066e2557439934162c92e0bce8be18508cf4f72b85f7732eb776d2c60f2633 undefined -2f040999d144a71ce4156a213e2c8a393f70184f47eacc02688f84073d4f2ddc undefined -78debe7afc83eb68b456d8c920d47f0171b24162b2917af99fd3cf6336830f2c undefined -c0de163584166553601e044448b2f5c15e179f6cac8ca1bed812f3f745763f81 undefined -b1941901d5f77d2e0f6110e360c8ca2b4f7ac0bc7d3332b5b618743c29497b57 undefined -bde01022549fb8818a316306b5b60d2e5f677e6b64440d0e67ac3cb4fb3224fb undefined -9b2b06b01729654f6cbfcd53c9507abad666b67af370640971fad02be9704141 undefined -44ed0e83831c274a03ec139e743a25ba52b1e87c5cd86aed1097906f0b5319de undefined -849916436996349108ba073bcd50ff5c715e54eba076ec16c6e6ffb8bd7142da undefined -b3680e9566d079a0fd019cef26cf54e4159eacc5941a12d370c97594a890adec undefined -7d69b213244f9c8ecec2aab524fced2ae4df51687dfe0f76cf3903f7095cfadb undefined -8ba601c30ec96085a340739887a133b6ed9dd0c40b82c32216b9a4aed55ae75c undefined -90ad6983e5b22de24ef7ca7fa69028253b77a14c05da11a9da39bb73e69ca9e6 undefined -f39964b2572d9366bb69b17532cb4d92dcc87f19d9d2a480541637bf1acda039 undefined -d87730236321d4221494e51169295aa3b1e0c05ed211bce1ea1644a57531c7e1 undefined -8203ede15c3bd4c6d1d9ad85b4a56ddf34452afb737a83de0bd922069cf14ad0 undefined -29f7de27ba2951be7e8dc2457e8449c2d84c038f7150213bac16e0ab657a6944 undefined -b73269374468f9d90eb83f42d5e42b91b452596fdde4160e7192483d65993738 undefined -82877bc8029fb957a59a43092ce92dbdee5b6ac2781aade5bb0c3d1f2d859f0b undefined -ec9b585a098985c4c55cc4e3bb01125d2758311a4a1e912aeef95d7ddc05ee47 undefined -3db6f281c4ba7d1803980e8cdebad49293818e33937f3c54073ab3fcbeea7391 undefined -f1b2ce603ae2c821d4a6920795151c71c10781594350b7f2b3e37901647f5bfa undefined -b3b2bb5ad7ea0034a22a8b1c00d077c54129850746b4d6328727ad665d86dbac undefined -f454173f62642f3017d5d0e80d938f5b501644472478e538ae3102e5cd369a07 undefined -7a4243f1a9e20d53dcadaf3f363f1d8d4d55e41b96d219e4b8543b769a0668a2 undefined -10819c159a18418110ee380acd16910333fb391a770abd1a7e1c7370b53cb906 undefined -f4a6558da811dd42ba8667db03f669f4b5c309381ec56c9b6c00935182dea012 undefined -6d20d2afe6cf2ebad99aca5cb3f551db59d3b5c9b419bd6a8b7752a415265860 undefined -d5c8e80c042ed2095581d4d1f626b734ca8c249816e0ecf0001f98ffc9e0eb18 undefined -377a7742d66eefd442785ede5fc5118aeb70665fe100258d8a45d883876fed85 undefined -edfbc02bd8343eb3dd2e64e46a6418304b9ee2bb70992d4b7deb9453b83d4b55 undefined -d6d41ad57ca7b3b13a4534da5ed5fff0b140348be96db17416409f4e71e840a4 undefined -93b49ee8eb36ab5f4441c72a0278a5cd6416ebc8981dae59410faf31e5e6d67d undefined -3a8b92e15be07cb3626baf0aa429a20956f53da66a9755d7e933e6d9d26ec556 undefined -e9589400a35960df1c1bc0c521bc816ecaa8014c9fb028ae75b98c2a13cd5fda undefined -6485c1da5e7d6434fe608fcb88d8683dbc73ecb396cb0f1c83df4f81cc7866c9 undefined -d463f233697595e5544dfbd9d0ec124b3538f78563d0f6cc4adade9d5eac475a undefined -5b49406a7eb8a790fd4fd0148902ae5ea865eabea2b0ca1aea9022b90e666b34 undefined -a82c279636fb2f5069f1d350f630d9c6c35fe821dbaebafbf7bd101483b1617e undefined -4f49be86a82293d022d574e33636164e34b5e2bfac02e928597933bcbd2bcd67 undefined -089ee86d99bbe6819e303e53530be821fa0d1dea1b88871c28116c6bd2d643ca undefined -6db0b5365c86526ad6c01b7ac9bf47de8951166f3f38a951396199d86646d2f8 undefined -662710e2a42708297f0bb4658f4d889e3720b8405f28826458d6de8a73e460ab undefined -761add8865ca238dfab91dd6f33d980ac5e3a2ebd90652a9afcdf73dfa2a8c50 undefined -774ed9ce9f57c5d7cf3a86ca64be41daf82e9d9620c356bc7ffcc4bad50c800b undefined -a4b4b61cf9e9de882cb9b36773f6d9bb6406b9f6460bfb29d8969ae313d0fd4a undefined -493ceb5549198e8c7302322757997f7be25731ceadbd41be780dc28bb280add0 undefined -26b669bd6939831782dbf86575e19960935a72a57fb273cf1066890af770749a undefined -58a38e87ab24ccf6a7b4bb98d21d55c380a47439ab509f95471611dd6e7ba847 undefined -9701f4a57f1c511012bbda71bec18b5135529987bec7b288c170b614cb67a4f6 undefined -a513e31ce441d7f1ac4a17fb5659f9776a726caf7b38dcb1e7aec3a67d2d2518 undefined -1c9c74ece51210ec57d018bc720af75454b3d04e2585e2143831beb3a3b6e22e undefined -f11ad08f058e3ad88b22925f4942ad1994e2d691371aed40b2c84a6f820b4111 undefined -08785a383e248989e6bee738819cee17efe73a992910d75e7903e149f89fe27e undefined -50c25c328663befe7b3d17c5dc616848d1306be2d5c1628b41c86f6fef6996b8 undefined -5200575e092eecc230522afba8d372cfdddb49713e448b97c75975f4e91fd753 undefined -aaaed3e95a3653eb0414f1b14c99f4eb09b6f18077513fa0acf7e1a79399983e undefined -e28c2fd37a1e1660a5279f7ba701ef9bed44cee85dc6d26311c272e11756c42a undefined -654a9aebe36023f68fe9e6d5759a25f66023681cc47472a8eadf86345f22c6a4 undefined -e126579572da7182a76803b97f5d0fac6fd65c49ca14524ab1ef0c4b1b211af1 undefined -b847fb21dfd6657ef3ed6a92b941e810fc73ef418c808486cd17273525920823 undefined -7fd60bb26867d35731c21e2e699fbb3efc44be86f3471b19e6683166d9841faa undefined -54be036373fc377d40b1dc183b6afe69231a769e1d5719426ef7e397cdb777f6 undefined -bb0d17d55803f8a52e186e01f3379615a4a7137126c6c8f98ea7a9a961dafa4d undefined -cab8b55d17860a7e66a01e99acc5d0321b809a99054f03e6acb51305eec1dda6 undefined -96456f55add02cbc6353457b947fbe6f64ef4b5cac4b972cfc30e2b1869ea048 undefined -daa481a0b9a978b09ad099b2e65ee021009dddb328fab35f2618e325bd176bfc undefined -74d156d213b9a456d6f453e20ab454613b6194fcc979993357690a5d09d1bc42 undefined -29d3890cf770d6cf79619f3a7db18304c56520a3f92d3a71dcd854c9c40768e7 undefined -e417240d3989be794427c2ecd215315aab06da52bb1566ca939fe0d4daf0c742 undefined -db6def52d214515373a5e805ad4600aa66dbea787e0ebfc738f4457b2b9df231 undefined -746ac6a62022c28a98f17edc12632c52d63d23e56af250134688a66656050a40 undefined -4b09175922bcfa3394f236b56eb47216821aca8b0532d4b631087fd2b7b9656b undefined -c66c0faa10e3d00d69a0d0d6ffe480981b44b2123dd6f45da3574c13d9396c38 undefined -52306355d05fe635b78b9ae8768febdb19e0c384dcc138f1a4ab5e1a8680d683 undefined -2eb8315f45955a05daa5579f72298457150864c84e376d83be285f181555157c undefined -448bcd8d2b66325c71867d84ae2887e4d00aad3475b27add66808336238269c1 undefined -996b99b9910b134a8c509c8e6706216c21e77707c1d28d7e0413bac9e24e9089 undefined -1db451d59f24f62fc82e4d5f002b05b2439de2fb6962ab32470272f28de8e0d0 undefined -e6861e90897015f296a4baef07d591a575e394b15831ffe3d8c30de81bdbb3e1 undefined -09fbbe36c0c754cc833eff6b7eab35b1ab3dd59fba77ba0d9baf6c04a25ba61e undefined -e40a2aae79ae628aa5e5f1a3750f5d401eb9eacebf94acdfee103ac972628325 undefined -28ca1cf27bf0b77409a693df566d061108a8c960c5b3891ee07c453743b324b7 undefined -50b33f82d302dfc0bf13c76b8af23ebad51cf3d7517dd1ca2013b9cac6f9a900 undefined -e176dbf2919d58205d0ebb629172ba506749068244c1a7606eb9103db320c922 undefined -1dd7ae346a013777bc640dce18192dabd34517429d570634eea23e741fd40ea3 undefined -c6b4e19229af864a5e26a271f8b2c0df7cf4106def362cf8d1ebf16ec339c9fa undefined -0784b3860a57d7e0076f69ab525eff5add9060df461e1be6e9b5ef21eb838068 undefined -8c2dfd59e2d1610d63aaa88d97876b9e9e9e4ded049372ca2f7b8862942c956d undefined -9de1da93e12625e09530793646e8d580b9d4431558273ab0ef3251bbdde565f7 undefined -5cc267bac95a08d21dacfbfb5514e746d92240d30a2d68a6ef79e1809e175778 undefined -f0d8af3eb85ff520a905d615084b92f5bbe423fcc9b32858171162a78492cb59 undefined -5b8f297582173959547615154e6361b791c96a1e3bbdc4cf39f394ee1e220159 undefined -48b0228c4f71f663a44ad507203adb8205a2580bd54adbb70a13c29d6f271097 undefined -758132cddbdd8f3a1eaa5fc11677edc115279d8333e17aadef826eb947e0de0c undefined -b87063d065d5f5aa0eeeecec985747709cf3fc66e86c2b6bb54370825b9d505d undefined -65b5ef11427a066908483d7f94238955c2f2f4a359d2a3f96651f138ebaef2ca undefined -2e6a572db1113f4077ac4fa9b71204b199a05c24fb20dc7e8f21c06d686d9485 undefined -edfe45b1e0f41a767323d4fdac1fc1489b5ea1b05af1702df2aba9a59a89225e undefined -31f710c333325e425abf7f6b907feec884e367e268aa550feefc46a2f48bac8b undefined -f3aca3447b88a392b4645162b9b1888d83e9002b1917d65f6f17cc8b9d54cb01 undefined -800a1e475f3463eb03eb70bc6d0db734e4ecfe10658da4f018628906b37b7666 undefined -4b8d45435ab2b55d1a9477b7236449aab8c63976195098f30095a19cdc66e6b9 undefined -e56fd7c0037dbca189eda3ebcd441f73ab90c9970c66c4ecd2c21ce3d4ebd64b undefined -99b67f9e38a29dcce71e9a38da277fc9d69e2365cea645586b34d308e54110a1 undefined -bd50300e35fff1da63a274a942d95efcbdb48b3eb7b92ebeef1da15975627f90 undefined -00f85e9521d996d3921af168b164dd955081f5fa4e203766363783b2eecee1c8 undefined -568a422c54e59287c871c5a752a381a278739891e2c92f7d039f41459a55b729 undefined -60703a0161992d3c0e121ad3173c2f4db474a902f299d0bce98da6442bdd0d79 undefined -e05ecc163c69e95f21e237ff72c69ba079d465108174d785ad9df13ce93d30e8 undefined -da10ed1d1bb87546c3e4d69c1dd705f04d70eae32289114ed99e2dee7425dbe1 undefined -d8f25809a70a237492ed1d6fddc691a09597da1017c4e552c501d6f39a0b908c undefined -8fa875dd3c1fc76e074316b21959971e212ae0b31783293a4bd1ed68845c7337 undefined -ac60e696b0d899662b8e66c8032b19dce491f19b2a8cf48276aea3e3a55f55b6 undefined -67716e1fedfa3fb655e650615e1fba31da6d3075a7523be111caa67a69f5dd34 undefined -0067e1d804c900e2a563508e24c296abf8cebe36f5e50e5afc1bcc97f9ee3433 undefined -7d5889269d7046183280d4548ae75e80a0adc6be7a4a99f969956bbe9b541e9f undefined -c3be91bf7df6c7b3e8dcb7f5723f624fa5de574faf9cc2a5c7490eb09afd00b8 undefined -b9c3351d3a86f2824ec462c930b51c6e3ffad71b60d485713b84e590be2d099b undefined -61c0277263e52c2b108eb40b40679c12a5f7f3f08d26fa12e31809f0c8762e7c undefined -3e9a28b53e11866cccfba0dfe9b0ae714659e76c0226b70f7259293401801128 undefined -57017e0edb06fc7740cbb26a9afaa534c201ad82533e0dfda274d1ef590df7a0 undefined -75ff1a878e5b6201cf24a452d8f7f0d0228fad1ebbee83592d90dce74221f2ae undefined -96918bf652ce642326fcf3012de7aee3faf1f03cae3d838c76a23afefab9c8e6 undefined -c3f6d0ae114b90b050011a148440f80a3972c5aaf2e636c50ddc8260e9a31eac undefined -22d60fbb0c703a6f6dadba8e21ac6b5a029bebb700980ab94ab564604d216249 undefined -fe00afbfc8341e1657ef864a5277de58d3d63e136f133e6eb0fc99db91a0a88f undefined -5984a4b9cbf6efd473dbf5cb20336e992304ea89c840171c91bd1823bd724f44 undefined -e1d6519946c4336c190e7281928b46b19aa40e6feca16384654e273aa4384b63 undefined -5420221aa9dacb7094007c919158fda53c41bc5506e6becc9de00873923ae7b9 undefined -9e8bbb211ac0a5c593082175585ee98fe54f5b97594c04cd3b7d4e0995ae7ddd undefined -3852080996d9507e9925722d6b12cb9796e2c0b4707c3d086d5a11190d1e3d21 undefined -e9ecfcb839dad543b8f449f0f3127507565409bc547a75848266136d98926735 undefined -a9717f6f121ee7111e2b6dad79e4ccdedb13bf7a284bf043002fe46871a7a456 undefined -81361caddfc891a6449176eb42fa5d7498bb9a70fa78c422fecef1c624f719e5 undefined -90de09c2b8e1ad751cd2d547ed753b2ae3e9dc2860fe0925a7e673d97633543b undefined -ba9242c9295f26515b95adc94693eec50d27541253e35072fb4874f915ebc987 undefined -901e583221420c8777b319817f10e8b1c62d100ad649d097c21bc3b3bcf22ea7 undefined -3d000f0cbe119add0d6c0f1c1eda526302cf995aea232617b060f2ecff1dca41 undefined -3990e0500a011e3f27b3f96ea327302c31754b847bd22078593efc5d3f53e604 undefined -c29f5b4df682969fd38c17e2b7886d0b06abbcc69db0d65dafe338fa4a9d6ddf undefined -939783e574f107c6760679ac380ab035ba69771bba63d80f03e2a12d3d693339 undefined -d276c3d83ecc7452e917787d87d0f499834ce7ebfa0eba10ff3762a24f99b26f undefined -a0018cd168c164e6acfa4adf818af71707f859c5bbd4f91b292bac08c1a58dd1 undefined -61d72489792440076eaf4277c88462e728192578ea0eb012f78491c51345b661 undefined -49ef816592bd4ade1d093c7c33365cfb542ad2af4b3429acde270e9c393b5da6 undefined -c3f74cd79ebf04500ff2289aceaab041359401c348095d599045a2348ba93c4c undefined -b6c94dfd1c2cd52a82168056db24b317ef0aaa43ee67b9fe76447e09a95d9604 undefined -b512b50de35416bba90dee543aea4593eb3fd2569289c613b382ed4396d1339e undefined -53ff3933a394f11546d6086dee6a79a66ccb8ee123a22d77c51689b4401b9e66 undefined -1ee3cb400faa6b32df84f624f72fe5a6253b3a475ed0069bf51ab572750372e2 undefined -7205aa595567d9e8f37b1a1da0ef4977c5f3262f4ffe94f9e42a0f9ea3d72f96 undefined -80a5292b1257fa064901450d01286f0e058dde1f60b3d6478aecff058a3cb29a undefined -38b94d0eaf98c4e0c8f2b35dea068bc8c08088b49715ebca99bf8a9dfef7352e undefined -08e8139f543457d560ce5a0009e8e6bd23da31c9ceabdeb84fbb31533e2de79e undefined -ad9362d0d053014315b82f3254b8699160b6aabf41958d371351ad5e381bdf62 undefined -c16270282b9483f989146c61f5ab5d3df506e83ea64e43267b0308873a77a3bd undefined -6f695b2fa55378d011fe1993719ae8d69f2b50ea0f90f3da35e8fe3f7b89b0d7 undefined -9888daaa86c1a2383d588619616086ed96b51dfd5018ce638eeac61ecff65e58 undefined -fbed56f5baa64b8f2f53fa0e5653bad7b2a3b07b01e3954ec4a8bcb3b0226d6a undefined -7cd6061c2e3697a12b31f06d50d5a3e295dfe077c6670501cadb6ecd08afcaea undefined -9e35c8c11be7e022e1f18c1b48dfbc80f0e7fe87ede1f5f65a277bb24561664d undefined -a3532a28c5f47bead64f397e7e0dbaaa5677ffca3b2eb9547f01d01acc0d28dd undefined -2bf07e318882fbd142b1fcdfe4ebc94f099a72a3b2f83d94c37e60675d0b284b undefined -f1f74621bd946830e1194c90e50796701a330c7f8b94c88d3dbc1f27b5808185 undefined -1772387a0defc0bd3b933fe06599b3fad9c8b69c67e49ab2c1f16cf8827e66a6 undefined -824c5396e534fc3cc78dc9f583d7a0ed418f40068cc0f6d142f08dd207f38642 undefined -9fe30e5dfb1eeab137c26b10688d043906f2e8122fb4d77a9e481725ee0306f8 undefined -8a10e37983a3e146dc1dfc692c2b0b017507d69e05ad69437d8387406f0f3b5b undefined -9ce7761853e9a3568dee89cf2a95576295023d47ef14a68d438fd6d5bfcc21bc undefined -28f0869551e455ff386925a7472a69291b62bf92c981b5aee99e747fce9d4d4d undefined -3c8584c51bb6f121ffa0470068531bdc2c69d19b9c70772f77c638a3e5f6075b undefined -2eba2958911fcb07c2f7a06fd18316e260daf44e729af6f750b5fdf576acbddb undefined -ebf9f483843f408dee5d9636abd7e4a564f7ec753a058ef5aeb482a785abd2d0 undefined -c8f576b21d113f4141d95542eda30283eb042895296c84f55487908e7a986a9e undefined -e97e701719122e480be7b842162447d3cbd83d1da07d2d467bc484f724e263b8 undefined -90ae654a7dbeeabadb31dd377b0c14d71b9bd15ac5df8997ddb0cdde22573f13 undefined -37e8ddf90c20f02a556f49020a08aa325f92ee8fed5abd587178fbe2023c6b8b undefined -5b990420a5e06f076f1f3ed411089bfc054f01c4266d8d60f6515bdcd286ba17 undefined -891e23c0b5648b1fc0db2077f9e53917a9311d7a8ae901fb500c788e6461a3aa undefined -b7a5756a1ba5ecf6ca2b11e14a9bfc7d599fa8d66e9772cc471f320c075fac72 undefined -20c6dca51d31c5584ae058c4f20a8c075e182908b41328f9bce1c892eec7442e undefined -38dd685f2e0a59dd2a36bdaceb18d7cf26e67c0d7d590a2ab0a854d9f4c65b7e undefined -0e50ef4120246b2d0639b6dc83f0259d940cb15d044baa29e8216ab84a8b23c0 undefined -a056e17b76417b1914ae223034165804277144cdf7a362bd745e7acd26c3cab9 undefined -1cb4357e11f06034782e3af81e9f214921184b9cf8dc78fd40285cbfc00d4fe3 undefined +a732e5a8094c52dfde0cbf7bc802383627054b5c7b9b8260117bc4baedecefe4 undefined +a7441bf34977c48e98ca6eaef666b90a6b90774dca94834c16ecffeee1abee7d undefined +ca791120df5f865811febabdc7bec8ff5287887e3e6485fa62d81027174d7cc6 undefined +52d395ed3562a521b4fdaa77989b2762175b7486e4527a3b1f718f01793992e8 undefined +20dc31ebdd751e53319d595a0fa51e0d26399e49cf9ba2145406486ce9f22873 undefined +612df0b10318c24c38e4088f3513839143fe4de96d0e5d93a842a3ad18d5ac27 undefined +7a0b6e7df85e58c5acaefc3df834dc445c882ef18df174b75988e296fd7502d8 undefined +55d2a545b1b023e7247b8f79a566dd3eda2ee16b4764b3f0b9e3b1bfd1b5b95c undefined +3358e0965965de5bdb58b846882b94b80a0e26ae0d15cf8b7818401c56c7e495 undefined +f4edb8c7fe63a16fe26289313c3ce3db7c33e82829d679c454e10ba8383fe83e undefined +3705c808c17cd597cf02cf71959630b23e996a17f4ff59df7dc9189d55948970 undefined +d2d218d8672ea83047fb2f76a507f7a3667e5f97fe232024f3037c0b2f556628 undefined +084559def363a809cec7a29a793e3214369a453a63a9f6da6150382a22444f0d undefined +127ea8c5335b3b12f99aca3ef608a477966ee21f8d66650f4684f01c8749f0a5 undefined +31ceafa0ef2a76c9d9e084317862c88c1061a36983757d67fb6020abd8c65ba1 undefined +1e9fa69e77de70e73ae73368f357d94bbf38e88ffa7464f4600e443b51915acc undefined +aad14c29d65319907e8e7e35c4ae8e938dd2d7c3786da0132486f25f0a29214a undefined +4f276eda21818a3bc9ffb4c16d5cf9233b36828449b9970b8674a07b808ec746 undefined +bb080d0ca88602c349f7f81c459400fb3719139f317380f6d145cdbf21825f7b undefined +09da07a2215f4b00c0cfc1defa3946acbec5476a30d586e2c157882622c85cdc undefined +f9eda1391202e1aba3f9b5b438b0337a34c0c846130d3bd5233140158aa08f25 undefined +efbc4a348300ed13ed8a7f28aaab2d7d646d11e3142456074922b6358b6630b3 undefined +0a1602a558188feb2bde07c2561246cb4c6eadd9ed062819afdb3f9d2ae3fc13 undefined +62604004b277c8c402bbcaacd9c8ebf9e3b0507b0f4dbbfb9fb688a50dffc3b9 undefined +e3c977aced3915167dcc13ffd5dda7d0d144ef27b80ea8e9c29bb5ef18051db0 undefined +c91e3fcb12a2f8a9142cc7748be391d7355e293bab304f1d2b6812e95e2e47ec undefined +bd80016ff94b58db49d0c8e536887864b962597f0dba0096d7899d54b66f6f44 undefined +7e562c7843efda9b59f12425759e4cfb1833978c448d37a9efbdb065ecb31f30 undefined +41f2cdbc32534d87e9d05d19c404102efc963bac1a23907d95f917775d28a1a7 undefined +e4e9f7e2f3e8f95f413d0373abeb8b5ee47d967357863232936542b763ff51e8 undefined +1546be83fa4facdcef6d4a175b135c114657b7fef852ed20a2768871d6f1bece undefined +cefc7a92441c4c0af03bf3d9db6c9414d79a5a7a1d8440dc65ff4cb4d5034378 undefined +74b4d511e68e3a00a62f6fe264105c043bbeb132034025f167dc552a02c191e2 undefined +3d8466133c949a3f4befcecb1400d265e6dd87753fe497d75cf3bfab4733d479 undefined +da901be5b5154f50d7ac2825d54725325bc82cd2faafccb21cdea67d75b69b68 undefined +1c2cf252a4f959d0add05ea4e6cc3a7dd5bab6e553fe28d8ec66005b5a965160 undefined +27f6e91c830f6eeccb0ff37b600f12ff5d16f00c41e8f356519d12bdc52d31a6 undefined +8d4b291b3dd1d24fcacbad313bff8c8cddb9453cfc3852f9f5fb925545579476 undefined +9ab72006a1bc4a99f664509f9ba76c869ccd11e0efb1f8c8a6c36bc9e225c6b2 undefined +f35407265f6e9c51ba99cf995676fa535c0a976a427f2ac988a61126e59e0557 undefined +038f66856c15fae41d4bfb53e9318bb087203ce41390f66b332599ecba70217e undefined +dbcbcb6f992b69040d9b06cf9df2d37b89a5ef33d1b675184a2a8a303eb64282 undefined +342e1bdc504e2e41470c0a51056db6e428313ec788f8e6eda1883a9c36bd2879 undefined +ef90f0ee0cbe800116ce72e80599cbb1a53309b4a69392775f91a6a5ea31a452 undefined +c09c71633ea39a0be35387a3834f7ded3a5396c849f9d3efd6377feb245ec865 undefined +d31f5a3979ab2fb875f5949566dd6283309ccc4ab05d8d1ec4d2bfab7242b06b undefined +9fa11c66cce08ccf01566dd9f283768bbe45b4da1e25121518cbc1fc7a2cfe8f undefined +37e5b92ef722bb5068e9ad2ab61ddaa47bf941a55bbc5d25b11135f98fd046df undefined +52deeff887dfedbbbb559304796e9fd711dcee8649dfbd40640356ef3c116906 undefined +d924dc124df2d7101760c1788df0a3c720c83208e20ba7789f02c8db75cff775 undefined +be5e809f50a457e712bbd6d6488835f091e59e2ddbfac688c508e3991aa6ceec undefined +30b07c33332685dbc34c522e9ab1f057eedfec1fc7302875af92d3848c6ed927 undefined +cc944eb72f111c716bbf3778895982c71a20d1e73cfc1d0778711e1c10d73e48 undefined +304259931c100210fa17333badcc54f58f5cdb69c1eb8047899bccf4cb1b9c19 undefined +ba3443c048484006e9b223e8a955dbb6c3259022a7d7d126ac21ecf468dd0d87 undefined +f4c1420c1330d5ff161d1bdb1717cbfa59b3843071c4372c41d24216fbbb9bec undefined +a12b2d81fbe7274fa509641754ed864a4e51b55b332c556be30af88a6e240023 undefined +1d6d29fbe46afec6e2e5471657e750e6b6fc7a3d417be9d6cf388cc00ca75180 undefined +f912fefbeef8e045cd87d958ccc33d80a5d6f068a88edfd7a4bad0aecb0a1a9d undefined +fdaec37c7683b8cddeb8b2928fa35a8ef8ed754bc917738660068b87f11f8cae undefined +224a14eb8bfdee5df431ec43b7d3d03e2f5ad9f36fd2beb8b3fe8ea759e1baf0 undefined +71bf70ebc77e1ff430d6a228ea8143e599a9380b9067421bc5a9914f85739ebb undefined +4a932d9992c6b5c8e52cbbe7d9374406dd9b3563299b2e904af7bf2f578def52 undefined +107e65cc21d58653287c1bdb60042890cd3d12f0d558f9e30f1eb20e4e8e505b undefined +1bc6e677d6128e4e863abcfe7812ada14a120cc9c8928f8096fa2bc8c46023f6 undefined +8435e2ea60a00a2dca9abec30ae3ef88e8b77a5e4f0db841e7002321b6e36f39 undefined +d88f1d4b8ecb7909c6a24a6946665e02149634557fa6f02f7dd1547dd517218e undefined +74d0bf169e22055508340052daed029002c4a512ca781f536b087611bd8b621e undefined +291355e2844b6d427a3fc508578739c42dee1110a6965cdfc4972c474ff0f5d0 undefined +5525c97cad98eb955280fdcdf33a621fbf396d8f0efbec94de56cd54b7c8d243 undefined +6d6552cd8c7b537cb6cfa672b94639104c1305284bfb2d828f979919bc6b4c96 undefined +71aa2c4346330d42464ba8e46c9c1cdf08f0a5e46cf2995c742ee2a20f650baf undefined +ab94de37e0af1bc23859fe89f303d10165457c27e382d6e0c5aaf0dce8769cdb undefined +9979c2df5af82d11c461538db867eda194ccdd7b458b459750dc811b77d6cd74 undefined +f983aa3e80966c62dd8a7bc596bd2d47983bcc22387f8c6245f305e1070a2f8f undefined +8e3020d08009cb49b11fe27f3fd88e711d7703caa822ed2099a0375d4e1dc0fc undefined +4edd499347210d25478652d5a89b3d837a744d7f3f17f18d54b4ad941b13a4ff undefined +6e2c5597617c206e4274e07cc75fad5cc9d7a7fa373a22ef16c49e7e978e769f undefined +5ad6ec1d57c9d1ca95abd2dde22858e89fbf9854b812742a37a7cf102aa184dc undefined +c3d7dfd89cbfd42385fc9d3c2343fbb34b467adfec4143d21188214367544bf9 undefined +fccf4a02358e79f3979bda04bc3a3f9ea2df3ce9f8358fee39e33e3098fa111a undefined +4c5f7a76fbf86dfb9b92cdb1571977ca10f039dbde6f1d37e5c54bfb96d4f435 undefined +03071d59b3f1440d30a63331a6cc5465d01fa5ab69d44ecb383ad8977a87b1df undefined +aa99bc11d27bd9d3b6c2319b7480f37823fc2a7be9204a8938d0f2aded44631b undefined +d57cd743e80fa82eba65a65b36199bcf84964ca63a77ebee7d561c358f2b88a3 undefined +5c6ca29a1594251590c58179f4b82f9fc5920596524211cf98fba75f150919fd undefined +cc189d31055cc3c7b129798d7f964d9c827dd503e75bbc0f0978794ffe3dd574 undefined +8eb36dfd3421901b694449e96b60a1e140b84b69248a04a50ac0677400e186c0 undefined +e3a7542182e456c7a22ae0fec09fb104a95d03943fed59267b9b2696ed133169 undefined +ef6c35b92effaf9c489420ebbdec857acef63f1024a62b85f7fe82383b281d79 undefined +92cdd04d8eb91f34f3e3a589bec188c3de9c14da08dcc6471039446b91ed7e20 undefined +2e0f4ab53e22984ad6137544c6bcaf03eb701f36be3a1c9c74e93da19f30513d undefined +921c23dcf2cd895564e5ba7591e123ae20e1de2285d2d0ecd496b071bff1f800 undefined +a7700735113041bd42d61aabef0dad7ae2e1af74ab65b3f24f6b4db01be98ff3 undefined +cb4882138c503acd6f90581de175c9df30f1e82453fc3e1c19495fb42e6b45a4 undefined +1ea94e1126bc084b7e72de9bfb1b95ee29edba88703f2079e93011906433218b undefined +d655e206369b32743d1dcfe930c2e82936faea9efed09a5f66728b4b17420886 undefined +3d8cbe16b72b55b4e017c999ae973f9239286965f432589bb54c278a16040220 undefined +4263bc26429cec3e9532b96d8f6b9e61c1a6374bd9bdd4323a3c5336823999be undefined +be3c321eb751d1ad376fd106da9b5d3a5314c11f2ccf22fe4a416fbd5ce43a26 undefined +ce849f13f0e49e6a5965648fc33c29188cf2f2240b53883ed6890e28de04fca2 undefined +8e0abe49da245444f6b45221532b5fe99a5d0d65ea4e27bd69a9bdaaaa66f666 undefined +669849486a5ca7af87071fe4174a285437c9d3122bbf78b92c9e0944f48fab80 undefined +231b2441afd7af537310c7e00aed47a76bf594bd326d908eff0bee5379ff26bb undefined +800322ee55eade53397b854ea0c4e8478480376d70e48c1d608d7eec1b0597a4 undefined +f55bbd13d83a80b232328ad9a860d45d017fc45c6d014e5ecfa38983f2516bb1 undefined +19eb502dea90ab1f5a244e460ae737d415b66acc984eafae1397ec64f1fefc1d undefined +09ec54b2583d40742af369dead69b466e917df60f90831557e5daac23dd7f4fe undefined +7c89c1c0597fb1e097266ca395f668ff1e376744a532dae5aa9eee1a49d30f00 undefined +7fc53e25824bc21b09a032ddf06950b97c8d3f15684b38a13349b4c6a766e62d undefined +f9fb3519bb6f7142e35c787d21b768b89c83ad4d9256723b02562512030e0a3e undefined +d601109ffbf47c9b34e1f68026a7eb6eb315dc6a3fe9b3a358853b8f190a14da undefined +9551105fef34ca4d852ff9059f515d0d02a88468662f824f285af4fc324af5b2 undefined +6a5974693b80937bcebdb9e5ad3370da6334a63cee334cd74656a53015f13f0d undefined +c4b824e1fb8feb07a983c39675e6ad082e8d958bfebf107f84e5eefb19a29501 undefined +f24a6c642a133ea266718485d6480e73bca7facaae7ad67d9a37e0751f2f6626 undefined +eb2a47d7b398b7fbfb0b307901935e2fe2aff52feb46fd8dcf9e9f2437cae0ba undefined +6393606c56c2c17e68a6db1102925886ed368652106706d4a1a1901c7a3eec5c undefined +36064bd042ffcfaa6374928f641ef9188a710a45b86ba9fd896cbcb9e4f79363 undefined +216fbea16053483be841de877d960fe31a72583ab747d1d75edf5f43f8e4bd22 undefined +052a8b64092185c26d7f311a4ce260657ffbac00856feba2d1dff8e7563ca491 undefined +4422411f785f07944e5066bd0771991f56a66e020dba482d259c29b82b1f4925 undefined +927f282197160192428f11681d3a5630aaf9bfb354882fc92151775d60fb977c undefined +f17080b3087cf04aa005700d20009e9cd24cc70aa1b28fb9a147accb40a3fb10 undefined +7163ebbb1a5c69f246bf86634b37d558a01b757c04844536e7db17983d9a6085 undefined +16e923a79661897cda8755d81bb9b68156593bebaf185c5f0f28557000582b7a undefined +797499c94cbfbaf6f8f84500985cd65ebc0ba8c5a654b224ce0166dc3ebf69dc undefined +1c4db0d62cb9b41963ce4a99f2d25d657965ceafec72c8a02d10cb845360032e undefined +f03bde17f4cde52b073bafc22f23c77a6a1b4578742db7ebcf070e64f1a7b2e1 undefined +3a628154e14a7dd9f59adb6b4bb1ee00e44bb1b279b5e0c55ed706d1b388c378 undefined +5123240bc76a1baecd52d6758418eba5b52c9d98c923fa0c740db3c857a2b565 undefined +3c725c39dd7ce289b12be16a41c90dae77f920e2526e5051f8434bfe254758a6 undefined +768a8cf6b3701b934dfe4246029eb7b518c077220feb9dbf744992ed7c0271ff undefined +4ee97dedc89f7c9420a8e63d9b6d0f150004cee1bf6d752c50a0b54ac26f1733 undefined +e035e6469bf97fba1f83fff3b4fe5aa0057bedc357427abf496ba7f85dd53923 undefined +836ee7598cee5875c34087338647c40686d717536b9616f09865049887d20150 undefined +097d3c14b47ff509c0bc6da92294590f7a379bab71142ccc51847ff7e35cc84e undefined +9add1f2bbde642873246cd861ab7ddcc59eaf7343ce5688f158b6755ee70ffe1 undefined +19eadee7c4552dd41badd561a704b613e1d8cf6cdbeb21279978dc61073a7bfe undefined +1f19caf1d693bd52dd3d933bd7d1cb18e591215af5aed8619e0b5a049048122f undefined +1b1efe5119dfbd64c828e312180a00f03ebd49fcee5ddf990eff3830687f508d undefined +404456296327fad8cbf6298c27f4141cabd5c171513e69d8d7e599c881eaab42 undefined +bb9652a2a202ee8f758855aa232bd409c85c1890c9adf19e2bedce3155a91bc0 undefined +bf78aee7fd6bb6817072a3875303792a9b4d4f7e27a31c35f27a41736e98f407 undefined +de12c26939c02ceaa021a0465c148234eb0e42bb6b26db2b9f4c451fd2c5a534 undefined +c54e10bebe7ee99611f22a308f4907b7322560379815ef7ca6198c3e999d0455 undefined +a966c5893eded4f0e406e3df1659f15ae3052c7b5738adc7f5bbc7353433179c undefined +48187ea0893cea6c292090b1af13d749c55dcd44636f25dff329cfbad5b4fbba undefined +60616190b6130d517113c26dc4ebaf0b05b738a1b80822120ba2bc3456c05476 undefined +b1cb700b361fa337b0b5e527e04eda193c3a4656ad4047dad714f111e421faea undefined +ae5dd26d751c433cfff9a47f214423668edeca46a50da2de16626904a7fd987e undefined +9df4c7ceff0a4be3fbd6712ad30996005d2de75d414036e25fd5fc682af5e592 undefined +1afab64c8cb828caa266367b8825d2db3e60de2cea3dc37471561edf459ad12e undefined +6cfde3e103b43ecff6a9bc91445fb56cf581823701c3c2bfd6e786ee5b054fc9 undefined +253928346bba1a035d339146ff967b16d84b55cbef18991c09addd3ed711588b undefined +515a1eb62132e7c0f77e0888c13e93c6c037c399d4faf95e30f4ee9df29277a9 undefined +0c1520a0749f77e88eb4ef47e13d38b7ad55e0d2eddbea7bb3014ffc8e5d95dc undefined +3aaa5c45417ec916674b78ccf915a70e0aff48b78427c6233dff9d53c1648d8e undefined +358052ecd403c7de24b8f6f85fecb5c55927d6d0acc07cbc57a270e8ab260f0a undefined +bdbaa9805ab1f2378b12163bfac029712ed0bdf24a4e81246c2c3706d0b3a52d undefined +23ef309e81de5730be76f3b38a3c6fe7d040ea91f84f8f156b3936880e9bdee8 undefined +f7250d70547ca8c16a3ba645c79826ce0a1974a2ff9777f80852b14ee5a95f54 undefined +68cb95252ca31ab3fcc73c7f3537ed17248c1de041a15b2931e5b24dddf40fcc undefined +5fa05e3d2cee32a6fee8e975a81e71bd6a29b0d75b0cf559fd455cdf123afb35 undefined +9c130aa41ee6057e6339abb510ee9525d468aafe4ee3bd91545df19f853c488d undefined +d3f00542f2e2bccc25485c2eeb8870d85a5be256ac9dc2f35a5771e21d8fd1b5 undefined +2818d22e4e449e88db661f1abc67cb244aa06dcaf56a6a6480367f1190110e5f undefined +b7dc4310a5d999869bc283a00ef4bdd61f8ad931955ca9e5c655fdb76989d3f7 undefined +c47df29efd470e57ab610e7a603ebd296cc26e724e43b35fbc60beeb7c06efff undefined +9ff024a902a4d9493f1fb46fe03ca8e338a100cd78d9e4d6478e5bab7b5808f7 undefined +e27e4017fe2feb0187d0ee744b4f6231faffe5aad42ae511a14b26041b315e7d undefined +29f31f9d442fe52492a2c5f5cd5fe41dab9aa7aee3b60f0cd2f13203c6df2b0c undefined +582748822dd90d5378b1f23cc016b2d4b61ef80f3323b3d775ad91e1f53da580 undefined +aa1ef3551c2eeb3277a0004c8b5d562852dc62fd15a99ffda4d2581d29fbc729 undefined +e6cef79c7f13889b2c639919975e92cf22a6a2cb977795c312e665f427ab27dd undefined +9a1f5dac986dde4e923b71e8878f519f0e3ff611c5f604f174db0f4a59c6d7aa undefined +5f6f90b1a4d7c050368956bcf3d74607bfdcc4c89a7a8287cca64e1bfc38e15a undefined +d484f526f8ab2db674e1ee76a86ec931b9ddbfe5d7531176b72a462499306769 undefined +e8680be2ed1079683d34c6657553d24beeb59f154850c30287e0b102663b503c undefined +c602d9aef5fe20082c827c60092d7c5d1c81f762b18dde5c7c56d09afd9ea4e5 undefined +7bece2f107662a4a0f3af2144ba4bb4fba77b88b686f64e4ac945c73a5c5f01a undefined +98e3cb229de175b26ac6721c1b76a375411a65f4fb564294d5419a4bcf4ee068 undefined +0c08c5814cf6c67908e88482c3fdc2d16ac573f8903fa8ca803bba4030aec8d0 undefined +3381652f55c83a5b42982bd16142be8647810b4df5d72455a4d48134f6a3b3bd undefined +e817b2c804b286918307e5f5e8bbe7fcf65c3e150ba9d3c222d16aa0f69a4cb5 undefined +2683740b9316489b217ada410be8f4f2ff9b1a7dcc6b291c1d6aa4c3695e6734 undefined +e4f6ec31c24d552c17453fde6741bb3933043ec37cb537810f8d5138381b5ce2 undefined +a28627abff05f4223546e4374e41f70c36fae8a664d8e7d877afdc55899a9e01 undefined +51eee4f7dec2090ef78e095e085af1a240070f2f871cbc29257b3aff437ab077 undefined +e7bf0e8e48c36501522f31e29f55dea9cf18021b3e752de8310a24445205bc2f undefined +ed5fb44ed22b3875b3ccc9db7175f5df0eb1982b08a266ed0f17f1714cc726d9 undefined +46b7a9c17563282e9f17525b67e6c1b2dd5b6e5756a6911433aefb490ee52e7c undefined +b73b67ca17a27dc0bc63349710ea144cc528e471047c2386db99fd061f0ff428 undefined +53020c9e2dbcce414a06a5685f72526870238e87077154fded62d214dcdcd840 undefined +73c7ba6ff6b99c5118821628e55db62210b219edf525060eda5da7d618a21878 undefined +a40dabb72512b241470ff799abc8a432b54be2b28c441e4be36ab601b1f8b9b3 undefined +430d775d16140562d66b6d126c12126a3a65ed9ed51531581acef13270e5dd01 undefined +fbdc7307839ba9bc612806826a567fba5df0268f4b236813eeccfad04b8873b9 undefined +2a4b16b895e5aeddb3e4566fbd3369311b94b66135497a25a9b82040057e925e undefined +21dff0af4194b3c1cf971be80b5b315cb3a0fb03e8b0e9b9f31836193f28d860 undefined +4ef5f446c6cff67eba7b9733d0a9621e6fc7563be217ee75ffcfa36474874a5d undefined +01220dc04d0e497a5ccf554c2ebd74aaa5d3b57bec6205d2468c585062039cb4 undefined +206a1f8738ad70a72b8ee9c37d69153e491c394f0c3eabcb8a6246c2b51ec307 undefined +84a8af1bbdb9adc7a8613bce2f45e3fd294aa6978d8f5d0f00db44f0e9ead239 undefined +8dbfb16697e0abb11cd9d9613b7e5a0f1c337e303aa0ced7544c89ddb8295bf5 undefined +20d6badde2cf4c5f1db1cee9d8bedc6cdc00323b6da5a811e618327c22e9b287 undefined +94febf76289f1a16eb11e490206eebc64aa43a6829f510cf53fc77c4e313c19c undefined +b09e9fb5cf091a65e445449cef06f3e9b4e90b3b14a5dd0266f24801a37adfcf undefined +81e16b8779ea7127a2bef3007996dc9e1c15dd40069f9732b1b36b3fb82d91eb undefined +33604f16b7633788c14ed926f6ee072950e8ffc93a6d0809e462b7955c8668c6 undefined +d4bab9560d5fd50ba0ef8833d6a84b7c6ff960017d923fef7337487b96f547bb undefined +6ebf7213b5fe4b368fa62907e346c9462d9739ae01270d231bb5ccf7e86e23fe undefined +4697ed23629e6a0521e6ab19afc6dd83609f5936cecea17251fb9022dab2bb57 undefined +1245528878dcbecef56214e1161d823e74534bca59aec61193067ec0a4dfaf6a undefined +ef31fd47b92e18157fccfd10ac02a9e5e6bcaad5000cb340ecdcb01e6a388760 undefined +51009eaf8c8e9f77a69ba19bd912af9851d14bb823263b59f00f1449a69095ac undefined +2738e8764a71eaa0013df8ff33b5a6c730669aa55ac500f8d7d4aa586d730bb0 undefined +81e649c87a654b730e8858f7188cbe42ba06a83b98b76d175adda4e44d98086d undefined +de85b7dbb34779207a22ea1e1e4a9db052cc4e04c066ec3ef7ad0b452f2231d0 undefined +e85daf9d2991eefee7a2eccab5e571b4bba0a734c5f108fa2d6139afb12db751 undefined +99d8d610a16e979cc41c1c4e6c4819122436095e8fceeb6cb7520a6e6a24a1a9 undefined +715109d8e076ef67dae1ff6c12dac7cfb0092123ac13022b3b98c9fe6634d2af undefined +22795988f34496db21b527ee6c17382f89c7074ad097723e940263cb16e642fa undefined +67a2af219f791ed9527df1ff7d59abf8a9479152049bc65921df56a73d8e6b72 undefined +a185b5496f118a0fd5673f254912b549cfd01be55455745c8fc1fb4fdb5ab310 undefined +1299fceb6023278475ff9b493736aceb55e6500a1bed3f7443ee1e65d9b4672f undefined +eee4013a3306350063725a7d1f1701fe482aa12d1e72af8f19d8dac73e66c3dd undefined +8102b232bbdfbea323c7a5eb6deec9b0046263c2e7ebe8c4a983a262396576e4 undefined +9298e61c4f9db91efe9a464f4a0e604c69b6781972f00f6a56a495a7537e7912 undefined +1d1a1b7cc05c9fb97337344149fe45a1fcb704b5700900e00c3f4205333a8b3f undefined +7b5f35734e1df9eee783f45836ce99bafcd93e1bd7b107d083edbb7464ad2c3e undefined +ce079f35a43dbbaaf0a7f65cf816c22033ec28f1052da822e798eb171fc1f9b5 undefined +f80117fe273aa7bacebbb8034f83e5cf5c77ac34ecc24c035f42c748ae1ff8aa undefined +d413085ffa9557aade8c2d1dc1562bc617875853a154020675a56ab0d69f3d3c undefined +d4bc1d3fc9b656730ddbaf4257e5b988c970f705ee1c85e15cfdf45cda6a3003 undefined +af1c09c90dd51ac90d075be6e7e587bfeb432fe7663e89736e972a59b0371fde undefined +187fd982f682014c905172b250b0d791efe5aaaaeee47d01b404a5ae604874c4 undefined +e32e3bc64759b10a8b6477bf64a8f1262a17b457881135eb9dd1d752615191d3 undefined +2d2b474d4dda52f254d61fd43b3cec53a261a1037e7b13625394ecfb2ad6a44e undefined +2e074f3d4262d058e846c2edeaedb3fcf66dcf98d4bac15fb5c797a3e9a1f122 undefined +e9f92acbcddb551fc533dbd3e3f8c9ce0b497701023eb619e4d48f665cf6e8be undefined +a841e0d092b77e096c3d5c638970b4761612643980559b29dfc8c7e8dcc7aeb3 undefined +4b920f965d7101657a9d30709ceec76c5ad3631aa4ad8a8c4e6fa30d26ed20df undefined +dbc3621145d77fd3b7ddef538a52815248f1ce100d37dbedf022480abe6ade7d undefined +0bb943136d890c93594851d644a79fc9c91338d8bda15b881a36c458faf1fd84 undefined +d4d8b4bf6539eac8c27ad905914db745358dc08a49769a4e4578215486705808 undefined +aa729c85c347aef8263ee1c90e16253d0ff606524fa00ddb29bf126abdfe89a5 undefined +bec9dde5f0a0abf8880bbd25cf60985f61e7d39d0c7377eb46238705c218007d undefined +895cd290d118a5dc8739305d4fca42a9e9c999d012cea06f1133fe44f993603c undefined +42c1f86e444be0f0d1fcfa1c77b7783d09070c15e046fbf63bbd111d710ece13 undefined +03ab64a0a148629c0821d1042d16d793b7e69efe477ff1cd3388490adf366092 undefined +95bcd1b1869a422f98643e2cce857ea344fae392312380af3ce64c7c91ea4068 undefined +e4db027d4fb4f556c22ae7fe07848f2e90c1b12734565db48ceb5616f9c92a35 undefined +820b29ca63865eea282301a2e29bfb719e0d05350ba46ac22ae3d23bc5c6489f undefined +82ceea8e6ec26e7444fa919eafc66f2645e6a133d8f0b89ef3b92b6cefd8219c undefined +020072be9fd39eab719aa10200af8c29d5ed276a33d1cbee0bfbd3730d4f49f3 undefined +354ee3b82703aaa8d49e8f541af9b7217a3fae999cd56d21034d94dade21efbe undefined +805c85d3e2630217ffb84281d4ab987eabb89d4dbf1b08fe6d5d48a3ecf896d8 undefined +6701359f62c89b7bf95592703ef05f7fc8bc2f5156213d22128b8fc89724e4d6 undefined +f1a598c587f3abe6254cee80106bd1dcb3b406a542cacf269cfbedfdf47bc001 undefined +b18a3b7da67a906be816329cda621c3cf7ba29ff9b5d819425161feb5b41b982 undefined +7f3dc86b664f9f57451c23220d25c0ffd58efa94d32b82b00c3a94b2178b382d undefined +8f0b764ab2c4811c91fb5aea359a3182628377a613124d8b0b6cacee9ab8c003 undefined +27ef7ff1c51de31a12a8d9c128873a3145c57cb92035b6b1bdb5e65b75c9e2c4 undefined +22159ed8a3cb9367d9a324d9f08fa029662abfec95faf81b6808d7eb2b470ff7 undefined +85950a1b7eda1d1aa9f9e8796c47e2a8341a6ef0ded0393df052f73d3a1a84a5 undefined +53741b495fdce0bfe3cfb3ded644374ee7d06f39e43d2fb89138c95ee815d41d undefined +cffd3d05f8d14f6ba475d182a147cccc1e7cbcee8a47f28fbae9d77506f713c3 undefined +b6511a084df22d6e168d6d62a6f7a7e6e8666be47c8d54add3b8357011521566 undefined +2e424c02400a8cdf53f91b30cbb1a1736971e2480b0329bb9beb85a8610a2d92 undefined +763a4754b0b496e2c9ee870ac9fa342aecc051ab9487539a40178f0b8befafb7 undefined +c10cde4e83ea3f12d0ce830163c8464fcc08f58d8f78413af85f3842c9c8a8b9 undefined +e4378055b1cf0dd99954cf2e4564b050c5eec0b0b866f7521cffe30c887aef71 undefined +d0f6f45165b51386d3c5499eb75856577963719ef18bd13ebdfee75f61f0d073 undefined +1898b4de818e081c89584c1e2372c6b853a87757cda681ad0458b7d07910d717 undefined +ee805399a402dfb3665f1b9ab2d961eee958e17cb79eab1597e1ef3f45834cb8 undefined +25f9b05158450e97f3bc1f2a7b2f0f341f2bacfcbc40591556f3883c2f2ed0e6 undefined +4b2de7324bf14eb7a2b405a46c7e243927652bde266324739be29269120e895a undefined +03b23302cb1c1d679f225f47d85544dcb904fa11014e8aaa8619f3a17fd24a77 undefined +30e30a9b12a785025037a7ed2610350317bc42d1a426c666e42063acbe5bd3a5 undefined +e8ce02dafc3cb6ef585010b9c144393ddf0cddb8641dc572db0d732afbd701aa undefined +2492b486b34c1f405a644d25a01719264d293e4fc0758c0c5cff8b122b49562c undefined +a1d9a8e2733e71ce66c50798012befc9e0eb09207010b88569b2d3b9dcf49666 undefined +f29381f8354eba67629af549ec6962c15dc67f4402a41ec3b706cb80237e4ce5 undefined +be1ca040be632a4bad390be376441ed4d16d030246afcb94c15d9b5536a626f4 undefined +71b280daade3713cf1eb45974ae5172912476bf5dd61b769739e0f6c6d81bcf5 undefined +1d4074884a98f2d355a97e279cc3179d244889c5e55e4dabf083e77964b8472c undefined +13ccb55a0f0345e0b05dd11a71ba8c88ad726c773f5fc039dd74aaf108477e1e undefined +05518b85917216f66348d9df9432a8e7b1796eef7e10c0fc9f77ba59498441f0 undefined +176b8e9320dd6298b196772754ea3dfe8f8a45f4f4b982d42d41cb1c8ab6d60c undefined +eda152b5ca54fa60f7b39f3a7149d45c1484302b4c1795285cd14613646a6957 undefined +70dab98e79153334346f9621bb084578df8f1a1d7faf5762f54b2f1ccd1e7968 undefined +93d1c26c588343c3d2fec4acafdf06147148f455c0f6fafbf1c1cc92b7465426 undefined +d4955bcf8ee5ba35cb278bf5507cfef49acc211e2d7070e5d565ad94b5f84e0f undefined +f4d998fbeae5dae1833e0c68eab2f237ed31aae6c1a734644c30371a8fbbfaae undefined +d9d83a827bceac12b94ce77995d1bb450e9d1560d303983c15a43970382020a1 undefined +c2b856e46e15ccb13757ddc0beb6fb1c1956e4ba37bf93484f81b8154201cea8 undefined +546e01f0912481781b9799e9e3ef76d7a92d23a6d1765e8ae5061104accbdbc7 undefined +9778c65a8bfe427dd229fb93b671b3d3f9284da573ec5d34ee52ac79496f7b11 undefined +1906440c72d9544e1acbd857d0d961cad95f9985297146d2ce9230bed66e9826 undefined +c49dd35f9f7c24dd676505aa2e82b746546dd6643b8b9afd5fcb871b6eee7c82 undefined +711d9b6b161d502204ccdad2a949b0ce6a6b5701ba331b56e9f7b2bcafef284f undefined +4f386c27fb2f291915679dcd936c307e9e192a839015cd4a165e1bed01a29d99 undefined +4d917ea8f9033fa5ad0d7ac1de2e1bf400920f787f6dcf208012a53ae3034dd0 undefined +dff893282b8541be4e6dba79a7be24a84b69a18454a8a564a0461b0719b0e5ee undefined +b1113a42a01d23253cd656f1b6f7216db67a0a30cbfc9834f2ba427a23c4ef04 undefined +f8a47d90f0dd6c11fce12973ba5951842134a76a32f62792e516d0405ef695f5 undefined +54747868a915174ea85c0fa38382068120cf5823c2c845e30651330fbc034357 undefined +8ec89986ed0ffe2867794fd6be128b9ec8c345c787321fac36c53c42dc756133 undefined +985298a2e346f955b578639ddecaf7cb6ef65e2ef74eef0f31262e8e90a91455 undefined +0a55f1aadd8ea073a7eb735c7f68b6c4ec8513ffdf8920d9db508b7c904e604f undefined +cfd5d46f3434d5fd5693eafae7cb13ce2f6f60cee2d20735a8215d6f7d4723e2 undefined +c54dc220ffeec6121b663e4b228b92d04a09fdafe4e7eacfcf9f832032701439 undefined +5918321641d6a27ab764dd22f015760ead8ea6421daaf745b481fedcd9cf2600 undefined +b515c911b8dfd07b4006a05eed96546233ec445c5d2e927248cce5e7f88717ba undefined +54fd719d53a0f7d9eaad42e47d30f30abc0fc9995915777ace2d606dbaa12175 undefined +e82bd1afb278098bff21932bc3aab5882d707413b74b2f70930a6ef3870fb66b undefined +bcfe6283e7854128948774a33758bf49c94e1ec60ee77ce40151024d51b9d949 undefined +9dcb0aa7e7a497716bf559d6c8c3e9c47ddf430700af4637986077d60449e98f undefined +a914e9e31161b115781549863f6a8c5ffe38071c9bca48edce1be8bb1b8ddc02 undefined +b551e5920bd39b14bb9a4a758245bcae6b8b7c6755f0c10f61bd5c041dce06d5 undefined +06d7f78c19d432ea083d4327b49a653b1316a54a3918d3e461caf59972f693d6 undefined +3efb48bbc753714ea603c9de9bfefb0330862cd4522e6b2d54ccc63c84115805 undefined +c831d075c9ab72901a73594c61b22809f530af288c67f5358c84e56bf9e830c4 undefined +e242893f89d7ddb59d468d6cc4d60b176ce294502c3b73adf60f59408b52caed undefined +642170c58d7df4eca6eb43efd78848843b37dea2a64dcc1be3c3ca5c8f0e82b7 undefined +97aaba7e461943ae6d3336fa3fbad1fc4ff226047c53e1e312ac9128dafa3c5b undefined +8f9bffdb35f9299fef323cbbb5b9f400a02fd9696dec4799e1b212f1cd76ec36 undefined +c247c83f2d27ea20ecbc7bc09b5e7b01e7316707cd95965fcbe6671010b4c6c0 undefined +20b6d9841a992341392eae47abbd5af95f449dc834a0753f1bf39d2a9da2f76f undefined +4eb6fd6b3a06d7feb106edd8675e15a3bc968a110f03168ebb7df655b4ac8824 undefined +a63656791371b0a507b880a9d619f1c1666d00e3e99ff599a644bc28dad4dced undefined +78219ca4ecde6b4bce4cb30826c14e531b4495f8656fd21e7244d3522842dff5 undefined +7d022b2018324cc2dae5788f2b0148a1901a490d3ea058758e329b7152b6407e undefined +70af55d2ae5e68b6e38279fae23f3054c032fcfb294bb6981fc9b677cab3c205 undefined +622b8b7e63a98d6c88d3dd2a6bc633372f0e19f5a133fea445c9f2fb1abecd8d undefined +90249c1d8e618e57efc958a29d6969a9bd4032261c11bbd32d253f6938c55394 undefined +b09c4b55a3738ba63332850f80e917cffc3792da288d8b018515256bb1930780 undefined +586faea5a3b5f208032f95e649dfb0dcb0372d13f4bd0b415053522fcfffe15e undefined +a1ac1cf9fb9793f1e4e942f057273a1a82bbb5d3e48f12d0d670f8438086a7af undefined +23af59c52cf06285fc076b57f21cc0d060ed525e421e91bf9bae6ddd68ed2ed4 undefined +97ac9839a9afc76582456d9881d94001b3dee8df56ecd744d46d9d3e799dcf0e undefined +18d60031bef0da36a6b32042ce9ad5fd2d01c8128a7b9124158ccfad82aa9e63 undefined +27e1ab20a6c824c8bf36266eca93ef952b98fe95121d5aaeeb646c3135223a63 undefined +b2f5a1d477b7e44e6de64db2e8ec525435181faf6d677c09432bd59c8680099b undefined +ba6a4084e782d49b0fc397683271a5820f3b39a846160b6249e29df0fc9c7f23 undefined +1d06ae9e925a9c4520234783fdee5dce3018277d24186b0d18c47cebb426ba3b undefined +258f9a38bd36940ca87487692beffae2bc5ac5b4e3b3594fe792a6a091236d5c undefined +53ee2f3c9c0854f9b63c3b6ee4a894cc7805e229a78b06dc778842365b86b86a undefined +676e2c0bb7aa9d1647151c9cf58119f3e26fe132bbbf9ee2997b31275dd32a0b undefined +7a7d8573ea38173bd0746f65b3631efd63b1e13892e437833197be9a1f95733a undefined +5235d3562dc7a4ea9158e9eee4c357765c452f0c0f6ef6c26d6e7b5d8789f15c undefined +d814c3410ef8284246a4e63390fd6b03dc077f060e0997a4b17903ca00a1a5f8 undefined +081b036840650c1183bc347ee6c159fbf46da7cf0b2b551dc60f8def94af7284 undefined +8e09c785af39853e3569f9caac641368dc240ad783df077ba53dc95ed5e5d669 undefined +d8154f74a6cb5c3afadb4dedf645494b2015863b2dca6c62b7de36909abd62ee undefined +4c50c8f652cce77e8662c4381c71fd249bcd71cbbd2767f82db1338f67fd1514 undefined +7fde26e6cc0196ba900d2a1f789e7c9b9a0505f30f475aa98989288cfe350eb9 undefined +bf1a977621c24f0747565b62d35e8062495ec72c69a93272a3c464b24016ea2d undefined +e35bde7ea7ca6d87121d0ad5e9bc460093d2154308f1be5a468688bdd0caf034 undefined +1a785a85c44bb5eb3871ee0128635f7c65efec78ace4b65d2ff4125a10fef98d undefined +b405840a6e65d686464eac1e55f50a0b9ff4c8109b4aaab4ed8526fdcc43e2cb undefined +5a2b60bdc78e837c5cacdade1a0932668c210af6a69058cd6d6e564ec9e43fcf undefined +a3e1c1087599f55acef67988f0045e653fbfc0af6875f215af76a86988d90e21 undefined +47115faf7e375e66db3f7267b779c20b3a779ec6141d6204a1558a6445f04c80 undefined +b5a1f0b312a0dadc9ed806dbca9c24d052fce3893ebab073b8f91dbb1dd496f5 undefined +65bae4ab44b5d4aacd7616552d0e9288983e2f5717df49fc6a2f845f35682a29 undefined +85fbbec272dc2831f1566d1e39d3b7da712dc457dfd8ad415a0862ddbd25267d undefined +6a6f84b81ee62a261c584c14832f5d6dca9b30734eae18dc0ef7eca63515b285 undefined +00a40dff71b4ca5eb6cb392de77b0d15c9c01fb2b56de8ba205eb9a57d64d99b undefined +585001f0ada20ac3502f5518413f53a82ac5a0187db67f909b8036f7413ce0b0 undefined +021b7019b6e1c02d4309bd91a3da114e4d690d8e1c4a15ef40502add079f61ee undefined +0cc12955e207613c35adcc81166fa81552feff130a8a8458be234985a05d59ef undefined +a0a00991e9b129c9fe99a918fd32dce0644c8919ef9d4833381bb755c7a96fc0 undefined +544929b92d80ef6a3e341ef2aa020c4fee3db275e944ad918dbacfb5936481dd undefined +bf7a94e606decb6250246499ddeada6bc975cd07555d1955d3baa9c3af0a0654 undefined +4a7167b4a66e36f1761065cc8c7cf1bbd7073c911b62f216e4438f5f655d5807 undefined +3cac837477e1a9c4700f06a7cc85f8048d39ef0f98b20251a0f6d16073b03d3f undefined +fbff4b999a29dcac24071d2e4cc6fed5e6c297bfe81ec13d4f074c3c0ace45fe undefined +f81f6afc05ab806da7afe8a4b0ceaacf24617f94ef62f3116c523b1c1844a3af undefined +fe6c7989117aa574a3681f33fcdcc8e0f7743ddd8fb8cda2c29d330be181c78d undefined +ba2383a7d54a4f3177572e8f7c7f37e32df52d16df96fa2c7c00247e0b413674 undefined +dfc578fab7f4c139cbe2ba557242d02ebc621cbbd83a037f3fc9d1ce2d254c98 undefined +111c6533983e1ea91829481199b404d3b85b13a750bdc3cfcd76e29748b11a18 undefined +63483f3f0772f62dd99aef9da7d162e7b2416c9b743ed40db629ba0723da800b undefined +08ba9c1c082af2889ed884ebd5264f006352227edc504fa04b66fbecd94a7d02 undefined +b98bc1c25f74d7a69eeba4687a71b496f26583c0824c0b5cb559fd366212ff66 undefined +99cbcce4aa1bc0f56a0bc2dcc8c2c42ce488e20833e776fbfbac7009d2899f1a undefined +dded8f3ff9d4d2fd92acc1d7a68ae6ad7ac535ee23fc8804145a0f54344c7cf7 undefined +ff86387dd4c784e5381056b3c6feb075f1f6c340788ac100acab6311acf29fcc undefined +6bf77691a1e1d8401f670eadba1e44fe3f5b7abe7fc203ea2dc0503b67f993e9 undefined +6a83317d02faf9ceaf749ca505696328090187ca8349be507c967909cf4424a6 undefined +f0364e91a9e5a0836a80d42aa51591a8c2793f9a0445b9bf736865a7e40c62cf undefined +9b3b066c734ed176191588f33b595168a032121ee4612c183298fcf0be46eb9e undefined +d98a68edee55e9ee47dcaf0ca0a028fba9f10da105aff28415f18ac31d9fb874 undefined +52b6aa0900f5f0471947172f2b8866ea6b09ed0d6ac5d8ef1ab24dd24c271390 undefined +509c18f7d64b0abdc6d1725f4311be5a5e3613913297b7fd76a524b75d436597 undefined +a2989140063114ae9348d66c32f084f0b112b704ac72072f2407ad99c91c05a6 undefined +02fe24c760f5f497569fa410f17304175ae4f06414c6d8dafced72f7352a3148 undefined +dd1002fdc53f5071e9efc214541e95fc20e81a1d514f989df27ae9e7e224efda undefined +e3fc22bc5a14422055e0a41046dbc827d5b1871777d707af543ee064860438d3 undefined +a96573a1c7d2127c9b38ff8f25245883cc57d3e56d2a527ffaef5b6032dcd2c4 undefined +7093fd8252f82f59b830708c1400be47abac4e75ff5da9ee821f6256453d54ff undefined +cc0c8932886952b90a8d37ee0c7add7638d7534178dbb123faf21a8c5690825c undefined +55715d6c7ce8d05b087f592b35e9c25e316c2dc2400a114a7f2edc2f8098dd86 undefined +9a2a8ec805374aa97bfa0a8eb80c2b6a8d933c393cbbccb572bb67efccb5dbfd undefined +b29c7fa9ee6a6a38fd9888903e184a331f3185a1af188fea51a48dd6df0ba54a undefined +c80056bf42472a8aaca44677189534a7cbe8b10461cb7949dc02382db56107c6 undefined +ab7ed32ccd4cb9e9ff4cda80f27a597e2b383e53c42da6156c4cb6e25826b5d6 undefined +862e9e20b8b642229c06b07ceb986c9f919a34576ce9fc28146179eff7dfa424 undefined +38de6bf0861766f6498da9397a99332d1eafd4cfaeb24cfdcd9e27d280f29519 undefined +36dd3e737c6509a64373ce175440ab1169b24fe04bfaaa15ec2ddcd5d88be3d9 undefined +bdef09e7b2adb314dbc8b8fc2431bc6e27d236ddbe32f957d2452e5a4abcd325 undefined +37765125fbc82d30f1b738b4f093f7547eb6a00710e490334e7ddadf54ebc46c undefined +fc4929c353bba27661f08511f5d5e56425c40956b1c5cedc6b5f50b71baa23db undefined +9b651c95eb5b5096d8d461123a4ff851d1b4729927c4dbb5f5923c49a023ccdc undefined +1d064acf208f3f64e91f15073e75d60c1ed14c7ce68580757933ae6e16fc75d3 undefined +818c45d3eaa680c20f230829e5229b978c9495620c56af4b146f89507d7445d3 undefined +09ada3a6fded4fdd0c60db3b5d75c66af5cfd9a1fd2f18416f386a1753c54623 undefined +4d6554346ca4dd00da1a4b7f538162f7f3e9cee9c40ab9e36599ef60c201d7b3 undefined +f73c2284db79dd188cd946518c1bdc708b6a5336b4b14bd502448557b5b1aca7 undefined +0626069c52761dc47234e1e5f677430b7a8a9287ced6ae8293e100df995ecd27 undefined +5ca69eee99b37c89de92472789d4737683429500edfe97b726abded3b226788e undefined +37b759228e226ee095e84fafb5d91650e1eec5d81db9438e0578994d8733ae35 undefined +3ba2b24de7acff56982e61665d179d25e3a9c4884f65e6be7bc7f6c153e28615 undefined +fd256f0f6c49c77df049d1274abbc18643fc0a859ff8527c89d60a01ced1bf39 undefined +55a4e2675526bafbd1ef5fb1470a3b87d7cc41d7de244fa78cb8a972216da5de undefined +f9149b5b1a30e74c31ec66ec2cf343a60ed50fd69e4c90820744a392c66de349 undefined +1511b6694b0be1e6c51637f1bc3672e2d23f25d7e7150a36a5a74b0985f0fdd5 undefined +f45221e883663e7efcecec9e969e27598af0fceefa1e75276ab135739e0984cf undefined +fea35d79c29de7fb0dd5a3edf6913f9cf02eec5023c548b050e11da54d85358b undefined +e6156ae11d8004e99d0ddfc15a90b9920e81c9a442a889bc8c9221cc458f1f6a undefined +ead6de7bef5ec3fdc6bca63fb30670d905782a56693fd8401f570a56365aaedd undefined +db98f06d2d07fa39b09e7b4a897f6a4d32ba1dd8fb84857d31600d6f2f4e1907 undefined +6b63ba83d26dc8bf1810be961c9354057fae8b2f12ce1740b4d0a8d728de882c undefined +9189c4f2f2976b442d7e277b1e1ce422e9a9026cc5371d60c11369cfd7167433 undefined +9d0f064817d3cd034b895f9cfdd47cc404ec6c6b33d6301a9390e29c57d01ff3 undefined +5314512a01417337d00313fb3305c6fcf6a3f158bdd743a0136eba0a3fa256a2 undefined +e10d58a32875adc730207fd8e5daa89005f43ff21e7d2cc4fa56577dfc0ae355 undefined +510da262206490609446e3a6b0846bde6c217dc20a5a5af8d0bc2eec1bc831eb undefined +789029808dcfeef70a81f8a7172851aad6f26c5a9ea4bccc85deb8978c3ba62e undefined +63ddc165f4a223e0052b3483d6c8f1a702f6eb93972d48ddf5e40b3c91bd9496 undefined +847e835651c8e7f5d41df4eb1063460ca1a35ec18ba2404753c4b02be253532f undefined +ac1837c09bd8feb39b2b4bcb758468d5a5b441b8ada7d9e1a159a11e2cf31bc8 undefined +541cd14c6bf2d75638a8e5859cbb435914836ea7803e13a3e6d280e462952646 undefined +5d0aa15bf457637b1c22bf48aa436388d994662784996b6346b422486efaafc9 undefined +b08ab89fd5438fc9b0ac55bf91208530f118190aaf2a491ba388ded3af3bc89a undefined +9e6f5d62c1c6035cc11e93eb1d4beb22e24cff9feec44a05b738d55658c8af9c undefined +b00128d7543e0ee3dd743a372329a1714ebf38d9fed4e03c7ef02675fb18cbef undefined +72bc3391fe3abe82edb0ce8e7095172e76766dcdd8040779b0f3a9a40890fbdd undefined +f9eca978093d4d1d96958a24386f3f20b6e9e7eacac918143d850679d3cc7407 undefined +53263aeb42da51bacd72ee427f844ce76654d5aec3f1d29fe48f7644a439921b undefined diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg index 4c586c9f8e..fa96aa844f 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.dark.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg @@ -26,48 +26,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -173,11 +176,17 @@ - - + + - - + + + + + + + + @@ -186,13 +195,13 @@ - + - + @@ -211,20 +220,23 @@ - - + + + + + - + - + @@ -233,55 +245,55 @@ - + - + - + - + - + - + - + - + - + @@ -295,97 +307,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -399,37 +411,37 @@ - + - + - + - + - + - + @@ -441,19 +453,19 @@ - + - + - + @@ -462,24 +474,24 @@ - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg index ffa07f4ca0..9705d8c4f0 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.light.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg @@ -26,48 +26,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -173,11 +176,17 @@ - - + + - - + + + + + + + + @@ -186,13 +195,13 @@ - + - + @@ -211,20 +220,23 @@ - - + + + + + - + - + @@ -233,55 +245,55 @@ - + - + - + - + - + - + - + - + - + @@ -295,97 +307,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -399,37 +411,37 @@ - + - + - + - + - + - + @@ -441,19 +453,19 @@ - + - + - + @@ -462,24 +474,24 @@ - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg index 12bf0800ae..2f6822c674 100644 --- a/images/cs-block-currency-symbols.dark.svg +++ b/images/cs-block-currency-symbols.dark.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg index 3d475b38ab..fb8e404105 100644 --- a/images/cs-block-currency-symbols.light.svg +++ b/images/cs-block-currency-symbols.light.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg index 17774fe350..64d7e43781 100644 --- a/images/cs-block-cyrillic-extended-a.dark.svg +++ b/images/cs-block-cyrillic-extended-a.dark.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg index 57a40a81e1..cf0a0b81c0 100644 --- a/images/cs-block-cyrillic-extended-a.light.svg +++ b/images/cs-block-cyrillic-extended-a.light.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 44740c7fc7..e8e7a42094 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -55,8 +55,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 57498f8edb..24ffe78bde 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -55,8 +55,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index a51ef8b20c..fbe388c4d1 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -29,7 +29,7 @@ - + @@ -62,13 +62,13 @@ - + - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index e58e2c4f43..45329e92bc 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -29,7 +29,7 @@ - + @@ -62,13 +62,13 @@ - + - + diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index 061b19dc21..5b8b96ff40 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -27,8 +27,8 @@ - - + + @@ -37,31 +37,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,41 +192,41 @@ - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -232,51 +237,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index 4050f6d6e8..428d2e7b67 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -27,8 +27,8 @@ - - + + @@ -37,31 +37,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,41 +192,41 @@ - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -232,51 +237,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 13c46a4e5d..f40f3c7368 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -215,8 +215,8 @@ - - + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 91b8775f78..b70cf0131f 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -215,8 +215,8 @@ - - + + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg index b973519e61..834fec568b 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg @@ -90,7 +90,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.light.svg b/images/cs-block-enclosed-alphanumeric-supplement.light.svg index ac36304c31..fadcbc1ac7 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.light.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.light.svg @@ -90,7 +90,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumerics.dark.svg b/images/cs-block-enclosed-alphanumerics.dark.svg index f0cc0c3531..b349f1be87 100644 --- a/images/cs-block-enclosed-alphanumerics.dark.svg +++ b/images/cs-block-enclosed-alphanumerics.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumerics.light.svg b/images/cs-block-enclosed-alphanumerics.light.svg index 11568c6f0e..0cb556953b 100644 --- a/images/cs-block-enclosed-alphanumerics.light.svg +++ b/images/cs-block-enclosed-alphanumerics.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-general-punctuation.dark.svg b/images/cs-block-general-punctuation.dark.svg index d98c4095fa..2668a1031f 100644 --- a/images/cs-block-general-punctuation.dark.svg +++ b/images/cs-block-general-punctuation.dark.svg @@ -252,12 +252,8 @@ - - - - - - + + diff --git a/images/cs-block-general-punctuation.light.svg b/images/cs-block-general-punctuation.light.svg index f9ef3a8f48..673ef143d2 100644 --- a/images/cs-block-general-punctuation.light.svg +++ b/images/cs-block-general-punctuation.light.svg @@ -252,12 +252,8 @@ - - - - - - + + diff --git a/images/cs-block-georgian.dark.svg b/images/cs-block-georgian.dark.svg new file mode 100644 index 0000000000..42da4eaf14 --- /dev/null +++ b/images/cs-block-georgian.dark.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-georgian.light.svg b/images/cs-block-georgian.light.svg new file mode 100644 index 0000000000..9bf1b1225f --- /dev/null +++ b/images/cs-block-georgian.light.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-number-forms.dark.svg b/images/cs-block-number-forms.dark.svg index ae133743a8..56595d999a 100644 --- a/images/cs-block-number-forms.dark.svg +++ b/images/cs-block-number-forms.dark.svg @@ -43,10 +43,10 @@ - + - - + + @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-number-forms.light.svg b/images/cs-block-number-forms.light.svg index b6ad220afd..0faf3ea47a 100644 --- a/images/cs-block-number-forms.light.svg +++ b/images/cs-block-number-forms.light.svg @@ -43,10 +43,10 @@ - + - - + + @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index 42c958de69..2141cf75c4 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -61,7 +61,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index 456abff83b..b17fa9a6c6 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -61,7 +61,7 @@ - + diff --git a/images/cs-block-superscripts-and-subscripts.dark.svg b/images/cs-block-superscripts-and-subscripts.dark.svg index 016ad31d67..673b8b4f49 100644 --- a/images/cs-block-superscripts-and-subscripts.dark.svg +++ b/images/cs-block-superscripts-and-subscripts.dark.svg @@ -52,7 +52,7 @@ - + diff --git a/images/cs-block-superscripts-and-subscripts.light.svg b/images/cs-block-superscripts-and-subscripts.light.svg index 9708edcdba..f9018dd430 100644 --- a/images/cs-block-superscripts-and-subscripts.light.svg +++ b/images/cs-block-superscripts-and-subscripts.light.svg @@ -52,7 +52,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg index 8062876638..67c0a0af0c 100644 --- a/images/cs-block-supplemental-punctuation.dark.svg +++ b/images/cs-block-supplemental-punctuation.dark.svg @@ -20,35 +20,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -139,8 +145,8 @@ - - + + @@ -168,8 +174,8 @@ - - + + @@ -187,16 +193,16 @@ - + - + - + @@ -205,10 +211,10 @@ - + - + @@ -219,22 +225,22 @@ - + - + - + - + - + - + @@ -243,28 +249,28 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -275,31 +281,31 @@ - + - + - + - + - + - + - + - + - + @@ -331,13 +337,13 @@ - + - + - + @@ -364,7 +370,7 @@ - + @@ -393,7 +399,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg index cde6387f4d..f09f290fa5 100644 --- a/images/cs-block-supplemental-punctuation.light.svg +++ b/images/cs-block-supplemental-punctuation.light.svg @@ -20,35 +20,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -139,8 +145,8 @@ - - + + @@ -168,8 +174,8 @@ - - + + @@ -187,16 +193,16 @@ - + - + - + @@ -205,10 +211,10 @@ - + - + @@ -219,22 +225,22 @@ - + - + - + - + - + - + @@ -243,28 +249,28 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -275,31 +281,31 @@ - + - + - + - + - + - + - + - + - + @@ -331,13 +337,13 @@ - + - + - + @@ -364,7 +370,7 @@ - + @@ -393,7 +399,7 @@ - + diff --git a/images/cv-cyrl-el-straight.dark.svg b/images/cv-cyrl-el-straight.dark.svg index 17c9724a70..2689bc349b 100644 --- a/images/cv-cyrl-el-straight.dark.svg +++ b/images/cv-cyrl-el-straight.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-straight.light.svg b/images/cv-cyrl-el-straight.light.svg index 6752134507..0a58a000c4 100644 --- a/images/cv-cyrl-el-straight.light.svg +++ b/images/cv-cyrl-el-straight.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-tailed.dark.svg b/images/cv-cyrl-el-tailed.dark.svg index 8efac9eca7..2620332b01 100644 --- a/images/cv-cyrl-el-tailed.dark.svg +++ b/images/cv-cyrl-el-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-tailed.light.svg b/images/cv-cyrl-el-tailed.light.svg index 901a73beeb..2500a48cd8 100644 --- a/images/cv-cyrl-el-tailed.light.svg +++ b/images/cv-cyrl-el-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg b/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg index 8f348574cb..01dcf244eb 100644 --- a/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg +++ b/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg b/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg index e9af2e0f18..80386bbd55 100644 --- a/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg +++ b/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed.dark.svg b/images/cv-f-diagonal-tailed.dark.svg index 56e809c868..0c56e23204 100644 --- a/images/cv-f-diagonal-tailed.dark.svg +++ b/images/cv-f-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed.light.svg b/images/cv-f-diagonal-tailed.light.svg index 10d2e9690b..b03bd4a1fd 100644 --- a/images/cv-f-diagonal-tailed.light.svg +++ b/images/cv-f-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg index b39ae2a417..875eb3ec20 100644 --- a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg +++ b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg index dd56f4106c..91903464a5 100644 --- a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg +++ b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed.dark.svg b/images/cv-f-flat-hook-diagonal-tailed.dark.svg index 44e567b6dc..8523991019 100644 --- a/images/cv-f-flat-hook-diagonal-tailed.dark.svg +++ b/images/cv-f-flat-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed.light.svg b/images/cv-f-flat-hook-diagonal-tailed.light.svg index 1c2892cf4e..dec8daffee 100644 --- a/images/cv-f-flat-hook-diagonal-tailed.light.svg +++ b/images/cv-f-flat-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-diagonal-tailed.dark.svg b/images/cv-i-diagonal-tailed.dark.svg index 1b757b6b87..aa91491248 100644 --- a/images/cv-i-diagonal-tailed.dark.svg +++ b/images/cv-i-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-diagonal-tailed.light.svg b/images/cv-i-diagonal-tailed.light.svg index e2f76b350c..3bfdf488e3 100644 --- a/images/cv-i-diagonal-tailed.light.svg +++ b/images/cv-i-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-diagonal-tailed.dark.svg b/images/cv-i-serifed-diagonal-tailed.dark.svg index a146ae02fb..b821aec0e3 100644 --- a/images/cv-i-serifed-diagonal-tailed.dark.svg +++ b/images/cv-i-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-diagonal-tailed.light.svg b/images/cv-i-serifed-diagonal-tailed.light.svg index 4c47d4e539..523bdaaba3 100644 --- a/images/cv-i-serifed-diagonal-tailed.light.svg +++ b/images/cv-i-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.dark.svg b/images/cv-j-diagonal-tailed-serifed.dark.svg index 37a60e01bc..920498c223 100644 --- a/images/cv-j-diagonal-tailed-serifed.dark.svg +++ b/images/cv-j-diagonal-tailed-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.light.svg b/images/cv-j-diagonal-tailed-serifed.light.svg index 75c9d2cbec..aaf3270e40 100644 --- a/images/cv-j-diagonal-tailed-serifed.light.svg +++ b/images/cv-j-diagonal-tailed-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifless.dark.svg b/images/cv-j-diagonal-tailed-serifless.dark.svg index 6f66a24b3b..3239cd402c 100644 --- a/images/cv-j-diagonal-tailed-serifless.dark.svg +++ b/images/cv-j-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifless.light.svg b/images/cv-j-diagonal-tailed-serifless.light.svg index 1414ff3f93..0d11b40025 100644 --- a/images/cv-j-diagonal-tailed-serifless.light.svg +++ b/images/cv-j-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg b/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg index f7d7a81886..9c8b323f72 100644 --- a/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg +++ b/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-serifless.light.svg b/images/cv-k-diagonal-tailed-cursive-serifless.light.svg index 3cad5b32ab..be1105a223 100644 --- a/images/cv-k-diagonal-tailed-cursive-serifless.light.svg +++ b/images/cv-k-diagonal-tailed-cursive-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg index 3c5cfe8655..461e96632a 100644 --- a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg +++ b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg index 77ccef5cd0..934ccbb920 100644 --- a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg +++ b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-diagonal-tailed.dark.svg b/images/cv-l-diagonal-tailed.dark.svg index 97857fa662..9bb42a4d09 100644 --- a/images/cv-l-diagonal-tailed.dark.svg +++ b/images/cv-l-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-diagonal-tailed.light.svg b/images/cv-l-diagonal-tailed.light.svg index f7370a5a0d..98e8897995 100644 --- a/images/cv-l-diagonal-tailed.light.svg +++ b/images/cv-l-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-serifed-diagonal-tailed.dark.svg b/images/cv-l-serifed-diagonal-tailed.dark.svg index 8ed97f3318..2d5c6a0d81 100644 --- a/images/cv-l-serifed-diagonal-tailed.dark.svg +++ b/images/cv-l-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-serifed-diagonal-tailed.light.svg b/images/cv-l-serifed-diagonal-tailed.light.svg index 53939ed491..794d7d2f0a 100644 --- a/images/cv-l-serifed-diagonal-tailed.light.svg +++ b/images/cv-l-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg index 2f4d80a5d2..194f31ba89 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg index 3e231b55c1..e0a0abf06f 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg index a17c1e3b72..31e28abb6f 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg index c8431137a7..ab459a0999 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg index ec43359217..251cec5860 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed.light.svg index 334f5d2f0a..7a684b7bb7 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg index caf8dd8767..164346800c 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg index 1ce85a27aa..8cfb0bd376 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg index 6b6033d280..a4cdff2634 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg index 033af50d6a..414fdf3454 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg index 021f2e1ace..188793021c 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed.light.svg index 9893447c44..b90a68f0ff 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-chi-chancery.dark.svg b/images/cv-lower-chi-chancery.dark.svg index 17bff3d61e..6dfa5facae 100644 --- a/images/cv-lower-chi-chancery.dark.svg +++ b/images/cv-lower-chi-chancery.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-chi-chancery.light.svg b/images/cv-lower-chi-chancery.light.svg index 979589c7ba..bfde691f80 100644 --- a/images/cv-lower-chi-chancery.light.svg +++ b/images/cv-lower-chi-chancery.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-diagonal-tailed.dark.svg b/images/cv-lower-iota-diagonal-tailed.dark.svg index a47af009be..55911b1ffd 100644 --- a/images/cv-lower-iota-diagonal-tailed.dark.svg +++ b/images/cv-lower-iota-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-diagonal-tailed.light.svg b/images/cv-lower-iota-diagonal-tailed.light.svg index c41022c375..bcdf1211b5 100644 --- a/images/cv-lower-iota-diagonal-tailed.light.svg +++ b/images/cv-lower-iota-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg b/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg index a7710de44a..a393ff8d5c 100644 --- a/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg +++ b/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-serifed-diagonal-tailed.light.svg b/images/cv-lower-iota-serifed-diagonal-tailed.light.svg index a4390faa76..7981389445 100644 --- a/images/cv-lower-iota-serifed-diagonal-tailed.light.svg +++ b/images/cv-lower-iota-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-tau-diagonal-tailed.dark.svg b/images/cv-lower-tau-diagonal-tailed.dark.svg index 2a88b4f0ff..31d1df48c2 100644 --- a/images/cv-lower-tau-diagonal-tailed.dark.svg +++ b/images/cv-lower-tau-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-tau-diagonal-tailed.light.svg b/images/cv-lower-tau-diagonal-tailed.light.svg index 01872a72fc..f56ad35a75 100644 --- a/images/cv-lower-tau-diagonal-tailed.light.svg +++ b/images/cv-lower-tau-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-motion-serifed.dark.svg b/images/cv-q-diagonal-tailed-motion-serifed.dark.svg index 5181b66fbd..8bbdfa30a3 100644 --- a/images/cv-q-diagonal-tailed-motion-serifed.dark.svg +++ b/images/cv-q-diagonal-tailed-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-motion-serifed.light.svg b/images/cv-q-diagonal-tailed-motion-serifed.light.svg index dda1961aad..9253d6c750 100644 --- a/images/cv-q-diagonal-tailed-motion-serifed.light.svg +++ b/images/cv-q-diagonal-tailed-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-serifless.dark.svg b/images/cv-q-diagonal-tailed-serifless.dark.svg index 06c33988db..1a87353678 100644 --- a/images/cv-q-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-serifless.light.svg b/images/cv-q-diagonal-tailed-serifless.light.svg index 9d8deac37b..53651c9f0c 100644 --- a/images/cv-q-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg b/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg index d7bb98ed6b..4bb5e8b9fa 100644 --- a/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg b/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg index b36b33fbae..66081ae454 100644 --- a/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg b/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg index cabbfaad72..946c3966c8 100644 --- a/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg b/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg index d638d9c348..87abf25c3d 100644 --- a/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg index 0a47b0bda4..e26cb0a8cd 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg index 31e73037f6..79f957e5ec 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg index 2256203566..038636a58f 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg index 5cddb57e85..de507e7ac7 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric.dark.svg b/images/cv-t-diagonal-tailed-asymmetric.dark.svg index 4b679580d3..357d0b3794 100644 --- a/images/cv-t-diagonal-tailed-asymmetric.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric.light.svg b/images/cv-t-diagonal-tailed-asymmetric.light.svg index 259b9ffcf1..6367a615c2 100644 --- a/images/cv-t-diagonal-tailed-asymmetric.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck.dark.svg b/images/cv-t-diagonal-tailed-short-neck.dark.svg index 8194761b12..bcfa3bc673 100644 --- a/images/cv-t-diagonal-tailed-short-neck.dark.svg +++ b/images/cv-t-diagonal-tailed-short-neck.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck.light.svg b/images/cv-t-diagonal-tailed-short-neck.light.svg index 4f246b17e4..caf3da156b 100644 --- a/images/cv-t-diagonal-tailed-short-neck.light.svg +++ b/images/cv-t-diagonal-tailed-short-neck.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck2.dark.svg b/images/cv-t-diagonal-tailed-short-neck2.dark.svg index c09873e5f5..444013ba60 100644 --- a/images/cv-t-diagonal-tailed-short-neck2.dark.svg +++ b/images/cv-t-diagonal-tailed-short-neck2.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck2.light.svg b/images/cv-t-diagonal-tailed-short-neck2.light.svg index 24b46fb509..325ebe6563 100644 --- a/images/cv-t-diagonal-tailed-short-neck2.light.svg +++ b/images/cv-t-diagonal-tailed-short-neck2.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed.dark.svg b/images/cv-t-diagonal-tailed.dark.svg index 043f7c33a5..2e93013a8f 100644 --- a/images/cv-t-diagonal-tailed.dark.svg +++ b/images/cv-t-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed.light.svg b/images/cv-t-diagonal-tailed.light.svg index ce314e47db..1cfb7fd467 100644 --- a/images/cv-t-diagonal-tailed.light.svg +++ b/images/cv-t-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-x-cursive.dark.svg b/images/cv-x-cursive.dark.svg index a62970602e..c9aaaabe2d 100644 --- a/images/cv-x-cursive.dark.svg +++ b/images/cv-x-cursive.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-x-cursive.light.svg b/images/cv-x-cursive.light.svg index b12f1a8e1f..7bebb5c253 100644 --- a/images/cv-x-cursive.light.svg +++ b/images/cv-x-cursive.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 5ac44eec19..21d4d7f9b7 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -81,7 +81,7 @@ - + @@ -259,7 +259,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 718e11ed1f..9b1c563490 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -81,7 +81,7 @@ - + @@ -259,7 +259,7 @@ - + diff --git a/images/matrix.dark.svg b/images/matrix.dark.svg index 413685bfc4..150d8216ef 100644 --- a/images/matrix.dark.svg +++ b/images/matrix.dark.svg @@ -1,5 +1,5 @@ - + @@ -127,6 +127,7 @@ + @@ -398,4 +399,7 @@ + + + \ No newline at end of file diff --git a/images/matrix.light.svg b/images/matrix.light.svg index 89a080dc6c..64d2aeaec8 100644 --- a/images/matrix.light.svg +++ b/images/matrix.light.svg @@ -1,5 +1,5 @@ - + @@ -127,6 +127,7 @@ + @@ -398,4 +399,7 @@ + + + \ No newline at end of file diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index c3bb856a64..c67defb4a0 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -25,7 +25,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 6c22ea6071..92d67a92a3 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -25,7 +25,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index 2c500a7dc6..0b9d84e52c 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -25,7 +25,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index b0e1fd4db8..0fec9443a6 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -25,7 +25,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/package-sample-IosevkaFixedSS02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/package-sample-IosevkaFixedSS02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/package-sample-IosevkaFixedSS05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/package-sample-IosevkaFixedSS05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/package-sample-IosevkaFixedSS15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/package-sample-IosevkaFixedSS15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/package-sample-IosevkaSS02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.light.svg b/images/package-sample-IosevkaSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/package-sample-IosevkaSS02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/package-sample-IosevkaSS05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.light.svg b/images/package-sample-IosevkaSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/package-sample-IosevkaSS05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/package-sample-IosevkaSS15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.light.svg b/images/package-sample-IosevkaSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/package-sample-IosevkaSS15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/package-sample-IosevkaTermSS02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/package-sample-IosevkaTermSS02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/package-sample-IosevkaTermSS05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/package-sample-IosevkaTermSS05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/package-sample-IosevkaTermSS15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/package-sample-IosevkaTermSS15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index 76786ef881..a53206c89d 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index b980016a86..c6d8fa03d9 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index b1a5aa4685..0e487d8e8c 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index 1bac7ada7a..ccf4df9955 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index afc09cb292..b381054071 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index 5c29b2917e..bc6e5d183d 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 9c923d3bdf..8b3b03320f 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 385b266e21..9f2066b3da 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 7a0a1011b7..250b3612f8 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index feb037b27a..fa6a8359de 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index e2f8977d18..fc96fba2bd 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 149824b35d..35ce5fc976 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 19fd2567c9..12855a1764 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 486d255961..08c0bedc19 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 537099f606..42bddb35c6 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index bf6f21dc25..02848729f3 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index a0eb0c5633..c42c1cb603 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index f9d69dcfff..20bef384c2 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 496a264521..a3b02f4906 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index d528196fa2..6bb8c42b86 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 4b87db058a..02e581738a 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index 4a2a57207e..da09ce2c68 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 1f54a1f3cf..e0bd82a8da 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 399d4fe2b5..25f5a598bb 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 23c4007d23..26a3c6573f 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 49efe2e505..0e45b8d374 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index 88453ecbc1..ad729c6d79 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index dca37e3e27..88be4e7a94 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index b4fae7e166..13887b8ab3 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index f5f293b28b..2a4904cfbb 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 596954746b..19baa5add7 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -33,13 +33,13 @@ - + - - - - + + + + @@ -47,11 +47,11 @@ - + - + @@ -108,7 +108,7 @@ - + @@ -117,12 +117,12 @@ - + - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index 0fd923cb39..0a40b20645 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -33,13 +33,13 @@ - + - - - - + + + + @@ -47,11 +47,11 @@ - + - + @@ -108,7 +108,7 @@ - + @@ -117,12 +117,12 @@ - + - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 5469872547..577e571995 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 50e6358222..921010596a 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index c4424ec2c8..1e755cf9fc 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 166b765880..794b706ab8 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 1b01b49c7e..ac094676c5 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index ea4c0ddbbe..2dab75bd51 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index df48ebc852..1a4a7d3f0c 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 00de19f9e8..53a4878a32 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index a1d9de2f8e..53ceebc711 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index 6127bfd202..dcb5b4ae23 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index 1833d684f2..1410917c86 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index 65e4355087..fec7d67d1c 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index 7d907ea443..e57e245cba 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index 7d69c4459c..c80642620b 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 7305a890f8..57197f7615 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index e4b86a0551..6dda8d1fe2 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index 4a97ac4bbd..b7afd4e6db 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index ca84d3dc6b..cba001e760 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index 385c8b77ca..c362a61ec9 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 7b092b98b9..6f703c9b8f 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index ded318ef4e..b8f4a7be44 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index 0bb94c629c..4bd72e6873 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index a09bdbdd6b..b0b8493f5d 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 71eb40b2cd..42390dcb0d 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index b49e5bd7cc..7c209e83c8 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index d40e2982ea..4f67aa60fb 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 3e301a1b0d..e016228436 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 1e0b6822f4..ffc15b38e4 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index bea913a553..680e572abe 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index 9d0a4dea14..b24f47002b 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index 6ae7138856..4cc04c8fa0 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index 134ea6d4dc..cd9417ea66 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 25c1c7fc04..cafa3fad52 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index 7e3e8f868e..8e328d5900 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index c97c797d17..57d034a59c 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index d0c41dcb2e..9a9d5ddb96 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 8925b402f0..5c64789f81 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 683832fe20..8deb630406 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index 6e4df54543..599010784d 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index 0673103d64..d9438ab770 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 2cfd46f33a..fdabf971f1 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index f8eda6bef0..2f7a168514 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 4bbc90bd58..3a0ad212b7 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index c650a1466e..18554b5edb 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index 267640b7d2..eb37f67432 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index 6edca545c1..cdcb302f22 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index c34cdeb3ea..7a85907749 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index e31a2e4584..9e2cd0441e 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/utility/generate-samples/templates/matrix.mjs b/utility/generate-samples/templates/matrix.mjs index f8ec463add..e3d78a3464 100644 --- a/utility/generate-samples/templates/matrix.mjs +++ b/utility/generate-samples/templates/matrix.mjs @@ -7,6 +7,7 @@ export default (function (args) { const elementHeight = 1.5 * EM; const canvasWidth = 30 * EM; const canvasHeight = 12 * EM; + const sigilHeight = 2 * EM; const lineConfig = [ [-(1 / 4), "Iosevka", "normal"], [+(1 / 4), "Iosevka Slab", "normal"], @@ -41,5 +42,26 @@ export default (function (args) { }); } } - return { width: canvasWidth, height: canvasHeight, frames }; + + // Add the sigil + frames.push({ + left: 0, + top: canvasHeight, + right: canvasWidth, + bottom: canvasHeight + sigilHeight, + "horizontal-align": "center", + "vertical-align": "center", + contents: [ + { + "font-family": "Iosevka", + "font-weight": 100, + "font-style": "normal", + "font-size": 3 * EM, + color: theme.sigil + }, + "\uEF10" + ] + }); + + return { width: canvasWidth, height: canvasHeight + sigilHeight, frames }; }); diff --git a/utility/generate-samples/themes/index.mjs b/utility/generate-samples/themes/index.mjs index 9f2a5ad62c..1118b1f7b2 100644 --- a/utility/generate-samples/themes/index.mjs +++ b/utility/generate-samples/themes/index.mjs @@ -2,11 +2,13 @@ export const light = { body: "#20242E", dimmed: "#20242E40", stress: "#048FBF", + sigil: "#974caf", title: "#8757AD" }; export const dark = { body: "#DEE4E3", dimmed: "#DEE4E340", stress: "#03AEE9", + sigil: "#c49ed1", title: "#B77FDB" }; From b67d00018049e12734cd25c533f141703a5d98c2 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sat, 18 Nov 2023 15:20:56 -0500 Subject: [PATCH 25/59] Improve serifs of three `k`-derived characters. (#2094) * Improve serifs of three `k`-derived characters. * retarget --- changes/28.0.0-alpha.2.md | 3 + font-src/glyphs/letter/latin/k.ptl | 107 +++++++++++++++++------------ params/variants.toml | 28 ++++---- 3 files changed, 80 insertions(+), 58 deletions(-) create mode 100644 changes/28.0.0-alpha.2.md diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md new file mode 100644 index 0000000000..2836e539c4 --- /dev/null +++ b/changes/28.0.0-alpha.2.md @@ -0,0 +1,3 @@ +* Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). +* Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. +* Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index a8fc718a67..20acd1e2a0 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -325,8 +325,8 @@ glyph-block Letter-Latin-K : begin DiagTail.F 1 xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs - define [KHookTopBar slabLegs straightBar] : TopHook.lBarInner - x -- SB + [KBalance slabLegs straightBar] + define [KHookTopBar xBarLeft] : TopHook.lBarInner + x -- xBarLeft yBot -- 0 yTop -- Ascender @@ -352,19 +352,21 @@ glyph-block Letter-Latin-K : begin serifed { 1 1 3 0 } serifedKH { 1 1 2 0 } serifed2 { 1 1 2 1 } + serifedKra { 2 1 3 0 } + serifedKappa { 2 0 3 0 } - define [UpperKLTSerif top sw slabLT straightBar] : match slabLT - 2 : HSerif.lt (SB + [KBalance slabLT straightBar]) top SideJut - 1 : HSerif.mt (SB + [KBalance slabLT straightBar] + [HSwToV : 0.5 * sw]) top Jut + define [UpperKLTSerif top sw xBarLeft slabType straightBar] : match slabType + 2 : HSerif.lt xBarLeft top SideJut + 1 : HSerif.mt (xBarLeft + [HSwToV : 0.5 * sw]) top Jut _ : glyph-proc - define [UpperKLBSerif top sw slabLT straightBar] : match slabLT - 2 : HSerif.lb (SB + [KBalance slabLT straightBar]) 0 SideJut - 1 : HSerif.mb (SB + [KBalance slabLT straightBar] + [HSwToV : 0.5 * sw]) 0 Jut + define [UpperKLBSerif top sw xBarLeft slabType straightBar] : match slabType + 2 : HSerif.lb xBarLeft 0 SideJut + 1 : HSerif.mb (xBarLeft + [HSwToV : 0.5 * sw]) 0 Jut _ : glyph-proc - define [CyrlKaVBar top slabLT straightBar] : VBar.m - SB + [KBalance slabLT straightBar] + [HSwToV : 0.5 * CyrlVbSw] + 0.7 * CyrlVbGap + define [CyrlKaVBar top xBarLeft] : VBar.m + xBarLeft + [HSwToV : 0.5 * CyrlVbSw] + 0.7 * CyrlVbGap top / 2 - [CyrlVbLength top] / 2 top / 2 + [CyrlVbLength top] / 2 Math.min [AdviceStroke 5] (CyrlVbGap * 0.5) @@ -395,12 +397,13 @@ glyph-block Letter-Latin-K : begin # Main building foreach { suffix { LegsImpl {slabLT slabLB slabLegs slabKS} } } [pairs-of UpperKConfig] : do local straightBar : LegsImpl !== KLegs.Curly + local KBarLeft : SB + [KBalance slabLT straightBar] define [KBaseShape sw top attachment] : glyph-proc - include : VBar.l (SB + [KBalance slabLT straightBar]) 0 top sw + include : VBar.l KBarLeft 0 top sw include : LegsImpl false SB RightSB sw top slabLT slabLegs attachment - if slabLT : include : UpperKLTSerif top sw slabLT straightBar - if slabLB : include : UpperKLBSerif top sw slabLT straightBar + if slabLT : include : UpperKLTSerif top sw KBarLeft slabLT straightBar + if slabLB : include : UpperKLBSerif top sw KBarLeft slabLB straightBar create-glyph "K.\(suffix)" : glyph-proc include : MarkSet.capital @@ -411,10 +414,10 @@ glyph-block Letter-Latin-K : begin include : KBaseShape Stroke CAP CyrDescender include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke) - create-glyph "KBar.\(suffix)" : glyph-proc + create-glyph "KStroke.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in - x -- (SB + [KBalance slabLT straightBar]) + x -- KBarLeft bot -- XH top -- (CAP - [if slabLT Stroke 0]) space -- { 0 [mix SB RightSB 0.75] } @@ -422,7 +425,7 @@ glyph-block Letter-Latin-K : begin create-glyph "KVBar.\(suffix)" : glyph-proc include : MarkSet.capital include : KBaseShape CyrlVbSw CAP - include : CyrlKaVBar CAP slabLT straightBar + include : CyrlKaVBar CAP KBarLeft create-glyph "grek/KaiSymbol.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS @@ -443,15 +446,19 @@ glyph-block Letter-Latin-K : begin create-glyph "smcpKVBar.\(suffix)" : glyph-proc include : MarkSet.e include : KBaseShape CyrlVbSw XH - include : CyrlKaVBar XH slabLT straightBar + include : CyrlKaVBar XH KBarLeft create-glyph "KHookTop.\(suffix)" : glyph-proc include : MarkSet.capital - include : VBar.l (SB + [KBalance slabLT straightBar]) 0 CAP Stroke + include : VBar.l KBarLeft 0 CAP Stroke include : LegsImpl true SB RightSB Stroke CAP slabLT slabLegs eject-contour 'serifRT' - if slabLT : include : UpperKLTSerif CAP Stroke slabLT straightBar - if slabLB : include : UpperKLBSerif CAP Stroke slabLT straightBar + if slabLT : include : UpperKLTSerif CAP Stroke KBarLeft slabLT straightBar + if slabLB : include : UpperKLBSerif CAP Stroke KBarLeft slabLB straightBar + + turned "turnK.\(suffix)" nothing "K.\(suffix)" Middle (CAP / 2) + + turned "smcpTurnK.\(suffix)" nothing "smcpK.\(suffix)" Middle (XH / 2) define [BashkirKaShape df top] : glyph-proc local left : if slabLT ([mix SB RightSB 0.35] - [HSwToV : 0.5 * df.mvs]) [mix SB RightSB 0.2] @@ -479,11 +486,11 @@ glyph-block Letter-Latin-K : begin define LowerKConfig : SuffixCfg.weave object # body - straight KLegs.Straight - curly KLegs.Curly - cursive KLegs.Cursive - cursiveTailed KLegs.CursiveTailed - symmetricTouching [KLegs.Symmetric 0] + straight KLegs.Straight + curly KLegs.Curly + cursive KLegs.Cursive + cursiveTailed KLegs.CursiveTailed + symmetricTouching [KLegs.Symmetric 0] symmetricConnected [KLegs.Symmetric : AdviceStroke 6] object # serifs serifless { 0 0 0 } @@ -494,14 +501,15 @@ glyph-block Letter-Latin-K : begin foreach { suffix { LegsImpl {slabLT slabLB slabLegs} } } [pairs-of LowerKConfig] : do local straightBar : LegsImpl !== KLegs.Curly + local kBarLeft : SB + [KBalance slabLT straightBar] define [kBaseShape attachment] : glyph-proc - include : LeaningAnchor.Above.VBar.l (SB + [KBalance slabLT straightBar]) - include : VBar.l (SB + [KBalance slabLT straightBar]) 0 Ascender + include : LeaningAnchor.Above.VBar.l kBarLeft + include : VBar.l kBarLeft 0 Ascender include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs attachment - if slabLT : include : HSerif.lt (SB + [KBalance slabLT straightBar]) Ascender SideJut + if slabLT : include : HSerif.lt kBarLeft Ascender SideJut if slabLB : include : tagged 'serifLB' - HSerif.mb (SB + [KBalance slabLT straightBar] + [HSwToV HalfStroke]) 0 Jut + HSerif.mb (kBarLeft + [HSwToV HalfStroke]) 0 Jut create-glyph "k.\(suffix)" : glyph-proc include : MarkSet.b @@ -517,26 +525,38 @@ glyph-block Letter-Latin-K : begin include : kBaseShape PalatalHook include : ExtendBelowBaseAnchors Descender - create-glyph "kBar.\(suffix)" : glyph-proc + create-glyph "kStroke.\(suffix)" : glyph-proc include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in - x -- (SB + [KBalance slabLT straightBar]) + x -- kBarLeft bot -- XH top -- (Ascender - [if slabLT Stroke 0]) create-glyph "kHookTop.\(suffix)" : glyph-proc include : MarkSet.b include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs - include : KHookTopBar slabLT straightBar + include : KHookTopBar kBarLeft + if slabLB : include : tagged 'serifLB' + HSerif.mb (kBarLeft + [HSwToV HalfStroke]) 0 Jut + + create-glyph "turnk.\(suffix)" : glyph-proc + include : VBar.l kBarLeft 0 Ascender + include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs + if slabLT : include : tagged 'serifLT' : union + HSerif.lt (kBarLeft + [HSwToV HalfStroke]) Ascender Jut + HSerif.rt (kBarLeft + [HSwToV HalfStroke]) Ascender MidJutSide if slabLB : include : tagged 'serifLB' - HSerif.mb (SB + [KBalance slabLT straightBar] + [HSwToV HalfStroke]) 0 Jut + HSerif.lb kBarLeft 0 SideJut + include : FlipAround Middle (XH / 2) + include : MarkSet.p + include : LeaningAnchor.Below.VBar.r (RightSB - [KBalance slabLT straightBar]) select-variant 'K' 'K' link-reduced-variant 'K/sansSerif' 'K' MathSansSerif alias 'grek/Kappa' 0x39A 'K' alias-reduced-variant 'grek/Kappa/sansSerif' 'grek/Kappa' 'K/sansSerif' MathSansSerif - select-variant 'KBar' 0xA740 (follow -- 'K') - select-variant 'cyrl/KaStroke' 0x49E (shapeFrom -- 'KBar') (follow -- 'cyrl/Ka') + select-variant 'KStroke' 0xA740 (follow -- 'K') + select-variant 'cyrl/KaStroke' 0x49E (shapeFrom -- 'KStroke') (follow -- 'cyrl/Ka') select-variant 'KDescender' 0x2C69 select-variant 'cyrl/Ka' 0x41A 'K' (shapeFrom -- 'K') (follow -- 'cyrl/Ka') select-variant 'cyrl/KaDescender' 0x49A (shapeFrom -- 'KDescender') @@ -544,18 +564,17 @@ glyph-block Letter-Latin-K : begin select-variant 'cyrl/KaHook' 0x4C3 (shapeFrom -- 'K') (follow -- 'cyrl/KaHook') select-variant 'k' 'k' - select-variant 'k/nonCursive' (shapeFrom -- 'k') link-reduced-variant 'k/sansSerif' 'k' MathSansSerif select-variant 'kDescender' 0x2C6A select-variant 'kPalatalHook' 0x1D84 (follow -- 'kDescender') - select-variant 'kBar' 0xA741 (follow -- 'k') - select-variant 'cyrl/kaStroke' 0x49F (shapeFrom -- 'kBar') (follow -- 'cyrl/ka') + select-variant 'kStroke' 0xA741 (follow -- 'k') + select-variant 'cyrl/kaStroke' 0x49F (shapeFrom -- 'kStroke') (follow -- 'cyrl/ka') select-variant 'grek/kappa' 0x3BA (shapeFrom -- 'smcpK') link-reduced-variant 'grek/kappa/sansSerif' 'grek/kappa' MathSansSerif (shapeFrom -- 'smcpK') select-variant 'smcpK' 0x1D0B (follow -- 'K') - select-variant 'latn/kappa' 0x138 (shapeFrom -- 'smcpK') (follow -- 'k/nonCursive') + select-variant 'latn/kappa' 0x138 (shapeFrom -- 'smcpK') select-variant 'cyrl/ka' 0x43A (shapeFrom -- 'smcpK') select-variant 'cyrl/kaDescender' 0x49B (shapeFrom -- 'smcpKDescender') select-variant 'cyrl/ka.BGR' (shapeFrom -- 'k') (follow -- 'cyrl/ka') @@ -569,12 +588,12 @@ glyph-block Letter-Latin-K : begin derive-composites 'cyrl/kaAleut' 0x51F 'cyrl/ka' 'aleutSlashOver' derive-composites 'KLegStroke' 0xA742 'K' 'legSlashOver' derive-composites 'kLegStroke' 0xA743 'k' 'legSlashOver' - derive-composites 'KBarLegStroke' 0xA744 'KBar' 'legSlashOver' - derive-composites 'kBarLegStroke' 0xA745 'kBar' 'legSlashOver' + derive-composites 'KStrokeLegStroke' 0xA744 'KStroke' 'legSlashOver' + derive-composites 'kStrokeLegStroke' 0xA745 'kStroke' 'legSlashOver' - turned 'turnK' 0xA7B0 'K' Middle (CAP / 2) - turned 'turnk' 0x29E 'k' Middle (XH / 2) [MarkSet.p] - turned 'turnSmcpK' 0x1DF10 'smcpK' Middle (XH / 2) + select-variant 'turnK' 0xA7B0 (follow -- 'K') + select-variant 'turnk' 0x29E (follow -- 'k') + select-variant 'smcpTurnK' 0x1DF10 (follow -- 'K') select-variant 'cyrl/BashkirUpperKa' 0x4A0 (follow -- 'cyrl/Ka') select-variant 'cyrl/BashkirKa' 0x4A1 (follow -- 'cyrl/ka') diff --git a/params/variants.toml b/params/variants.toml index eabe56b94f..cb18017cf9 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -2473,7 +2473,7 @@ rank = 1 descriptionAffix = "standard shape" selectorAffix.k = "straight" selectorAffix."k/sansSerif" = "straight" -selectorAffix."k/nonCursive" = "straight" +selectorAffix."latn/kappa" = "straight" selectorAffix.kHookTop = "straight" selectorAffix.kDescender = "straight" selectorAffix."grek/kappa" = "straight" @@ -2484,7 +2484,7 @@ rank = 2 descriptionAffix = "curly shape" selectorAffix.k = "curly" selectorAffix."k/sansSerif" = "curly" -selectorAffix."k/nonCursive" = "curly" +selectorAffix."latn/kappa" = "curly" selectorAffix.kHookTop = "curly" selectorAffix.kDescender = "curly" selectorAffix."grek/kappa" = "curly" @@ -2495,7 +2495,7 @@ rank = 3 descriptionAffix = "symmetric legs touching the vertical bar" selectorAffix.k = "symmetricTouching" selectorAffix."k/sansSerif" = "symmetricTouching" -selectorAffix."k/nonCursive" = "symmetricTouching" +selectorAffix."latn/kappa" = "symmetricTouching" selectorAffix.kHookTop = "symmetricTouching" selectorAffix.kDescender = "symmetricTouching" selectorAffix."grek/kappa" = "symmetricTouching" @@ -2506,7 +2506,7 @@ rank = 4 descriptionAffix = "symmetric legs connected to the vertical bar" selectorAffix.k = "symmetricConnected" selectorAffix."k/sansSerif" = "symmetricConnected" -selectorAffix."k/nonCursive" = "symmetricConnected" +selectorAffix."latn/kappa" = "symmetricConnected" selectorAffix.kHookTop = "symmetricConnected" selectorAffix.kDescender = "symmetricConnected" selectorAffix."grek/kappa" = "symmetricConnected" @@ -2517,7 +2517,7 @@ rank = 5 descriptionAffix = "cursive loop" selectorAffix.k = "cursive" selectorAffix."k/sansSerif" = "cursive" -selectorAffix."k/nonCursive" = "straight" +selectorAffix."latn/kappa" = "straight" selectorAffix.kHookTop = "cursive" selectorAffix.kDescender = "cursive" selectorAffix."grek/kappa" = "straight" @@ -2528,7 +2528,7 @@ rank = 6 descriptionAffix = "cursive loop plus diagonal tail" selectorAffix.k = "cursiveTailed" selectorAffix."k/sansSerif" = "cursiveTailed" -selectorAffix."k/nonCursive" = "straight" +selectorAffix."latn/kappa" = "straight" selectorAffix.kHookTop = "cursiveTailed" selectorAffix.kDescender = "cursive" selectorAffix."grek/kappa" = "straight" @@ -2540,7 +2540,7 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.k = "serifless" selectorAffix."k/sansSerif" = "serifless" -selectorAffix."k/nonCursive" = "serifless" +selectorAffix."latn/kappa" = "serifless" selectorAffix.kHookTop = "serifless" selectorAffix.kDescender = "serifless" selectorAffix."grek/kappa" = "serifless" @@ -2551,7 +2551,7 @@ rank = 2 descriptionAffix = "serifs at top left" selectorAffix.k = "topLeftSerifed" selectorAffix."k/sansSerif" = "serifless" -selectorAffix."k/nonCursive" = "topLeftSerifed" +selectorAffix."latn/kappa" = "topLeftSerifed" selectorAffix.kHookTop = "serifless" selectorAffix.kDescender = "topLeftSerifed" selectorAffix."grek/kappa" = "topLeftSerifed" @@ -2563,10 +2563,10 @@ disableIf = [ { body = "diagonal-tailed-cursive" } ] descriptionAffix = "serifs at bottom right" selectorAffix.k = "bottomRightSerifed" selectorAffix."k/sansSerif" = "serifless" -selectorAffix."k/nonCursive" = "bottomRightSerifed" +selectorAffix."latn/kappa" = "bottomRightSerifed" selectorAffix.kHookTop = "bottomRightSerifed" selectorAffix.kDescender = "serifless" -selectorAffix."grek/kappa" = "serifless" +selectorAffix."grek/kappa" = "bottomRightSerifed" selectorAffix."grek/kappa/sansSerif" = "serifless" [prime.k.variants-buildup.stages.serifs.top-left-and-bottom-right-serifed] @@ -2575,10 +2575,10 @@ disableIf = [ { body = "diagonal-tailed-cursive" } ] descriptionAffix = "serifs at top left and bottom right" selectorAffix.k = "topLeftAndBottomRightSerifed" selectorAffix."k/sansSerif" = "serifless" -selectorAffix."k/nonCursive" = "topLeftAndBottomRightSerifed" +selectorAffix."latn/kappa" = "topLeftAndBottomRightSerifed" selectorAffix.kHookTop = "bottomRightSerifed" selectorAffix.kDescender = "topLeftSerifed" -selectorAffix."grek/kappa" = "topLeftSerifed" +selectorAffix."grek/kappa" = "topLeftAndBottomRightSerifed" selectorAffix."grek/kappa/sansSerif" = "serifless" [prime.k.variants-buildup.stages.serifs.serifed] @@ -2587,10 +2587,10 @@ disableIf = [ { body = "diagonal-tailed-cursive" } ] descriptionAffix = "serifs" selectorAffix.k = "serifed" selectorAffix."k/sansSerif" = "serifless" -selectorAffix."k/nonCursive" = "serifed" +selectorAffix."latn/kappa" = "serifedKra" selectorAffix.kHookTop = "serifed" selectorAffix.kDescender = "serifed" -selectorAffix."grek/kappa" = "topLeftSerifed" +selectorAffix."grek/kappa" = "serifedKappa" selectorAffix."grek/kappa/sansSerif" = "serifless" From 9aaf6c9a594aaec95028f025b52c0f5ae734b851 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sun, 19 Nov 2023 15:06:25 -0500 Subject: [PATCH 26/59] Add an auto-serifed form for Greek Small Heta. (#2095) Also further cleanup `k.ptl` from #2094 . --- changes/28.0.0-alpha.2.md | 1 + font-src/glyphs/letter/latin/k.ptl | 50 ++++++++++++------------ font-src/glyphs/letter/latin/upper-h.ptl | 7 ++-- 3 files changed, 30 insertions(+), 28 deletions(-) diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md index 2836e539c4..c632f4e257 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-alpha.2.md @@ -1,3 +1,4 @@ * Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). * Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. * Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). +* Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index 20acd1e2a0..c102f18912 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -355,12 +355,12 @@ glyph-block Letter-Latin-K : begin serifedKra { 2 1 3 0 } serifedKappa { 2 0 3 0 } - define [UpperKLTSerif top sw xBarLeft slabType straightBar] : match slabType + define [UpperKLTSerif top sw xBarLeft slabType] : match slabType 2 : HSerif.lt xBarLeft top SideJut 1 : HSerif.mt (xBarLeft + [HSwToV : 0.5 * sw]) top Jut _ : glyph-proc - define [UpperKLBSerif top sw xBarLeft slabType straightBar] : match slabType + define [UpperKLBSerif top sw xBarLeft slabType] : match slabType 2 : HSerif.lb xBarLeft 0 SideJut 1 : HSerif.mb (xBarLeft + [HSwToV : 0.5 * sw]) 0 Jut _ : glyph-proc @@ -397,13 +397,13 @@ glyph-block Letter-Latin-K : begin # Main building foreach { suffix { LegsImpl {slabLT slabLB slabLegs slabKS} } } [pairs-of UpperKConfig] : do local straightBar : LegsImpl !== KLegs.Curly - local KBarLeft : SB + [KBalance slabLT straightBar] + local xBarLeft : SB + [KBalance slabLT straightBar] define [KBaseShape sw top attachment] : glyph-proc - include : VBar.l KBarLeft 0 top sw + include : VBar.l xBarLeft 0 top sw include : LegsImpl false SB RightSB sw top slabLT slabLegs attachment - if slabLT : include : UpperKLTSerif top sw KBarLeft slabLT straightBar - if slabLB : include : UpperKLBSerif top sw KBarLeft slabLB straightBar + if slabLT : include : UpperKLTSerif top sw xBarLeft slabLT + if slabLB : include : UpperKLBSerif top sw xBarLeft slabLB create-glyph "K.\(suffix)" : glyph-proc include : MarkSet.capital @@ -417,7 +417,7 @@ glyph-block Letter-Latin-K : begin create-glyph "KStroke.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in - x -- KBarLeft + x -- xBarLeft bot -- XH top -- (CAP - [if slabLT Stroke 0]) space -- { 0 [mix SB RightSB 0.75] } @@ -425,7 +425,7 @@ glyph-block Letter-Latin-K : begin create-glyph "KVBar.\(suffix)" : glyph-proc include : MarkSet.capital include : KBaseShape CyrlVbSw CAP - include : CyrlKaVBar CAP KBarLeft + include : CyrlKaVBar CAP xBarLeft create-glyph "grek/KaiSymbol.\(suffix)" : glyph-proc include [refer-glyph "K.\(suffix)"] AS_BASE ALSO_METRICS @@ -446,15 +446,15 @@ glyph-block Letter-Latin-K : begin create-glyph "smcpKVBar.\(suffix)" : glyph-proc include : MarkSet.e include : KBaseShape CyrlVbSw XH - include : CyrlKaVBar XH KBarLeft + include : CyrlKaVBar XH xBarLeft create-glyph "KHookTop.\(suffix)" : glyph-proc include : MarkSet.capital - include : VBar.l KBarLeft 0 CAP Stroke + include : VBar.l xBarLeft 0 CAP Stroke include : LegsImpl true SB RightSB Stroke CAP slabLT slabLegs eject-contour 'serifRT' - if slabLT : include : UpperKLTSerif CAP Stroke KBarLeft slabLT straightBar - if slabLB : include : UpperKLBSerif CAP Stroke KBarLeft slabLB straightBar + if slabLT : include : UpperKLTSerif CAP Stroke xBarLeft slabLT + if slabLB : include : UpperKLBSerif CAP Stroke xBarLeft slabLB turned "turnK.\(suffix)" nothing "K.\(suffix)" Middle (CAP / 2) @@ -501,15 +501,15 @@ glyph-block Letter-Latin-K : begin foreach { suffix { LegsImpl {slabLT slabLB slabLegs} } } [pairs-of LowerKConfig] : do local straightBar : LegsImpl !== KLegs.Curly - local kBarLeft : SB + [KBalance slabLT straightBar] + local xBarLeft : SB + [KBalance slabLT straightBar] define [kBaseShape attachment] : glyph-proc - include : LeaningAnchor.Above.VBar.l kBarLeft - include : VBar.l kBarLeft 0 Ascender + include : LeaningAnchor.Above.VBar.l xBarLeft + include : VBar.l xBarLeft 0 Ascender include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs attachment - if slabLT : include : HSerif.lt kBarLeft Ascender SideJut + if slabLT : include : HSerif.lt xBarLeft Ascender SideJut if slabLB : include : tagged 'serifLB' - HSerif.mb (kBarLeft + [HSwToV HalfStroke]) 0 Jut + HSerif.mb (xBarLeft + [HSwToV HalfStroke]) 0 Jut create-glyph "k.\(suffix)" : glyph-proc include : MarkSet.b @@ -528,25 +528,25 @@ glyph-block Letter-Latin-K : begin create-glyph "kStroke.\(suffix)" : glyph-proc include [refer-glyph "k.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in - x -- kBarLeft + x -- xBarLeft bot -- XH top -- (Ascender - [if slabLT Stroke 0]) create-glyph "kHookTop.\(suffix)" : glyph-proc include : MarkSet.b include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs - include : KHookTopBar kBarLeft + include : KHookTopBar xBarLeft if slabLB : include : tagged 'serifLB' - HSerif.mb (kBarLeft + [HSwToV HalfStroke]) 0 Jut + HSerif.mb (xBarLeft + [HSwToV HalfStroke]) 0 Jut create-glyph "turnk.\(suffix)" : glyph-proc - include : VBar.l kBarLeft 0 Ascender + include : VBar.l xBarLeft 0 Ascender include : LegsImpl false SB RightSB Stroke XH slabLT slabLegs if slabLT : include : tagged 'serifLT' : union - HSerif.lt (kBarLeft + [HSwToV HalfStroke]) Ascender Jut - HSerif.rt (kBarLeft + [HSwToV HalfStroke]) Ascender MidJutSide + HSerif.lt (xBarLeft + [HSwToV HalfStroke]) Ascender Jut + HSerif.rt (xBarLeft + [HSwToV HalfStroke]) Ascender MidJutSide if slabLB : include : tagged 'serifLB' - HSerif.lb kBarLeft 0 SideJut + HSerif.lb xBarLeft 0 SideJut include : FlipAround Middle (XH / 2) include : MarkSet.p include : LeaningAnchor.Below.VBar.r (RightSB - [KBalance slabLT straightBar]) @@ -558,7 +558,7 @@ glyph-block Letter-Latin-K : begin select-variant 'KStroke' 0xA740 (follow -- 'K') select-variant 'cyrl/KaStroke' 0x49E (shapeFrom -- 'KStroke') (follow -- 'cyrl/Ka') select-variant 'KDescender' 0x2C69 - select-variant 'cyrl/Ka' 0x41A 'K' (shapeFrom -- 'K') (follow -- 'cyrl/Ka') + select-variant 'cyrl/Ka' 0x41A (shapeFrom -- 'K') select-variant 'cyrl/KaDescender' 0x49A (shapeFrom -- 'KDescender') select-variant 'cyrl/KaVBar' 0x49C (shapeFrom -- 'KVBar') (follow -- 'cyrl/KaVBar') select-variant 'cyrl/KaHook' 0x4C3 (shapeFrom -- 'K') (follow -- 'cyrl/KaHook') diff --git a/font-src/glyphs/letter/latin/upper-h.ptl b/font-src/glyphs/letter/latin/upper-h.ptl index 32f799f40b..4fb931c983 100644 --- a/font-src/glyphs/letter/latin/upper-h.ptl +++ b/font-src/glyphs/letter/latin/upper-h.ptl @@ -100,6 +100,7 @@ glyph-block Letter-Latin-Upper-H : begin serifedExceptBottomRight { HShape HTurned SLAB-TAILED-CYRILLIC true } serifedBGR { HShape HTurned SLAB-ALL-BGR true } tailedSerifedBGR { TailedHShape HTurned SLAB-TAILED-CYRILLIC-BGR true } + serifedSmallHeta { HShape HTurned [if SLAB SLAB-TOP-LEFT SLAB-NONE] false } foreach { suffix { Body TurnedBody slabType enGheVSlab } } [Object.entries HConfig] : do create-glyph "H.\(suffix)" : glyph-proc @@ -217,8 +218,8 @@ glyph-block Letter-Latin-Upper-H : begin select-variant 'grek/Eta' 0x397 (follow -- 'H') select-variant 'HTurned' 0xA78D (follow -- 'H') link-reduced-variant 'grek/Eta/sansSerif' 'grek/Eta' MathSansSerif (follow -- 'H/sansSerif') - select-variant 'cyrl/En' 0x41D (shapeFrom -- 'H') (follow -- 'H') - select-variant 'cyrl/En/descenderBase' (shapeFrom -- 'H') (follow -- 'H/descenderBase') + alias 'cyrl/En' 0x41D 'H' + alias 'cyrl/En/descenderBase' null 'H/descenderBase' select-variant 'leftHalfH' 0x2C75 select-variant 'rightHalfH' 0xA7F5 alias 'grek/Heta' 0x370 'leftHalfH' @@ -229,7 +230,7 @@ glyph-block Letter-Latin-Upper-H : begin select-variant 'cyrl/en' 0x43D (shapeFrom -- 'smcpH') select-variant 'cyrl/en/descenderBase' (shapeFrom -- 'smcpH') select-variant 'cyrl/en.BGR' (shapeFrom -- 'smcpH') - alias 'grek/heta' 0x371 'leftHalfSmcpH.serifless' + alias 'grek/heta' 0x371 'leftHalfSmcpH.serifedSmallHeta' derive-composites 'HDescender' 0x2C67 'H/descenderBase' [CyrDescender.rSideJut RightSB 0] From 176276418a08b40be1d6560b0044d909632cb273 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Mon, 20 Nov 2023 17:42:29 -0500 Subject: [PATCH 27/59] some SS fixes (#2096) * some SS fixes * cont --- changes/28.0.0-alpha.2.md | 10 ++++++++ params/variants.toml | 52 ++++++++++++++++++++++----------------- 2 files changed, 40 insertions(+), 22 deletions(-) diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md index c632f4e257..304ae0bf77 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-alpha.2.md @@ -2,3 +2,13 @@ * Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. * Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). * Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. +* Stylistic set fixes: + - Fix `cv10` for `ss01`, `ss02`, and `ss08` under slab. + - Fix `cv53` for `ss16`. + - Fix `cv64` and `cv65` for `ss07`. + - Fix `cv66` for `ss17`. + - Fix `cv81` and `cv82` for `ss03` and `ss08` under italic slab. + - Fix `cv93` for `ss01`. + - Fix `vsAJ` for `ss10`. + - Fix `vlAB` for `ss09` and `ss14`. + - Fix `vlAD` for `ss05` and `ss14`. diff --git a/params/variants.toml b/params/variants.toml index cb18017cf9..1ad6e68892 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -1883,7 +1883,7 @@ selectorAffix."cyrl/djeKomi" = "topSerifed" rank = 3 enableIf = [{ body = "toothed" }] keyAffix = "serifed" -descriptionAffix = "serif at top" +descriptionAffix = "serifs" selectorAffix.d = "serifed" selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/phoneticLeft" = "topSerifed" @@ -1898,7 +1898,7 @@ selectorAffix."cyrl/djeKomi" = "serifed" rank = 3 enableIf = [{ body = "NOT toothed" }] keyAffix = "serifed" -descriptionAffix = "serif at top" +descriptionAffix = "serifs" selectorAffix.d = "topSerifed" selectorAffix."d/sansSerif" = "serifless" selectorAffix."d/phoneticLeft" = "topSerifed" @@ -3765,7 +3765,7 @@ selectorAffix."ue/u" = "serifed" [prime.u.variants-buildup.stages.serifs.bottom-right-serifed] rank = 3 disableIf = [{ body = "NOT toothed" }] -descriptionAffix = "motion serifs at left side" +descriptionAffix = "serif at bottom-right" selectorAffix.u = "bottomRightSerifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifless" @@ -7374,6 +7374,9 @@ a = "double-storey-serifless" b = "toothed-serifless" c = "serifless" g = "single-storey-serifless" +i = "serifed" +j = "serifed" +l = "serifed" p = "eared-serifless" q = "straight-serifless" r = "serifless" @@ -7436,6 +7439,8 @@ tilde = "low" asterisk = "penta-high" underscore = "high" caret = "medium" +ascii-grave = "straight" +ascii-single-quote = "straight" paren = "normal" brace = "curly" guillemet = "curly" @@ -7446,8 +7451,6 @@ dollar = "through" cent = "through" percent = "rings-segmented-slash" bar = "natural-slope" -ascii-single-quote = "straight" -ascii-grave = "straight" question = "smooth" pilcrow = "high" partial-derivative = "curly-bar" @@ -7472,10 +7475,7 @@ digit-form = "lining" d = "toothed-serifless" e = "flat-crossbar" f = "serifless" -i = "serifed" -j = "serifed" k = "straight-serifless" -l = "serifed" u = "toothed-serifless" y = "straight-serifless" @@ -7485,7 +7485,6 @@ d = "tailed-serifless" e = "rounded" f = "flat-hook-tailed" i = "tailed-serifed" -j = "serifed" k = "cursive-serifless" l = "tailed-serifed" u = "tailed-serifless" @@ -7610,7 +7609,6 @@ capital-d = "more-rounded-serifless" capital-g = "toothless-corner-serifless-hooked" capital-i = "short-serifed" capital-j = "serifless" -capital-k = "straight-serifless" a = "double-storey-serifless" d = "toothed-serifless" e = "flat-crossbar" @@ -7645,7 +7643,6 @@ one = "base" two = "straight-neck" four = "closed" six = "closed-contour" -eight = "two-circles" nine = "closed-contour" asterisk = "hex-mid" underscore = "low" @@ -7659,8 +7656,7 @@ micro-sign = "toothed-serifless" [composite.ss01.slab-override.design] capital-d = "more-rounded-bilateral-serifed" -capital-j = "serifed" -capital-k = "straight-serifed" +capital-j = "serifed-symmetric" capital-g = "toothless-corner-serifed-hooked" a = "double-storey-serifed" c = "unilateral-serifed" @@ -7703,7 +7699,6 @@ capital-c = "unilateral-serifed" capital-g = "toothless-rounded-serifed-hooked" capital-i = "short-serifed" capital-j = "serifless" -capital-k = "straight-serifless" capital-s = "bilateral-serifed" capital-t = "serifed" capital-x = "straight-serifed" @@ -7726,6 +7721,7 @@ z = "straight-serifed" long-s = "flat-hook-double-serifed" eszet = "longs-s-lig-serifless" lower-eth = "straight-bar" +lower-iota = "serifed-flat-tailed" lower-lambda = "straight-turn" lower-xi = "rounded" lower-tau = "short-tailed" @@ -7758,8 +7754,7 @@ punctuation-dot = "square" diacritic-dot = "square" [composite.ss02.slab-override.design] -capital-j = "serifed" -capital-k = "straight-serifed" +capital-j = "serifed-symmetric" a = "double-storey-serifed" h = "straight-serifed" k = "straight-serifed" @@ -7843,6 +7838,8 @@ lower-iota = "tailed-serifed" lower-tau = "tailed" cyrl-zhe = "symmetric-connected" cyrl-ka = "symmetric-connected-serifless" +cyrl-yeri = "round" +cyrl-yery = "round" [composite.ss03.slab-override.design] capital-d = "more-rounded-bilateral-serifed" @@ -7908,7 +7905,9 @@ long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-serifless" lower-chi = "semi-chancery-straight" lower-eth = "straight-bar" +lower-iota = "serifed-flat-tailed" lower-lambda = "straight-turn" +lower-tau = "flat-tailed" cyrl-capital-zhe = "straight" cyrl-zhe = "straight" cyrl-capital-ka = "straight-serifless" @@ -8021,6 +8020,7 @@ pilcrow = "low" micro-sign = "toothed-serifless" lig-ltgteq = "slanted" lig-equal-chain = "without-notch" +lig-hyphen-chain = "without-notch" [composite.ss05.slab-override.design] capital-d = "more-rounded-bilateral-serifed" @@ -8164,6 +8164,8 @@ long-s = "flat-hook-serifless" eszet = "longs-s-lig-serifless" lower-iota = "zshaped" lower-lambda = "straight-turn" +lower-pi = "tailless" +lower-tau = "tailless" cyrl-capital-u = "straight-turn-serifless" cyrl-u = "straight-turn-serifless" cyrl-ef = "serifless" @@ -8291,19 +8293,19 @@ percent = "dots" micro-sign = "toothed-serifless" lig-ltgteq = "slanted" lig-neq = "slightly-slanted-dotted" -lig-equal-chain = "with-notch" -lig-hyphen-chain = "with-notch" [composite.ss08.italic] g = "single-storey-serifless" lower-iota = "tailed-serifed" lower-tau = "tailed" +cyrl-yeri = "round" +cyrl-yery = "round" [composite.ss08.slab-override.design] capital-a = "curly-base-serifed" capital-d = "more-rounded-bilateral-serifed" capital-g = "toothless-rounded-serifed-hooked" -capital-j = "serifed" +capital-j = "serifed-symmetric" capital-k = "curly-serifed" capital-n = "asymmetric-serifed" capital-r = "curly-serifed" @@ -8399,7 +8401,6 @@ dollar = "open" cent = "through-cap" bar = "force-upright" micro-sign = "tailed-serifless" -lig-neq = "more-slanted" [composite.ss09.italic] a = "single-storey-serifless" @@ -8467,12 +8468,15 @@ long-s = "flat-hook-middle-serifed" eszet = "sulzbacher-serifless" lower-eth = "straight-bar" lower-delta = "flat-top" +lower-iota = "serifed-flat-tailed" lower-lambda = "straight" +lower-tau = "flat-tailed" one = "base-flat-top-serif" four = "closed" eight = "two-circles" underscore = "low" guillemet = "straight" +dollar = "through-cap" percent = "rings-continuous-slash" pilcrow = "low" micro-sign = "toothless-rounded-serifless" @@ -8764,9 +8768,11 @@ long-s = "flat-hook-serifless" lower-eth = "straight-bar" lower-alpha = "barred" lower-delta = "flat-top" +lower-iota = "serifed-flat-tailed" lower-lambda = "straight" lower-mu = "toothed-serifless" lower-xi = "rounded" +lower-tau = "flat-tailed" cyrl-yeri = "corner" cyrl-yery = "corner" zero = "dotted" @@ -8787,8 +8793,8 @@ question = "corner-flat-hooked" pilcrow = "low" micro-sign = "toothed-serifless" lig-ltgteq = "slanted" -lig-neq = "more-slanted" lig-equal-chain = "without-notch" +lig-hyphen-chain = "without-notch" [composite.ss14.italic] f = "flat-hook-tailed" @@ -8969,7 +8975,6 @@ u = "toothed-serifed" y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-middle-serifed" -lower-eth = "straight-bar" lower-thorn = "motion-serifed" capital-gamma = "serifed" lower-lambda = "straight-turn" @@ -9058,7 +9063,10 @@ t = "flat-hook" y = "straight-turn-serifless" eszet = "longs-s-lig-serifless" lower-eth = "straight-bar" +lower-iota = "serifed-flat-tailed" lower-lambda = "tailed-turn" +lower-tau = "flat-tailed" +lower-chi = "semi-chancery-straight" cyrl-capital-ze = "unilateral-inward-serifed" cyrl-capital-ka = "symmetric-connected-bottom-right-serifed" cyrl-capital-u = "straight-turn-serifless" From 6c55ab8e24c9cd300570e7448db03269b3b98938 Mon Sep 17 00:00:00 2001 From: be5invis Date: Mon, 20 Nov 2023 16:45:13 -0800 Subject: [PATCH 28/59] Update deps for simpler code --- package-lock.json | 12 ++++++------ package.json | 4 ++-- verdafile.mjs | 41 +++++++++++++++++++---------------------- 3 files changed, 27 insertions(+), 30 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0bb8a2fbfa..03cc5b81bd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iosevka", - "version": "28.0.0-alpha.1", + "version": "28.0.0-alpha.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "iosevka", - "version": "28.0.0-alpha.1", + "version": "28.0.0-alpha.2", "dependencies": { "@iarna/toml": "^2.2.5", "@msgpack/msgpack": "^2.8.0", @@ -29,7 +29,7 @@ "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", "prettier": "^3.0.3", - "verda": "^1.11.0", + "verda": "^1.11.1", "which": "^4.0.0" }, "engines": { @@ -3726,9 +3726,9 @@ } }, "node_modules/verda": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/verda/-/verda-1.11.0.tgz", - "integrity": "sha512-ikp+QUGQiY3MqxhKNaoOdBJ/rt205UKcqaY7KxQu+EcfTPQD2DTQ0DgskbWxshYKw09DPDlWw1it3iLEVaZysA==", + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/verda/-/verda-1.11.1.tgz", + "integrity": "sha512-CJiuHqTFSm7qe4TccjZMI6iT+TJ2JpN7A2NEgYHk/EA8EKh6bVf5ITM7XnLF8v2qL5Hy/Bt2C6zpuNyDoVPDYQ==", "dev": true, "dependencies": { "chalk": "^4.1.2", diff --git a/package.json b/package.json index 12b9636ac8..01547e67b9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "28.0.0-alpha.1", + "version": "28.0.0-alpha.2", "main": "./font-src/index.js", "scripts": { "build": "verda -f verdafile.mjs", @@ -30,7 +30,7 @@ "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", "prettier": "^3.0.3", - "verda": "^1.11.0", + "verda": "^1.11.1", "which": "^4.0.0" }, "engines": { diff --git a/verdafile.mjs b/verdafile.mjs index 6d0cc03e23..8b25744add 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -397,27 +397,26 @@ const DistUnhintedTTF = file.make( await target.need(Scripts, Parameters, Dependencies, de(out.dir)); const [fi] = await target.need(FontInfoOf(fn)); - const charMapDir = `${BUILD}/TTF/${gr}`; - const charMapPath = `${charMapDir}/${fn}.charmap.mpz`; - const ttfaControlsPath = `${charMapDir}/${fn}.ttfa.txt`; + const charMapPath = file.getPathOf(BuildCM(gr, fn)); + const ttfaControlsPath = file.getPathOf(BuildTtfaControls(gr, fn)); if (fi.spacingDerive) { // The font is a spacing variant, and is derivable form an existing // normally-spaced variant. - const noGcTtfPath = `${charMapDir}/${fn}.no-gc.unhinted.ttf`; + const noGcTtfPath = file.getPathOf(BuildNoGcTtfImpl(gr, fn)); const spD = fi.spacingDerive; const [deriveFrom] = await target.need( DistUnhintedTTF(spD.prefix, spD.fileName), - de(charMapDir) + de(charMapPath.dir) ); echo.action(echo.hl.command(`Hint TTF`), out.full); await silently.node(`font-src/derive-spacing.mjs`, { i: deriveFrom.full, o: out.full, - oNoGc: noGcTtfPath, + oNoGc: noGcTtfPath.full, ...fi }); } else { @@ -426,19 +425,20 @@ const DistUnhintedTTF = file.make( `${Math.round(1000 * fi.shape.weight)}-${Math.round(1000 * fi.shape.width)}-` + `${Math.round(3600 * fi.shape.slopeAngle)}-${fi.shape.slope}`; const cachePath = `${SHARED_CACHE}/${cacheFileName}.mpz`; - const cacheDiffPath = `${charMapDir}/${fn}.cache.mpz`; + const cacheDiffPath = `${charMapPath.dir}/${fn}.cache.mpz`; const [comps] = await target.need( CompositesFromBuildPlan, - de(charMapDir), + de(charMapPath.dir), + de(ttfaControlsPath.dir), de(SHARED_CACHE) ); echo.action(echo.hl.command(`Create TTF`), out.full); const { cacheUpdated } = await silently.node("font-src/index.mjs", { o: out.full, - ...(fi.buildCharMap ? { oCharMap: charMapPath } : {}), - oTtfaControls: ttfaControlsPath, + ...(fi.buildCharMap ? { oCharMap: charMapPath.full } : {}), + oTtfaControls: ttfaControlsPath.full, cacheFreshAgeKey: ageKey, iCache: cachePath, oCache: cacheDiffPath, @@ -467,13 +467,18 @@ const BuildCM = file.make( await target.need(DistUnhintedTTF(gr, f)); } ); - const BuildTtfaControls = file.make( (gr, f) => `${BUILD}/TTF/${gr}/${f}.ttfa.txt`, async (target, output, gr, f) => { await target.need(DistUnhintedTTF(gr, f)); } ); +const BuildNoGcTtfImpl = file.make( + (gr, f) => `${BUILD}/TTF/${gr}/${f}.no-gc.hinted.ttf`, + async (target, output, gr, f) => { + await target.need(DistHintedTTF(gr, f)); + } +); const DistHintedTTF = file.make( (gr, fn) => `${DIST}/${gr}/TTF/${fn}.ttf`, @@ -488,18 +493,17 @@ const DistHintedTTF = file.make( // normally-spaced variant. const spD = fi.spacingDerive; - const charMapDir = `${BUILD}/TTF/${gr}`; - const noGcTtfPath = `${charMapDir}/${fn}.no-gc.hinted.ttf`; + const noGcTtfPath = file.getPathOf(BuildNoGcTtfImpl(gr, fn)); const [deriveFrom] = await target.need( DistHintedTTF(spD.prefix, spD.fileName), - de(charMapDir) + de(noGcTtfPath.dir) ); echo.action(echo.hl.command(`Create TTF`), out.full); await silently.node(`font-src/derive-spacing.mjs`, { i: deriveFrom.full, - oNoGc: noGcTtfPath, + oNoGc: noGcTtfPath.full, o: out.full, ...fi }); @@ -514,13 +518,6 @@ const DistHintedTTF = file.make( } ); -const BuildNoGcTtfImpl = file.make( - (gr, f) => `${BUILD}/TTF/${gr}/${f}.no-gc.hinted.ttf`, - async (target, output, gr, f) => { - await target.need(DistHintedTTF(gr, f)); - } -); - const BuildNoGcTtf = task.make( (gr, fn) => `BuildNoGcTtf::${gr}/${fn}`, async (target, gr, fn) => { From 0233a708bb3b9013fc7c4fea4ee299db1e8c9173 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 21 Nov 2023 15:57:56 -0500 Subject: [PATCH 29/59] Add tailless variants for Greek Lower Iota. (#2098) --- changes/28.0.0-alpha.2.md | 1 + params/variants.toml | 39 +++++++++++++++++++++++---------------- 2 files changed, 24 insertions(+), 16 deletions(-) diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md index 304ae0bf77..79123257e9 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-alpha.2.md @@ -1,3 +1,4 @@ +* Add tailless variants for Greek Lower Iota (`ι`). * Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). * Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. * Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). diff --git a/params/variants.toml b/params/variants.toml index 1ad6e68892..c370968475 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -4678,62 +4678,74 @@ sampler = "ι" samplerExplain = "Greek lower Iota" tagKind = "letter" -[prime.lower-iota.variants.zshaped] +[prime.lower-iota.variants.tailless] rank = 1 +description = "Greek lower Iota (`ι`) with a tailless shape" +selector."grek/iota" = "serifless" +selector."grek/iota/sansSerif" = "serifless" + +[prime.lower-iota.variants.tailless-serifed] +rank = 2 +description = "Greek lower Iota (`ι`) with a top serif and tailless shape" +selector."grek/iota" = "hooky" +selector."grek/iota/sansSerif" = "serifless" + +[prime.lower-iota.variants.zshaped] +rank = 3 description = "Z-shaped Greek lower Iota (`ι`)" selector."grek/iota" = "zshaped" selector."grek/iota/sansSerif" = "serifless" [prime.lower-iota.variants.hooky-bottom] -rank = 2 +rank = 4 description = "Greek lower Iota (`ι`) with a sharp-turning horizontal tail" selector."grek/iota" = "hookyBottom" selector."grek/iota/sansSerif" = "serifless" [prime.lower-iota.variants.tailed] -rank = 3 +rank = 5 description = "Greek lower Iota (`ι`) with curly tail" selector."grek/iota" = "tailed" selector."grek/iota/sansSerif" = "tailed" [prime.lower-iota.variants.tailed-serifed] -rank = 4 +rank = 6 description = "Greek lower Iota (`ι`) with top serif and curly tail" selector."grek/iota" = "tailedSerifed" selector."grek/iota/sansSerif" = "tailed" [prime.lower-iota.variants.flat-tailed] -rank = 5 +rank = 7 description = "Greek lower Iota (`ι`) with a curly-then-flat tail" selector."grek/iota" = "flatTailed" selector."grek/iota/sansSerif" = "flatTailed" [prime.lower-iota.variants.serifed-flat-tailed] -rank = 6 +rank = 8 description = "Greek lower Iota (`ι`) with top serif and a curly-then-flat tail" selector."grek/iota" = "serifedFlatTailed" selector."grek/iota/sansSerif" = "flatTailed" [prime.lower-iota.variants.diagonal-tailed] -rank = 7 +rank = 9 description = "Greek lower Iota (`ι`) with a diagonal tail" selector."grek/iota" = "diagonalTailed" selector."grek/iota/sansSerif" = "diagonalTailed" [prime.lower-iota.variants.serifed-diagonal-tailed] -rank = 8 +rank = 10 description = "Greek lower Iota (`ι`) with top serif and a diagonal tail" selector."grek/iota" = "serifedDiagonalTailed" selector."grek/iota/sansSerif" = "diagonalTailed" [prime.lower-iota.variants.semi-tailed] -rank = 9 +rank = 11 description = "Greek lower Iota (`ι`) with a slightly curly tail" selector."grek/iota" = "semiTailed" selector."grek/iota/sansSerif" = "semiTailed" [prime.lower-iota.variants.serifed-semi-tailed] -rank = 10 +rank = 12 description = "Greek lower Iota (`ι`) with top serif and a slightly curly tail" selector."grek/iota" = "serifedSemiTailed" selector."grek/iota/sansSerif" = "semiTailed" @@ -7888,7 +7900,6 @@ description = "Menlo Style" [composite.ss04.design] capital-d = "more-rounded-serifless" capital-g = "toothless-corner-serifless-hooked" -capital-k = "straight-serifless" capital-q = "straight" a = "double-storey-serifless" e = "flat-crossbar" @@ -7903,11 +7914,11 @@ u = "toothed-serifless" y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-serifless" -lower-chi = "semi-chancery-straight" lower-eth = "straight-bar" lower-iota = "serifed-flat-tailed" lower-lambda = "straight-turn" lower-tau = "flat-tailed" +lower-chi = "semi-chancery-straight" cyrl-capital-zhe = "straight" cyrl-zhe = "straight" cyrl-capital-ka = "straight-serifless" @@ -7938,7 +7949,6 @@ diacritic-dot = "square" [composite.ss04.slab-override.design] capital-d = "more-rounded-bilateral-serifed" capital-g = "toothless-corner-serifed-hooked" -capital-k = "straight-serifed" a = "double-storey-serifed" c = "unilateral-serifed" d = "toothed-serifed" @@ -8361,7 +8371,6 @@ description = "Source Code Pro Style" [composite.ss09.design] capital-d = "more-rounded-serifless" capital-g = "toothless-corner-serifless-hooked" -capital-k = "straight-serifless" a = "double-storey-serifless" d = "toothed-serifless" e = "flat-crossbar" @@ -8412,7 +8421,6 @@ lower-iota = "tailed-serifed" [composite.ss09.slab-override.design] capital-d = "more-rounded-bilateral-serifed" capital-g = "toothless-corner-serifed-hooked" -capital-k = "straight-serifed" a = "double-storey-serifed" d = "toothed-serifed" f = "serifed" @@ -8989,7 +8997,6 @@ cyrl-ef = "split-top-serifed" cyrl-yeri = "corner" cyrl-yery = "corner" cyrl-ya = "straight-motion-serifed" -zero = "slashed" one = "base" two = "straight-neck" three = "flat-top" From 9044e28f976034f44017e56493e5f4a0d837e14c Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Wed, 22 Nov 2023 17:26:29 -0500 Subject: [PATCH 30/59] Add several supplemental arrows (MathML, etc.). (#2099) --- changes/28.0.0-alpha.2.md | 6 ++ font-src/glyphs/marks/overlay.ptl | 9 +++ font-src/glyphs/symbol/arrow.ptl | 115 ++++++++++++++++++++---------- 3 files changed, 94 insertions(+), 36 deletions(-) diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md index 79123257e9..3e7737ee3c 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-alpha.2.md @@ -3,6 +3,12 @@ * Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. * Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). * Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. +* Add Characters: + - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). + - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). + - LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE (`U+2902`) ... LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE (`U+2904`). + - LONG LEFTWARDS SQUIGGLE ARROW (`U+2B33`). + - DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW (`U+2B4D`). * Stylistic set fixes: - Fix `cv10` for `ss01`, `ss02`, and `ss08` under slab. - Fix `cv53` for `ss16`. diff --git a/font-src/glyphs/marks/overlay.ptl b/font-src/glyphs/marks/overlay.ptl index ac6f490ded..29df4c4817 100644 --- a/font-src/glyphs/marks/overlay.ptl +++ b/font-src/glyphs/marks/overlay.ptl @@ -273,6 +273,15 @@ glyph-block Mark-Overlay : begin flat (Middle - dx - Width) (XH / 2 - dy) [widths.center fine] curl (Middle + dx - Width) (XH / 2 + dy) + create-glyph 'dblArrVStrokeOver' : glyph-proc + set-width 0 + local dx : Width * 0 + local dy : Width * 0.4 + set-mark-anchor 'slash' markMiddle (XH / 2) markMiddle (XH / 2) + include : dispiro + flat (Middle - dx - Width) (XH / 2 - dy) [widths.center fine] + curl (Middle + dx - Width) (XH / 2 + dy) + create-glyph 'arrDblVStrokeOver' : glyph-proc set-width 0 local dx : Width * 0 diff --git a/font-src/glyphs/symbol/arrow.ptl b/font-src/glyphs/symbol/arrow.ptl index b24dc5360b..71bbdd471e 100644 --- a/font-src/glyphs/symbol/arrow.ptl +++ b/font-src/glyphs/symbol/arrow.ptl @@ -447,6 +447,7 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 MkArrow ThinArrowShape [MangleName 'thinArrowRight'] null arrowSB SymbolMid arrowRSB SymbolMid MkArrow ThinArrowShape [MangleName 'thinArrowDown'] null arrowMidX arrowTop arrowMidX arrowBot + MkArrow TrigArrowShape [MangleName 'uni279D'] [MangleUnicode 0x279D] arrowSB SymbolMid arrowRSB SymbolMid MkArrow TrigArrowShape [MangleName 'trigArrowLeft'] [MangleUnicode 0x2B60] arrowRSB SymbolMid arrowSB SymbolMid MkArrow TrigArrowShape [MangleName 'trigArrowUp'] [MangleUnicode 0x2B61] arrowMidX arrowBot arrowMidX arrowTop MkArrow TrigArrowShape [MangleName 'trigArrowRight'] [MangleUnicode 0x2B62] arrowSB SymbolMid arrowRSB SymbolMid @@ -688,8 +689,8 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 glyph-block-import Shared-Symbol-Shapes : CreateWaveShape define WaveSw : AdviceStroke (5.5 - MosaicWidthScalar) - define [SquiggleArrowBarSide kMag1 kMag2 kL kR y0] : begin - local mag : arrowRSB - arrowSB + define [SquiggleArrowBarSide kMag1 kMag2 l r kL kR y0] : begin + local mag : r - l local p : (mag - o - halfArrowSw * 1.1) / mag local p2 0.75 local p2L : mix 1 p2 [mix 1 kL (1 / 2)] @@ -698,21 +699,21 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 local innerStops : 3 * MosaicWidthScalar local knots {} - knots.push : corner [mix arrowSB arrowRSB : mix 0 (1 - p) kL] y0 - knots.push : corner [mix arrowSB arrowRSB (1 - p2L)] y0 + knots.push : corner [mix l r : mix 0 (1 - p) kL] y0 + knots.push : corner [mix l r (1 - p2L)] y0 foreach j [range 0 innerStops] : begin knots.push : corner - mix arrowSB arrowRSB : mix (1 - p2L) p2R ((j + 1 / 2) / innerStops) + mix l r : mix (1 - p2L) p2R ((j + 1 / 2) / innerStops) y0 + waveArrowAmplitude * [if (j % 2) kMag1 kMag2] - knots.push : corner [mix arrowSB arrowRSB p2R] y0 - knots.push : corner [mix arrowSB arrowRSB : mix 1 p kR] y0 + knots.push : corner [mix l r p2R] y0 + knots.push : corner [mix l r : mix 1 p kR] y0 return knots define [SquiggleArrowBar kL kR] : begin return : spiro-outline - SquiggleArrowBarSide 0.3 (-0.25) kL kR (SymbolMid + arrowSw / 2) - [SquiggleArrowBarSide 0.25 (-0.3) kL kR (SymbolMid - arrowSw / 2)].reverse + SquiggleArrowBarSide 0.3 (-0.25) arrowSB arrowRSB kL kR (SymbolMid + arrowSw / 2) + [SquiggleArrowBarSide 0.25 (-0.3) arrowSB arrowRSB kL kR (SymbolMid - arrowSw / 2)].reverse create-glyph [MangleName 'squiggleArrowLeft'] [MangleUnicode 0x21DC] : glyph-proc set-width MosaicWidth @@ -724,6 +725,25 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : SquiggleArrowBar 0 1 include : ArrowHead arrowSB SymbolMid arrowRSB SymbolMid + if (MosaicWidthScalar > 1 && !para.forceMonospace) : do + define l : mix 0 arrowSB kLongArrowSB + define r : mix MosaicWidth arrowRSB kLongArrowSB + + define [LongSquiggleArrowBar kL kR] : begin + return : spiro-outline + SquiggleArrowBarSide 0.3 (-0.25) l r kL kR (SymbolMid + arrowSw / 2) + [SquiggleArrowBarSide 0.25 (-0.3) l r kL kR (SymbolMid - arrowSw / 2)].reverse + + create-glyph 'longSquiggleArrowLeft' 0x2B33 : glyph-proc + set-width MosaicWidth + include : LongSquiggleArrowBar 1 0 + include : ArrowHead r SymbolMid l SymbolMid + + create-glyph 'longSquiggleArrowRight' 0x27FF : glyph-proc + set-width MosaicWidth + include : LongSquiggleArrowBar 0 1 + include : ArrowHead l SymbolMid r SymbolMid + do "Thick Arrows" MkArrow [ThickArrowShape 'white'] [MangleName 'uni21E6'] [MangleUnicode 0x21E6] arrowRSB SymbolMid arrowSB SymbolMid MkArrow [ThickArrowShape 'white'] [MangleName 'uni21E7'] [MangleUnicode 0x21E7] arrowMidX arrowBot arrowMidX arrowTop @@ -1068,6 +1088,16 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 refer-glyph : MangleName 'arrowUp' refer-glyph 'arrDblHStrokeOver' + create-glyph [MangleName 'uni2902'] [MangleUnicode 0x2902] : composite-proc + refer-glyph : MangleName 'dblArrowLeft' + refer-glyph 'dblArrVStrokeOver' + create-glyph [MangleName 'uni2903'] [MangleUnicode 0x2903] : composite-proc + refer-glyph : MangleName 'dblArrowRight' + refer-glyph 'dblArrVStrokeOver' + create-glyph [MangleName 'uni2904'] [MangleUnicode 0x2904] : composite-proc + refer-glyph : MangleName 'dblArrowLeftRight' + refer-glyph 'dblArrVStrokeOver' + create-glyph [MangleName 'uni2B7A'] [MangleUnicode 0x2B7A] : composite-proc refer-glyph : MangleName 'trigArrowLeft' refer-glyph 'arrDblVStrokeOver' @@ -1146,37 +1176,50 @@ glyph-block Symbol-Arrow : for-width-kinds WideWidth1 include : with-transform [ApparentTranslate 0 (-distance)] : refer-glyph : MangleName 'arrowLeftCompact' do "Zig zag" + define x2 : mix arrowMidX arrowSB (0.875 / [Math.sqrt MosaicWidthScalar]) + define x3 : mix arrowMidX arrowRSB (0.875 / [Math.sqrt MosaicWidthScalar]) + define x1 : mix x2 x3 (1 / 3) + define x4 : mix x2 x3 (2 / 3) + + define y1 arrowTop + define y4 arrowBot + define y2 : mix y1 y4 0.625 + define y3 : mix y1 y4 0.375 + + define magLastSeg : Math.hypot (x3 - x4) (y3 - y4) + define pLastSeg : (magLastSeg - o - 0.55 * arrowSw) / magLastSeg + + define [ZigZagArrowBar] : union + difference + dispiro + flat [mix x3 x4 pLastSeg] [mix y3 y4 pLastSeg] [widths.center arrowSw] + curl x3 y3 [widths.lhs arrowSw] + MaskAboveLine x2 y2 x3 y3 + difference + dispiro + flat x3 y3 [widths.lhs arrowSw] + curl x2 y2 [widths.rhs arrowSw] + MaskRightLine x3 y3 x4 y4 + MaskLeftLine x2 y2 x1 y1 + difference + dispiro + flat x2 y2 [widths.rhs arrowSw] + curl x1 y1 [widths.center arrowSw] + MaskBelowLine x2 y2 x3 y3 + + define x3ArrowHeadMock : x3 - (x3 - x4) / magLastSeg * [HSwToV arrowSw] + create-glyph [MangleName 'zigZagArrow'] [MangleUnicode 0x21AF] : glyph-proc set-width MosaicWidth - local x2 : mix arrowMidX arrowSB (0.875 / [Math.sqrt MosaicWidthScalar]) - local x3 : mix arrowMidX arrowRSB (0.875 / [Math.sqrt MosaicWidthScalar]) - local x1 : mix x2 x3 (1 / 3) - local x4 : mix x2 x3 (2 / 3) - local y2 : mix arrowBot arrowTop 0.375 - local y3 : mix arrowBot arrowTop 0.625 - - local magLastSeg : Math.hypot (x3 - x4) (y3 - arrowBot) - local x3ArrowHeadMock : x3 - (x3 - x4) / magLastSeg * [HSwToV arrowSw] - local pLastSeg : (magLastSeg - o - 0.55 * arrowSw) / magLastSeg + include : union + ArrowHead x3ArrowHeadMock y3 x4 y4 arrowHeadSize + ZigZagArrowBar + create-glyph [MangleName 'zigZagTrigArrow'] [MangleUnicode 0x2B4D] : glyph-proc + set-width MosaicWidth include : union - ArrowHead x3ArrowHeadMock y3 x4 arrowBot arrowHeadSize - difference - dispiro - flat [mix x3 x4 pLastSeg] [mix y3 arrowBot pLastSeg] [widths.center arrowSw] - curl x3 y3 [widths.lhs arrowSw] - MaskAboveLine x2 y2 x3 y3 - difference - dispiro - flat x3 y3 [widths.lhs arrowSw] - curl x2 y2 [widths.rhs arrowSw] - MaskRightLine x3 y3 x4 arrowBot - MaskLeftLine x2 y2 x1 arrowTop - difference - dispiro - flat x2 y2 [widths.rhs arrowSw] - curl x1 arrowTop [widths.center arrowSw] - MaskBelowLine x2 y2 x3 y3 + TriangleArrowHead x3ArrowHeadMock y3 x4 y4 arrowHeadSize + ZigZagArrowBar do "Legacy computing arrows" define bodyWidth : Math.min arrowWidth (arrowHeight * 0.6) From 090508a53aecd0a717981ab0be162635602fef0f Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 23 Nov 2023 16:27:39 -0800 Subject: [PATCH 31/59] Merge the release notes for more clear change tracking --- changes/28.0.0-alpha.1.md | 29 ----------------------------- changes/28.0.0-alpha.2.md | 38 +++++++++++++++++++++++++++++++++----- 2 files changed, 33 insertions(+), 34 deletions(-) delete mode 100644 changes/28.0.0-alpha.1.md diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md deleted file mode 100644 index 96dcc366fe..0000000000 --- a/changes/28.0.0-alpha.1.md +++ /dev/null @@ -1,29 +0,0 @@ -* \[**BREAKING**\] The filenames and package filenames are changed. - - They will now use PascalCase instead of kebab-case. - - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. -* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. - - `no-cv-ss` → `noCvSs` - - `no-ligation` → `noLigation` - - `export-glyph-names` → `exportGlyphNames` - - `build-texture-feature` → `buildTextureFeature` - - `metric-override` → `metricOverride` - - `compatibility-ligatures` → `compatibilityLigatures` - - `exclude-chars` → `excludeChars` - - `webfont-formats` → `webfontFormats` -* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. -* \[**BREAKING**\] Reorder of glyph variants: - - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. -* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - - Various other glyph variant tags are also changed to reflect this insertion. -* Add Characters: - - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). - - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). - - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - - RAISED SQUARE (`U+2E0B`). - - HYPODIASTOLE (`U+2E12`). - - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). -* Add hook-inward-serifed variants for `a` (#2085). -* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. -* Remove earless-corner variants for `U+027E`. diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-alpha.2.md index 3e7737ee3c..e59df56997 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-alpha.2.md @@ -1,14 +1,42 @@ -* Add tailless variants for Greek Lower Iota (`ι`). -* Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). -* Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. -* Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). -* Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. +* \[**BREAKING**\] The filenames and package filenames are changed. + - They will now use PascalCase instead of kebab-case. + - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. +* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` +* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +* \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. +* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. * Add Characters: + - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). + - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). - LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE (`U+2902`) ... LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE (`U+2904`). - LONG LEFTWARDS SQUIGGLE ARROW (`U+2B33`). - DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW (`U+2B4D`). +* Add hook-inward-serifed variants for `a` (#2085). +* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. +* Remove earless-corner variants for `U+027E`. +* Add tailless variants for Greek Lower Iota (`ι`). +* Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). +* Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. +* Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). +* Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. * Stylistic set fixes: - Fix `cv10` for `ss01`, `ss02`, and `ss08` under slab. - Fix `cv53` for `ss16`. From a41b3a523f5cd35e5ddc111b29a1c1eb1ae9c9e0 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 23 Nov 2023 18:29:10 -0800 Subject: [PATCH 32/59] Release 28.0.0-alpha.2 --- CHANGELOG.md | 22 +- doc/PACKAGE-LIST.md | 274 +++--- doc/character-variants.md | 6 +- doc/custom-build.md | 6 +- doc/packages-sha.txt | 904 +++++++++--------- images/button-release.dark.svg | 5 +- images/button-release.light.svg | 5 +- images/cs-block-dingbats.dark.svg | 21 +- images/cs-block-dingbats.light.svg | 21 +- ...-miscellaneous-symbols-and-arrows.dark.svg | 286 +++--- ...miscellaneous-symbols-and-arrows.light.svg | 286 +++--- .../cs-block-supplemental-arrows-a.dark.svg | 5 +- .../cs-block-supplemental-arrows-a.light.svg | 5 +- .../cs-block-supplemental-arrows-b.dark.svg | 179 ++-- .../cs-block-supplemental-arrows-b.light.svg | 179 ++-- .../cv-lower-iota-tailless-serifed.dark.svg | 9 + .../cv-lower-iota-tailless-serifed.light.svg | 9 + images/cv-lower-iota-tailless.dark.svg | 9 + images/cv-lower-iota-tailless.light.svg | 9 + .../package-sample-IosevkaFixedSS01.dark.svg | 2 +- .../package-sample-IosevkaFixedSS01.light.svg | 2 +- .../package-sample-IosevkaFixedSS07.dark.svg | 4 +- .../package-sample-IosevkaFixedSS07.light.svg | 4 +- .../package-sample-IosevkaFixedSS09.dark.svg | 2 +- .../package-sample-IosevkaFixedSS09.light.svg | 2 +- .../package-sample-IosevkaFixedSS10.dark.svg | 2 +- .../package-sample-IosevkaFixedSS10.light.svg | 2 +- .../package-sample-IosevkaFixedSS14.dark.svg | 2 +- .../package-sample-IosevkaFixedSS14.light.svg | 2 +- .../package-sample-IosevkaFixedSS16.dark.svg | 2 +- .../package-sample-IosevkaFixedSS16.light.svg | 2 +- .../package-sample-IosevkaFixedSS17.dark.svg | 2 +- .../package-sample-IosevkaFixedSS17.light.svg | 2 +- images/package-sample-IosevkaSS01.dark.svg | 2 +- images/package-sample-IosevkaSS01.light.svg | 2 +- images/package-sample-IosevkaSS07.dark.svg | 4 +- images/package-sample-IosevkaSS07.light.svg | 4 +- images/package-sample-IosevkaSS09.dark.svg | 2 +- images/package-sample-IosevkaSS09.light.svg | 2 +- images/package-sample-IosevkaSS10.dark.svg | 2 +- images/package-sample-IosevkaSS10.light.svg | 2 +- images/package-sample-IosevkaSS14.dark.svg | 2 +- images/package-sample-IosevkaSS14.light.svg | 2 +- images/package-sample-IosevkaSS16.dark.svg | 2 +- images/package-sample-IosevkaSS16.light.svg | 2 +- images/package-sample-IosevkaSS17.dark.svg | 2 +- images/package-sample-IosevkaSS17.light.svg | 2 +- .../package-sample-IosevkaTermSS01.dark.svg | 2 +- .../package-sample-IosevkaTermSS01.light.svg | 2 +- .../package-sample-IosevkaTermSS07.dark.svg | 4 +- .../package-sample-IosevkaTermSS07.light.svg | 4 +- .../package-sample-IosevkaTermSS09.dark.svg | 2 +- .../package-sample-IosevkaTermSS09.light.svg | 2 +- .../package-sample-IosevkaTermSS10.dark.svg | 2 +- .../package-sample-IosevkaTermSS10.light.svg | 2 +- .../package-sample-IosevkaTermSS14.dark.svg | 2 +- .../package-sample-IosevkaTermSS14.light.svg | 2 +- .../package-sample-IosevkaTermSS16.dark.svg | 2 +- .../package-sample-IosevkaTermSS16.light.svg | 2 +- .../package-sample-IosevkaTermSS17.dark.svg | 2 +- .../package-sample-IosevkaTermSS17.light.svg | 2 +- images/ss-i-ss01-1.dark.svg | 22 +- images/ss-i-ss01-1.light.svg | 22 +- images/ss-i-ss07-1.dark.svg | 20 +- images/ss-i-ss07-1.light.svg | 20 +- images/ss-i-ss09-1.dark.svg | 60 +- images/ss-i-ss09-1.light.svg | 60 +- images/ss-i-ss10-1.dark.svg | 43 +- images/ss-i-ss10-1.light.svg | 43 +- images/ss-i-ss12-1.dark.svg | 36 +- images/ss-i-ss12-1.light.svg | 36 +- images/ss-i-ss14-1.dark.svg | 12 +- images/ss-i-ss14-1.light.svg | 12 +- images/ss-i-ss16-1.dark.svg | 4 +- images/ss-i-ss16-1.light.svg | 4 +- images/ss-i-ss17-1.dark.svg | 8 +- images/ss-i-ss17-1.light.svg | 8 +- images/ss-u-ss01-1.dark.svg | 22 +- images/ss-u-ss01-1.light.svg | 22 +- images/ss-u-ss05-1.dark.svg | 28 +- images/ss-u-ss05-1.light.svg | 28 +- images/ss-u-ss07-1.dark.svg | 20 +- images/ss-u-ss07-1.light.svg | 20 +- images/ss-u-ss08-1.dark.svg | 24 +- images/ss-u-ss08-1.light.svg | 24 +- images/ss-u-ss09-1.dark.svg | 24 +- images/ss-u-ss09-1.light.svg | 24 +- images/ss-u-ss10-1.dark.svg | 37 +- images/ss-u-ss10-1.light.svg | 37 +- images/ss-u-ss14-1.dark.svg | 37 +- images/ss-u-ss14-1.light.svg | 37 +- images/ss-u-ss15-1.dark.svg | 33 +- images/ss-u-ss15-1.light.svg | 33 +- images/ss-u-ss16-1.dark.svg | 27 +- images/ss-u-ss16-1.light.svg | 27 +- images/ss-u-ss17-1.dark.svg | 8 +- images/ss-u-ss17-1.light.svg | 8 +- images/ss-u-ss18-1.dark.svg | 36 +- images/ss-u-ss18-1.light.svg | 36 +- 99 files changed, 1793 insertions(+), 1545 deletions(-) create mode 100644 images/cv-lower-iota-tailless-serifed.dark.svg create mode 100644 images/cv-lower-iota-tailless-serifed.light.svg create mode 100644 images/cv-lower-iota-tailless.dark.svg create mode 100644 images/cv-lower-iota-tailless.light.svg diff --git a/CHANGELOG.md b/CHANGELOG.md index 082953331d..e48265651f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Modifications since last major version -### 28.0.0-alpha.1 +### 28.0.0-alpha.2 * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. @@ -28,7 +28,27 @@ - RAISED SQUARE (`U+2E0B`). - HYPODIASTOLE (`U+2E12`). - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). + - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). + - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). + - LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE (`U+2902`) ... LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE (`U+2904`). + - LONG LEFTWARDS SQUIGGLE ARROW (`U+2B33`). + - DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW (`U+2B4D`). * Add hook-inward-serifed variants for `a` (#2085). * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. * Remove earless-corner variants for `U+027E`. +* Add tailless variants for Greek Lower Iota (`ι`). +* Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). +* Improve top-left serif for LATIN SMALL LETTER KRA (`U+0138`) to match `k`. +* Make Greek Kappa (`U+03BA`) respond to more serif variants for `k` (`cv36`). +* Add a top-left serif to GREEK SMALL LETTER HETA (`U+0371`) under slab. +* Stylistic set fixes: + - Fix `cv10` for `ss01`, `ss02`, and `ss08` under slab. + - Fix `cv53` for `ss16`. + - Fix `cv64` and `cv65` for `ss07`. + - Fix `cv66` for `ss17`. + - Fix `cv81` and `cv82` for `ss03` and `ss08` under italic slab. + - Fix `cv93` for `ss01`. + - Fix `vsAJ` for `ss10`. + - Fix `vlAB` for `ss09` and `ss14`. + - Fix `vlAD` for `ss05` and `ss14`. diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 1e67d095dc..c729bd84ca 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,4 +1,4 @@ -# Package list of Release 28.0.0-alpha.1 +# Package list of Release 28.0.0-alpha.2 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -19,145 +19,145 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index a0dad70325..5e49adb2b1 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -1982,6 +1982,8 @@ cv59 + + @@ -1992,7 +1994,6 @@ - 1 @@ -2005,7 +2006,8 @@ 8 9 10 - +11 +12 cv60 diff --git a/doc/custom-build.md b/doc/custom-build.md index 534209d4c1..df7f5c643b 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -310,7 +310,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `c`:
c = 'serifless', cv28 = 1
Serifless c (default for Sans)
c = 'unilateral-serifed', cv28 = 2
c with serif at top (default for Slab Upright)
c = 'bilateral-serifed', cv28 = 3
c with serifs at both top and bottom
c = 'unilateral-inward-serifed', cv28 = 4
c with inward serif at top (default for Slab Italic)
c = 'bilateral-inward-serifed', cv28 = 5
c with inward serif at both top and bottom
- Styles for `d`: -
d = 'toothed-serifless', cv29 = 1
d with toothed shape; without serifs (default for Sans Upright)
d = 'toothed-top-serifed', cv29 = 2
d with toothed shape, and serif at top
d = 'toothed-serifed', cv29 = 3
d with toothed shape, and serif at top (default for Slab Upright)
d = 'toothless-corner-serifless', cv29 = 4
d with toothless (cornered) shape; without serifs
d = 'toothless-corner-serifed', cv29 = 5
d with toothless (cornered) shape, and serif at top
d = 'toothless-rounded-serifless', cv29 = 6
d with toothless (rounded) shape; without serifs
d = 'toothless-rounded-serifed', cv29 = 7
d with toothless (rounded) shape, and serif at top
d = 'tailed-serifless', cv29 = 8
d with tailed shape; without serifs (default for Sans Italic)
d = 'tailed-serifed', cv29 = 9
d with tailed shape, and serif at top (default for Slab Italic)
+
d = 'toothed-serifless', cv29 = 1
d with toothed shape; without serifs (default for Sans Upright)
d = 'toothed-top-serifed', cv29 = 2
d with toothed shape, and serif at top
d = 'toothed-serifed', cv29 = 3
d with toothed shape, and serifs (default for Slab Upright)
d = 'toothless-corner-serifless', cv29 = 4
d with toothless (cornered) shape; without serifs
d = 'toothless-corner-serifed', cv29 = 5
d with toothless (cornered) shape, and serifs
d = 'toothless-rounded-serifless', cv29 = 6
d with toothless (rounded) shape; without serifs
d = 'toothless-rounded-serifed', cv29 = 7
d with toothless (rounded) shape, and serifs
d = 'tailed-serifless', cv29 = 8
d with tailed shape; without serifs (default for Sans Italic)
d = 'tailed-serifed', cv29 = 9
d with tailed shape, and serifs (default for Slab Italic)
- Styles for `e`:
e = 'flat-crossbar', cv30 = 1
e with flat crossbar (default for Upright)
e = 'rounded', cv30 = 2
e with more rounded shape (default for Italic)
- Styles for `f`: @@ -342,7 +342,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `t`:
t = 'bent-hook', cv44 = 1
t with bent hook, and crossbar at both sides of the vertical stem (default)
t = 'bent-hook-short-neck', cv44 = 2
t with bent hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'bent-hook-short-neck2', cv44 = 3
t with bent hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'bent-hook-asymmetric', cv44 = 4
t with bent hook, and crossbar at only right side of the vertical stem
t = 'bent-hook-asymmetric-short-neck', cv44 = 5
t with bent hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'bent-hook-asymmetric-short-neck2', cv44 = 6
t with bent hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'flat-hook', cv44 = 7
t with flat hook, and crossbar at both sides of the vertical stem
t = 'flat-hook-short-neck', cv44 = 8
t with flat hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'flat-hook-short-neck2', cv44 = 9
t with flat hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'flat-hook-asymmetric', cv44 = 10
t with flat hook, and crossbar at only right side of the vertical stem
t = 'flat-hook-asymmetric-short-neck', cv44 = 11
t with flat hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'flat-hook-asymmetric-short-neck2', cv44 = 12
t with flat hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'diagonal-tailed', cv44 = 13
t with diagonal tail, and crossbar at both sides of the vertical stem
t = 'diagonal-tailed-short-neck', cv44 = 14
t with diagonal tail, crossbar at both sides of the vertical stem, and a shorter neck
t = 'diagonal-tailed-short-neck2', cv44 = 15
t with diagonal tail, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-asymmetric', cv44 = 16
t with diagonal tail, and crossbar at only right side of the vertical stem
t = 'diagonal-tailed-asymmetric-short-neck', cv44 = 17
t with diagonal tail, crossbar at only right side of the vertical stem, and a shorter neck
t = 'diagonal-tailed-asymmetric-short-neck2', cv44 = 18
t with diagonal tail, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'hookless', cv44 = 19
t without hook or tail; with crossbar at both sides of the vertical stem
t = 'hookless-short-neck', cv44 = 20
t without hook or tail; with crossbar at both sides of the vertical stem, and a shorter neck
t = 'hookless-short-neck2', cv44 = 21
t without hook or tail; with crossbar at both sides of the vertical stem, and a more shorter neck
t = 'hookless-asymmetric', cv44 = 22
t without hook or tail; with crossbar at only right side of the vertical stem
t = 'hookless-asymmetric-short-neck', cv44 = 23
t without hook or tail; with crossbar at only right side of the vertical stem, and a shorter neck
t = 'hookless-asymmetric-short-neck2', cv44 = 24
t without hook or tail; with crossbar at only right side of the vertical stem, and a more shorter neck
- Styles for `u`: -
u = 'toothed-serifless', cv45 = 1
u with toothed shape; without serifs (default for Sans Upright)
u = 'toothed-motion-serifed', cv45 = 2
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-bottom-right-serifed', cv45 = 3
u with toothed shape, and motion serifs at left side
u = 'toothed-serifed', cv45 = 4
u with toothed shape, and serifs (default for Slab Upright)
u = 'tailed-serifless', cv45 = 5
u with tailed shape; without serifs (default for Sans Italic)
u = 'tailed-motion-serifed', cv45 = 6
u with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
u = 'tailed-serifed', cv45 = 7
u with tailed shape, and serifs
u = 'toothless-corner-serifless', cv45 = 8
u with toothless (corner bottom-right) shape; without serifs
u = 'toothless-corner-motion-serifed', cv45 = 9
u with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
u = 'toothless-corner-serifed', cv45 = 10
u with toothless (corner bottom-right) shape, and serifs
u = 'toothless-rounded-serifless', cv45 = 11
u with toothless (rounded) shape; without serifs
u = 'toothless-rounded-motion-serifed', cv45 = 12
u with toothless (rounded) shape, and motion serifs at top-left and bottom-right
u = 'toothless-rounded-serifed', cv45 = 13
u with toothless (rounded) shape, and serifs
+
u = 'toothed-serifless', cv45 = 1
u with toothed shape; without serifs (default for Sans Upright)
u = 'toothed-motion-serifed', cv45 = 2
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-bottom-right-serifed', cv45 = 3
u with toothed shape, and serif at bottom-right
u = 'toothed-serifed', cv45 = 4
u with toothed shape, and serifs (default for Slab Upright)
u = 'tailed-serifless', cv45 = 5
u with tailed shape; without serifs (default for Sans Italic)
u = 'tailed-motion-serifed', cv45 = 6
u with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
u = 'tailed-serifed', cv45 = 7
u with tailed shape, and serifs
u = 'toothless-corner-serifless', cv45 = 8
u with toothless (corner bottom-right) shape; without serifs
u = 'toothless-corner-motion-serifed', cv45 = 9
u with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
u = 'toothless-corner-serifed', cv45 = 10
u with toothless (corner bottom-right) shape, and serifs
u = 'toothless-rounded-serifless', cv45 = 11
u with toothless (rounded) shape; without serifs
u = 'toothless-rounded-motion-serifed', cv45 = 12
u with toothless (rounded) shape, and motion serifs at top-left and bottom-right
u = 'toothless-rounded-serifed', cv45 = 13
u with toothless (rounded) shape, and serifs
- Styles for `v`:
v = 'straight-serifless', cv46 = 1
v with straight body; without serifs (default for Sans)
v = 'straight-motion-serifed', cv46 = 2
v with straight body, and motion serifs (default for Slab Italic)
v = 'straight-serifed', cv46 = 3
v with straight body, and serifs (default for Slab Upright)
v = 'curly-serifless', cv46 = 4
v with curly body; without serifs
v = 'curly-motion-serifed', cv46 = 5
v with curly body, and motion serifs
v = 'curly-serifed', cv46 = 6
v with curly body, and serifs
v = 'cursive-serifless', cv46 = 7
v with cursive body; without serifs
v = 'cursive-serifed', cv46 = 8
v with cursive body, and serifs
- Styles for `w`: @@ -370,7 +370,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `δ` (Greek lower Delta):
lower-delta = 'rounded', cv58 = 1
Greek lower Delta (δ) with rounded top (default)
lower-delta = 'flat-top', cv58 = 2
Greek lower Delta (δ) with flat top
- Styles for `ι` (Greek lower Iota): -
lower-iota = 'zshaped', cv59 = 1
Z-shaped Greek lower Iota (ι)
lower-iota = 'hooky-bottom', cv59 = 2
Greek lower Iota (ι) with a sharp-turning horizontal tail
lower-iota = 'tailed', cv59 = 3
Greek lower Iota (ι) with curly tail
lower-iota = 'tailed-serifed', cv59 = 4
Greek lower Iota (ι) with top serif and curly tail
lower-iota = 'flat-tailed', cv59 = 5
Greek lower Iota (ι) with a curly-then-flat tail
lower-iota = 'serifed-flat-tailed', cv59 = 6
Greek lower Iota (ι) with top serif and a curly-then-flat tail (default)
lower-iota = 'diagonal-tailed', cv59 = 7
Greek lower Iota (ι) with a diagonal tail
lower-iota = 'serifed-diagonal-tailed', cv59 = 8
Greek lower Iota (ι) with top serif and a diagonal tail
lower-iota = 'semi-tailed', cv59 = 9
Greek lower Iota (ι) with a slightly curly tail
lower-iota = 'serifed-semi-tailed', cv59 = 10
Greek lower Iota (ι) with top serif and a slightly curly tail
+
lower-iota = 'tailless', cv59 = 1
Greek lower Iota (ι) with a tailless shape
lower-iota = 'tailless-serifed', cv59 = 2
Greek lower Iota (ι) with a top serif and tailless shape
lower-iota = 'zshaped', cv59 = 3
Z-shaped Greek lower Iota (ι)
lower-iota = 'hooky-bottom', cv59 = 4
Greek lower Iota (ι) with a sharp-turning horizontal tail
lower-iota = 'tailed', cv59 = 5
Greek lower Iota (ι) with curly tail
lower-iota = 'tailed-serifed', cv59 = 6
Greek lower Iota (ι) with top serif and curly tail
lower-iota = 'flat-tailed', cv59 = 7
Greek lower Iota (ι) with a curly-then-flat tail
lower-iota = 'serifed-flat-tailed', cv59 = 8
Greek lower Iota (ι) with top serif and a curly-then-flat tail (default)
lower-iota = 'diagonal-tailed', cv59 = 9
Greek lower Iota (ι) with a diagonal tail
lower-iota = 'serifed-diagonal-tailed', cv59 = 10
Greek lower Iota (ι) with top serif and a diagonal tail
lower-iota = 'semi-tailed', cv59 = 11
Greek lower Iota (ι) with a slightly curly tail
lower-iota = 'serifed-semi-tailed', cv59 = 12
Greek lower Iota (ι) with top serif and a slightly curly tail
- Styles for `Λ` (Greek capital Lambda (`Λ`)):
capital-lambda = 'straight-serifless', cv60 = 1
Greek capital Lambda (Λ) with straight shape; without serifs (default for Sans)
capital-lambda = 'straight-top-serifed', cv60 = 2
Greek capital Lambda (Λ) with straight shape, and serifs at top
capital-lambda = 'straight-base-serifed', cv60 = 3
Greek capital Lambda (Λ) with straight shape, and serifs at base (default for Slab)
capital-lambda = 'straight-tri-serifed', cv60 = 4
Greek capital Lambda (Λ) with straight shape, and serifs at both top and base
capital-lambda = 'curly-serifless', cv60 = 5
Greek capital Lambda (Λ) with curly shape; without serifs
capital-lambda = 'curly-top-serifed', cv60 = 6
Greek capital Lambda (Λ) with curly shape, and serifs at top
capital-lambda = 'curly-base-serifed', cv60 = 7
Greek capital Lambda (Λ) with curly shape, and serifs at base
capital-lambda = 'curly-tri-serifed', cv60 = 8
Greek capital Lambda (Λ) with curly shape, and serifs at both top and base
- Styles for `λ` (Greek small Lambda): diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index d4db981e96..8b87b22b39 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -a732e5a8094c52dfde0cbf7bc802383627054b5c7b9b8260117bc4baedecefe4 undefined -a7441bf34977c48e98ca6eaef666b90a6b90774dca94834c16ecffeee1abee7d undefined -ca791120df5f865811febabdc7bec8ff5287887e3e6485fa62d81027174d7cc6 undefined -52d395ed3562a521b4fdaa77989b2762175b7486e4527a3b1f718f01793992e8 undefined -20dc31ebdd751e53319d595a0fa51e0d26399e49cf9ba2145406486ce9f22873 undefined -612df0b10318c24c38e4088f3513839143fe4de96d0e5d93a842a3ad18d5ac27 undefined -7a0b6e7df85e58c5acaefc3df834dc445c882ef18df174b75988e296fd7502d8 undefined -55d2a545b1b023e7247b8f79a566dd3eda2ee16b4764b3f0b9e3b1bfd1b5b95c undefined -3358e0965965de5bdb58b846882b94b80a0e26ae0d15cf8b7818401c56c7e495 undefined -f4edb8c7fe63a16fe26289313c3ce3db7c33e82829d679c454e10ba8383fe83e undefined -3705c808c17cd597cf02cf71959630b23e996a17f4ff59df7dc9189d55948970 undefined -d2d218d8672ea83047fb2f76a507f7a3667e5f97fe232024f3037c0b2f556628 undefined -084559def363a809cec7a29a793e3214369a453a63a9f6da6150382a22444f0d undefined -127ea8c5335b3b12f99aca3ef608a477966ee21f8d66650f4684f01c8749f0a5 undefined -31ceafa0ef2a76c9d9e084317862c88c1061a36983757d67fb6020abd8c65ba1 undefined -1e9fa69e77de70e73ae73368f357d94bbf38e88ffa7464f4600e443b51915acc undefined -aad14c29d65319907e8e7e35c4ae8e938dd2d7c3786da0132486f25f0a29214a undefined -4f276eda21818a3bc9ffb4c16d5cf9233b36828449b9970b8674a07b808ec746 undefined -bb080d0ca88602c349f7f81c459400fb3719139f317380f6d145cdbf21825f7b undefined -09da07a2215f4b00c0cfc1defa3946acbec5476a30d586e2c157882622c85cdc undefined -f9eda1391202e1aba3f9b5b438b0337a34c0c846130d3bd5233140158aa08f25 undefined -efbc4a348300ed13ed8a7f28aaab2d7d646d11e3142456074922b6358b6630b3 undefined -0a1602a558188feb2bde07c2561246cb4c6eadd9ed062819afdb3f9d2ae3fc13 undefined -62604004b277c8c402bbcaacd9c8ebf9e3b0507b0f4dbbfb9fb688a50dffc3b9 undefined -e3c977aced3915167dcc13ffd5dda7d0d144ef27b80ea8e9c29bb5ef18051db0 undefined -c91e3fcb12a2f8a9142cc7748be391d7355e293bab304f1d2b6812e95e2e47ec undefined -bd80016ff94b58db49d0c8e536887864b962597f0dba0096d7899d54b66f6f44 undefined -7e562c7843efda9b59f12425759e4cfb1833978c448d37a9efbdb065ecb31f30 undefined -41f2cdbc32534d87e9d05d19c404102efc963bac1a23907d95f917775d28a1a7 undefined -e4e9f7e2f3e8f95f413d0373abeb8b5ee47d967357863232936542b763ff51e8 undefined -1546be83fa4facdcef6d4a175b135c114657b7fef852ed20a2768871d6f1bece undefined -cefc7a92441c4c0af03bf3d9db6c9414d79a5a7a1d8440dc65ff4cb4d5034378 undefined -74b4d511e68e3a00a62f6fe264105c043bbeb132034025f167dc552a02c191e2 undefined -3d8466133c949a3f4befcecb1400d265e6dd87753fe497d75cf3bfab4733d479 undefined -da901be5b5154f50d7ac2825d54725325bc82cd2faafccb21cdea67d75b69b68 undefined -1c2cf252a4f959d0add05ea4e6cc3a7dd5bab6e553fe28d8ec66005b5a965160 undefined -27f6e91c830f6eeccb0ff37b600f12ff5d16f00c41e8f356519d12bdc52d31a6 undefined -8d4b291b3dd1d24fcacbad313bff8c8cddb9453cfc3852f9f5fb925545579476 undefined -9ab72006a1bc4a99f664509f9ba76c869ccd11e0efb1f8c8a6c36bc9e225c6b2 undefined -f35407265f6e9c51ba99cf995676fa535c0a976a427f2ac988a61126e59e0557 undefined -038f66856c15fae41d4bfb53e9318bb087203ce41390f66b332599ecba70217e undefined -dbcbcb6f992b69040d9b06cf9df2d37b89a5ef33d1b675184a2a8a303eb64282 undefined -342e1bdc504e2e41470c0a51056db6e428313ec788f8e6eda1883a9c36bd2879 undefined -ef90f0ee0cbe800116ce72e80599cbb1a53309b4a69392775f91a6a5ea31a452 undefined -c09c71633ea39a0be35387a3834f7ded3a5396c849f9d3efd6377feb245ec865 undefined -d31f5a3979ab2fb875f5949566dd6283309ccc4ab05d8d1ec4d2bfab7242b06b undefined -9fa11c66cce08ccf01566dd9f283768bbe45b4da1e25121518cbc1fc7a2cfe8f undefined -37e5b92ef722bb5068e9ad2ab61ddaa47bf941a55bbc5d25b11135f98fd046df undefined -52deeff887dfedbbbb559304796e9fd711dcee8649dfbd40640356ef3c116906 undefined -d924dc124df2d7101760c1788df0a3c720c83208e20ba7789f02c8db75cff775 undefined -be5e809f50a457e712bbd6d6488835f091e59e2ddbfac688c508e3991aa6ceec undefined -30b07c33332685dbc34c522e9ab1f057eedfec1fc7302875af92d3848c6ed927 undefined -cc944eb72f111c716bbf3778895982c71a20d1e73cfc1d0778711e1c10d73e48 undefined -304259931c100210fa17333badcc54f58f5cdb69c1eb8047899bccf4cb1b9c19 undefined -ba3443c048484006e9b223e8a955dbb6c3259022a7d7d126ac21ecf468dd0d87 undefined -f4c1420c1330d5ff161d1bdb1717cbfa59b3843071c4372c41d24216fbbb9bec undefined -a12b2d81fbe7274fa509641754ed864a4e51b55b332c556be30af88a6e240023 undefined -1d6d29fbe46afec6e2e5471657e750e6b6fc7a3d417be9d6cf388cc00ca75180 undefined -f912fefbeef8e045cd87d958ccc33d80a5d6f068a88edfd7a4bad0aecb0a1a9d undefined -fdaec37c7683b8cddeb8b2928fa35a8ef8ed754bc917738660068b87f11f8cae undefined -224a14eb8bfdee5df431ec43b7d3d03e2f5ad9f36fd2beb8b3fe8ea759e1baf0 undefined -71bf70ebc77e1ff430d6a228ea8143e599a9380b9067421bc5a9914f85739ebb undefined -4a932d9992c6b5c8e52cbbe7d9374406dd9b3563299b2e904af7bf2f578def52 undefined -107e65cc21d58653287c1bdb60042890cd3d12f0d558f9e30f1eb20e4e8e505b undefined -1bc6e677d6128e4e863abcfe7812ada14a120cc9c8928f8096fa2bc8c46023f6 undefined -8435e2ea60a00a2dca9abec30ae3ef88e8b77a5e4f0db841e7002321b6e36f39 undefined -d88f1d4b8ecb7909c6a24a6946665e02149634557fa6f02f7dd1547dd517218e undefined -74d0bf169e22055508340052daed029002c4a512ca781f536b087611bd8b621e undefined -291355e2844b6d427a3fc508578739c42dee1110a6965cdfc4972c474ff0f5d0 undefined -5525c97cad98eb955280fdcdf33a621fbf396d8f0efbec94de56cd54b7c8d243 undefined -6d6552cd8c7b537cb6cfa672b94639104c1305284bfb2d828f979919bc6b4c96 undefined -71aa2c4346330d42464ba8e46c9c1cdf08f0a5e46cf2995c742ee2a20f650baf undefined -ab94de37e0af1bc23859fe89f303d10165457c27e382d6e0c5aaf0dce8769cdb undefined -9979c2df5af82d11c461538db867eda194ccdd7b458b459750dc811b77d6cd74 undefined -f983aa3e80966c62dd8a7bc596bd2d47983bcc22387f8c6245f305e1070a2f8f undefined -8e3020d08009cb49b11fe27f3fd88e711d7703caa822ed2099a0375d4e1dc0fc undefined -4edd499347210d25478652d5a89b3d837a744d7f3f17f18d54b4ad941b13a4ff undefined -6e2c5597617c206e4274e07cc75fad5cc9d7a7fa373a22ef16c49e7e978e769f undefined -5ad6ec1d57c9d1ca95abd2dde22858e89fbf9854b812742a37a7cf102aa184dc undefined -c3d7dfd89cbfd42385fc9d3c2343fbb34b467adfec4143d21188214367544bf9 undefined -fccf4a02358e79f3979bda04bc3a3f9ea2df3ce9f8358fee39e33e3098fa111a undefined -4c5f7a76fbf86dfb9b92cdb1571977ca10f039dbde6f1d37e5c54bfb96d4f435 undefined -03071d59b3f1440d30a63331a6cc5465d01fa5ab69d44ecb383ad8977a87b1df undefined -aa99bc11d27bd9d3b6c2319b7480f37823fc2a7be9204a8938d0f2aded44631b undefined -d57cd743e80fa82eba65a65b36199bcf84964ca63a77ebee7d561c358f2b88a3 undefined -5c6ca29a1594251590c58179f4b82f9fc5920596524211cf98fba75f150919fd undefined -cc189d31055cc3c7b129798d7f964d9c827dd503e75bbc0f0978794ffe3dd574 undefined -8eb36dfd3421901b694449e96b60a1e140b84b69248a04a50ac0677400e186c0 undefined -e3a7542182e456c7a22ae0fec09fb104a95d03943fed59267b9b2696ed133169 undefined -ef6c35b92effaf9c489420ebbdec857acef63f1024a62b85f7fe82383b281d79 undefined -92cdd04d8eb91f34f3e3a589bec188c3de9c14da08dcc6471039446b91ed7e20 undefined -2e0f4ab53e22984ad6137544c6bcaf03eb701f36be3a1c9c74e93da19f30513d undefined -921c23dcf2cd895564e5ba7591e123ae20e1de2285d2d0ecd496b071bff1f800 undefined -a7700735113041bd42d61aabef0dad7ae2e1af74ab65b3f24f6b4db01be98ff3 undefined -cb4882138c503acd6f90581de175c9df30f1e82453fc3e1c19495fb42e6b45a4 undefined -1ea94e1126bc084b7e72de9bfb1b95ee29edba88703f2079e93011906433218b undefined -d655e206369b32743d1dcfe930c2e82936faea9efed09a5f66728b4b17420886 undefined -3d8cbe16b72b55b4e017c999ae973f9239286965f432589bb54c278a16040220 undefined -4263bc26429cec3e9532b96d8f6b9e61c1a6374bd9bdd4323a3c5336823999be undefined -be3c321eb751d1ad376fd106da9b5d3a5314c11f2ccf22fe4a416fbd5ce43a26 undefined -ce849f13f0e49e6a5965648fc33c29188cf2f2240b53883ed6890e28de04fca2 undefined -8e0abe49da245444f6b45221532b5fe99a5d0d65ea4e27bd69a9bdaaaa66f666 undefined -669849486a5ca7af87071fe4174a285437c9d3122bbf78b92c9e0944f48fab80 undefined -231b2441afd7af537310c7e00aed47a76bf594bd326d908eff0bee5379ff26bb undefined -800322ee55eade53397b854ea0c4e8478480376d70e48c1d608d7eec1b0597a4 undefined -f55bbd13d83a80b232328ad9a860d45d017fc45c6d014e5ecfa38983f2516bb1 undefined -19eb502dea90ab1f5a244e460ae737d415b66acc984eafae1397ec64f1fefc1d undefined -09ec54b2583d40742af369dead69b466e917df60f90831557e5daac23dd7f4fe undefined -7c89c1c0597fb1e097266ca395f668ff1e376744a532dae5aa9eee1a49d30f00 undefined -7fc53e25824bc21b09a032ddf06950b97c8d3f15684b38a13349b4c6a766e62d undefined -f9fb3519bb6f7142e35c787d21b768b89c83ad4d9256723b02562512030e0a3e undefined -d601109ffbf47c9b34e1f68026a7eb6eb315dc6a3fe9b3a358853b8f190a14da undefined -9551105fef34ca4d852ff9059f515d0d02a88468662f824f285af4fc324af5b2 undefined -6a5974693b80937bcebdb9e5ad3370da6334a63cee334cd74656a53015f13f0d undefined -c4b824e1fb8feb07a983c39675e6ad082e8d958bfebf107f84e5eefb19a29501 undefined -f24a6c642a133ea266718485d6480e73bca7facaae7ad67d9a37e0751f2f6626 undefined -eb2a47d7b398b7fbfb0b307901935e2fe2aff52feb46fd8dcf9e9f2437cae0ba undefined -6393606c56c2c17e68a6db1102925886ed368652106706d4a1a1901c7a3eec5c undefined -36064bd042ffcfaa6374928f641ef9188a710a45b86ba9fd896cbcb9e4f79363 undefined -216fbea16053483be841de877d960fe31a72583ab747d1d75edf5f43f8e4bd22 undefined -052a8b64092185c26d7f311a4ce260657ffbac00856feba2d1dff8e7563ca491 undefined -4422411f785f07944e5066bd0771991f56a66e020dba482d259c29b82b1f4925 undefined -927f282197160192428f11681d3a5630aaf9bfb354882fc92151775d60fb977c undefined -f17080b3087cf04aa005700d20009e9cd24cc70aa1b28fb9a147accb40a3fb10 undefined -7163ebbb1a5c69f246bf86634b37d558a01b757c04844536e7db17983d9a6085 undefined -16e923a79661897cda8755d81bb9b68156593bebaf185c5f0f28557000582b7a undefined -797499c94cbfbaf6f8f84500985cd65ebc0ba8c5a654b224ce0166dc3ebf69dc undefined -1c4db0d62cb9b41963ce4a99f2d25d657965ceafec72c8a02d10cb845360032e undefined -f03bde17f4cde52b073bafc22f23c77a6a1b4578742db7ebcf070e64f1a7b2e1 undefined -3a628154e14a7dd9f59adb6b4bb1ee00e44bb1b279b5e0c55ed706d1b388c378 undefined -5123240bc76a1baecd52d6758418eba5b52c9d98c923fa0c740db3c857a2b565 undefined -3c725c39dd7ce289b12be16a41c90dae77f920e2526e5051f8434bfe254758a6 undefined -768a8cf6b3701b934dfe4246029eb7b518c077220feb9dbf744992ed7c0271ff undefined -4ee97dedc89f7c9420a8e63d9b6d0f150004cee1bf6d752c50a0b54ac26f1733 undefined -e035e6469bf97fba1f83fff3b4fe5aa0057bedc357427abf496ba7f85dd53923 undefined -836ee7598cee5875c34087338647c40686d717536b9616f09865049887d20150 undefined -097d3c14b47ff509c0bc6da92294590f7a379bab71142ccc51847ff7e35cc84e undefined -9add1f2bbde642873246cd861ab7ddcc59eaf7343ce5688f158b6755ee70ffe1 undefined -19eadee7c4552dd41badd561a704b613e1d8cf6cdbeb21279978dc61073a7bfe undefined -1f19caf1d693bd52dd3d933bd7d1cb18e591215af5aed8619e0b5a049048122f undefined -1b1efe5119dfbd64c828e312180a00f03ebd49fcee5ddf990eff3830687f508d undefined -404456296327fad8cbf6298c27f4141cabd5c171513e69d8d7e599c881eaab42 undefined -bb9652a2a202ee8f758855aa232bd409c85c1890c9adf19e2bedce3155a91bc0 undefined -bf78aee7fd6bb6817072a3875303792a9b4d4f7e27a31c35f27a41736e98f407 undefined -de12c26939c02ceaa021a0465c148234eb0e42bb6b26db2b9f4c451fd2c5a534 undefined -c54e10bebe7ee99611f22a308f4907b7322560379815ef7ca6198c3e999d0455 undefined -a966c5893eded4f0e406e3df1659f15ae3052c7b5738adc7f5bbc7353433179c undefined -48187ea0893cea6c292090b1af13d749c55dcd44636f25dff329cfbad5b4fbba undefined -60616190b6130d517113c26dc4ebaf0b05b738a1b80822120ba2bc3456c05476 undefined -b1cb700b361fa337b0b5e527e04eda193c3a4656ad4047dad714f111e421faea undefined -ae5dd26d751c433cfff9a47f214423668edeca46a50da2de16626904a7fd987e undefined -9df4c7ceff0a4be3fbd6712ad30996005d2de75d414036e25fd5fc682af5e592 undefined -1afab64c8cb828caa266367b8825d2db3e60de2cea3dc37471561edf459ad12e undefined -6cfde3e103b43ecff6a9bc91445fb56cf581823701c3c2bfd6e786ee5b054fc9 undefined -253928346bba1a035d339146ff967b16d84b55cbef18991c09addd3ed711588b undefined -515a1eb62132e7c0f77e0888c13e93c6c037c399d4faf95e30f4ee9df29277a9 undefined -0c1520a0749f77e88eb4ef47e13d38b7ad55e0d2eddbea7bb3014ffc8e5d95dc undefined -3aaa5c45417ec916674b78ccf915a70e0aff48b78427c6233dff9d53c1648d8e undefined -358052ecd403c7de24b8f6f85fecb5c55927d6d0acc07cbc57a270e8ab260f0a undefined -bdbaa9805ab1f2378b12163bfac029712ed0bdf24a4e81246c2c3706d0b3a52d undefined -23ef309e81de5730be76f3b38a3c6fe7d040ea91f84f8f156b3936880e9bdee8 undefined -f7250d70547ca8c16a3ba645c79826ce0a1974a2ff9777f80852b14ee5a95f54 undefined -68cb95252ca31ab3fcc73c7f3537ed17248c1de041a15b2931e5b24dddf40fcc undefined -5fa05e3d2cee32a6fee8e975a81e71bd6a29b0d75b0cf559fd455cdf123afb35 undefined -9c130aa41ee6057e6339abb510ee9525d468aafe4ee3bd91545df19f853c488d undefined -d3f00542f2e2bccc25485c2eeb8870d85a5be256ac9dc2f35a5771e21d8fd1b5 undefined -2818d22e4e449e88db661f1abc67cb244aa06dcaf56a6a6480367f1190110e5f undefined -b7dc4310a5d999869bc283a00ef4bdd61f8ad931955ca9e5c655fdb76989d3f7 undefined -c47df29efd470e57ab610e7a603ebd296cc26e724e43b35fbc60beeb7c06efff undefined -9ff024a902a4d9493f1fb46fe03ca8e338a100cd78d9e4d6478e5bab7b5808f7 undefined -e27e4017fe2feb0187d0ee744b4f6231faffe5aad42ae511a14b26041b315e7d undefined -29f31f9d442fe52492a2c5f5cd5fe41dab9aa7aee3b60f0cd2f13203c6df2b0c undefined -582748822dd90d5378b1f23cc016b2d4b61ef80f3323b3d775ad91e1f53da580 undefined -aa1ef3551c2eeb3277a0004c8b5d562852dc62fd15a99ffda4d2581d29fbc729 undefined -e6cef79c7f13889b2c639919975e92cf22a6a2cb977795c312e665f427ab27dd undefined -9a1f5dac986dde4e923b71e8878f519f0e3ff611c5f604f174db0f4a59c6d7aa undefined -5f6f90b1a4d7c050368956bcf3d74607bfdcc4c89a7a8287cca64e1bfc38e15a undefined -d484f526f8ab2db674e1ee76a86ec931b9ddbfe5d7531176b72a462499306769 undefined -e8680be2ed1079683d34c6657553d24beeb59f154850c30287e0b102663b503c undefined -c602d9aef5fe20082c827c60092d7c5d1c81f762b18dde5c7c56d09afd9ea4e5 undefined -7bece2f107662a4a0f3af2144ba4bb4fba77b88b686f64e4ac945c73a5c5f01a undefined -98e3cb229de175b26ac6721c1b76a375411a65f4fb564294d5419a4bcf4ee068 undefined -0c08c5814cf6c67908e88482c3fdc2d16ac573f8903fa8ca803bba4030aec8d0 undefined -3381652f55c83a5b42982bd16142be8647810b4df5d72455a4d48134f6a3b3bd undefined -e817b2c804b286918307e5f5e8bbe7fcf65c3e150ba9d3c222d16aa0f69a4cb5 undefined -2683740b9316489b217ada410be8f4f2ff9b1a7dcc6b291c1d6aa4c3695e6734 undefined -e4f6ec31c24d552c17453fde6741bb3933043ec37cb537810f8d5138381b5ce2 undefined -a28627abff05f4223546e4374e41f70c36fae8a664d8e7d877afdc55899a9e01 undefined -51eee4f7dec2090ef78e095e085af1a240070f2f871cbc29257b3aff437ab077 undefined -e7bf0e8e48c36501522f31e29f55dea9cf18021b3e752de8310a24445205bc2f undefined -ed5fb44ed22b3875b3ccc9db7175f5df0eb1982b08a266ed0f17f1714cc726d9 undefined -46b7a9c17563282e9f17525b67e6c1b2dd5b6e5756a6911433aefb490ee52e7c undefined -b73b67ca17a27dc0bc63349710ea144cc528e471047c2386db99fd061f0ff428 undefined -53020c9e2dbcce414a06a5685f72526870238e87077154fded62d214dcdcd840 undefined -73c7ba6ff6b99c5118821628e55db62210b219edf525060eda5da7d618a21878 undefined -a40dabb72512b241470ff799abc8a432b54be2b28c441e4be36ab601b1f8b9b3 undefined -430d775d16140562d66b6d126c12126a3a65ed9ed51531581acef13270e5dd01 undefined -fbdc7307839ba9bc612806826a567fba5df0268f4b236813eeccfad04b8873b9 undefined -2a4b16b895e5aeddb3e4566fbd3369311b94b66135497a25a9b82040057e925e undefined -21dff0af4194b3c1cf971be80b5b315cb3a0fb03e8b0e9b9f31836193f28d860 undefined -4ef5f446c6cff67eba7b9733d0a9621e6fc7563be217ee75ffcfa36474874a5d undefined -01220dc04d0e497a5ccf554c2ebd74aaa5d3b57bec6205d2468c585062039cb4 undefined -206a1f8738ad70a72b8ee9c37d69153e491c394f0c3eabcb8a6246c2b51ec307 undefined -84a8af1bbdb9adc7a8613bce2f45e3fd294aa6978d8f5d0f00db44f0e9ead239 undefined -8dbfb16697e0abb11cd9d9613b7e5a0f1c337e303aa0ced7544c89ddb8295bf5 undefined -20d6badde2cf4c5f1db1cee9d8bedc6cdc00323b6da5a811e618327c22e9b287 undefined -94febf76289f1a16eb11e490206eebc64aa43a6829f510cf53fc77c4e313c19c undefined -b09e9fb5cf091a65e445449cef06f3e9b4e90b3b14a5dd0266f24801a37adfcf undefined -81e16b8779ea7127a2bef3007996dc9e1c15dd40069f9732b1b36b3fb82d91eb undefined -33604f16b7633788c14ed926f6ee072950e8ffc93a6d0809e462b7955c8668c6 undefined -d4bab9560d5fd50ba0ef8833d6a84b7c6ff960017d923fef7337487b96f547bb undefined -6ebf7213b5fe4b368fa62907e346c9462d9739ae01270d231bb5ccf7e86e23fe undefined -4697ed23629e6a0521e6ab19afc6dd83609f5936cecea17251fb9022dab2bb57 undefined -1245528878dcbecef56214e1161d823e74534bca59aec61193067ec0a4dfaf6a undefined -ef31fd47b92e18157fccfd10ac02a9e5e6bcaad5000cb340ecdcb01e6a388760 undefined -51009eaf8c8e9f77a69ba19bd912af9851d14bb823263b59f00f1449a69095ac undefined -2738e8764a71eaa0013df8ff33b5a6c730669aa55ac500f8d7d4aa586d730bb0 undefined -81e649c87a654b730e8858f7188cbe42ba06a83b98b76d175adda4e44d98086d undefined -de85b7dbb34779207a22ea1e1e4a9db052cc4e04c066ec3ef7ad0b452f2231d0 undefined -e85daf9d2991eefee7a2eccab5e571b4bba0a734c5f108fa2d6139afb12db751 undefined -99d8d610a16e979cc41c1c4e6c4819122436095e8fceeb6cb7520a6e6a24a1a9 undefined -715109d8e076ef67dae1ff6c12dac7cfb0092123ac13022b3b98c9fe6634d2af undefined -22795988f34496db21b527ee6c17382f89c7074ad097723e940263cb16e642fa undefined -67a2af219f791ed9527df1ff7d59abf8a9479152049bc65921df56a73d8e6b72 undefined -a185b5496f118a0fd5673f254912b549cfd01be55455745c8fc1fb4fdb5ab310 undefined -1299fceb6023278475ff9b493736aceb55e6500a1bed3f7443ee1e65d9b4672f undefined -eee4013a3306350063725a7d1f1701fe482aa12d1e72af8f19d8dac73e66c3dd undefined -8102b232bbdfbea323c7a5eb6deec9b0046263c2e7ebe8c4a983a262396576e4 undefined -9298e61c4f9db91efe9a464f4a0e604c69b6781972f00f6a56a495a7537e7912 undefined -1d1a1b7cc05c9fb97337344149fe45a1fcb704b5700900e00c3f4205333a8b3f undefined -7b5f35734e1df9eee783f45836ce99bafcd93e1bd7b107d083edbb7464ad2c3e undefined -ce079f35a43dbbaaf0a7f65cf816c22033ec28f1052da822e798eb171fc1f9b5 undefined -f80117fe273aa7bacebbb8034f83e5cf5c77ac34ecc24c035f42c748ae1ff8aa undefined -d413085ffa9557aade8c2d1dc1562bc617875853a154020675a56ab0d69f3d3c undefined -d4bc1d3fc9b656730ddbaf4257e5b988c970f705ee1c85e15cfdf45cda6a3003 undefined -af1c09c90dd51ac90d075be6e7e587bfeb432fe7663e89736e972a59b0371fde undefined -187fd982f682014c905172b250b0d791efe5aaaaeee47d01b404a5ae604874c4 undefined -e32e3bc64759b10a8b6477bf64a8f1262a17b457881135eb9dd1d752615191d3 undefined -2d2b474d4dda52f254d61fd43b3cec53a261a1037e7b13625394ecfb2ad6a44e undefined -2e074f3d4262d058e846c2edeaedb3fcf66dcf98d4bac15fb5c797a3e9a1f122 undefined -e9f92acbcddb551fc533dbd3e3f8c9ce0b497701023eb619e4d48f665cf6e8be undefined -a841e0d092b77e096c3d5c638970b4761612643980559b29dfc8c7e8dcc7aeb3 undefined -4b920f965d7101657a9d30709ceec76c5ad3631aa4ad8a8c4e6fa30d26ed20df undefined -dbc3621145d77fd3b7ddef538a52815248f1ce100d37dbedf022480abe6ade7d undefined -0bb943136d890c93594851d644a79fc9c91338d8bda15b881a36c458faf1fd84 undefined -d4d8b4bf6539eac8c27ad905914db745358dc08a49769a4e4578215486705808 undefined -aa729c85c347aef8263ee1c90e16253d0ff606524fa00ddb29bf126abdfe89a5 undefined -bec9dde5f0a0abf8880bbd25cf60985f61e7d39d0c7377eb46238705c218007d undefined -895cd290d118a5dc8739305d4fca42a9e9c999d012cea06f1133fe44f993603c undefined -42c1f86e444be0f0d1fcfa1c77b7783d09070c15e046fbf63bbd111d710ece13 undefined -03ab64a0a148629c0821d1042d16d793b7e69efe477ff1cd3388490adf366092 undefined -95bcd1b1869a422f98643e2cce857ea344fae392312380af3ce64c7c91ea4068 undefined -e4db027d4fb4f556c22ae7fe07848f2e90c1b12734565db48ceb5616f9c92a35 undefined -820b29ca63865eea282301a2e29bfb719e0d05350ba46ac22ae3d23bc5c6489f undefined -82ceea8e6ec26e7444fa919eafc66f2645e6a133d8f0b89ef3b92b6cefd8219c undefined -020072be9fd39eab719aa10200af8c29d5ed276a33d1cbee0bfbd3730d4f49f3 undefined -354ee3b82703aaa8d49e8f541af9b7217a3fae999cd56d21034d94dade21efbe undefined -805c85d3e2630217ffb84281d4ab987eabb89d4dbf1b08fe6d5d48a3ecf896d8 undefined -6701359f62c89b7bf95592703ef05f7fc8bc2f5156213d22128b8fc89724e4d6 undefined -f1a598c587f3abe6254cee80106bd1dcb3b406a542cacf269cfbedfdf47bc001 undefined -b18a3b7da67a906be816329cda621c3cf7ba29ff9b5d819425161feb5b41b982 undefined -7f3dc86b664f9f57451c23220d25c0ffd58efa94d32b82b00c3a94b2178b382d undefined -8f0b764ab2c4811c91fb5aea359a3182628377a613124d8b0b6cacee9ab8c003 undefined -27ef7ff1c51de31a12a8d9c128873a3145c57cb92035b6b1bdb5e65b75c9e2c4 undefined -22159ed8a3cb9367d9a324d9f08fa029662abfec95faf81b6808d7eb2b470ff7 undefined -85950a1b7eda1d1aa9f9e8796c47e2a8341a6ef0ded0393df052f73d3a1a84a5 undefined -53741b495fdce0bfe3cfb3ded644374ee7d06f39e43d2fb89138c95ee815d41d undefined -cffd3d05f8d14f6ba475d182a147cccc1e7cbcee8a47f28fbae9d77506f713c3 undefined -b6511a084df22d6e168d6d62a6f7a7e6e8666be47c8d54add3b8357011521566 undefined -2e424c02400a8cdf53f91b30cbb1a1736971e2480b0329bb9beb85a8610a2d92 undefined -763a4754b0b496e2c9ee870ac9fa342aecc051ab9487539a40178f0b8befafb7 undefined -c10cde4e83ea3f12d0ce830163c8464fcc08f58d8f78413af85f3842c9c8a8b9 undefined -e4378055b1cf0dd99954cf2e4564b050c5eec0b0b866f7521cffe30c887aef71 undefined -d0f6f45165b51386d3c5499eb75856577963719ef18bd13ebdfee75f61f0d073 undefined -1898b4de818e081c89584c1e2372c6b853a87757cda681ad0458b7d07910d717 undefined -ee805399a402dfb3665f1b9ab2d961eee958e17cb79eab1597e1ef3f45834cb8 undefined -25f9b05158450e97f3bc1f2a7b2f0f341f2bacfcbc40591556f3883c2f2ed0e6 undefined -4b2de7324bf14eb7a2b405a46c7e243927652bde266324739be29269120e895a undefined -03b23302cb1c1d679f225f47d85544dcb904fa11014e8aaa8619f3a17fd24a77 undefined -30e30a9b12a785025037a7ed2610350317bc42d1a426c666e42063acbe5bd3a5 undefined -e8ce02dafc3cb6ef585010b9c144393ddf0cddb8641dc572db0d732afbd701aa undefined -2492b486b34c1f405a644d25a01719264d293e4fc0758c0c5cff8b122b49562c undefined -a1d9a8e2733e71ce66c50798012befc9e0eb09207010b88569b2d3b9dcf49666 undefined -f29381f8354eba67629af549ec6962c15dc67f4402a41ec3b706cb80237e4ce5 undefined -be1ca040be632a4bad390be376441ed4d16d030246afcb94c15d9b5536a626f4 undefined -71b280daade3713cf1eb45974ae5172912476bf5dd61b769739e0f6c6d81bcf5 undefined -1d4074884a98f2d355a97e279cc3179d244889c5e55e4dabf083e77964b8472c undefined -13ccb55a0f0345e0b05dd11a71ba8c88ad726c773f5fc039dd74aaf108477e1e undefined -05518b85917216f66348d9df9432a8e7b1796eef7e10c0fc9f77ba59498441f0 undefined -176b8e9320dd6298b196772754ea3dfe8f8a45f4f4b982d42d41cb1c8ab6d60c undefined -eda152b5ca54fa60f7b39f3a7149d45c1484302b4c1795285cd14613646a6957 undefined -70dab98e79153334346f9621bb084578df8f1a1d7faf5762f54b2f1ccd1e7968 undefined -93d1c26c588343c3d2fec4acafdf06147148f455c0f6fafbf1c1cc92b7465426 undefined -d4955bcf8ee5ba35cb278bf5507cfef49acc211e2d7070e5d565ad94b5f84e0f undefined -f4d998fbeae5dae1833e0c68eab2f237ed31aae6c1a734644c30371a8fbbfaae undefined -d9d83a827bceac12b94ce77995d1bb450e9d1560d303983c15a43970382020a1 undefined -c2b856e46e15ccb13757ddc0beb6fb1c1956e4ba37bf93484f81b8154201cea8 undefined -546e01f0912481781b9799e9e3ef76d7a92d23a6d1765e8ae5061104accbdbc7 undefined -9778c65a8bfe427dd229fb93b671b3d3f9284da573ec5d34ee52ac79496f7b11 undefined -1906440c72d9544e1acbd857d0d961cad95f9985297146d2ce9230bed66e9826 undefined -c49dd35f9f7c24dd676505aa2e82b746546dd6643b8b9afd5fcb871b6eee7c82 undefined -711d9b6b161d502204ccdad2a949b0ce6a6b5701ba331b56e9f7b2bcafef284f undefined -4f386c27fb2f291915679dcd936c307e9e192a839015cd4a165e1bed01a29d99 undefined -4d917ea8f9033fa5ad0d7ac1de2e1bf400920f787f6dcf208012a53ae3034dd0 undefined -dff893282b8541be4e6dba79a7be24a84b69a18454a8a564a0461b0719b0e5ee undefined -b1113a42a01d23253cd656f1b6f7216db67a0a30cbfc9834f2ba427a23c4ef04 undefined -f8a47d90f0dd6c11fce12973ba5951842134a76a32f62792e516d0405ef695f5 undefined -54747868a915174ea85c0fa38382068120cf5823c2c845e30651330fbc034357 undefined -8ec89986ed0ffe2867794fd6be128b9ec8c345c787321fac36c53c42dc756133 undefined -985298a2e346f955b578639ddecaf7cb6ef65e2ef74eef0f31262e8e90a91455 undefined -0a55f1aadd8ea073a7eb735c7f68b6c4ec8513ffdf8920d9db508b7c904e604f undefined -cfd5d46f3434d5fd5693eafae7cb13ce2f6f60cee2d20735a8215d6f7d4723e2 undefined -c54dc220ffeec6121b663e4b228b92d04a09fdafe4e7eacfcf9f832032701439 undefined -5918321641d6a27ab764dd22f015760ead8ea6421daaf745b481fedcd9cf2600 undefined -b515c911b8dfd07b4006a05eed96546233ec445c5d2e927248cce5e7f88717ba undefined -54fd719d53a0f7d9eaad42e47d30f30abc0fc9995915777ace2d606dbaa12175 undefined -e82bd1afb278098bff21932bc3aab5882d707413b74b2f70930a6ef3870fb66b undefined -bcfe6283e7854128948774a33758bf49c94e1ec60ee77ce40151024d51b9d949 undefined -9dcb0aa7e7a497716bf559d6c8c3e9c47ddf430700af4637986077d60449e98f undefined -a914e9e31161b115781549863f6a8c5ffe38071c9bca48edce1be8bb1b8ddc02 undefined -b551e5920bd39b14bb9a4a758245bcae6b8b7c6755f0c10f61bd5c041dce06d5 undefined -06d7f78c19d432ea083d4327b49a653b1316a54a3918d3e461caf59972f693d6 undefined -3efb48bbc753714ea603c9de9bfefb0330862cd4522e6b2d54ccc63c84115805 undefined -c831d075c9ab72901a73594c61b22809f530af288c67f5358c84e56bf9e830c4 undefined -e242893f89d7ddb59d468d6cc4d60b176ce294502c3b73adf60f59408b52caed undefined -642170c58d7df4eca6eb43efd78848843b37dea2a64dcc1be3c3ca5c8f0e82b7 undefined -97aaba7e461943ae6d3336fa3fbad1fc4ff226047c53e1e312ac9128dafa3c5b undefined -8f9bffdb35f9299fef323cbbb5b9f400a02fd9696dec4799e1b212f1cd76ec36 undefined -c247c83f2d27ea20ecbc7bc09b5e7b01e7316707cd95965fcbe6671010b4c6c0 undefined -20b6d9841a992341392eae47abbd5af95f449dc834a0753f1bf39d2a9da2f76f undefined -4eb6fd6b3a06d7feb106edd8675e15a3bc968a110f03168ebb7df655b4ac8824 undefined -a63656791371b0a507b880a9d619f1c1666d00e3e99ff599a644bc28dad4dced undefined -78219ca4ecde6b4bce4cb30826c14e531b4495f8656fd21e7244d3522842dff5 undefined -7d022b2018324cc2dae5788f2b0148a1901a490d3ea058758e329b7152b6407e undefined -70af55d2ae5e68b6e38279fae23f3054c032fcfb294bb6981fc9b677cab3c205 undefined -622b8b7e63a98d6c88d3dd2a6bc633372f0e19f5a133fea445c9f2fb1abecd8d undefined -90249c1d8e618e57efc958a29d6969a9bd4032261c11bbd32d253f6938c55394 undefined -b09c4b55a3738ba63332850f80e917cffc3792da288d8b018515256bb1930780 undefined -586faea5a3b5f208032f95e649dfb0dcb0372d13f4bd0b415053522fcfffe15e undefined -a1ac1cf9fb9793f1e4e942f057273a1a82bbb5d3e48f12d0d670f8438086a7af undefined -23af59c52cf06285fc076b57f21cc0d060ed525e421e91bf9bae6ddd68ed2ed4 undefined -97ac9839a9afc76582456d9881d94001b3dee8df56ecd744d46d9d3e799dcf0e undefined -18d60031bef0da36a6b32042ce9ad5fd2d01c8128a7b9124158ccfad82aa9e63 undefined -27e1ab20a6c824c8bf36266eca93ef952b98fe95121d5aaeeb646c3135223a63 undefined -b2f5a1d477b7e44e6de64db2e8ec525435181faf6d677c09432bd59c8680099b undefined -ba6a4084e782d49b0fc397683271a5820f3b39a846160b6249e29df0fc9c7f23 undefined -1d06ae9e925a9c4520234783fdee5dce3018277d24186b0d18c47cebb426ba3b undefined -258f9a38bd36940ca87487692beffae2bc5ac5b4e3b3594fe792a6a091236d5c undefined -53ee2f3c9c0854f9b63c3b6ee4a894cc7805e229a78b06dc778842365b86b86a undefined -676e2c0bb7aa9d1647151c9cf58119f3e26fe132bbbf9ee2997b31275dd32a0b undefined -7a7d8573ea38173bd0746f65b3631efd63b1e13892e437833197be9a1f95733a undefined -5235d3562dc7a4ea9158e9eee4c357765c452f0c0f6ef6c26d6e7b5d8789f15c undefined -d814c3410ef8284246a4e63390fd6b03dc077f060e0997a4b17903ca00a1a5f8 undefined -081b036840650c1183bc347ee6c159fbf46da7cf0b2b551dc60f8def94af7284 undefined -8e09c785af39853e3569f9caac641368dc240ad783df077ba53dc95ed5e5d669 undefined -d8154f74a6cb5c3afadb4dedf645494b2015863b2dca6c62b7de36909abd62ee undefined -4c50c8f652cce77e8662c4381c71fd249bcd71cbbd2767f82db1338f67fd1514 undefined -7fde26e6cc0196ba900d2a1f789e7c9b9a0505f30f475aa98989288cfe350eb9 undefined -bf1a977621c24f0747565b62d35e8062495ec72c69a93272a3c464b24016ea2d undefined -e35bde7ea7ca6d87121d0ad5e9bc460093d2154308f1be5a468688bdd0caf034 undefined -1a785a85c44bb5eb3871ee0128635f7c65efec78ace4b65d2ff4125a10fef98d undefined -b405840a6e65d686464eac1e55f50a0b9ff4c8109b4aaab4ed8526fdcc43e2cb undefined -5a2b60bdc78e837c5cacdade1a0932668c210af6a69058cd6d6e564ec9e43fcf undefined -a3e1c1087599f55acef67988f0045e653fbfc0af6875f215af76a86988d90e21 undefined -47115faf7e375e66db3f7267b779c20b3a779ec6141d6204a1558a6445f04c80 undefined -b5a1f0b312a0dadc9ed806dbca9c24d052fce3893ebab073b8f91dbb1dd496f5 undefined -65bae4ab44b5d4aacd7616552d0e9288983e2f5717df49fc6a2f845f35682a29 undefined -85fbbec272dc2831f1566d1e39d3b7da712dc457dfd8ad415a0862ddbd25267d undefined -6a6f84b81ee62a261c584c14832f5d6dca9b30734eae18dc0ef7eca63515b285 undefined -00a40dff71b4ca5eb6cb392de77b0d15c9c01fb2b56de8ba205eb9a57d64d99b undefined -585001f0ada20ac3502f5518413f53a82ac5a0187db67f909b8036f7413ce0b0 undefined -021b7019b6e1c02d4309bd91a3da114e4d690d8e1c4a15ef40502add079f61ee undefined -0cc12955e207613c35adcc81166fa81552feff130a8a8458be234985a05d59ef undefined -a0a00991e9b129c9fe99a918fd32dce0644c8919ef9d4833381bb755c7a96fc0 undefined -544929b92d80ef6a3e341ef2aa020c4fee3db275e944ad918dbacfb5936481dd undefined -bf7a94e606decb6250246499ddeada6bc975cd07555d1955d3baa9c3af0a0654 undefined -4a7167b4a66e36f1761065cc8c7cf1bbd7073c911b62f216e4438f5f655d5807 undefined -3cac837477e1a9c4700f06a7cc85f8048d39ef0f98b20251a0f6d16073b03d3f undefined -fbff4b999a29dcac24071d2e4cc6fed5e6c297bfe81ec13d4f074c3c0ace45fe undefined -f81f6afc05ab806da7afe8a4b0ceaacf24617f94ef62f3116c523b1c1844a3af undefined -fe6c7989117aa574a3681f33fcdcc8e0f7743ddd8fb8cda2c29d330be181c78d undefined -ba2383a7d54a4f3177572e8f7c7f37e32df52d16df96fa2c7c00247e0b413674 undefined -dfc578fab7f4c139cbe2ba557242d02ebc621cbbd83a037f3fc9d1ce2d254c98 undefined -111c6533983e1ea91829481199b404d3b85b13a750bdc3cfcd76e29748b11a18 undefined -63483f3f0772f62dd99aef9da7d162e7b2416c9b743ed40db629ba0723da800b undefined -08ba9c1c082af2889ed884ebd5264f006352227edc504fa04b66fbecd94a7d02 undefined -b98bc1c25f74d7a69eeba4687a71b496f26583c0824c0b5cb559fd366212ff66 undefined -99cbcce4aa1bc0f56a0bc2dcc8c2c42ce488e20833e776fbfbac7009d2899f1a undefined -dded8f3ff9d4d2fd92acc1d7a68ae6ad7ac535ee23fc8804145a0f54344c7cf7 undefined -ff86387dd4c784e5381056b3c6feb075f1f6c340788ac100acab6311acf29fcc undefined -6bf77691a1e1d8401f670eadba1e44fe3f5b7abe7fc203ea2dc0503b67f993e9 undefined -6a83317d02faf9ceaf749ca505696328090187ca8349be507c967909cf4424a6 undefined -f0364e91a9e5a0836a80d42aa51591a8c2793f9a0445b9bf736865a7e40c62cf undefined -9b3b066c734ed176191588f33b595168a032121ee4612c183298fcf0be46eb9e undefined -d98a68edee55e9ee47dcaf0ca0a028fba9f10da105aff28415f18ac31d9fb874 undefined -52b6aa0900f5f0471947172f2b8866ea6b09ed0d6ac5d8ef1ab24dd24c271390 undefined -509c18f7d64b0abdc6d1725f4311be5a5e3613913297b7fd76a524b75d436597 undefined -a2989140063114ae9348d66c32f084f0b112b704ac72072f2407ad99c91c05a6 undefined -02fe24c760f5f497569fa410f17304175ae4f06414c6d8dafced72f7352a3148 undefined -dd1002fdc53f5071e9efc214541e95fc20e81a1d514f989df27ae9e7e224efda undefined -e3fc22bc5a14422055e0a41046dbc827d5b1871777d707af543ee064860438d3 undefined -a96573a1c7d2127c9b38ff8f25245883cc57d3e56d2a527ffaef5b6032dcd2c4 undefined -7093fd8252f82f59b830708c1400be47abac4e75ff5da9ee821f6256453d54ff undefined -cc0c8932886952b90a8d37ee0c7add7638d7534178dbb123faf21a8c5690825c undefined -55715d6c7ce8d05b087f592b35e9c25e316c2dc2400a114a7f2edc2f8098dd86 undefined -9a2a8ec805374aa97bfa0a8eb80c2b6a8d933c393cbbccb572bb67efccb5dbfd undefined -b29c7fa9ee6a6a38fd9888903e184a331f3185a1af188fea51a48dd6df0ba54a undefined -c80056bf42472a8aaca44677189534a7cbe8b10461cb7949dc02382db56107c6 undefined -ab7ed32ccd4cb9e9ff4cda80f27a597e2b383e53c42da6156c4cb6e25826b5d6 undefined -862e9e20b8b642229c06b07ceb986c9f919a34576ce9fc28146179eff7dfa424 undefined -38de6bf0861766f6498da9397a99332d1eafd4cfaeb24cfdcd9e27d280f29519 undefined -36dd3e737c6509a64373ce175440ab1169b24fe04bfaaa15ec2ddcd5d88be3d9 undefined -bdef09e7b2adb314dbc8b8fc2431bc6e27d236ddbe32f957d2452e5a4abcd325 undefined -37765125fbc82d30f1b738b4f093f7547eb6a00710e490334e7ddadf54ebc46c undefined -fc4929c353bba27661f08511f5d5e56425c40956b1c5cedc6b5f50b71baa23db undefined -9b651c95eb5b5096d8d461123a4ff851d1b4729927c4dbb5f5923c49a023ccdc undefined -1d064acf208f3f64e91f15073e75d60c1ed14c7ce68580757933ae6e16fc75d3 undefined -818c45d3eaa680c20f230829e5229b978c9495620c56af4b146f89507d7445d3 undefined -09ada3a6fded4fdd0c60db3b5d75c66af5cfd9a1fd2f18416f386a1753c54623 undefined -4d6554346ca4dd00da1a4b7f538162f7f3e9cee9c40ab9e36599ef60c201d7b3 undefined -f73c2284db79dd188cd946518c1bdc708b6a5336b4b14bd502448557b5b1aca7 undefined -0626069c52761dc47234e1e5f677430b7a8a9287ced6ae8293e100df995ecd27 undefined -5ca69eee99b37c89de92472789d4737683429500edfe97b726abded3b226788e undefined -37b759228e226ee095e84fafb5d91650e1eec5d81db9438e0578994d8733ae35 undefined -3ba2b24de7acff56982e61665d179d25e3a9c4884f65e6be7bc7f6c153e28615 undefined -fd256f0f6c49c77df049d1274abbc18643fc0a859ff8527c89d60a01ced1bf39 undefined -55a4e2675526bafbd1ef5fb1470a3b87d7cc41d7de244fa78cb8a972216da5de undefined -f9149b5b1a30e74c31ec66ec2cf343a60ed50fd69e4c90820744a392c66de349 undefined -1511b6694b0be1e6c51637f1bc3672e2d23f25d7e7150a36a5a74b0985f0fdd5 undefined -f45221e883663e7efcecec9e969e27598af0fceefa1e75276ab135739e0984cf undefined -fea35d79c29de7fb0dd5a3edf6913f9cf02eec5023c548b050e11da54d85358b undefined -e6156ae11d8004e99d0ddfc15a90b9920e81c9a442a889bc8c9221cc458f1f6a undefined -ead6de7bef5ec3fdc6bca63fb30670d905782a56693fd8401f570a56365aaedd undefined -db98f06d2d07fa39b09e7b4a897f6a4d32ba1dd8fb84857d31600d6f2f4e1907 undefined -6b63ba83d26dc8bf1810be961c9354057fae8b2f12ce1740b4d0a8d728de882c undefined -9189c4f2f2976b442d7e277b1e1ce422e9a9026cc5371d60c11369cfd7167433 undefined -9d0f064817d3cd034b895f9cfdd47cc404ec6c6b33d6301a9390e29c57d01ff3 undefined -5314512a01417337d00313fb3305c6fcf6a3f158bdd743a0136eba0a3fa256a2 undefined -e10d58a32875adc730207fd8e5daa89005f43ff21e7d2cc4fa56577dfc0ae355 undefined -510da262206490609446e3a6b0846bde6c217dc20a5a5af8d0bc2eec1bc831eb undefined -789029808dcfeef70a81f8a7172851aad6f26c5a9ea4bccc85deb8978c3ba62e undefined -63ddc165f4a223e0052b3483d6c8f1a702f6eb93972d48ddf5e40b3c91bd9496 undefined -847e835651c8e7f5d41df4eb1063460ca1a35ec18ba2404753c4b02be253532f undefined -ac1837c09bd8feb39b2b4bcb758468d5a5b441b8ada7d9e1a159a11e2cf31bc8 undefined -541cd14c6bf2d75638a8e5859cbb435914836ea7803e13a3e6d280e462952646 undefined -5d0aa15bf457637b1c22bf48aa436388d994662784996b6346b422486efaafc9 undefined -b08ab89fd5438fc9b0ac55bf91208530f118190aaf2a491ba388ded3af3bc89a undefined -9e6f5d62c1c6035cc11e93eb1d4beb22e24cff9feec44a05b738d55658c8af9c undefined -b00128d7543e0ee3dd743a372329a1714ebf38d9fed4e03c7ef02675fb18cbef undefined -72bc3391fe3abe82edb0ce8e7095172e76766dcdd8040779b0f3a9a40890fbdd undefined -f9eca978093d4d1d96958a24386f3f20b6e9e7eacac918143d850679d3cc7407 undefined -53263aeb42da51bacd72ee427f844ce76654d5aec3f1d29fe48f7644a439921b undefined +6b24fbf18a46dabd3fc3df0cba2ddc680220b0aff607071b662261c2e4a913c9 undefined +ea95b42bd041e05db7fa4bdbf62d11e7a4c23ff2cf97e6a05f43f1ea6dcce076 undefined +d0c619f5614d328a51962d0d57d520ec7633e76fca6d9e6b3833f078aac86844 undefined +2954d3a456639f6cd35bc534eaba974903667e2d9225d2a39ed210b79d1b93a6 undefined +2b545e7f6a72ca8a6685218eac2fe31e3d88975069ec554963ee56840c1706dc undefined +30c3d8086357b4be43821a496cabaffce6ed53dfa91771ce587abf0a0a0e08fc undefined +06329254233dd6da220e87af11f40b84072ddc6f4f823ef92ac4b4f72cb69050 undefined +1a12c7ff5d17d96af278e8a67b135fc89ec5f4b548aea304903dc0d52f5c60f4 undefined +4522342ea6746de65e5a8198f5bdbe39134e02b295af1798142ab8b496ad1e6a undefined +93ed333290f2a04e586b479efe6fb2f4e42641c847967d0f455d52f3f54e30cc undefined +8b892f3302843e7284424f89e8edc80b94fcf30480c1a9afad38ace5e6ac8376 undefined +0dbd48510b227ff981457e59912c764823d819b6cf635074877c1c27b47ca931 undefined +c595f0ffc4ca515825ba796247f979362eea81412948a79e4ccc44dd4e628ccb undefined +ca81eae937285a49c3f9e8fc50d49728bc055606a7f3fe1f538af1af5a0febad undefined +674620c43744d5102994ea8c13fa9b6338db1922b439ed702a65a58295d742af undefined +42553f34926a6eb92a943ed57daeb32e83f267cbac276e371618a6b5441b0fb6 undefined +48e701a5a81df4971863a9255d872ef0c8dab69a94c07036dfe24b59e39f98c8 undefined +aaa09e0d21127968a8ab15071819ee7ab3853c9df67b8a0fe755df68614e52fd undefined +e9803e5f92b8e4dda98f5207b8146a4e0c2c83836389376a900e1e565a780533 undefined +d599b0836ca70bf8aacd3ca31846bc9b08bf948c3e942ad2da3b0533724aef77 undefined +0a4995870eea3357ec81a3fca3a5243d9416170b27e76c9e1199ab6e5139a741 undefined +85483d5431cd4a298cd91b771366065d41126a4309de46b235f44d7e736b6aef undefined +ea234b7398585e49aa8fa50991017cf8f7c2f52892534eac677c5fe4609e58aa undefined +58f09df845b494ce09c892689313dcfe8488fc956abdf2d44307f2f459a776b3 undefined +012088b692159cf03800af5d57432bae91218126b6ded5178e531e348ac45f64 undefined +8d5c70c83177852c2865763ee75d869195bbc794066d762ea80b97ccb702c5ec undefined +5a52faa4e50a5dc07ac6c99c69319f750fa599e552c2ec24930b1e8db369c368 undefined +5be78401936ee4383671cb1544f07f0f635d5e8f810cda8157e54e507625f648 undefined +1b8d81622ecefcd73230ddef8b891c29c2846559d9c9a33f7a738e1874570f6b undefined +7fb57380b8da268f2a2ee6070dbe77493ffa5ceed91884ab03f0bffe217e2e97 undefined +f3b2c98192dac5ac60c4a39f54b5fd25983522542cfbc41e391b6abee48fabc8 undefined +333af190e0574dc11d4cc586ad33f0962e14f21e581762c84c53d14121f32375 undefined +c48396c747c0c4792bc40c6ec5a4615f142ea2b9fad756052a75d55bdeefb063 undefined +c1fd620663ac5bde32fce541a5c58591a68220a177e7f2037f0850946bd645bb undefined +795e2ff9afad84b15b9a8baee6517cc47e5986449a849d8eec53a537c429536c undefined +4b3f7743dcb60a9c76870c073a3608d342b1e58817556cdc77b0858bd339803b undefined +744dbd9a2ea83fb8ed029ef75fef688b4e3d481a430ea8977493f17e5c2c6c32 undefined +34261d8d29df2aad98dc8bbf7e89ddee96eb344e0eabc82400b19955304f517c undefined +23c7f0427d3dd44d5c95bd380b25a6a9fe441e93b70ac9dfb536856da46aa87a undefined +df98294ee08a87c721c78f463dc55e47b03131fa60f529c8b104b5a6db248a39 undefined +54ba7f0d1599b7dad7a71cebd2d8df97d420220f7724522fff31fe8118683e38 undefined +af20c09201f9204d8c087c773422b3072f738dbde118588fa15abc5f0b921969 undefined +7cc250f0b63dadfa98b0a1f824fcf45c391575e0cbc4abf9907e6e1ca1aa925f undefined +c46b24210caf29f807c80380118e7604e96cf2cf2c926a451e8a247ba9be4131 undefined +5ec888753f8a6a133c50e0354391240b5cf28bf52aa13748d2b46fafd6d513c6 undefined +5381699d074cd15b627349499414e367dd143fe27d08976f160f7f5f4467884d undefined +a6b684bb131644b8f07a5ec5b4546c2e2f29505f0dbd7062f2d896f049322fdb undefined +1d5861e82722c56ac9d1cd0daeee013a055d16dbc0401e879210c75ab244f76e undefined +fad27bafb1b575328fe1b99c225eb8dafa5078871a60ca7ec5e9282c6323235e undefined +86886f24302826849de5caca13a672c9a2a9734fd5ce56138ab1111f521e66e0 undefined +caaaebe3abc685fbf4d317540b9fe2aad44b328eccb915962b0d99a8226b1540 undefined +715249a78d4bac7941200c8d5bd68cefe123ab7d344b6172ee3899e4f48dbdb2 undefined +f9ed9b332674138d75818ec829c40b2d6d0833c573b56c564e44a5a488f7a1eb undefined +0800bb44335953f7b90694999edbde10bb4fa9364e5e160b6a05e869e51f05c8 undefined +8c73315e21a8ef0508ec529e5500eb82b02ffd778385d969a983d27b64f693b3 undefined +ce398f0e7624a824d57b3ed7c80b2d39824107e9c17b2355ce94695dbe11c747 undefined +b169887bb9cdf4bd3c6125add7b90deb3bc1796e555f315a17d57c6b8c5260f0 undefined +81f8b3c532a2a0c100b8c5881b214f3f0f4df4ee130ab55fc527ba077184b498 undefined +167c2d2c92a538586dae4ff5840fdec55870088454f40d36eecdb4cb9b85bc97 undefined +e177b3b998614da5ac4e502b98b30b5cb11768809de49bf342d1481d2aaddf1f undefined +a316263b77bd9d0f6ad4b0bc5c3b80e6bc05be79dbf95ba41dac42fc573780ca undefined +84162b0ee1aba370e3566a70f5726e693da07b5d670f038cf1929bc5f5179225 undefined +9e7374bba3d4a632d790da62cd2c4813061dc5e2994efe727549ce4ed3d8458b undefined +f963aef8d5a013f5517589e46205a9584957e019a9761ba724eb2487ab3dacdb undefined +bd9522157f9e5ad5b72dfc599c23493e4503502913d451bcb4bff4503fe087d5 undefined +0adbaf8cb4a19a3db48a1d8885a4fb4c4f8021e1d9485b3cc2646e1e77f5990f undefined +1f0493961dbad696d77f8d5878588d2d0e1cf76fb9d2277e59da83b4cb87002e undefined +48828c15c651bb862be0174e4c349c4435fb81c0d0eeb92bc1ddc2143eafd28a undefined +d7d032bb14fdd90fc25e664773b8653272adc0d09b03390bff9206d6ad845dd4 undefined +f42930b530ad437001c31099eafbdce24fbe4ce1e998adf1e2e3300494fc0b41 undefined +d064248917a9f1376850f36977bdf9fd053202f1834c4fd241d91c116bb1e364 undefined +910f1b61b38b2bfe47d9409ad4c49538f2092f08081b21ab035df114e4e07df6 undefined +3157c48f18fd9771b3fa881391cd49280bed24154f8ed52b726b9412a7b5ed7f undefined +f377bcac8b0c1863f0ad0990923de883be47f90da3f59701bd20395c3ea2f8ea undefined +576c0b84e87986a73e0ccf5ade3b622e3f1bdb55c0e4bc4152526339dbf7b54d undefined +3a04eba07acce229f35c49fdea51fce327ed3edaed76358d19982efef6464c59 undefined +b4a3578839477012f024c3d672ea12bf240d3da8e5da319a18f588d6174f18c9 undefined +0551e63913a08a087d03fd3688508d2425453e5cc22be08d688ab10bf5919222 undefined +a4b3d09ed1170af935bfe6224924ff7d11f034468eea66a7c3ad3f33c624920e undefined +a8da47c7c94f2e26f140a6248a1e1960a6c2887217bfc8844c2826726b993edf undefined +4f8ba6c8a5fadfc6ba54d8baf95cffc0a2ba9b0c5b85d7112757e3c2624764ea undefined +6286e2928453539535e77a99be643fa1a737ad32e1becf6961d2f2f05f89c086 undefined +ef11539369cce1b41f4b35c2e915bfbe0943be26af1d2d4fb3768255c7f5d4fa undefined +80b647eb7a2022914507088fa0d2dc872f3137b4f1f854e95c9aed9b08972d11 undefined +930fb0845d811a31dcbf002b6568fb47743b4518968e68fcbdb657c2e40d99df undefined +412cf058ddb0f0ece40277fee0c52d852b704ac916ff24e0bca1d85056b9e75a undefined +4de5775cd67a928a90e4761ddd78991639d190f74a21af88d3aed7d57db296a4 undefined +ff848d8efba6f7c76562114fc80221fdb4a157c12cd4f499db2443a013e90cef undefined +6716a32a69038906e19f933f8750ecadac654b386a11335ba4cc13be5171476c undefined +8125dd13dbd7c1a7d17dd89f5c520fde57ec3cb6f51d27683c68ea5317d89447 undefined +ae726b855ffe80eba4a23be1cc69ee9c99d030b7685862ee39104d94a2280e6e undefined +217e4b591356e8bb6c9c8f1f64fd9843a1ec3298bd3346168292b21cda92fead undefined +24269d1c948c56d6839286f08f149ed8eaf29ca4c929db5724f1f643328bcbc9 undefined +416e7ea56425d68561a6fad5985f0130e96bc66a7f8d0e8d3ae6017c29fbaa16 undefined +6eea0dabf53f6a7c6b9ef6198cd6dc7b1aa90cf3639b28788cb6e71a126b2457 undefined +572ea6d4e97a53112dabc2e4083ef833f6a88b8db32347b562dc768bd54fa21f undefined +411fb62616998fad36e2acf9492ed1bfcf462d68f05b8fee840c922ea8610033 undefined +4b678e21defb899c25bc264ebcd650bd5fce4b513ae8f4803321c025b16bbe39 undefined +5dca3bbdf80e8647004548fbcfd96c0535808f9ef4f9e25288d987501e96419d undefined +70291bea67c48d12403b6c2458dc8158a0bef75bb43ade2a0a7afb595689bf8e undefined +7a49dd4887f78bb73113f5ebb19d4b85d40295fd2fedb28641031e5ebef6801b undefined +d8885dff18a1025b9a659f70c2f65b2223e59ef932cf7de6fcc0e011ad870bad undefined +ef625385d8f6fba95e383faa72e9d00ef46bd04a9b4e2d760558be1d22c2dd3a undefined +af96524c68534ce676ba845b161b24bd830529ffc35d8503c035cc55fd6071a7 undefined +83567765e2fc22107d357322ea92e6dddeffa66b1c4d69413d16009052007f0e undefined +9d0cc4e54041235a395841c5c373bc62c8e455842cc4c71e18d1c0a55cbdc652 undefined +824835338d8e1e0c6e32d32149bbbc23f065b4a65d62bc5cd9f4e2f5d82bd85d undefined +82be842a8a3a2865bbf4ea9b1cbc9b46c4ad8b1de42c1a1079837b051b7dfd5d undefined +23584eb846e9eb4532b84907bbf6547bd954d6d3087f0140cd84ba6a18231744 undefined +51841a5216a3bcd6794b057950bc19b2cb1f922c902e0f88e6e9cd40e95ad5b8 undefined +a7532b67bb2f2294694305f4b05de06c9b6e92881c3a544e682ac7e5d3e0f9ce undefined +279a1bf1bb1e6451b3e93a052263524e08c2a9627e0300cdecfea3603f24944c undefined +f5196aa652cca6b602d81af7b7370c72c6935a335e0d04a26180157e2e73554d undefined +9b1aab199d02f608505555ed4de6d2204b44c12186832f34459283a16826b637 undefined +e0997e08db068ec702b301bbc067e7f6b0cb47b3ea40c670a1012a7e3ee1e3a6 undefined +8429f078bcba854426fcec450ea894038eb29eab6457e38b3272e354038e8d48 undefined +06a24d0729e19843a2e76c1ce4cf684a8735c477be522d3a145b71d447c446c8 undefined +ca60ffac75ae9051b8ebd66520c882c6e6085385f439d8054d540e2f8b96de1a undefined +b121542811a5e0b69f320bd2462d52d6a9fadf1ce68e681caabf307f154e4734 undefined +68a1d9cf7be9d40a527d71dc01034b3f74f6022579d3fbae6e4c58bdd361eeeb undefined +9e18d2c80d10cacfd58b81748f574ae76b59e03f219b3d247e0f7a5295a25a88 undefined +06c947f5b2fa27f116d9d335ef21ae3229ee3c00199455eb3e9449f1ece27336 undefined +fc0dd3050a0ed7146dcd2077d754ccb5b46776668c6422a94787474f305c70e8 undefined +2c90803f6a973fa32573daa2eec7ebdebb404680d5cac9635c7693f174a7ec57 undefined +2fb790012cb1af4e2d3c6cff3560a21e973e195d0194f0283e5551e8ca03cdc6 undefined +bdef59ffea9652d6cb1a3962d828744c7748a1a77caaea2010010f04e9cbb8f5 undefined +9c186a8dda2fa0e4a12bb23700dbb3971581054feac16adcc355ffcd0b270aca undefined +9eede076c5fadd18b5cf32683f8521d1227623b53f2fdd1b29ee1a8a0607d5b0 undefined +48cfb659be44c14fdf55fd62b3bc563ba46ddafa835aebd46f03970de009e0ad undefined +95f64ff447ee6d9bd902ceed2ce93f5c01783db5d0a4f168c17c14ea09375242 undefined +e242199a3ad3284811edc0e8ac134be8f36c537f98906d8a19858db533583eba undefined +35087a748c4c19514da4d27504b9a9aa7dabdf4237d3ab1340d0fc492654a20d undefined +2adfc9aa2a266c1d169f93b9232fa00011fc877e3f7ed377b8759eface44fcb4 undefined +2769665d22cf578f0313df83000b78200e5664c3792dd062584d94bff4f5a26f undefined +39b27fdd9aaf287eb6ff3123224710d0afbd9c0d025b8f553fdfec801017cf15 undefined +4ed59d1bc95db5ad986d86cf15dc029e607119b3c6f6212d9f3637945bb0808e undefined +56ad66c916c978302b193edabeed7832d4d1ee1f0b929c1977ec3c64bbd84cf0 undefined +4d678339e63fa4a7fe8508f3afa697384fa4d4bbedefd55c629f8531eb99f83b undefined +0fbbaf839f8fcd100284e633b8eacd1da216e2c997682e11de0fb7afc7a60800 undefined +1f60954a408027a6e0cf2a229d7a7e57f7df57a5a0234a827a6c45a37ab74d84 undefined +d36ff4aa53a698dea367c1f94577968d290adf05b9ec2a62e674385bd6e48f96 undefined +852164533264facd15611becf4b300b0cb81ddb0071d8d9548898e758235fdfe undefined +83796f25dcf5dfeee31194b771d667dcdea54ed2da3734ad2d8d202fc1db063c undefined +015812dd4acf9517d1cdeecec36f61446570363b977a59a7a0870aa020a2463b undefined +959457bee8408d088b18ea6b6c8ea04ad9abb20e1d28f4576828d1a21cb575c8 undefined +138c54d0653ba18f40b8bf6d76cba38eb457027ad94a64a0bec7a6b60dc77b10 undefined +758a583190a91c380d9e487ea857d649d619fa1b31efc26edbe5789c0432764c undefined +05852569c14fae1f66091e0e4894e88792882d0b1199032dd373e4c133837961 undefined +868a2f19d58a4f365243e16172fe578dcf667b3ef3b4de8de0a53ac0547778e0 undefined +df202d6b5b2c094c935eaf91628e9fdee161d48d47c8fba37edbd10738ba1ad0 undefined +8dceea3a9a776c718248b04aa8f321ec74819eeef1b16896412f7679d7062871 undefined +f3788dd266191c1db2ec9cee684699ba495b142f4a58139c33ebb5a76011330f undefined +26e10eb51defd76469bc0d84b807e29cfaa33db4c32a2ff555ee7455f9b9bd34 undefined +9043fd1369adedd0117941b4871c10ece68a3dcd24a407b8592410789fc75241 undefined +84f32e56be6d63aaad72e9cafa477ce654495fa597558334c6c790b1aba0b27b undefined +7991b02fc0d0b107effe2fdbde39397c94c087c8ccc38527cd1f4d5c239953f1 undefined +61234fa5fed8ce1bf95d5cfa79b4ae5b31cd724ff39031cec206933a198366fe undefined +e8e4ea9fcdaf3e86b028f974fe3f0c73ea0706d64c682c5cf6668b57e35ecb7c undefined +0bc8c03c8c4b0d8392bb29d74f4681495997f94a680760363b52ff2bcb7d7e19 undefined +7417641d0d602c4106e84df59d04f9645d3c42161ba5eae2e7b719558488cc3e undefined +d7255ebf949cd49c39a828e0d649530d18f52655423d0f17f296da0872defb4a undefined +bd55300f4505ee545e08c360ad65cb037f8d8cb270f659c96a9d0511ba9dbfff undefined +4ea5920c828e5cfb71eea3739e7e39436c74de01bf183affa6bd333de4582beb undefined +ecd325b450a94f854829b48597ec0c14003852756289121381dc3172b8cda260 undefined +69fab0ecb539ca7cdb536043f3622b1977b704abe800c3135a9e004e75401833 undefined +3f4d7e9c961b476163826cce2a9bdcda8a8fbb7e0cc4e7d2f4ced119e013dbb1 undefined +cba23f888d637b740033bbe486d58e6edebb0203e527e58fde423c373ae04f84 undefined +6ce4a4fa33ce523f1effe35a3e6fb1f5fa3ca7a7d42a75338a0d012146a46e94 undefined +617ed00d1ddea6d6a451e094e377136956f71b5e23f96802761993837edbe2fb undefined +7a88d59ddaa7b13508ef34a8407041fa677d018450e3ce96ff21280a5133653d undefined +3d30cafa7ad86b9e1a1f408b868b6d0c9724d853cfdd49a5a421e51b5f1ac0e0 undefined +c32b55fe7ab59057f7579c45612e87679e48918f75bac0b40907b2a46afeb6d0 undefined +b183849e4e23765dedfee2bee22edc7be4212013c6045808d1a12a699f32787a undefined +a0a8ccee163de4a89cb9eabb078e10c198ef64412f5000ed7e6d8382826d46a2 undefined +48ab4fcc948a20079455b9ed9a8893c53fea8d48fc5d02e44e3a90dc69daddc8 undefined +6fd4a44074a404b16632dfd329e1225dc4b917cdb2c0386800e9d464668976ac undefined +8d2157de1fe0bb7c504e0af27e3665782b231972f0f5942551aaba6a9d8ea4d7 undefined +a12df5f1a1103e443e1b6ca3fa08fbf7f651635556d2098926701a3f3083bbec undefined +72df3e29513c56b2f881848a66f49e31df26a03785d6c7f50f9ed8f85c3676d4 undefined +0b7873898ebac96dc78970fe1be16de898a15b5d8194bab57f370dc39508b50f undefined +0c68e55db1c9057f9461a3ebd1d06b303f2715924f7e213ad42edc0bba5db2dc undefined +c178f00ad3773f334e787d894c53162c18733c78e23c9019c518e66f2849b4f7 undefined +2e6876802ef2f2913aaa75105ca4582233090ec6ca1c6dc4100381b54954abf4 undefined +4f6cfce13adcf460b4a1c2ea75a7b120851ee4d89afc314eaea23b1977fd65df undefined +33af058f8bc850edf5879c57c51df5cb1484bb0cf936a09e61fddd40d57545cb undefined +91b0c27e86e38991383215da0db33ae2c6f2ab237e2a52a940f14c1ed6e8c070 undefined +ef569a1d922018918a9340cd8a57d5dcf7951dc41fe5d4b080acb071ccd39eca undefined +d83e9bad8df5ec4858fdd2986d298d3a1a730c5e1635a015f2fce12923e2a4be undefined +9527cc788fff069151ce2a8168d200234f2f672bd03cf5b68f4e939725d550c1 undefined +c6138d290bd59cf4456fc6278730bbf18f6b0d3963be6d0e4acfbeb881cd6097 undefined +ff866d089ef5a714028d5a5651cf13e91bcf1290b79e80f151d397730701f122 undefined +19c4c8b0491cc731f8df779a03025f246f41e36bc80d28ea572576ce7dee5f6c undefined +9e948e4509efd1f1534bd3b43b09512164e967ef9a12d7ffc9589fe1b8e582c9 undefined +b5490df280b5c6a328b0195e69392b120aa6762eb4e2d09d1b04229ccccee35d undefined +6e42ec75ee9f9c2304ecbc4301f70895c585281667b4f90474b64d2367bdc2b3 undefined +ddba6de9b17236365c141775a7e90146f7fa0c62b1bed00380fe993696e72cc5 undefined +8c2006b7278dca91867b126e606de4d4d9a17eb31eb1359eac5e470c63c46584 undefined +68b35dd1c1c6a47a6f57767498571435d8ca21dc23332def46c37e79b652913f undefined +729f5c199ceb13ec47e9ddef48367da3eaabec887d6ac3daac412548c4639c2b undefined +06bbc5030055eb840223d43e7e34061b13324efd173a8e5ff8dd8d0999d49e05 undefined +3b030b224f5fc54c5c8dd71659de7391283a2161910fa9614a247f6dd8654737 undefined +8271419e9283c6ed31ee319fd6b5f73c6f68d04fe3a2ff751810014b8a34e8eb undefined +2720b7d13e4e2f775cad527596bab07d63faecd890cfce0e76a466c546ba45e7 undefined +60d98038f7d02dc55a66aed6b9a45a810201209583f9cced4485125d6fee958b undefined +6aafd4b7468eeedea9e7461da5d4200d752dc1db79fb51d518e633f72b4afd46 undefined +789f6c459b6ab18de4a2fb35ee736070be36ca8d26600934732bcd09b298f9ca undefined +2c9141ad78aa7a366e0ce20757036a773dca75248ad64259fc983fc56c024d1b undefined +c8e61306117d59bdce57e97dd2fcd3cfa4c60c0f465258ebd51b3a634aa338b2 undefined +6785546cde2d66f57cbf0cad11bb5cae91b5e74fc77738db96d737e5aeef06b8 undefined +6cbedfd82a41f3086ba5e0e76b4cc068d59e1092daf8d9ae75803aca11c32edc undefined +3a2aa3f75c55be4e4b874d790f6f87aba8e0017906f92040a2f4a0dab1264ba3 undefined +1a9454b881cd2ec035b96ecc2f9ac0b62c3808ce797df2897efa00f4169edd83 undefined +06a967e6ac295fe8c9fd7bda06adb154574ae2b2e36aaabfcdd534ec589e5085 undefined +98210a7a706d28a6f82f1f41605985ca0382713d32ca9c4baf4eaf9c5d2768b6 undefined +6b12ff0ce0cfcfb6380f3140bca5c50556b667014be76b9f28eaffbc885ade65 undefined +6293098bdc910a969ab16e6dbf71deb3305977b5802fffd4550bdd05fc548e35 undefined +c1aea36cada684e1b37343a29d95d8f671eae47f5a27cd9bc6bb20ea0ef40f7a undefined +a50ab08d3886a4db11579447399f245ab6e27bfa69c0bb4d01b45987dd42f186 undefined +879cc845ec554b3d534eb8004d4c03c233fffcf9617b012169fe75e19acba05b undefined +d88e19ec8398ee8af46b40a4da9aa6da4cd568cf80af37e9c13b2a684386b589 undefined +3807cf56b916755a0801f80cadff05cab735b1480ca482682c526c1a00a9acf0 undefined +11a8b417d63de3f12c1282e8df0dfa7b4629f6cc085d214905b7fd4cb6b8811f undefined +9dc2ab09d94a07e3815418ce65263c6131fe611e806928ece3665fdbc4014652 undefined +c4545bfa6f77337e8c42dce6ac514cdbac5c462c8136308846f6f7fda3e31346 undefined +0d169898ec5afb3169a71c80d2c9229c3422c36df3a515aa0423c8d3ae1aa059 undefined +a29aa4f6f603e908cb39edf3f09ad5a064a3f0ab3b93d0f5ba3aa8c425e489f0 undefined +b838ffc9887ec6da90acdc4a89b25a7bd2795159e7fe7c5f0713d3b19e7d7c68 undefined +82d9a006e1940b046dbeb75591b994860afbfda2418bc91da6a660245a5e86b8 undefined +e28d011ac82b0113834050e0a745215b0201fc1e8f93fc51d8df77fe13709809 undefined +a1335caf6cf356c3ccff48af24e22bbff295cbde7ce191300e530a77670bef1e undefined +65bb63ee2389266a72fc188bf4e9fe6cc6b082da4abae23d13c63295fd06ed85 undefined +e42417aee337e67ae75738d4dd0d5db57441821d39741ae61009daad60fd7ea6 undefined +b432fce16820f19ba5b9798e80d5351029ce68f13d4cd99618a2fa5d3a0e4445 undefined +0130eb43f487c2b0a9cc7caa470e0155cb8ec90ba9a1b051339a2a672b03b7a4 undefined +a5ad4ca320b3a2e13c82778c9f75aa2e73f2d4fc8d90e443d907f27c400c2afd undefined +caff593c94651569e0320cf22b8536ead2d5932c571731ee6a5a39af5027397c undefined +af8f5d6437c861c7fcae45690b7032a8766b05c1ed27c946ec800877ed62c727 undefined +0671009dbcb0128e3ec506628cee2bccd757dfd96d8a726ba34e7eaa1f1a1f43 undefined +241525b853b7ebcf15631c95ce846bede1a26a1681487d02f4c82c89a69ca4f5 undefined +5806461e3a92437c1b63c229c489965bb9e62867170e174c5de343a9c26a8b42 undefined +2f1110ae21835f169a5adb235973218d779ca200f89a6350dfbb5572cd522580 undefined +6412242cddfe0c33db7a111d89c1f14b10182600ee80f6fa6f9fb29c05c3d05f undefined +92a8ca7b9c212c8d009a9b58c4bf95d3bdbf6969bf2eb428f3d8bc996f07a7f7 undefined +54b782081da9198ab5ae8aa5c9fb200fd328b3d9492c8c9790f949600e668fd7 undefined +869d0980211027afeac6dbbc0b851f097e9f0d44cebe85aa254a7a8a7840f2a9 undefined +0ad403a3ed3b3a04ba861614ecbbc3d8e066aab0b55b14b2cbf43f569cb062a0 undefined +2cebfccbf9fa5583ef8c589d313d8df1ebaf14f083daa8919327d66dcfc1779c undefined +1ab653198505e0bd492070a97929c58e0f11e6c06ee1b4aa7127de1a370cbcbe undefined +dafa8106c088e2bd6a3a46678154d7834578dce37e14dc2e8ada38b753e693e9 undefined +4843ccd28a3bd6d7de30400c07f190b11b3a1d301544fab5c8af6931c6f7b4e0 undefined +589afea1f92379dac426840638e29867b99e12401ff2af67c900d90c2597275b undefined +e61c891d94ca16d93e3992450f548c093cd99e90366cc6e1f1a15556256d250f undefined +bdaaf6200468d100e28570db9da056d9aa5a4b93492d192ab2c58452aeccd76d undefined +3d0d7da3f16038c06d25ba9171f668337c83d57286a583e6bd3e6f360ac55ebb undefined +344e6f8de1afdba7f326c3f985b5db1d09f4fbd1012e024bdf3523ed27832732 undefined +e6854cb376bb92e408f7a1ea55524aad68075541f4c43192fa4b601537dfc2e3 undefined +78adcb0512e5519ee57dd1a5b3d96f879def3ae9b7004e52c4b39865616d7b50 undefined +72080d4c81733f42e72c43b7edcf92775fde908949e2e21315c624e649ed8095 undefined +ff243b99f9462d325054ea71fa4d695a23282198b61dfcb9c6f61160e1510799 undefined +81e5a0f4a39f91b6db8e41b709452a40a101cba406d3f606ee5d6b6a6289a4c8 undefined +4fd4137553759bf5f75d3910b2f4c4fab74c44f19565360c16cb765b263ba677 undefined +fda899d5a057bb8da10baf6463394841dac1a19363e6e16f53ddd17f4e842069 undefined +14f7a513a8bf3243e735d4398a4c2a1d49caf60d930b7ff34ac257637e124b52 undefined +1528e29f0a5c812ccd2cda7eb8a326c019ce8b7a9c75ae60799727c94ef8ef73 undefined +7288c988e4d937adf9c879abfc0a44ac5b997b81ec8e66a222e733ae855c30d7 undefined +9fca2c4615a3aebee0674325a28d3ec6a4ec2ae6931709c2376d94b96315fd28 undefined +43ee1f42d64f2135f8b5aa03dd9694ca2ed49193b8d3007114c603eaaef92829 undefined +57e1084c90c54fee7c30b0c2803dd29c4daa0aaaaafaeaafe66db3ed831aaf71 undefined +28278e7178e790d532f17e9f709fe20e753bf834249a52312cae56feb893139c undefined +61a832ed2cb85d12bd674aa1e61071e16940ab6dc48707224733d22b17d34676 undefined +c6911bea08f72517b56228407848a49223353c9e0ad6321c9040ce19b58c3c3a undefined +246d7ad05939bb18fed886e43ef42d0fa4b03792a088e42a7c39dda3e757e3dd undefined +702e00f75b995714d55e6431ed9955424b8d80abdad75b7cfd864cc3c96671a6 undefined +f394864ce8a8c2de00a01e525e811e1167e165449eb5e4253e2e75484b9bdaaa undefined +1320a4e0f57570ff330215967b86cb49311086df74dc793fd61fcf56ad8518d8 undefined +3b46f9e207f1d0bf8c1cc4d0eb4f55534f26fdcebe21eb9bd3baf3af1ea5190d undefined +cba0c00cbc53d3939db849c66c8fc59c4092e04ac06692f98d9864ddeb15bb9a undefined +ab0924da282356ef7632bb7b1b2e705aeae1a9687af5eac068d79b3eef654fd0 undefined +f214b907c7b2b419d1e3a4581b8e4628ec1efed85eabf33c3ac4d28cf17711b3 undefined +ea01059b6134f69a3a3441a52f0033ce8df66e6751c80ddc11c4720fb6dc145f undefined +7f71d7aad6d5ecfcf77f821150d58fa91f09e9c26be43bc8d17ddfd6b978b8b4 undefined +2135dbf9508dd0784328916129d0e1d23f9b9bef419f6d27d843fafe2a758515 undefined +9b5eb270ff503ec10c06fd5064a04a8d1a65e4179d7753ea42ac2613ab75e1d6 undefined +4fe7e79138fc8f3146e45998a1d309c534913da9e8a17f1b372bbc1b5155f900 undefined +8951b2aba1809e4010048b2be65ba901ef0e18db1f1e2082f08d9968ba324606 undefined +ae09884c0ba769beb952dbaa657167a8a98a31aa9cc3a4f7725d521dc2b5e387 undefined +0f68fce8677723afb21a7999b9f07dc8b958e211526ea952209617271f42e31b undefined +eeefc88e1d401daec410005e3d73dc0ad99bb96b635da8aeeabde08241673e6a undefined +d4f1934848f06da361ed773a14d404a41158e3721195b8262bde35c49fc0aadc undefined +8b99559aca236211087d33393c8f928b1e8136f24d2e86c015f9e28c9931143b undefined +6c97f34d34e973fc00391ba25b3d2c0849ecd459ddf524063a0dd935347c76bb undefined +a5fc01de9784182e4d70902b8ff93805785c931e718b606b5e0be5b9ae6662a7 undefined +7ab6e33a90d7007c6018fcf2938e15c2eda46e89beccaa04dde6f9afca25ed3d undefined +dc6e566592d2fe763ea19cc27a2d9c36ee05dc64e0fcfaca3dc838afa115757d undefined +7d691b5d500c6a9833b1e055066a12442c5c826e3023b3a0487c33826b844291 undefined +8e84731db8fd0643f724dd1e957b66aabdbd309eb04bc61f2407ba4d10c158bb undefined +f9f775de85d58bfccca792aeab3c496651aedb4e4f23e48a10cd04abceb42b90 undefined +38fc12725463995159f95e843c389ec113bba4d4772fd2890ffe35a8e3433390 undefined +60c08caab4dca0bb51f7a36d93f75dd40809c48ab25de46195465c5d909a04f1 undefined +5202a6d5f2ec15efc5c452a6423c428b6add2b6cdaad00a71706d31f8b12de9f undefined +130efc43fc332194e265386fc003e903e473ccdb785c28e4a69ca75bb2ccb50b undefined +69e3480912caaa8fa29da872b47099455559941c1dd5287f612105a0fd3c7c0a undefined +a677bb291ed8d3727c4d9100671e2082e54890ba92b8f6851ca0ff56fae48d11 undefined +f48914147a93b84c25c09baa7f4d5053383dee6a0e32f97cd59ef3e4abb9362f undefined +9d011e02aeea9c40b8618b0170953d1dcf86732b26bc6c0d6f40b158a66771dd undefined +87db9577f326ea05ac32ef4ead98d7f45b2270a9a8c2c6daae4c188c315863b5 undefined +8418f57aab895c8bf24bee33c92a490ba26ea8dde39da5a263080a6352a4c255 undefined +a9005deb87c6efb148a9f50e7a3f36da6d8378a69ea7e74aea56b796fa7d7bc9 undefined +dbde45f3cccf5a513d17ae8b127674ee425599f288ef9c5a2798f642fdfded96 undefined +df8dc58b388621cebfceb8056f0911c590acea62f5cc9f054f26b43ebdc42a85 undefined +f37c11f87195258090f4785e8e97137231a871213d122595a57670532f371e3e undefined +a93ce0e67f536abfe8add672e828342d82000c3c36e84b12e905eb01f4ffcf8c undefined +d0b0f343eb0053bfea6f29f47c7bd1fa9e112452b98aefff6fc4ecc42f5629b1 undefined +f911e90e21df7b98ac51a6f3c2c41c4e04e7c9d3a7e46f573de507b658fb09d9 undefined +7aaca9f55f11c271795b2bd4f41fdf7e08f70a66c765ea9e29d7c6ff9ddacc8a undefined +b747ec605a5a40e2fbb4c417048882c7b68471f631a3851d94e2447e53ef0703 undefined +61bd398708a4b779baddaa97274815234189b8b377b5f3a538af1969a73f19bc undefined +0568f746ee58bca8187ede8cd797514d5041dd35bac7aaa966026fd4369825bc undefined +d41e44ce1c6fefd59bc9e1cbc6c7ab441e16c4028cf0b43d21eaea672bba92ae undefined +eb0dcf0fb7127aab0e0f7d4ee51c0fed1803d66add8acd083693b12c17d47204 undefined +12d2e795afb380d2944bf2f05e6847bb97528e1c873492c0da94f7ae5752a14e undefined +07bcf756d152717946711680bc235b106d569618d81d9d741cd3284139be92b2 undefined +5adbad42ead11bbef572906ff4c840c4fc61969bc0585dfdd8e9597bed80dec3 undefined +0acaba5f74e69c4c2ee5e0f20107696197eb2b3ab160b98cb62f65b858a38d06 undefined +bde8a2178215a1ea5117bfd8b0076e8d4fc79e0113f464d2f484769b1c502e2b undefined +d912e6e67c65af42426c8221e4b0dbc13812213d1ee872f26ac1548e31695329 undefined +e15fbbdb0e7dde40c6f47998a74089902e61aba95b056f38e506ef811aa2e344 undefined +7c380bbecd43eadef37012fabdc333c2792bd02e6c7e3ed909af3b1446bbeef8 undefined +bf47c7483375c8d10f5b8dc21a2232ed48a808048fbb8e0e6efafa3574a159d2 undefined +e3824863c6b6c3d91aa5da93fdd9ed823b768df27f2fe02193c9c78f5d23afb6 undefined +5492e2c97e9d538e0bd5c6fec9e21ad3a8d3e292bd5a8013d2c534e6809fcb1d undefined +867dcc3fb4fdb408d2f9a20d51a50288a933c4415aa58a59d617dc80e671f678 undefined +165503542221876919eba5ae0d78f811464f352d63f35c1443c6ebcb18e1ee56 undefined +9d09baf2de0c039c7f24c5fbb3e5b5ff39fb6761afc28101fe178d971e70178a undefined +708669175dff31a6c01a4451a295b9073386ce30a082b6eac07392a95a2a9b8b undefined +def8cc7f6b943b75035de3e3ce4697fbd766719140d53ba63a71f416438de3a7 undefined +033c45ac8b18d44f4496df4c7fa99277cbc392af3d009059b929e97d0feffeef undefined +117230b489fc67d581c39716b37818678e9b901976c1974dfe5f7ab284c42efc undefined +f78ef8920fb06a6156b81fad27f5a58d18fe288b7fe0e19992033477187b5329 undefined +ec604af093b07cc37bd95729ba5478a9a077eb5a01d228736b2d9af1a2d66965 undefined +f4473595cb558f36883e13af0fddb283c49eec26e021830b83645d35b7242a04 undefined +1040f6d9d08b84788f30cddb565c353f6db9e321ac522775d5aed39ce71f2c51 undefined +d8ec421cd627094fee7079d52f28ee3b79f4e701d66aa2b5ba31b8515c4ab3b6 undefined +bd6804494d52afc8c5821ae3c44d5259c7f496a92530b91beb89fede713f8e53 undefined +bc7f7a34c7b1a7d824c7c5788960c2a766f66fc41e7c81de35854d248f5d1688 undefined +3de83881d3b261945db9f658b56f2837e8ce790a9d1ea0249fc5659561952afd undefined +001d1ff3ee97763fc5579e6184757bafe349f844ac1f4626557e5f066654d925 undefined +e43bb44c0659832a93d5e5304f29a2a9744f816bb5bec12be432f3c5fb04ae3d undefined +a32e6e7935bf0ce85725e274b4fc124a227150fb7c70fff722008a5bf356a7d7 undefined +c86f28d75c979f117ecc76c577bfbdacd197d5b057cc687aede43ea0771482aa undefined +a8a5047166a8747f3b50f4648fe894227ca006f81b3cdeb30985565e702e0d1f undefined +7e7a8129d6a362f70156dfbc5bac056983fdbee3eb58e425b645fd7f79a01161 undefined +8914c5e32c866292adf629a4d9261fb02109e9d24df1f3ea6192cf1248bf5b17 undefined +8fce56524c1456d7e58f7d11b544c6fb004547cc3e57824183e61bccd7ad5c24 undefined +d449544277ff29f5a8e9f954c1a6e0ff675747d1493079b8fc89156a240a1c21 undefined +43daa0e3adc8fc0542a3b3c4962cdc2116797c3c12f744777ba32babff672a8f undefined +4a400e7ade75ed11cd135bc9057c2fc1c7f42ecd143e3e679e3dff5410ac2a57 undefined +714ebffad5aaa4a9393d02b10532f3857a126f02f3fb8077f0e9390d6d9e1219 undefined +d86d6ba60c5a0c604039fee74d993a23b731285fa91a92fab1e0fd313924bda8 undefined +ccc95c5ff8ced44b7ba2aab57b7ffaa3f08acd84aad59c425f06c41018c2d7aa undefined +0b2c12045dc9a3e5a8dbac680560fd564f4601961d1b4af9d620543796818f49 undefined +1992788fb894425c15fc5589f4c058e67941c23c154ec49f19dd32aa882c8497 undefined +acb9b37d4f330f9b07452460ae7e1ed0d5a4579ca140f746c66a31f80c5d4876 undefined +ab81b7d41f5f2a1661c7f4c56bac7b4dbf29b1850ff9da5632d26159eec3b044 undefined +6c43b58a2b769d34b3d8875194f1295931337c9ba484f3b731d12069bc37853b undefined +5b930382fa8af89da6b373dbaea9db25bf8461d10cc3c8c296724e14cd885dd0 undefined +e038c5a15b26b72668c156b9c12efd1d78b3a81b251901db3bff6f68f4d5e13f undefined +688f3f73b71a406e19797643b7d5f4050876cd1d686b81d8297f1039c1a82b76 undefined +d8a66c3dedf226ac9881e1fe175f95ecb239ec62811770b118563c9c97fdd13b undefined +edcd7acdb3bd4dba2c8de16b1486b1a4da9dc9b988882aa34dc2259435c26277 undefined +be753a5b220552c37282011c13429a0d29c5778051e8d3d115206a7f47573cc9 undefined +70a9ea8073d9f80ec5a2e52dc9d3beca078e18b3d0a71f6e52d4c322205124b3 undefined +2515edfe8b9288c181f961e6d1927943bb919e33efdb2a65d8d340d7cd869de2 undefined +5331c3c22dbf75eb3c333ababb946883f555e1fae6a61af95e5b27cb4ac8389b undefined +7b2cd148fd0919cc5b40f5fcbe28ee7e6307b081c30c0c0e221f4ef5bc5bf3cd undefined +9b36001f87997fec4357a0eaf409899fe8f0cf2af6c7fd6ecb4706cbad891bb0 undefined +5027df74e7c90dae71b1786f8164178508a841cef05df932c50b71e50c681d83 undefined +3fa0c131921ec881d52d247c958e93412304116f8b95839725ab6b3589cf5398 undefined +c9c5fb8389c6515aa5cc0621d47036a367a210535265c6fbb098f83fec0eca88 undefined +2891e42d4c165bb0f89e8d6c95447e75e80db389a37e4480d5c5ba95d6adcccd undefined +4f9819bb5a402b2f1e46a91a4f13497bd6f4c7d67e2a6baa3a9c247442635fd1 undefined +e5e0726a9cb1a35f54edd9ed3ba7dc9e8c174202beb4644e7257421d4b3428b4 undefined +042edc942071203f3469206b4155152eca8157ce278c90b1ef4470510a46bbc0 undefined +975d38ec524796ae498bc43a9fbea913353a3e49af5b95cb493403d26f0345ea undefined +5c3f212f89d83189f6190e5b9eccbced11ad463626febf348eb88b1198877417 undefined +a1773c15e48374052041eea11955cf35e2c492f5e5bb7bd35352d9bba3975478 undefined +47a9f06378d24f02cee63f1d2eb9cee1b05384890339703bc03de547e468cf4f undefined +2729531dc891dae71e393178baa74040ff6f45b7052eb6d3355e2f54dac3ba8d undefined +6a85ade042a82fc18b389b567f019bde35d83567ba727a900599bf52facf5564 undefined +ad0370827c36ebe447557e2149346bde3857512ba82ca4bd8b6ca0c45999d126 undefined +df0961d1387b03a404f2194413a4ec6775b029573a4010c71fa5c6f2ba95beec undefined +c027209df07b334efb0d7cc5175b41aba31996c7ec767bdcc24c0903a03491f5 undefined +1238b4ad62d5385bcd867fd2379f76c82fddaabe6990f4188660ff7c85728671 undefined +af3a26e8d60324a61783077b64b81479c08bf80218cda4e9bde2b65cbb7b60dc undefined +8984d95afb3489ab34ea16ab114d4d8a5c3386b2e31ac826d667b04a85f34acc undefined +5126299564bb652c211b5c48d6e602163b9b8ef5b1fbd4e7d209acfb8f07f748 undefined +0c0bb102292b9c16d211699b89bde3ac8f8acd896777900cbc7b24d5d37094e9 undefined +c15f00d351e7556c41e8f537879db00aab9b442faf2f1c8571e940ed5f5f9579 undefined +9bd4e4f7988d63c87d646d4debb38043f56e33bbaf1b42f40d7ecd063c630021 undefined +2820ecb36103b469e4d54fb2b6fc5e35a0ea848a739d44463a29917d2c3be0d8 undefined +196d2b2ee409881cda981ccf4df50e2edc2a081a35280a42b8a0e9e2b902a9a0 undefined +85c09cac18354128e1a1f93fac330eed8c0ce9dee6b45e9d5ba198e0cf689cd1 undefined +10defe0a07f91e4b02a87a120b26d709ec9d6276fdbb84d4cf933b2f4cde03f5 undefined +a4a3a3168e73cb6556d8f431e0904317fc744957fce1a919710a547292e47270 undefined +03702814f8fa30f2d8d0f50e794264c2a13178c1074a84ef92ca8bf889618adf undefined +a1a6e3eb9d6e59f906b1c30834d0654d458f59872e8230252c9633f5d5a2eb8d undefined +65a05b769cf91cdc9adec059a07416d4e6fb157468f90822101959b8643fe35f undefined +d20855dd704e1dabf10d2adaccb6468280e96bb301f84db685cc860f1462e153 undefined +b634131941cf52d0a036b37cb66a26ae293f282baa34ad4488c67d429cb5cff1 undefined +3b30c32e596f319da66e9cd474175ea7012478a13ef41fb8ac468d443f70b2d0 undefined +101175fc3b949ede5c628fa1e05e1e14e6505c2e94f7259783476f770756eff3 undefined +9de28535422a07014dec107053272f42a2a555b400db1879833ee5e794f45942 undefined +2441daa057dc7f884b8658157c6b992aa43a21802dbc4e740424c8cefc4869de undefined +21840d7f017901e47c9cb8a991fe42301d491902d270e627a3a0a9957c67b3df undefined +67b58d187cbc9825a108505c34cbd4ab3a56b33a52301e0d3116c86dab4f20b5 undefined +296fa4dc4f3c02bbb3e389aea28c0b50c94753fc27012542d4615b2ce056baf8 undefined +1a595c2efe0b25bb2286581c837993bd048968b73b330039cf031c18df793d70 undefined +558c9babd21ee0ed25b4be8ea71911208ea221a2dbda12cc4295ab26dd65107f undefined +e64f3d55790b63c22a131f9adb059a9e376f9999116eebbd2cf641808eb47ae1 undefined +23fb14bfe82c4e0e96317fec1add4653c4d122d2df1e971c791c180b7e0b9e41 undefined +29acc6cb2364b9d55fefc8da45996dcf1ffefadcd963ad177be5d0248cfe067c undefined +c8bf47b10752d8783df54b7e6479baccf92b92e554e5366859fd9caf69b86488 undefined +ee709398a49d8ad7c5a63e7d66fc52a9a2aa8a55ccf10a38b8b5c790b8395dfa undefined +f0776a856827bf670d9600819f1db73ea9d81d2c64cd4620954c1eee54a92396 undefined +1b8019dbca8e614aabeb53055c57005f8346d9fb755be235388d2bab291d3357 undefined +b42c2178bbbe3e49fcbf87b09f4a82ba78b97ac6f552a019033a054c93d367e1 undefined +406c4968347e7ca42c5084115e4886b1d0b26e2b69711fe6fbc55599f53b026b undefined +f2db53f801016dd7ca1efa558ed3f170fd1ee146ae1b40c06445178223d5649b undefined +4466ea305ed45a9126298ee55c8c0f039649d0b28b5438ca24f90c8fa29ff6d2 undefined +65d8d2996121c9dadd70a79a47c5bd7fa2edf95a89528a0819253f98bb04cfe0 undefined +b6298b36c444b1d848d71a95fb49a6c31dcc1612642a6f60c3f6aa2a547069db undefined +d7141739ae8ca4b3e286cfdc34ce2a0c721113ae1e7a699c0bee6f3ccd07712f undefined +f6576077cd4f44c47220d01627c60eccd79b8024c1831ab18aa135dca09e6d9a undefined +0bea2e42762dbee89a568d652f797ba6adbcbd41d51a2e130e4e058982c181c1 undefined +7dd2137a41c8ff836b80854a67cee9835c623321cfe401d1baee4b1abab6c718 undefined +f889ac9dbdbb8c6b9644752a9e4f1c7f2081759c8b5e1e037c5f95488ff51d7b undefined +4eba370d068c268f297edab7018b30992287f51340728f23b566cfc95d92d04c undefined +944bda02363c2929d9cda796e5c56a3a42e923c3067f793aaed2118511781bf2 undefined +e7f3c637b684425c2a3348fe3ddaef7bf536de7109e0037c96d4cf88beb1e37b undefined +78d231813ede82a7d90c13f958d9242f16f060a0cd00a81f644835bc06a4464b undefined +97031df9ae438b37d1d63c38b3cde2ad8f5af25103e0b849181668efde6a93db undefined +0563e34573157737c8da10742d9356fe8bf4d94455dee9defc9c0dc801bf0eb9 undefined +bbaa43044b33373ddc7ad2943c98236f359af2241598def45ded92085a60f50f undefined +53d262d782991fff5a3f18757f0bd5c851ad885c37249fa3a2386938c57d6d14 undefined +7b6e8ccc721e55b55523d52a9a7ed50b589028a206ec604cef57ce59c68c061f undefined +106687b08013697af172ea6399045237f180f32f2e170b96393ca73a20a7351a undefined +ec745ad51ed9c0eb0fa389b7f2e3399893aa00b695b6564c1632643a1cf3391e undefined +1077686f95680b6d3c131ad9ce0adbead00f45f23e52331c0267cea7455140d1 undefined +32308c6ba661d2536033da968482c3f89d45c10b818c5bf530343bcbe8f6a6a4 undefined +f7471f4f17a47ebbb29a2c19bab6a978125007350598ded947ea95b8e6a1d778 undefined +32d3f07d185d918f277951f680c5437f5b7b19d085340b7e1aa6d2d549a3376a undefined +d4980da943d5e121b00db44fd898c42219c484472e581c71b20b89c6504391e2 undefined diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 608de677c9..f06e8537ef 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -13,7 +13,6 @@ - @@ -24,7 +23,7 @@ - + @@ -38,6 +37,6 @@ - + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 4afaeaaf8c..e77b14b285 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -13,7 +13,6 @@ - @@ -24,7 +23,7 @@ - + @@ -38,6 +37,6 @@ - + \ No newline at end of file diff --git a/images/cs-block-dingbats.dark.svg b/images/cs-block-dingbats.dark.svg index 09fd214c7c..53f5d7d7ad 100644 --- a/images/cs-block-dingbats.dark.svg +++ b/images/cs-block-dingbats.dark.svg @@ -72,10 +72,11 @@ - - - - + + + + + @@ -676,8 +677,8 @@ - - + + @@ -697,7 +698,7 @@ - + @@ -706,13 +707,13 @@ - + - + - + diff --git a/images/cs-block-dingbats.light.svg b/images/cs-block-dingbats.light.svg index 08a8705ce7..f16b9ea97c 100644 --- a/images/cs-block-dingbats.light.svg +++ b/images/cs-block-dingbats.light.svg @@ -72,10 +72,11 @@ - - - - + + + + + @@ -676,8 +677,8 @@ - - + + @@ -697,7 +698,7 @@ - + @@ -706,13 +707,13 @@ - + - + - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg index 852e4e7d53..063c17bc88 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.dark.svg @@ -70,75 +70,77 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -373,8 +375,8 @@ - - + + @@ -436,10 +438,10 @@ - + - + @@ -459,8 +461,8 @@ - - + + @@ -477,22 +479,22 @@ - + - + - + - + - + - + @@ -501,7 +503,7 @@ - + @@ -533,52 +535,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -589,16 +591,16 @@ - + - + - + - + @@ -619,22 +621,22 @@ - + - + - + - + - + - + @@ -645,28 +647,28 @@ - + - + - + - + - + - + - + - + @@ -716,7 +718,7 @@ - + @@ -869,52 +871,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -931,7 +933,7 @@ - + @@ -1005,28 +1007,28 @@ - + - + - + - + - + - + - + - + @@ -1079,7 +1081,7 @@ - + diff --git a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg index e90228501f..0d0dce7a1e 100644 --- a/images/cs-block-miscellaneous-symbols-and-arrows.light.svg +++ b/images/cs-block-miscellaneous-symbols-and-arrows.light.svg @@ -70,75 +70,77 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -373,8 +375,8 @@ - - + + @@ -436,10 +438,10 @@ - + - + @@ -459,8 +461,8 @@ - - + + @@ -477,22 +479,22 @@ - + - + - + - + - + - + @@ -501,7 +503,7 @@ - + @@ -533,52 +535,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -589,16 +591,16 @@ - + - + - + - + @@ -619,22 +621,22 @@ - + - + - + - + - + - + @@ -645,28 +647,28 @@ - + - + - + - + - + - + - + - + @@ -716,7 +718,7 @@ - + @@ -869,52 +871,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -931,7 +933,7 @@ - + @@ -1005,28 +1007,28 @@ - + - + - + - + - + - + - + - + @@ -1079,7 +1081,7 @@ - + diff --git a/images/cs-block-supplemental-arrows-a.dark.svg b/images/cs-block-supplemental-arrows-a.dark.svg index bb8efdd9c5..1d2cfb5ad4 100644 --- a/images/cs-block-supplemental-arrows-a.dark.svg +++ b/images/cs-block-supplemental-arrows-a.dark.svg @@ -34,6 +34,7 @@ + @@ -136,7 +137,7 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-supplemental-arrows-a.light.svg b/images/cs-block-supplemental-arrows-a.light.svg index 46025b7faf..6ca9d49584 100644 --- a/images/cs-block-supplemental-arrows-a.light.svg +++ b/images/cs-block-supplemental-arrows-a.light.svg @@ -34,6 +34,7 @@ + @@ -136,7 +137,7 @@ - - + + \ No newline at end of file diff --git a/images/cs-block-supplemental-arrows-b.dark.svg b/images/cs-block-supplemental-arrows-b.dark.svg index e62c730d9b..cf0cde3bd1 100644 --- a/images/cs-block-supplemental-arrows-b.dark.svg +++ b/images/cs-block-supplemental-arrows-b.dark.svg @@ -20,47 +20,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -124,35 +127,35 @@ - - + + - - + + - - + + - + - + - + - + - + - + @@ -181,10 +184,10 @@ - + - + @@ -234,22 +237,22 @@ - + - + - + - + - + - + @@ -343,10 +346,10 @@ - + - + @@ -367,28 +370,28 @@ - + - + - + - + - + - + - + @@ -399,52 +402,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -455,10 +458,10 @@ - + - + diff --git a/images/cs-block-supplemental-arrows-b.light.svg b/images/cs-block-supplemental-arrows-b.light.svg index 3b36710330..7b62fa24d8 100644 --- a/images/cs-block-supplemental-arrows-b.light.svg +++ b/images/cs-block-supplemental-arrows-b.light.svg @@ -20,47 +20,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -124,35 +127,35 @@ - - + + - - + + - - + + - + - + - + - + - + - + @@ -181,10 +184,10 @@ - + - + @@ -234,22 +237,22 @@ - + - + - + - + - + - + @@ -343,10 +346,10 @@ - + - + @@ -367,28 +370,28 @@ - + - + - + - + - + - + - + @@ -399,52 +402,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -455,10 +458,10 @@ - + - + diff --git a/images/cv-lower-iota-tailless-serifed.dark.svg b/images/cv-lower-iota-tailless-serifed.dark.svg new file mode 100644 index 0000000000..2ca0e6a88e --- /dev/null +++ b/images/cv-lower-iota-tailless-serifed.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-iota-tailless-serifed.light.svg b/images/cv-lower-iota-tailless-serifed.light.svg new file mode 100644 index 0000000000..16974b3269 --- /dev/null +++ b/images/cv-lower-iota-tailless-serifed.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-iota-tailless.dark.svg b/images/cv-lower-iota-tailless.dark.svg new file mode 100644 index 0000000000..b8d6f1f233 --- /dev/null +++ b/images/cv-lower-iota-tailless.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-lower-iota-tailless.light.svg b/images/cv-lower-iota-tailless.light.svg new file mode 100644 index 0000000000..8cbb5d14b2 --- /dev/null +++ b/images/cv-lower-iota-tailless.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index d1b83480ea..f4b4eeee90 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index 04916b9563..3384ce02e5 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index 8c5bf58aa2..b0bc2ad36e 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index 689921c772..f056ebe7b6 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index 02186a7bb6..8c6312b4fb 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index 289b378512..7d05adea50 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index 08e9b187fd..4e04124c34 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index 46d16ed2d1..b36a287150 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index 5189fe0445..ddb0c5f1e5 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index c8b18450ae..886ef593d2 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index 2473df135d..a7f39316dd 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index 015b5cdb5a..2465ba7025 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index 3db38d6246..35bdb7b8c9 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -122,7 +122,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index b1686eafa3..a1bc1431d2 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -122,7 +122,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index d1b83480ea..f4b4eeee90 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index 04916b9563..3384ce02e5 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index 8c5bf58aa2..b0bc2ad36e 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index 689921c772..f056ebe7b6 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index 02186a7bb6..8c6312b4fb 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index 289b378512..7d05adea50 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index 08e9b187fd..4e04124c34 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index 46d16ed2d1..b36a287150 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index 5189fe0445..ddb0c5f1e5 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index c8b18450ae..886ef593d2 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index 2473df135d..a7f39316dd 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index 015b5cdb5a..2465ba7025 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index 3db38d6246..35bdb7b8c9 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -122,7 +122,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index b1686eafa3..a1bc1431d2 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -122,7 +122,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index d1b83480ea..f4b4eeee90 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index 04916b9563..3384ce02e5 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -61,7 +61,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index 8c5bf58aa2..b0bc2ad36e 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index 689921c772..f056ebe7b6 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -121,8 +121,8 @@ - - + + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index 02186a7bb6..8c6312b4fb 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index 289b378512..7d05adea50 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index 08e9b187fd..4e04124c34 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index 46d16ed2d1..b36a287150 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -62,7 +62,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index 5189fe0445..ddb0c5f1e5 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index c8b18450ae..886ef593d2 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -141,7 +141,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index 2473df135d..a7f39316dd 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index 015b5cdb5a..2465ba7025 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -110,7 +110,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index 3db38d6246..35bdb7b8c9 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -122,7 +122,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index b1686eafa3..a1bc1431d2 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -122,7 +122,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index 0e487d8e8c..f11737513e 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -61,7 +61,7 @@ - + @@ -299,12 +299,10 @@ - + - - - - + + @@ -393,13 +391,11 @@ - + - - - + @@ -435,11 +431,9 @@ - + - - - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index ccf4df9955..9441a48f04 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -61,7 +61,7 @@ - + @@ -299,12 +299,10 @@ - + - - - - + + @@ -393,13 +391,11 @@ - + - - - + @@ -435,11 +431,9 @@ - + - - - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 42bddb35c6..3d330cac91 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -121,8 +121,8 @@ - - + + @@ -591,13 +591,19 @@ - + - - - - + + + + + + + + + + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index 02848729f3..a22259fbc8 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -121,8 +121,8 @@ - - + + @@ -591,13 +591,19 @@ - + - - - - + + + + + + + + + + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index a3b02f4906..79d2d81076 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -142,7 +142,7 @@ - + @@ -211,13 +211,17 @@ - + - - - + + + + + + + @@ -260,12 +264,16 @@ - + - - - - + + + + + + + + @@ -342,10 +350,14 @@ - + - - + + + + + + @@ -624,21 +636,17 @@ - + - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index 6bb8c42b86..ba162dbf94 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -142,7 +142,7 @@ - + @@ -211,13 +211,17 @@ - + - - - + + + + + + + @@ -260,12 +264,16 @@ - + - - - - + + + + + + + + @@ -342,10 +350,14 @@ - + - - + + + + + + @@ -624,21 +636,17 @@ - + - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 02e581738a..1aeb7d1a31 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -62,7 +62,7 @@ - + @@ -224,9 +224,11 @@ - + - + + + @@ -302,16 +304,19 @@ - - - - - - - - - - + + + + + + + + + + + + + @@ -441,7 +446,7 @@ - + @@ -455,9 +460,13 @@ - - - + + + + + + + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index da09ce2c68..cbdf0b7ecd 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -62,7 +62,7 @@ - + @@ -224,9 +224,11 @@ - + - + + + @@ -302,16 +304,19 @@ - - - - - - - - - - + + + + + + + + + + + + + @@ -441,7 +446,7 @@ - + @@ -455,9 +460,13 @@ - - - + + + + + + + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 26a3c6573f..eac7016aa7 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -222,11 +222,15 @@ - + - - - + + + + + + + @@ -271,12 +275,16 @@ - + - - - - + + + + + + + + @@ -350,10 +358,14 @@ - + - - + + + + + + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 0e45b8d374..a6e379b8e7 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -222,11 +222,15 @@ - + - - - + + + + + + + @@ -271,12 +275,16 @@ - + - - - - + + + + + + + + @@ -350,10 +358,14 @@ - + - - + + + + + + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 13887b8ab3..7780bde478 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -140,8 +140,8 @@ - - + + @@ -654,12 +654,10 @@ - - - - + + + - diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 2a4904cfbb..8ac57ed7e7 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -140,8 +140,8 @@ - - + + @@ -654,12 +654,10 @@ - - - - + + + - diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 577e571995..fd39a71c46 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -110,7 +110,7 @@ - + @@ -619,7 +619,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 921010596a..9a058949e5 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -110,7 +110,7 @@ - + @@ -619,7 +619,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index 1e755cf9fc..cdb3b7ca90 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -122,7 +122,7 @@ - + @@ -698,12 +698,14 @@ - + - + + + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 794b706ab8..f8b8b3ea84 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -122,7 +122,7 @@ - + @@ -698,12 +698,14 @@ - + - + + + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index 1410917c86..bf715dfbb4 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -61,7 +61,7 @@ - + @@ -287,12 +287,10 @@ - + - - - - + + @@ -375,13 +373,11 @@ - + - - - + @@ -417,11 +413,9 @@ - + - - - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index fec7d67d1c..8722fbf309 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -61,7 +61,7 @@ - + @@ -287,12 +287,10 @@ - + - - - - + + @@ -375,13 +373,11 @@ - + - - - + @@ -417,11 +413,9 @@ - + - - - + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index c362a61ec9..5aa7db14b0 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -217,11 +217,15 @@ - + - - - + + + + + + + @@ -258,10 +262,14 @@ - + - - + + + + + + @@ -335,9 +343,11 @@ - + - + + + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 6f703c9b8f..11a553aad0 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -217,11 +217,15 @@ - + - - - + + + + + + + @@ -258,10 +262,14 @@ - + - - + + + + + + @@ -335,9 +343,11 @@ - + - + + + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index b0b8493f5d..67b962ab3a 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -121,8 +121,8 @@ - - + + @@ -574,13 +574,19 @@ - + - - - - + + + + + + + + + + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 42390dcb0d..8beb57558b 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -121,8 +121,8 @@ - - + + @@ -574,13 +574,19 @@ - + - - - - + + + + + + + + + + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index 7c209e83c8..f42f72c3b1 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -240,11 +240,15 @@ - + - - - + + + + + + + @@ -285,9 +289,11 @@ - + - + + + @@ -367,11 +373,13 @@ - + - + + + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index 4f67aa60fb..9450b79f2f 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -240,11 +240,15 @@ - + - - - + + + + + + + @@ -285,9 +289,11 @@ - + - + + + @@ -367,11 +373,13 @@ - + - + + + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index e016228436..a7f25c3d88 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -142,7 +142,7 @@ - + @@ -619,24 +619,20 @@ - + - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index ffc15b38e4..cf7e69b9da 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -142,7 +142,7 @@ - + @@ -619,24 +619,20 @@ - + - - - - - - - - - - - - + + + + + + + + \ No newline at end of file diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index 680e572abe..ce7aec1605 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -62,7 +62,7 @@ - + @@ -305,16 +305,19 @@ - - - - - - - - - - + + + + + + + + + + + + + @@ -444,7 +447,7 @@ - + @@ -458,9 +461,13 @@ - - - + + + + + + + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index b24f47002b..51862938c8 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -62,7 +62,7 @@ - + @@ -305,16 +305,19 @@ - - - - - - - - - - + + + + + + + + + + + + + @@ -444,7 +447,7 @@ - + @@ -458,9 +461,13 @@ - - - + + + + + + + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 5c64789f81..f3a9607271 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -141,8 +141,8 @@ - - + + @@ -220,10 +220,14 @@ - + - - + + + + + + @@ -265,10 +269,14 @@ - + - - + + + + + + @@ -339,8 +347,9 @@ - - + + + @@ -631,12 +640,10 @@ - - - - + + + - diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 8deb630406..9118a417fb 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -141,8 +141,8 @@ - - + + @@ -220,10 +220,14 @@ - + - - + + + + + + @@ -265,10 +269,14 @@ - + - - + + + + + + @@ -339,8 +347,9 @@ - - + + + @@ -631,12 +640,10 @@ - - - - + + + - diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index 599010784d..b007157842 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -206,10 +206,14 @@ - + - - + + + + + + @@ -253,12 +257,16 @@ - + - - - - + + + + + + + + @@ -325,9 +333,12 @@ - - - + + + + + + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index d9438ab770..267b34a2c3 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -206,10 +206,14 @@ - + - - + + + + + + @@ -253,12 +257,16 @@ - + - - - - + + + + + + + + @@ -325,9 +333,12 @@ - - - + + + + + + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index fdabf971f1..e5ea1de9e2 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -110,7 +110,7 @@ - + @@ -241,10 +241,12 @@ - + - - + + + + @@ -295,10 +297,14 @@ - + - - + + + + + + @@ -381,8 +387,9 @@ - - + + + @@ -612,7 +619,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index 2f7a168514..a56e0e406d 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -110,7 +110,7 @@ - + @@ -241,10 +241,12 @@ - + - - + + + + @@ -295,10 +297,14 @@ - + - - + + + + + + @@ -381,8 +387,9 @@ - - + + + @@ -612,7 +619,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 3a0ad212b7..ef3f9cf80c 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -122,7 +122,7 @@ - + @@ -672,12 +672,14 @@ - + - + + + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index 18554b5edb..ada5783461 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -122,7 +122,7 @@ - + @@ -672,12 +672,14 @@ - + - + + + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index eb37f67432..9b02005863 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -214,11 +214,15 @@ - + - - - + + + + + + + @@ -253,12 +257,16 @@ - + - - - - + + + + + + + + @@ -328,10 +336,14 @@ - + - - + + + + + + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index cdcb302f22..328033aa61 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -214,11 +214,15 @@ - + - - - + + + + + + + @@ -253,12 +257,16 @@ - + - - - - + + + + + + + + @@ -328,10 +336,14 @@ - + - - + + + + + + From 50d765a3d515c85c0484b99dda0ded5609b263b7 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 23 Nov 2023 21:07:12 -0800 Subject: [PATCH 33/59] Fix sample image link in packages --- doc/PACKAGE-LIST.md | 48 +++++++++---------- .../generate-release-note/package-list.mjs | 5 +- 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index c729bd84ca..1633fb44d8 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -24,140 +24,140 @@ Iosevka provides various packaging formats, here is the list of them:     ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC    └ Sub-packagesSpacingLigaturesDownloads     ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)     └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka AileQuasi-proportional, Sans-serif    └ Sub-packagesSpacingLigaturesDownloads     └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + 📦 Iosevka EtoileQuasi-proportional, Slab-serif    └ Sub-packagesSpacingLigaturesDownloads     └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted) - + diff --git a/utility/generate-release-note/package-list.mjs b/utility/generate-release-note/package-list.mjs index 950affe6e0..66dc073071 100644 --- a/utility/generate-release-note/package-list.mjs +++ b/utility/generate-release-note/package-list.mjs @@ -8,6 +8,7 @@ const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); /////////////////////////////////////////////////////////////////////////////////////////////////// // Copy Markdown + async function CopyMarkdown(out, name) { const content = await fs.promises.readFile( path.resolve(__dirname, `release-note-fragments/${name}`), @@ -15,8 +16,10 @@ async function CopyMarkdown(out, name) { ); out.log(content); } + /////////////////////////////////////////////////////////////////////////////////////////////////// // PACKAGE LIST + const Spacings = { // spacingDesc, ligation type: ["Default", true], @@ -38,7 +41,7 @@ async function GeneratePackageList(argv, out) { const ttcName = buildName("-", "PkgTTC", groupID, argv.version); const proportionPrefix = gr.quasiProportional ? "Quasi-proportional" : "Monospace"; const desc = `${proportionPrefix}, ${prime.desc}`; - const img = ImgX(`${imagePrefix}/${groupID}`); + const img = ImgX(`${imagePrefix}/package-sample-${groupID}`); let ttcCells = [` `]; const hasSpacings = Object.entries(gr.subGroups).length > 1; From 5eda6c18ef89eb6380db2c15b66b4b02dd722d51 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 23 Nov 2023 21:41:02 -0800 Subject: [PATCH 34/59] Move the package list generator to the README amender --- doc/PACKAGE-LIST.md | 5 + .../fragments}/packages-desc.md | 0 utility/amend-readme/index.mjs | 432 +----------------- utility/amend-readme/md-format-tools.mjs | 31 ++ .../sections/cherry-picking-styles.mjs | 122 +++++ .../amend-readme/sections/cv-influences.mjs | 82 ++++ utility/amend-readme/sections/cv-ot.mjs | 55 +++ utility/amend-readme/sections/lang-list.mjs | 14 + .../sections/lig-set-cherry-picking.mjs | 16 + utility/amend-readme/sections/lig-set-ot.mjs | 31 ++ .../amend-readme/sections/lig-set-pre-def.mjs | 19 + .../sections}/package-list.mjs | 77 ++-- .../sections/private-build-plans.mjs | 12 + utility/amend-readme/sections/ss-ot.mjs | 26 ++ utility/amend-readme/sections/ss-styles.mjs | 18 + .../release-note-fragments/package-reorg.md | 10 - verdafile.mjs | 68 ++- 17 files changed, 510 insertions(+), 508 deletions(-) rename utility/{generate-release-note/release-note-fragments => amend-readme/fragments}/packages-desc.md (100%) create mode 100644 utility/amend-readme/md-format-tools.mjs create mode 100644 utility/amend-readme/sections/cherry-picking-styles.mjs create mode 100644 utility/amend-readme/sections/cv-influences.mjs create mode 100644 utility/amend-readme/sections/cv-ot.mjs create mode 100644 utility/amend-readme/sections/lang-list.mjs create mode 100644 utility/amend-readme/sections/lig-set-cherry-picking.mjs create mode 100644 utility/amend-readme/sections/lig-set-ot.mjs create mode 100644 utility/amend-readme/sections/lig-set-pre-def.mjs rename utility/{generate-release-note => amend-readme/sections}/package-list.mjs (72%) create mode 100644 utility/amend-readme/sections/private-build-plans.mjs create mode 100644 utility/amend-readme/sections/ss-ot.mjs create mode 100644 utility/amend-readme/sections/ss-styles.mjs delete mode 100644 utility/generate-release-note/release-note-fragments/package-reorg.md diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 1633fb44d8..745596fc61 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,3 +1,6 @@ + + + # Package list of Release 28.0.0-alpha.2 ## Prebuilt Packages @@ -161,3 +164,5 @@ Iosevka provides various packaging formats, here is the list of them: + + diff --git a/utility/generate-release-note/release-note-fragments/packages-desc.md b/utility/amend-readme/fragments/packages-desc.md similarity index 100% rename from utility/generate-release-note/release-note-fragments/packages-desc.md rename to utility/amend-readme/fragments/packages-desc.md diff --git a/utility/amend-readme/index.mjs b/utility/amend-readme/index.mjs index 4d3f0efb02..1d52d6382b 100644 --- a/utility/amend-readme/index.mjs +++ b/utility/amend-readme/index.mjs @@ -1,430 +1,40 @@ import fs from "fs"; import path from "path"; -import * as url from "url"; - -import { parseLigationData } from "../export-data/ligation-data.mjs"; -import { getCharMapAndSupportedLanguageList } from "../export-data/supported-languages.mjs"; -import { parseVariantsData } from "../export-data/variants-data.mjs"; +import url from "url"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +import processCherryPickingStyles from "./sections/cherry-picking-styles.mjs"; +import processCvInfluences from "./sections/cv-influences.mjs"; +import processCvOt from "./sections/cv-ot.mjs"; +import processLangList from "./sections/lang-list.mjs"; +import processLigSetCherryPicking from "./sections/lig-set-cherry-picking.mjs"; +import processLigSetOt, { isLanguageSpecificLigTag } from "./sections/lig-set-ot.mjs"; +import processLigSetPreDef from "./sections/lig-set-pre-def.mjs"; +import processPackageList from "./sections/package-list.mjs"; +import processPrivateBuildPlans from "./sections/private-build-plans.mjs"; +import processSsOt from "./sections/ss-ot.mjs"; +import processSsStyles from "./sections/ss-styles.mjs"; + export default main; async function main(argv) { let readme = await fs.promises.readFile(argv.mdFilePath, "utf-8"); const dirs = { - images: path.posix.relative(path.dirname(argv.mdFilePath), "images") + projectRoot: path.resolve(__dirname, "../../"), + images: path.posix.relative(path.dirname(argv.mdFilePath), "images"), + fragments: path.resolve(__dirname, "fragments") }; readme = (await processSsOt(dirs)).apply(readme); readme = (await processCherryPickingStyles(dirs)).apply(readme); - readme = (await processSsStyles()).apply(readme); + readme = (await processSsStyles(dirs)).apply(readme); readme = (await processCvOt(dirs)).apply(readme); - readme = (await processLigSetCherryPicking()).apply(readme); - readme = (await processLigSetPreDef()).apply(readme); + readme = (await processLigSetCherryPicking(dirs)).apply(readme); + readme = (await processLigSetPreDef(dirs)).apply(readme); readme = (await processLigSetOt(dirs, 1, g => !isLanguageSpecificLigTag(g.tag))).apply(readme); readme = (await processLigSetOt(dirs, 2, g => isLanguageSpecificLigTag(g.tag))).apply(readme); readme = (await processLangList(argv)).apply(readme); - readme = (await processPrivateBuildPlans()).apply(readme); + readme = (await processPrivateBuildPlans(dirs)).apply(readme); readme = (await processCvInfluences(argv)).apply(readme); + readme = (await processPackageList(argv, dirs)).apply(readme); await fs.promises.writeFile(argv.mdFilePath, readme); } - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -async function processSsOt(dirs) { - const variantsData = await parseVariantsData(); - const md = new MdCol("Section-OT-Stylistic-Sets"); - md.log(``); - for (const ss of variantsData.composites) { - if (!ss.rank) continue; - { - md.log(``); - md.log(``); - md.log(``); - } - { - md.log( - ``, - ``, - ``, - `` - ); - } - } - md.log(`
${ss.tag} — ${ss.description}
${ImgX(`${dirs.images}/ss-u-${ss.tag}-${ss.rank}`)}${ImgX(`${dirs.images}/ss-i-${ss.tag}-${ss.rank}`)}
`); - return md; -} - -async function processCvOt(dirs) { - const variantsData = await parseVariantsData(); - const md = new MdCol("Section-OT-Character-Variants"); - const TableColumns = 12; - md.log(``); - for (const cv of variantsData.primes) { - if (!cv.tag) continue; - let effVariants = []; - for (const cvv of cv.variants) if (cvv.rank) effVariants.push(cvv); - const entryWidth = sampleImageCountEmOfCv(cv); - const imgWidth = 32 * entryWidth; - const entriesPerRow = Math.floor(TableColumns / entryWidth); - const rowsNeeded = Math.ceil(effVariants.length / entriesPerRow); - const itemColSpanHtml = entryWidth > 1 ? ` colspan="${entryWidth}"` : ``; - for (let rid = 0; rid < rowsNeeded; rid++) { - const entriesInThisRow = Math.min( - entriesPerRow, - effVariants.length - rid * entriesPerRow - ); - const tailBlankColumnsCount = TableColumns - entryWidth * entriesInThisRow; - // Image row - md.log(``); - if (rid === 0) md.log(``); - for (let cid = 0; cid < entriesPerRow; cid++) { - const iCvv = rid * entriesPerRow + cid; - if (iCvv >= effVariants.length) continue; - const cvv = effVariants[iCvv]; - const imageID = `${dirs.images}/cv-${cv.key}-${cvv.key}`; - const image = ImgX(imageID, imgWidth); - md.log(`${image}`); - } - if (tailBlankColumnsCount > 0) md.log(``); - md.log(``); - // CV ID row - md.log(``); - for (let cid = 0; cid < entriesPerRow; cid++) { - const iCvv = rid * entriesPerRow + cid; - if (iCvv >= effVariants.length) continue; - const cvv = effVariants[iCvv]; - md.log(`${cvv.rank}`); - } - if (tailBlankColumnsCount > 0) md.log(``); - md.log(``); - } - } - md.log(`
${cv.tag}
`); - return md; -} - -async function processSsStyles() { - const variantsData = await parseVariantsData(); - const md = new MdCol("Section-Stylistic-Sets"); - const headerPath = path.resolve(__dirname, "fragments/description-stylistic-sets.md"); - md.log(await fs.promises.readFile(headerPath, "utf-8")); - for (const gr of variantsData.composites) { - if (!gr.rank) continue; - md.log(` - \`${gr.tag}\`: Set character variant to “${gr.description}”.`); - } - md.log(` - Other build plans’ configuration, using \`inherits = "buildPlans."\`.`); - return md; -} - -async function processCherryPickingStyles(dirs) { - const variantsData = await parseVariantsData(); - const md = new MdCol("Section-Cherry-Picking-Styles"); - const headerPath = path.resolve(__dirname, "fragments/description-cheery-picking-styles.md"); - md.log(await fs.promises.readFile(headerPath, "utf-8")); - for (const cv of [...variantsData.specials, ...variantsData.primes]) { - if (!cv.tag && !cv.isSpecial) continue; - const sampleText = cv.descSampleText - .map(c => (c === "`" ? "`` ` ``" : `\`${c}\``)) - .join(", "); - const explainText = cv.samplerExplain ? ` (${cv.samplerExplain})` : ``; - const info = { - introMD: cv.description || `Styles for ${sampleText + explainText}`, - sampleImageCountEm: sampleImageCountEmOfCv(cv), - alternatives: [] - }; - const defaults = figureOutDefaults(variantsData, cv); - for (const cvv of cv.variants) { - if (!cvv.rank && !cv.isSpecial) continue; - if (cv.tag) { - info.alternatives.push({ - imageId: `${cv.key}-${cvv.key}`, - selectors: [`${cv.key} = '${cvv.key}'`, `${cv.tag} = ${cvv.rank}`], - description: - formatDescription(cvv.description) + formatDefaults(cvv.key, defaults) - }); - } else { - info.alternatives.push({ - imageId: `${cv.key}-${cvv.key}`, - selectors: [`${cv.key} = '${cvv.key}'`], - description: - formatDescription(cvv.description) + formatDefaults(cvv.key, defaults) - }); - } - } - formatCv(md, dirs, info); - } - return md; -} -function sampleImageCountEmOfCv(cv) { - return cv.hotChars.length * (cv.slopeDependent ? 2 : 1); -} -function formatCv(md, dirs, info) { - md.log(` - ${info.introMD}:`); - const imgWidth = 32 * info.sampleImageCountEm; - let sTable = " "; - for (const alt of info.alternatives) { - const imageId = `${dirs.images}/cv-${alt.imageId}`; - const image = ImgX(imageId, imgWidth); - const selectorText = alt.selectors.map(x => `${x}`).join(", "); - sTable += - `` + - ``; - sTable += ``; - } - sTable += "
${image}${selectorText}
${alt.description}
"; - md.log(sTable); -} -function formatDescription(s) { - return s - .replace(/`` (\S+?) ``/g, ($0, $1) => `${escapeHtml($1)}`) - .replace(/`([^`]+?)`/g, ($0, $1) => `${escapeHtml($1)}`); -} -function escapeHtml(s) { - return s.replace(/&/g, "&").replace(//g, ">"); -} -async function processPrivateBuildPlans() { - const md = new MdCol("Section-Private-Build-Plan-Sample"); - const tomlPath = path.resolve(__dirname, "../../private-build-plans.sample.toml"); - const toml = await fs.promises.readFile(tomlPath, "utf-8"); - md.log("```toml\n" + toml + "```"); - return md; -} -function formatDefaults(selector, defaults) { - let dcs = [], - mask = 0; - for (const dc of defaults) { - if (dc.result !== selector) continue; - dcs.push(dc); - mask |= dc.mask; - } - if (!dcs.length) return ""; - if (mask === 0xf) return ` (default)`; - if (mask === 0x5) return ` (default for Upright)`; - if (mask === 0xa) return ` (default for Italic)`; - if (mask === 0x3) return ` (default for Sans)`; - if (mask === 0xc) return ` (default for Slab)`; - return ` (default for ${dcs.map(x => x.desc).join(", ")})`; -} -function figureOutDefaults(variantsData, gr) { - const defaultConfigs = [ - { - desc: "Sans Upright", - mask: 1, - result: null, - composition: { ...variantsData.defaults.sans.upright } - }, - { - desc: "Sans Italic", - mask: 2, - result: null, - composition: { ...variantsData.defaults.sans.italic } - }, - { - desc: "Slab Upright", - mask: 4, - result: null, - composition: { ...variantsData.defaults.slab.upright } - }, - { - desc: "Slab Italic", - mask: 8, - result: null, - composition: { ...variantsData.defaults.slab.italic } - } - ]; - for (const variant of gr.variants) { - for (const dc of defaultConfigs) { - if (variant.key === dc.composition[gr.key]) dc.result = variant.key; - } - } - return defaultConfigs; -} - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -async function processLigSetCherryPicking() { - const ligData = await parseLigationData(); - const md = new MdCol("Section-Cherry-Picking-Ligation-Sets"); - const headerPath = path.resolve( - __dirname, - "fragments/description-cherry-picking-ligation-sets.md" - ); - md.log(await fs.promises.readFile(headerPath, "utf-8")); - for (const gr in ligData.cherry) { - md.log(` - \`${gr}\`: ${ligData.cherry[gr].desc}.`); - } - return md; -} - -async function processLigSetPreDef() { - const ligData = await parseLigationData(); - const md = new MdCol("Section-Predefined-Ligation-Sets"); - const headerPath = path.resolve(__dirname, "fragments/description-predefined-ligation-sets.md"); - md.log(await fs.promises.readFile(headerPath, "utf-8")); - for (const gr in ligData.rawSets) { - const readmeDesc = - ligData.rawSets[gr].readmeDesc || - `Default ligation set would be assigned to ${ligData.rawSets[gr].desc}`; - md.log(` - \`${gr}\`: ${readmeDesc}.`); - } - return md; -} - -async function processLigSetOt(dirs, index, fn) { - const ligData = await parseLigationData(); - const md = new MdCol(`Section-OT-Ligation-Tags-${index}`); - md.log(``); - for (const ls of ligData.sets) { - if (!fn(ls)) continue; - { - md.log(``); - if (ls.tagName) - md.log(``); - else md.log(``); - md.log(``); - md.log(``); - } - { - const imageId = `${dirs.images}/ligset-${ls.tag}-${ls.rank}`; - md.log(``); - md.log(``); - md.log(``); - } - } - md.log(`
${ls.tagName.map(x => `${x}`).join("; ")}${ls.tag} off${ls.desc}
${ImgX(imageId)}
`); - return md; -} - -function isLanguageSpecificLigTag(tag) { - return tag !== "calt" && tag !== "dlig"; -} - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -async function processCvInfluences(argv) { - const cl = await getCharMapAndSupportedLanguageList( - argv.charMapPath, - argv.charMapItalicPath, - argv.charMapObliquePath - ); - - let m = { - upright: new Map(), - italic: new Map() - }; - - for (const block of cl.unicodeCoverage) { - for (const ch of block.characters) { - if (!ch.inFont) continue; - addToCvInfluenceMap(cl.featureSeries, m.upright, ch.lch, ch.cvFeatureSetsUpright); - addToCvInfluenceMap(cl.featureSeries, m.italic, ch.lch, ch.cvFeatureSetsItalic); - } - } - - const md = new MdCol("Section-CV-Influences"); - md.log(`### Upright CV influences`); - md.log(``); - logCvInfluenceMap(md, m.upright); - md.log(``); - md.log(`### Italic CV influences`); - md.log(``); - logCvInfluenceMap(md, m.italic); - md.log(``); - return md; -} - -function addToCvInfluenceMap(featureSeries, m, lch, ids) { - if (!ids || !ids.length) return; - for (const id of ids) { - let fs = featureSeries[id]; - if (!fs) continue; - let s = m.get(fs.name); - if (!s) { - s = new Set(); - m.set(fs.name, s); - } - s.add(lch); - } -} - -function logCvInfluenceMap(md, m) { - let a = Array.from(m).sort((a, b) => a[0].toUpperCase().localeCompare(b[0].toUpperCase())); - for (const [tag, chars] of a) { - md.log(`- \`${tag}\`:`); - md.log(``); - md.log(` ` + Array.from(chars).map(formatLch).join(", ")); - md.log(``); - } -} - -function formatLch(lch) { - return mdEscape(lch) + " (`U+" + lch.toString(16).padStart(4, "0").toUpperCase() + "`)"; -} - -function mdEscape(lch) { - let ch = String.fromCodePoint(lch); - if (ch === "\\") return "\\\\"; - if (ch === "`") return "\\`"; - if (ch === "*") return "\\*"; - if (ch === "_") return "\\_"; - if (ch === "{") return "\\{"; - if (ch === "}") return "\\}"; - if (ch === "[") return "\\["; - if (ch === "]") return "\\]"; - if (ch === "(") return "\\("; - if (ch === ")") return "\\)"; - if (ch === "#") return "\\#"; - if (ch === "+") return "\\+"; - if (ch === "-") return "\\-"; - if (ch === ".") return "\\."; - if (ch === "!") return "\\!"; - return ch; -} - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -async function processLangList(argv) { - const cl = await getCharMapAndSupportedLanguageList( - argv.charMapPath, - argv.charMapItalicPath, - argv.charMapObliquePath - ); - const md = new MdCol("Section-Language-List"); - md.log(`${cl.languages.length} Supported Languages: \n`); - md.log(cl.languages.join(", ")); - return md; -} - -///////////////////////////////////////////////////////////////////////////////////////////////////// - -class MdCol { - constructor(sectionName) { - this.data = ""; - this.sectionName = sectionName; - this.matchRegex = new RegExp( - `^([ \\t]*)\\n[\\s\\S]*?\\n`, - `m` - ); - } - log(...s) { - this.data += s.join("") + "\n"; - } - apply(s) { - return s.replace(this.matchRegex, (m, $1) => { - return ( - `\n` + - `\n\n` + - this.data + - `\n\n` - ).replace(/^/gm, $1); - }); - } -} - -function ImgX(path, w) { - const widthProp = w ? ` width=${w}` : ``; - return ( - `` + - `` - ); -} diff --git a/utility/amend-readme/md-format-tools.mjs b/utility/amend-readme/md-format-tools.mjs new file mode 100644 index 0000000000..15d983de36 --- /dev/null +++ b/utility/amend-readme/md-format-tools.mjs @@ -0,0 +1,31 @@ +export class MdCol { + constructor(sectionName) { + this.data = ""; + this.sectionName = sectionName; + this.matchRegex = new RegExp( + `^([ \\t]*)\\n[\\s\\S]*?\\n`, + `m` + ); + } + log(...s) { + this.data += s.join("") + "\n"; + } + apply(s) { + return s.replace(this.matchRegex, (m, $1) => { + return ( + `\n` + + `\n\n` + + this.data + + `\n\n` + ).replace(/^/gm, $1); + }); + } +} + +export function ImgX(path, w) { + const widthProp = w ? ` width=${w}` : ``; + return ( + `` + + `` + ); +} diff --git a/utility/amend-readme/sections/cherry-picking-styles.mjs b/utility/amend-readme/sections/cherry-picking-styles.mjs new file mode 100644 index 0000000000..f61f32da87 --- /dev/null +++ b/utility/amend-readme/sections/cherry-picking-styles.mjs @@ -0,0 +1,122 @@ +import fs from "fs"; +import path from "path"; + +import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { ImgX, MdCol } from "../md-format-tools.mjs"; + +import { sampleImageCountEmOfCv } from "./cv-ot.mjs"; + +export default async function processCherryPickingStyles(dirs) { + const variantsData = await parseVariantsData(); + const md = new MdCol("Section-Cherry-Picking-Styles"); + const headerPath = path.resolve(dirs.fragments, "description-cheery-picking-styles.md"); + md.log(await fs.promises.readFile(headerPath, "utf-8")); + for (const cv of [...variantsData.specials, ...variantsData.primes]) { + if (!cv.tag && !cv.isSpecial) continue; + const sampleText = cv.descSampleText + .map(c => (c === "`" ? "`` ` ``" : `\`${c}\``)) + .join(", "); + const explainText = cv.samplerExplain ? ` (${cv.samplerExplain})` : ``; + const info = { + introMD: cv.description || `Styles for ${sampleText + explainText}`, + sampleImageCountEm: sampleImageCountEmOfCv(cv), + alternatives: [] + }; + const defaults = figureOutDefaults(variantsData, cv); + for (const cvv of cv.variants) { + if (!cvv.rank && !cv.isSpecial) continue; + if (cv.tag) { + info.alternatives.push({ + imageId: `${cv.key}-${cvv.key}`, + selectors: [`${cv.key} = '${cvv.key}'`, `${cv.tag} = ${cvv.rank}`], + description: + formatDescription(cvv.description) + formatDefaults(cvv.key, defaults) + }); + } else { + info.alternatives.push({ + imageId: `${cv.key}-${cvv.key}`, + selectors: [`${cv.key} = '${cvv.key}'`], + description: + formatDescription(cvv.description) + formatDefaults(cvv.key, defaults) + }); + } + } + formatCv(md, dirs, info); + } + return md; +} + +function formatCv(md, dirs, info) { + md.log(` - ${info.introMD}:`); + const imgWidth = 32 * info.sampleImageCountEm; + let sTable = " "; + for (const alt of info.alternatives) { + const imageId = `${dirs.images}/cv-${alt.imageId}`; + const image = ImgX(imageId, imgWidth); + const selectorText = alt.selectors.map(x => `${x}`).join(", "); + sTable += + `` + + ``; + sTable += ``; + } + sTable += "
${image}${selectorText}
${alt.description}
"; + md.log(sTable); +} +function formatDescription(s) { + return s + .replace(/`` (\S+?) ``/g, ($0, $1) => `${escapeHtml($1)}`) + .replace(/`([^`]+?)`/g, ($0, $1) => `${escapeHtml($1)}`); +} +function escapeHtml(s) { + return s.replace(/&/g, "&").replace(//g, ">"); +} +function formatDefaults(selector, defaults) { + let dcs = [], + mask = 0; + for (const dc of defaults) { + if (dc.result !== selector) continue; + dcs.push(dc); + mask |= dc.mask; + } + if (!dcs.length) return ""; + if (mask === 0xf) return ` (default)`; + if (mask === 0x5) return ` (default for Upright)`; + if (mask === 0xa) return ` (default for Italic)`; + if (mask === 0x3) return ` (default for Sans)`; + if (mask === 0xc) return ` (default for Slab)`; + return ` (default for ${dcs.map(x => x.desc).join(", ")})`; +} +function figureOutDefaults(variantsData, gr) { + const defaultConfigs = [ + { + desc: "Sans Upright", + mask: 1, + result: null, + composition: { ...variantsData.defaults.sans.upright } + }, + { + desc: "Sans Italic", + mask: 2, + result: null, + composition: { ...variantsData.defaults.sans.italic } + }, + { + desc: "Slab Upright", + mask: 4, + result: null, + composition: { ...variantsData.defaults.slab.upright } + }, + { + desc: "Slab Italic", + mask: 8, + result: null, + composition: { ...variantsData.defaults.slab.italic } + } + ]; + for (const variant of gr.variants) { + for (const dc of defaultConfigs) { + if (variant.key === dc.composition[gr.key]) dc.result = variant.key; + } + } + return defaultConfigs; +} diff --git a/utility/amend-readme/sections/cv-influences.mjs b/utility/amend-readme/sections/cv-influences.mjs new file mode 100644 index 0000000000..93dc15c9d6 --- /dev/null +++ b/utility/amend-readme/sections/cv-influences.mjs @@ -0,0 +1,82 @@ +import { getCharMapAndSupportedLanguageList } from "../../export-data/supported-languages.mjs"; +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processCvInfluences(argv) { + const cl = await getCharMapAndSupportedLanguageList( + argv.charMapPath, + argv.charMapItalicPath, + argv.charMapObliquePath + ); + + let m = { + upright: new Map(), + italic: new Map() + }; + + for (const block of cl.unicodeCoverage) { + for (const ch of block.characters) { + if (!ch.inFont) continue; + addToCvInfluenceMap(cl.featureSeries, m.upright, ch.lch, ch.cvFeatureSetsUpright); + addToCvInfluenceMap(cl.featureSeries, m.italic, ch.lch, ch.cvFeatureSetsItalic); + } + } + + const md = new MdCol("Section-CV-Influences"); + md.log(`### Upright CV influences`); + md.log(``); + logCvInfluenceMap(md, m.upright); + md.log(``); + md.log(`### Italic CV influences`); + md.log(``); + logCvInfluenceMap(md, m.italic); + md.log(``); + return md; +} + +function addToCvInfluenceMap(featureSeries, m, lch, ids) { + if (!ids || !ids.length) return; + for (const id of ids) { + let fs = featureSeries[id]; + if (!fs) continue; + let s = m.get(fs.name); + if (!s) { + s = new Set(); + m.set(fs.name, s); + } + s.add(lch); + } +} + +function logCvInfluenceMap(md, m) { + let a = Array.from(m).sort((a, b) => a[0].toUpperCase().localeCompare(b[0].toUpperCase())); + for (const [tag, chars] of a) { + md.log(`- \`${tag}\`:`); + md.log(``); + md.log(` ` + Array.from(chars).map(formatLch).join(", ")); + md.log(``); + } +} + +function formatLch(lch) { + return mdEscape(lch) + " (`U+" + lch.toString(16).padStart(4, "0").toUpperCase() + "`)"; +} + +function mdEscape(lch) { + let ch = String.fromCodePoint(lch); + if (ch === "\\") return "\\\\"; + if (ch === "`") return "\\`"; + if (ch === "*") return "\\*"; + if (ch === "_") return "\\_"; + if (ch === "{") return "\\{"; + if (ch === "}") return "\\}"; + if (ch === "[") return "\\["; + if (ch === "]") return "\\]"; + if (ch === "(") return "\\("; + if (ch === ")") return "\\)"; + if (ch === "#") return "\\#"; + if (ch === "+") return "\\+"; + if (ch === "-") return "\\-"; + if (ch === ".") return "\\."; + if (ch === "!") return "\\!"; + return ch; +} diff --git a/utility/amend-readme/sections/cv-ot.mjs b/utility/amend-readme/sections/cv-ot.mjs new file mode 100644 index 0000000000..c61b593798 --- /dev/null +++ b/utility/amend-readme/sections/cv-ot.mjs @@ -0,0 +1,55 @@ +import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { ImgX, MdCol } from "../md-format-tools.mjs"; + +export default async function processCvOt(dirs) { + const variantsData = await parseVariantsData(); + const md = new MdCol("Section-OT-Character-Variants"); + const TableColumns = 12; + md.log(``); + for (const cv of variantsData.primes) { + if (!cv.tag) continue; + let effVariants = []; + for (const cvv of cv.variants) if (cvv.rank) effVariants.push(cvv); + const entryWidth = sampleImageCountEmOfCv(cv); + const imgWidth = 32 * entryWidth; + const entriesPerRow = Math.floor(TableColumns / entryWidth); + const rowsNeeded = Math.ceil(effVariants.length / entriesPerRow); + const itemColSpanHtml = entryWidth > 1 ? ` colspan="${entryWidth}"` : ``; + for (let rid = 0; rid < rowsNeeded; rid++) { + const entriesInThisRow = Math.min( + entriesPerRow, + effVariants.length - rid * entriesPerRow + ); + const tailBlankColumnsCount = TableColumns - entryWidth * entriesInThisRow; + // Image row + md.log(``); + if (rid === 0) md.log(``); + for (let cid = 0; cid < entriesPerRow; cid++) { + const iCvv = rid * entriesPerRow + cid; + if (iCvv >= effVariants.length) continue; + const cvv = effVariants[iCvv]; + const imageID = `${dirs.images}/cv-${cv.key}-${cvv.key}`; + const image = ImgX(imageID, imgWidth); + md.log(`${image}`); + } + if (tailBlankColumnsCount > 0) md.log(``); + md.log(``); + // CV ID row + md.log(``); + for (let cid = 0; cid < entriesPerRow; cid++) { + const iCvv = rid * entriesPerRow + cid; + if (iCvv >= effVariants.length) continue; + const cvv = effVariants[iCvv]; + md.log(`${cvv.rank}`); + } + if (tailBlankColumnsCount > 0) md.log(``); + md.log(``); + } + } + md.log(`
${cv.tag}
`); + return md; +} + +export function sampleImageCountEmOfCv(cv) { + return cv.hotChars.length * (cv.slopeDependent ? 2 : 1); +} diff --git a/utility/amend-readme/sections/lang-list.mjs b/utility/amend-readme/sections/lang-list.mjs new file mode 100644 index 0000000000..527e4e3e36 --- /dev/null +++ b/utility/amend-readme/sections/lang-list.mjs @@ -0,0 +1,14 @@ +import { getCharMapAndSupportedLanguageList } from "../../export-data/supported-languages.mjs"; +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processLangList(argv) { + const cl = await getCharMapAndSupportedLanguageList( + argv.charMapPath, + argv.charMapItalicPath, + argv.charMapObliquePath + ); + const md = new MdCol("Section-Language-List"); + md.log(`${cl.languages.length} Supported Languages: \n`); + md.log(cl.languages.join(", ")); + return md; +} diff --git a/utility/amend-readme/sections/lig-set-cherry-picking.mjs b/utility/amend-readme/sections/lig-set-cherry-picking.mjs new file mode 100644 index 0000000000..06ce37ea2a --- /dev/null +++ b/utility/amend-readme/sections/lig-set-cherry-picking.mjs @@ -0,0 +1,16 @@ +import fs from "fs"; +import path from "path"; + +import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processLigSetCherryPicking(dirs) { + const ligData = await parseLigationData(); + const md = new MdCol("Section-Cherry-Picking-Ligation-Sets"); + const headerPath = path.resolve(dirs.fragments, "description-cherry-picking-ligation-sets.md"); + md.log(await fs.promises.readFile(headerPath, "utf-8")); + for (const gr in ligData.cherry) { + md.log(` - \`${gr}\`: ${ligData.cherry[gr].desc}.`); + } + return md; +} diff --git a/utility/amend-readme/sections/lig-set-ot.mjs b/utility/amend-readme/sections/lig-set-ot.mjs new file mode 100644 index 0000000000..ea50a2fae5 --- /dev/null +++ b/utility/amend-readme/sections/lig-set-ot.mjs @@ -0,0 +1,31 @@ +import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { ImgX, MdCol } from "../md-format-tools.mjs"; + +export default async function processLigSetOt(dirs, index, fn) { + const ligData = await parseLigationData(); + const md = new MdCol(`Section-OT-Ligation-Tags-${index}`); + md.log(``); + for (const ls of ligData.sets) { + if (!fn(ls)) continue; + { + md.log(``); + if (ls.tagName) + md.log(``); + else md.log(``); + md.log(``); + md.log(``); + } + { + const imageId = `${dirs.images}/ligset-${ls.tag}-${ls.rank}`; + md.log(``); + md.log(``); + md.log(``); + } + } + md.log(`
${ls.tagName.map(x => `${x}`).join("; ")}${ls.tag} off${ls.desc}
${ImgX(imageId)}
`); + return md; +} + +export function isLanguageSpecificLigTag(tag) { + return tag !== "calt" && tag !== "dlig"; +} diff --git a/utility/amend-readme/sections/lig-set-pre-def.mjs b/utility/amend-readme/sections/lig-set-pre-def.mjs new file mode 100644 index 0000000000..0d26e71e77 --- /dev/null +++ b/utility/amend-readme/sections/lig-set-pre-def.mjs @@ -0,0 +1,19 @@ +import fs from "fs"; +import path from "path"; + +import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processLigSetPreDef(dirs) { + const ligData = await parseLigationData(); + const md = new MdCol("Section-Predefined-Ligation-Sets"); + const headerPath = path.resolve(dirs.fragments, "description-predefined-ligation-sets.md"); + md.log(await fs.promises.readFile(headerPath, "utf-8")); + for (const gr in ligData.rawSets) { + const readmeDesc = + ligData.rawSets[gr].readmeDesc || + `Default ligation set would be assigned to ${ligData.rawSets[gr].desc}`; + md.log(` - \`${gr}\`: ${readmeDesc}.`); + } + return md; +} diff --git a/utility/generate-release-note/package-list.mjs b/utility/amend-readme/sections/package-list.mjs similarity index 72% rename from utility/generate-release-note/package-list.mjs rename to utility/amend-readme/sections/package-list.mjs index 66dc073071..c1dd12a5a6 100644 --- a/utility/generate-release-note/package-list.mjs +++ b/utility/amend-readme/sections/package-list.mjs @@ -1,39 +1,23 @@ import fs from "fs"; import path from "path"; -import url from "url"; -import { Output } from "./shared/index.mjs"; +import { ImgX, MdCol } from "../md-format-tools.mjs"; -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - -/////////////////////////////////////////////////////////////////////////////////////////////////// -// Copy Markdown - -async function CopyMarkdown(out, name) { - const content = await fs.promises.readFile( - path.resolve(__dirname, `release-note-fragments/${name}`), - "utf8" - ); - out.log(content); -} - -/////////////////////////////////////////////////////////////////////////////////////////////////// -// PACKAGE LIST - -const Spacings = { - // spacingDesc, ligation - type: ["Default", true], - term: ["Terminal", true], - fixed: ["Fixed", false], - "quasi-proportional": ["Default", false] -}; const ImagePrefixNoVersion = `https://raw.githubusercontent.com/be5invis/Iosevka`; const DownloadLinkPrefixNoVersion = `https://github.com/be5invis/Iosevka/releases/download`; -async function GeneratePackageList(argv, out) { + +export default async function processPackageList(argv, dirs) { const imagePrefix = `${ImagePrefixNoVersion}/v${argv.version}/images`; const pkgShapesData = JSON.parse(await fs.promises.readFile(argv.releasePackagesJsonPath)); const DownloadLinkPrefix = `${DownloadLinkPrefixNoVersion}/v${argv.version}`; - out.log(``); + + const md = new MdCol("Section-Package-List"); + md.log(`# Package list of Release ${argv.version}`); + + const headerPath = path.resolve(dirs.fragments, "packages-desc.md"); + md.log(await fs.promises.readFile(headerPath, "utf-8")); + + md.log(`
`); for (let [groupID, gr] of Object.entries(pkgShapesData)) { const prime = gr.subGroups[groupID]; const familyName = buildName("\u00a0", ...prime.family.split(" ")); @@ -55,13 +39,13 @@ async function GeneratePackageList(argv, out) { ]; } - out.log( + md.log( ``, ``, ...ttcCells, `` ); - out.log( + md.log( ``, ``, ``, @@ -83,7 +67,7 @@ async function GeneratePackageList(argv, out) { const leader = "    " + (subGroupID === lastSubGroupID ? "└" : "├"); const superTtcPrefix = hasSpacings ? "SuperTTC-SGr" : "SuperTTC"; const ttcPrefix = hasSpacings ? "PkgTTC-SGr" : "PkgTTC"; - out.log( + md.log( ``, ``, ``, @@ -97,30 +81,25 @@ async function GeneratePackageList(argv, out) { `` ); } - out.log(``, ``, ``); + md.log(``, ``, ``); } - out.log(`
📦 ${familyName} — ${desc}
  └ Sub-packagesSpacing
${leader} ${noBreak(subGr.family)}${spacingDesc}
${img}
${img}
\n`); -} -function noBreak(s) { - return s.replace(/ /g, "\u00a0"); + md.log(`\n`); + + return md; } function buildName(j, ...parts) { return parts.filter(x => !!x).join(j); } +function noBreak(s) { + return s.replace(/ /g, "\u00a0"); +} +const Spacings = { + // spacingDesc, ligation + type: ["Default", true], + term: ["Terminal", true], + fixed: ["Fixed", false], + "quasi-proportional": ["Default", false] +}; function flag(f) { return f ? "Yes" : "No"; } -function ImgX(path, w) { - const widthProp = w ? ` width=${w}` : ``; - return ( - `` + - `` - ); -} -export default (async function main(argv) { - const out = new Output(); - out.log(`# Package list of Release ${argv.version}`); - await CopyMarkdown(out, "packages-desc.md"); - await GeneratePackageList(argv, out); - await fs.promises.writeFile(argv.outputPath, out.buffer); -}); diff --git a/utility/amend-readme/sections/private-build-plans.mjs b/utility/amend-readme/sections/private-build-plans.mjs new file mode 100644 index 0000000000..dbfacb9f32 --- /dev/null +++ b/utility/amend-readme/sections/private-build-plans.mjs @@ -0,0 +1,12 @@ +import fs from "fs"; +import path from "path"; + +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processPrivateBuildPlans(dirs) { + const md = new MdCol("Section-Private-Build-Plan-Sample"); + const tomlPath = path.resolve(dirs.projectRoot, "private-build-plans.sample.toml"); + const toml = await fs.promises.readFile(tomlPath, "utf-8"); + md.log("```toml\n" + toml + "```"); + return md; +} diff --git a/utility/amend-readme/sections/ss-ot.mjs b/utility/amend-readme/sections/ss-ot.mjs new file mode 100644 index 0000000000..76d90ed18e --- /dev/null +++ b/utility/amend-readme/sections/ss-ot.mjs @@ -0,0 +1,26 @@ +import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { ImgX, MdCol } from "../md-format-tools.mjs"; + +export default async function processSsOt(dirs) { + const variantsData = await parseVariantsData(); + const md = new MdCol("Section-OT-Stylistic-Sets"); + md.log(``); + for (const ss of variantsData.composites) { + if (!ss.rank) continue; + { + md.log(``); + md.log(``); + md.log(``); + } + { + md.log( + ``, + ``, + ``, + `` + ); + } + } + md.log(`
${ss.tag} — ${ss.description}
${ImgX(`${dirs.images}/ss-u-${ss.tag}-${ss.rank}`)}${ImgX(`${dirs.images}/ss-i-${ss.tag}-${ss.rank}`)}
`); + return md; +} diff --git a/utility/amend-readme/sections/ss-styles.mjs b/utility/amend-readme/sections/ss-styles.mjs new file mode 100644 index 0000000000..414c3265c0 --- /dev/null +++ b/utility/amend-readme/sections/ss-styles.mjs @@ -0,0 +1,18 @@ +import fs from "fs"; +import path from "path"; + +import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { MdCol } from "../md-format-tools.mjs"; + +export default async function processSsStyles(dirs) { + const variantsData = await parseVariantsData(); + const md = new MdCol("Section-Stylistic-Sets"); + const headerPath = path.resolve(dirs.fragments, "description-stylistic-sets.md"); + md.log(await fs.promises.readFile(headerPath, "utf-8")); + for (const gr of variantsData.composites) { + if (!gr.rank) continue; + md.log(` - \`${gr.tag}\`: Set character variant to “${gr.description}”.`); + } + md.log(` - Other build plans’ configuration, using \`inherits = "buildPlans."\`.`); + return md; +} diff --git a/utility/generate-release-note/release-note-fragments/package-reorg.md b/utility/generate-release-note/release-note-fragments/package-reorg.md deleted file mode 100644 index 3ee775e646..0000000000 --- a/utility/generate-release-note/release-note-fragments/package-reorg.md +++ /dev/null @@ -1,10 +0,0 @@ -### Packaging Reorganization - -Since Iosevka 3.0.0-rc.1, the following packaging reorganization is introduced: - - * `Iosevka Term` → `Iosevka Fixed`. - * `Iosevka TermLig` → `Iosevka Term`. - * `Iosevka Type` → Removed. - * `Iosevka CC` → Removed. - -The default Iosevka family's spacing is also updated to focus on code editing solely. \ No newline at end of file diff --git a/verdafile.mjs b/verdafile.mjs index 8b25744add..4c22a1e9f5 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -927,26 +927,54 @@ const AmendReadme = task("amend-readme", async target => { AmendReadmeFor("doc/custom-build.md"), AmendReadmeFor("doc/language-specific-ligation-sets.md"), AmendReadmeFor("doc/cv-influences.md"), + AmendReadmeFor("doc/PACKAGE-LIST.md"), AmendLicenseYear ); }); const AmendReadmeFor = task.make( f => `amend-readme::for::${f}`, async (target, f) => { - await target.need(Parameters, UtilScripts); + const [version] = await target.need(Version, Parameters, UtilScripts); + const [rpFiles] = await target.need(ReleaseNotePackagesFile); const [cm, cmi, cmo] = await target.need( BuildCM("Iosevka", "Iosevka-Regular"), BuildCM("Iosevka", "Iosevka-Italic"), BuildCM("Iosevka", "Iosevka-Oblique") ); return node(`utility/amend-readme/index.mjs`, { + version, mdFilePath: f, + releasePackagesJsonPath: rpFiles.full, charMapPath: cm.full, charMapItalicPath: cmi.full, charMapObliquePath: cmo.full }); } ); +const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, out) => { + const [cp] = await t.need(CollectPlans); + const [{ buildPlans }] = await t.need(BuildPlans); + let releaseNoteGroups = {}; + for (const [k, plan] of Object.entries(cp)) { + if (!plan.inRelease || plan.isAmended) continue; + const primePlan = buildPlans[plan.groupDecomposition[0]]; + let subGroups = {}; + for (const gr of plan.groupDecomposition) { + const bp = buildPlans[gr]; + subGroups[gr] = { + family: bp.family, + desc: bp.desc, + spacing: buildPlans[gr].spacing || "type" + }; + } + releaseNoteGroups[k] = { + subGroups, + slab: primePlan.serifs === "slab", + quasiProportional: primePlan.spacing === "quasi-proportional" + }; + } + await FS.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " ")); +}); const AmendLicenseYear = task("amend-readme:license-year", async target => { return node(`utility/amend-readme/license-year.mjs`, { path: "LICENSE.md" @@ -1019,7 +1047,7 @@ const ScreenShotImpl = file.make( const ReleaseNotes = task(`release:release-note`, async t => { const [version] = await t.need(Version); - await t.need(ReleaseNotesFile(version), PackageListFile(version)); + await t.need(ReleaseNotesFile(version)); }); const ReleaseNotesFile = file.make( version => `${ARCHIVE_DIR}/release-notes-${version}.md`, @@ -1033,43 +1061,7 @@ const ReleaseNotesFile = file.make( }); } ); -const PackageListFile = file.make( - version => `doc/PACKAGE-LIST.md`, - async (t, out, version) => { - await t.need(Version, UtilScripts, de(ARCHIVE_DIR)); - const [rpFiles] = await t.need(ReleaseNotePackagesFile); - await node("utility/generate-release-note/package-list.mjs", { - version, - releasePackagesJsonPath: rpFiles.full, - outputPath: out.full - }); - } -); -const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, out) => { - const [cp] = await t.need(CollectPlans); - const [{ buildPlans }] = await t.need(BuildPlans); - let releaseNoteGroups = {}; - for (const [k, plan] of Object.entries(cp)) { - if (!plan.inRelease || plan.isAmended) continue; - const primePlan = buildPlans[plan.groupDecomposition[0]]; - let subGroups = {}; - for (const gr of plan.groupDecomposition) { - const bp = buildPlans[gr]; - subGroups[gr] = { - family: bp.family, - desc: bp.desc, - spacing: buildPlans[gr].spacing || "type" - }; - } - releaseNoteGroups[k] = { - subGroups, - slab: primePlan.serifs === "slab", - quasiProportional: primePlan.spacing === "quasi-proportional" - }; - } - await FS.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " ")); -}); const ChangeLog = task(`release:change-log`, async t => { await t.need(ChangeLogMd); }); From d51f80f270196816efece68f4cee7bd9fe464c77 Mon Sep 17 00:00:00 2001 From: be5invis Date: Thu, 23 Nov 2023 21:47:31 -0800 Subject: [PATCH 35/59] Further unify the scripts --- .../generate-change-log.mjs} | 6 +++--- .../generate-release-note.mjs} | 8 +++++--- utility/generate-release-note/shared/index.mjs | 8 -------- verdafile.mjs | 4 ++-- 4 files changed, 10 insertions(+), 16 deletions(-) rename utility/{generate-release-note/change-log.mjs => amend-readme/generate-change-log.mjs} (89%) rename utility/{generate-release-note/release-note.mjs => amend-readme/generate-release-note.mjs} (92%) delete mode 100644 utility/generate-release-note/shared/index.mjs diff --git a/utility/generate-release-note/change-log.mjs b/utility/amend-readme/generate-change-log.mjs similarity index 89% rename from utility/generate-release-note/change-log.mjs rename to utility/amend-readme/generate-change-log.mjs index 3cbd2876e5..d825e077ae 100644 --- a/utility/generate-release-note/change-log.mjs +++ b/utility/amend-readme/generate-change-log.mjs @@ -4,7 +4,7 @@ import url from "url"; import semver from "semver"; -import { Output } from "./shared/index.mjs"; +import { MdCol } from "./md-format-tools.mjs"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); @@ -27,7 +27,7 @@ async function GenerateChangeList(argv, out) { } } export default (async function main(argv) { - const out = new Output(); + const out = new MdCol(); await GenerateChangeList(argv, out); - await fs.promises.writeFile(argv.outputPath, out.buffer); + await fs.promises.writeFile(argv.outputPath, out.data); }); diff --git a/utility/generate-release-note/release-note.mjs b/utility/amend-readme/generate-release-note.mjs similarity index 92% rename from utility/generate-release-note/release-note.mjs rename to utility/amend-readme/generate-release-note.mjs index 5a5804458e..c991c44dbe 100644 --- a/utility/generate-release-note/release-note.mjs +++ b/utility/amend-readme/generate-release-note.mjs @@ -4,13 +4,15 @@ import url from "url"; import SemVer from "semver"; -import { Output } from "./shared/index.mjs"; +import { MdCol } from "./md-format-tools.mjs"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); const ChangeFileDir = path.join(__dirname, "../../changes"); + /////////////////////////////////////////////////////////////////////////////////////////////////// // CHANGE LIST + async function GenerateChangeList(argv, out) { const changeFiles = await fs.promises.readdir(ChangeFileDir); const fragments = new Map(); @@ -34,7 +36,7 @@ async function GenerateChangeList(argv, out) { } } export default (async function main(argv) { - const out = new Output(); + const out = new MdCol("Release-Note"); let baseUrl = `https://github.com/be5invis/Iosevka/blob/v${argv.version}/doc`; await GenerateChangeList(argv, out); out.log( @@ -47,5 +49,5 @@ export default (async function main(argv) { `` + `` ); - await fs.promises.writeFile(argv.outputPath, out.buffer); + await fs.promises.writeFile(argv.outputPath, out.data); }); diff --git a/utility/generate-release-note/shared/index.mjs b/utility/generate-release-note/shared/index.mjs deleted file mode 100644 index 116e51eaee..0000000000 --- a/utility/generate-release-note/shared/index.mjs +++ /dev/null @@ -1,8 +0,0 @@ -export class Output { - constructor() { - this.buffer = ""; - } - log(...s) { - this.buffer += s.join("") + "\n"; - } -} diff --git a/verdafile.mjs b/verdafile.mjs index 4c22a1e9f5..2ad5e21669 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -1055,7 +1055,7 @@ const ReleaseNotesFile = file.make( await t.need(Version, UtilScripts, de(ARCHIVE_DIR)); const [changeFiles] = await t.need(ChangeFileList()); await t.need(changeFiles.map(fu)); - await node("utility/generate-release-note/release-note.mjs", { + await node("utility/amend-readme/generate-release-note.mjs", { version, outputPath: out.full }); @@ -1070,7 +1070,7 @@ const ChangeLogMd = file(`CHANGELOG.md`, async (t, out) => { await t.need(UtilScripts, de(ARCHIVE_DIR)); const [changeFiles] = await t.need(ChangeFileList()); await t.need(changeFiles.map(fu)); - await node("utility/generate-release-note/change-log.mjs", { version, outputPath: out.full }); + await node("utility/amend-readme/generate-change-log.mjs", { version, outputPath: out.full }); }); const ChangeFileList = oracle.make( () => `release:change-file-list`, From 7273f60f4170f6c280e5a27ae2510129154deba1 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Fri, 24 Nov 2023 16:51:28 -0500 Subject: [PATCH 36/59] Add Latin Small Letter U with Left Hook. (#2102) --- changes/28.0.0-alpha.3.md | 3 + font-src/glyphs/auto-build/transformed.ptl | 1 + font-src/glyphs/letter/latin/u.ptl | 85 ++++++++++++++++++---- params/variants.toml | 8 ++ 4 files changed, 83 insertions(+), 14 deletions(-) create mode 100644 changes/28.0.0-alpha.3.md diff --git a/changes/28.0.0-alpha.3.md b/changes/28.0.0-alpha.3.md new file mode 100644 index 0000000000..bf114af7ad --- /dev/null +++ b/changes/28.0.0-alpha.3.md @@ -0,0 +1,3 @@ +* Add Characters: + - LATIN SMALL LETTER U WITH LEFT HOOK (`U+AB52`). + - MODIFIER LETTER SMALL U WITH LEFT HOOK (`U+AB5F`). diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index a7170f802a..923606e8f6 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -249,6 +249,7 @@ glyph-block Autobuild-Transformed : begin list 0xAB5C 'heng' list 0xAB5D 'lInvLazySOver' list 0xAB5E 'lTildeOver' + list 0xAB5F 'uHookLeft' list 0xAB69 'turnw' list 0x10780 'smcpAA' list 0x10781 'triangleColon' diff --git a/font-src/glyphs/letter/latin/u.ptl b/font-src/glyphs/letter/latin/u.ptl index 6ff616b5f1..bbf6e6f735 100644 --- a/font-src/glyphs/letter/latin/u.ptl +++ b/font-src/glyphs/letter/latin/u.ptl @@ -46,6 +46,18 @@ glyph-block Letter-Latin-U : begin include : FlipAround df.middle (top / 2) include : VBar.r df.rightSB 0 top + define [UHookLeftToothed df top] : glyph-proc + set-base-anchor 'trailing' df.rightSB 0 + include : nShoulder + top -- top + bottom -- (TailY + HalfStroke) + left -- (df.leftSB + [HSwToV Stroke]) + right -- df.rightSB + fine -- ShoulderFine + include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) + include : FlipAround df.middle (top / 2) + include : VBar.r df.rightSB 0 top + define [UTailed df top] : glyph-proc set-base-anchor 'trailing' (df.rightSB + SideJut) 0 include : nShoulder @@ -56,12 +68,37 @@ glyph-block Letter-Latin-U : begin include : FlipAround df.middle (top / 2) include : RightwardTailedBar df.rightSB 0 top + define [UHookLeftTailed df top] : glyph-proc + set-base-anchor 'trailing' (df.rightSB + SideJut) 0 + include : nShoulder + top -- top + bottom -- (TailY + HalfStroke) + left -- (df.leftSB + [HSwToV Stroke]) + right -- df.rightSB + fine -- ShoulderFine + include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) + include : FlipAround df.middle (top / 2) + include : RightwardTailedBar df.rightSB 0 top + define [UToothlessRounded df top] : glyph-proc include : UShape df top 0 define [UToothlessRoundedSmall df top] : glyph-proc include : UShape df top 0 (ada -- SmallArchDepthA) (adb -- SmallArchDepthB) + define [UHookLeftToothlessRoundedSmall df top] : glyph-proc + include : dispiro + widths.rhs + flat df.leftSB 0 [heading Upward] + curl df.leftSB (top - SmallArchDepthA) + arcvh + g4 ([mix df.leftSB df.rightSB 0.5] - CorrectionOMidS) (top - O) + archv + flat df.rightSB (top - SmallArchDepthB) + curl df.rightSB (TailY + HalfStroke) [heading Downward] + include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) + include : FlipAround df.middle (top / 2) + define [UToothlessCorner df top] : glyph-proc include : VBar.l df.leftSB 0 (top - DToothlessRise) include : dispiro @@ -84,6 +121,18 @@ glyph-block Letter-Latin-U : begin curl df.rightSB 0 [heading Downward] include : FlipAround df.middle (top / 2) + define [UHookLeftToothlessCornerSmall df top] : glyph-proc + include : VBar.l df.leftSB 0 (top - DToothlessRise) + include : dispiro + widths.rhs + g4 df.leftSB (top - DToothlessRise) + g4 ([mix df.leftSB df.rightSB 0.5] - CorrectionOMidS) (top - O) + archv + flat df.rightSB (top - SmallArchDepthB) + curl df.rightSB (TailY + HalfStroke) [heading Downward] + include : RetroflexHook.rExt df.rightSB (TailY + HalfStroke) + include : FlipAround df.middle (top / 2) + define [UTopLeftSerif df yTop _sw] : tagged 'serifLT' HSerif.lt df.leftSB yTop SideJut _sw @@ -168,24 +217,24 @@ glyph-block Letter-Latin-U : begin define SmallUConfig : SuffixCfg.weave object # body - toothed UToothed - tailed UTailed - toothlessCorner UToothlessCorner - toothlessRounded UToothlessRounded - urtBase UToothed + toothed { UToothed UHookLeftToothed } + tailed { UTailed UHookLeftTailed } + toothlessCorner { UToothlessCornerSmall UHookLeftToothlessCornerSmall } + toothlessRounded { UToothlessRoundedSmall UHookLeftToothlessRoundedSmall } + urtBase { UToothed UHookLeftToothed } function [body] : object # serifs - serifless no-shape - bottomRightSerifed USerifs.BottomRight + serifless { no-shape false } + bottomRightSerifed { USerifs.BottomRight false } motionSerifed : match body - [Just 'toothed'] USerifs.MotionToothed - __ USerifs.MotionToothless + [Just 'toothed'] { USerifs.MotionToothed true } + __ { USerifs.MotionToothless true } serifed : match body - [Just 'toothed'] USerifs.Toothed - [Just 'tailed'] USerifs.Tailed - [Just 'urtBase'] USerifs.RTBase - __ USerifs.SmallToothless + [Just 'toothed'] { USerifs.Toothed true } + [Just 'tailed'] { USerifs.Tailed true } + [Just 'urtBase'] { USerifs.RTBase true } + __ { USerifs.SmallToothless true } - foreach { suffix { Base Slabs } } [Object.entries SmallUConfig] : do + foreach { suffix { { Base BaseHookLeft } { Slabs fLTSlab } } } [Object.entries SmallUConfig] : do create-glyph "u.\(suffix)" : glyph-proc local df : DivFrame 1 include : MarkSet.e @@ -203,6 +252,13 @@ glyph-block Letter-Latin-U : begin straight.up.end SB SmallArchDepthB [widths.heading 0 [AdviceStroke 4] Upward] include : Slabs df XH + create-glyph "uHookLeft.\(suffix)" : glyph-proc + local df : DivFrame 1 + include : MarkSet.e + include : BaseHookLeft df XH + include : Slabs df XH + eject-contour 'serifLT' + create-glyph "uSideways.\(suffix)" : glyph-proc local df : DivFrame (XH / Width) 2 (XH * 0.1 / SB) include : df.markSet.e @@ -228,6 +284,7 @@ glyph-block Letter-Latin-U : begin select-variant 'u' 'u' link-reduced-variant 'u/sansSerif' 'u' MathSansSerif select-variant 'u/uRTailBase' (shapeFrom -- 'u') + select-variant 'uHookLeft' 0xAB52 select-variant 'grek/mu' 0x3BC link-reduced-variant 'grek/mu/sansSerif' 'grek/mu' MathSansSerif diff --git a/params/variants.toml b/params/variants.toml index c370968475..66f3c427da 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -3653,6 +3653,7 @@ descriptionAffix = "toothed shape" selectorAffix.u = "toothed" selectorAffix."u/sansSerif" = "toothed" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uHookLeft = "toothed" selectorAffix.turnh = "toothed" selectorAffix.hookturnh = "toothed" selectorAffix.hookturnhrtail = "toothed" @@ -3672,6 +3673,7 @@ descriptionAffix = "tailed shape" selectorAffix.u = "tailed" selectorAffix."u/sansSerif" = "tailed" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uHookLeft = "tailed" selectorAffix.turnh = "toothed" selectorAffix.hookturnh = "toothed" selectorAffix.hookturnhrtail = "toothed" @@ -3691,6 +3693,7 @@ descriptionAffix = "toothless (corner bottom-right) shape" selectorAffix.u = "toothlessCorner" selectorAffix."u/sansSerif" = "toothlessCorner" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uHookLeft = "toothlessCorner" selectorAffix.turnh = "toothed" selectorAffix.hookturnh = "toothed" selectorAffix.hookturnhrtail = "toothed" @@ -3710,6 +3713,7 @@ descriptionAffix = "toothless (rounded) shape" selectorAffix.u = "toothlessRounded" selectorAffix."u/sansSerif" = "toothlessRounded" selectorAffix."u/uRTailBase" = "urtBase" +selectorAffix.uHookLeft = "toothlessRounded" selectorAffix.turnh = "toothed" selectorAffix.hookturnh = "toothed" selectorAffix.hookturnhrtail = "toothed" @@ -3730,6 +3734,7 @@ descriptionJoiner = "without" selectorAffix.u = "serifless" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifless" +selectorAffix.uHookLeft = "serifless" selectorAffix.turnh = "serifless" selectorAffix.hookturnh = "serifless" selectorAffix.hookturnhrtail = "serifless" @@ -3749,6 +3754,7 @@ descriptionAffix = "motion serifs at top-left and bottom-right" selectorAffix.u = "motionSerifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "motionSerifed" +selectorAffix.uHookLeft = {if = [{body = "toothed"}], then = "bottomRightSerifed", else = "serifless"} selectorAffix.turnh = "motionSerifed" selectorAffix.hookturnh = "motionSerifed" selectorAffix.hookturnhrtail = "serifless" @@ -3769,6 +3775,7 @@ descriptionAffix = "serif at bottom-right" selectorAffix.u = "bottomRightSerifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifless" +selectorAffix.uHookLeft = "bottomRightSerifed" selectorAffix.turnh = "serifless" selectorAffix.hookturnh = "serifless" selectorAffix.hookturnhrtail = "serifless" @@ -3788,6 +3795,7 @@ descriptionAffix = "serifs" selectorAffix.u = "serifed" selectorAffix."u/sansSerif" = "serifless" selectorAffix."u/uRTailBase" = "serifed" +selectorAffix.uHookLeft = "serifed" selectorAffix.turnh = "serifed" selectorAffix.hookturnh = "serifed" selectorAffix.hookturnhrtail = "serifed" From 38e68d884a1762a83ecaa427f161fafd50665ab4 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 25 Nov 2023 20:52:27 -0800 Subject: [PATCH 37/59] =?UTF-8?q?Make=20the=20ligation=20group=20names=20f?= =?UTF-8?q?or=20symbol=20connections=20more=20intuitive,=20and=20add=20alt?= =?UTF-8?q?ernatives=20to=20start=20chaining=20from=20at=20least=203=20con?= =?UTF-8?q?tinuous=20characters=20(#2100):=20=20=20=20-=20`plusplus`=20?= =?UTF-8?q?=E2=86=92=20`plus-plus`,=20`plus-plus-plus`.=20=20=20=20-=20`co?= =?UTF-8?q?nnected-hyphen`=20=E2=86=92=20`minus-minus`,=20`minus-minus-min?= =?UTF-8?q?us`.=20=20=20=20-=20`connected-tilde-as-wave`=20=E2=86=92=20`ti?= =?UTF-8?q?lde-tilde`,=20`tilde-tilde-tilde`.=20=20=20=20-=20`connected-un?= =?UTF-8?q?derscore`=20=E2=86=92=20`underscore-underscore`,=20`underscore-?= =?UTF-8?q?underscore-underscore`.=20=20=20=20-=20`connected-number-sign`?= =?UTF-8?q?=20=E2=86=92=20`hash-hash`,=20`hash-hash-hash`.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changes/28.0.0-alpha.3.md | 3 - .../{28.0.0-alpha.2.md => 28.0.0-beta.1.md} | 16 +- doc/PACKAGE-LIST.md | 274 ++++----- doc/custom-build.md | 18 +- doc/cv-influences.md | 4 +- font-src/glyphs/symbol/ligation.ptl | 18 +- font-src/otl/gsub-ligation.ptl | 129 ++-- font-src/support/ligation-data.mjs | 17 +- images/button-release.dark.svg | 24 +- images/button-release.light.svg | 24 +- images/cs-block-latin-extended-e.dark.svg | 78 +-- images/cs-block-latin-extended-e.light.svg | 78 +-- ...cs-block-spacing-modifier-letters.dark.svg | 4 +- ...s-block-spacing-modifier-letters.light.svg | 4 +- .../cv-lig-hyphen-chain-with-notch.dark.svg | 2 +- .../cv-lig-hyphen-chain-with-notch.light.svg | 2 +- ...cv-lig-hyphen-chain-without-notch.dark.svg | 2 +- ...v-lig-hyphen-chain-without-notch.light.svg | 2 +- ...u-toothless-corner-motion-serifed.dark.svg | 2 +- ...-toothless-corner-motion-serifed.light.svg | 2 +- ...lower-mu-toothless-corner-serifed.dark.svg | 2 +- ...ower-mu-toothless-corner-serifed.light.svg | 2 +- ...wer-mu-toothless-corner-serifless.dark.svg | 2 +- ...er-mu-toothless-corner-serifless.light.svg | 2 +- ...-toothless-rounded-motion-serifed.dark.svg | 2 +- ...toothless-rounded-motion-serifed.light.svg | 2 +- ...ower-mu-toothless-rounded-serifed.dark.svg | 2 +- ...wer-mu-toothless-rounded-serifed.light.svg | 2 +- ...er-mu-toothless-rounded-serifless.dark.svg | 2 +- ...r-mu-toothless-rounded-serifless.light.svg | 2 +- ...n-toothless-corner-motion-serifed.dark.svg | 2 +- ...-toothless-corner-motion-serifed.light.svg | 2 +- ...cro-sign-toothless-corner-serifed.dark.svg | 2 +- ...ro-sign-toothless-corner-serifed.light.svg | 2 +- ...o-sign-toothless-corner-serifless.dark.svg | 2 +- ...-sign-toothless-corner-serifless.light.svg | 2 +- ...-toothless-rounded-motion-serifed.dark.svg | 2 +- ...toothless-rounded-motion-serifed.light.svg | 2 +- ...ro-sign-toothless-rounded-serifed.dark.svg | 2 +- ...o-sign-toothless-rounded-serifed.light.svg | 2 +- ...-sign-toothless-rounded-serifless.dark.svg | 2 +- ...sign-toothless-rounded-serifless.light.svg | 2 +- ...u-toothless-corner-motion-serifed.dark.svg | 2 +- ...-toothless-corner-motion-serifed.light.svg | 2 +- images/cv-u-toothless-corner-serifed.dark.svg | 2 +- .../cv-u-toothless-corner-serifed.light.svg | 2 +- .../cv-u-toothless-corner-serifless.dark.svg | 2 +- .../cv-u-toothless-corner-serifless.light.svg | 2 +- ...-toothless-rounded-motion-serifed.dark.svg | 2 +- ...toothless-rounded-motion-serifed.light.svg | 2 +- .../cv-u-toothless-rounded-serifed.dark.svg | 2 +- .../cv-u-toothless-rounded-serifed.light.svg | 2 +- .../cv-u-toothless-rounded-serifless.dark.svg | 2 +- ...cv-u-toothless-rounded-serifless.light.svg | 2 +- images/languages.dark.svg | 562 +++++++++--------- images/languages.light.svg | 562 +++++++++--------- images/ligset-CLIK-1.dark.svg | 521 ++++++++-------- images/ligset-CLIK-1.light.svg | 521 ++++++++-------- images/ligset-COQX-1.dark.svg | 275 ++++----- images/ligset-COQX-1.light.svg | 275 ++++----- images/ligset-DFNY-1.dark.svg | 23 +- images/ligset-DFNY-1.light.svg | 23 +- images/ligset-ELMX-1.dark.svg | 283 ++++----- images/ligset-ELMX-1.light.svg | 283 ++++----- images/ligset-ERLA-1.dark.svg | 26 +- images/ligset-ERLA-1.light.svg | 26 +- images/ligset-FSHP-1.dark.svg | 250 ++++---- images/ligset-FSHP-1.light.svg | 250 ++++---- images/ligset-FSTA-1.dark.svg | 262 ++++---- images/ligset-FSTA-1.light.svg | 262 ++++---- images/ligset-HSKL-1.dark.svg | 283 ++++----- images/ligset-HSKL-1.light.svg | 283 ++++----- images/ligset-IDRS-1.dark.svg | 283 ++++----- images/ligset-IDRS-1.light.svg | 283 ++++----- images/ligset-JLIA-1.dark.svg | 23 +- images/ligset-JLIA-1.light.svg | 23 +- images/ligset-JSPT-1.dark.svg | 535 ++++++++--------- images/ligset-JSPT-1.light.svg | 535 ++++++++--------- images/ligset-MLXX-1.dark.svg | 250 ++++---- images/ligset-MLXX-1.light.svg | 250 ++++---- images/ligset-MTLB-1.dark.svg | 23 +- images/ligset-MTLB-1.light.svg | 23 +- images/ligset-PHPX-1.dark.svg | 537 ++++++++--------- images/ligset-PHPX-1.light.svg | 537 ++++++++--------- images/ligset-PURS-1.dark.svg | 283 ++++----- images/ligset-PURS-1.light.svg | 283 ++++----- images/ligset-RAKU-1.dark.svg | 246 ++++---- images/ligset-RAKU-1.light.svg | 246 ++++---- images/ligset-SWFT-1.dark.svg | 280 ++++----- images/ligset-SWFT-1.light.svg | 280 ++++----- images/ligset-VRLG-1.dark.svg | 23 +- images/ligset-VRLG-1.light.svg | 23 +- images/ligset-WFLM-1.dark.svg | 274 ++++----- images/ligset-WFLM-1.light.svg | 274 ++++----- images/ligset-calt-1.dark.svg | 267 +++++---- images/ligset-calt-1.light.svg | 267 +++++---- .../package-sample-IosevkaFixedSS10.dark.svg | 2 +- .../package-sample-IosevkaFixedSS10.light.svg | 2 +- .../package-sample-IosevkaFixedSS12.dark.svg | 4 +- .../package-sample-IosevkaFixedSS12.light.svg | 4 +- .../package-sample-IosevkaFixedSS14.dark.svg | 2 +- .../package-sample-IosevkaFixedSS14.light.svg | 2 +- images/package-sample-IosevkaSS10.dark.svg | 2 +- images/package-sample-IosevkaSS10.light.svg | 2 +- images/package-sample-IosevkaSS12.dark.svg | 4 +- images/package-sample-IosevkaSS12.light.svg | 4 +- images/package-sample-IosevkaSS14.dark.svg | 2 +- images/package-sample-IosevkaSS14.light.svg | 2 +- .../package-sample-IosevkaTermSS10.dark.svg | 2 +- .../package-sample-IosevkaTermSS10.light.svg | 2 +- .../package-sample-IosevkaTermSS12.dark.svg | 4 +- .../package-sample-IosevkaTermSS12.light.svg | 4 +- .../package-sample-IosevkaTermSS14.dark.svg | 2 +- .../package-sample-IosevkaTermSS14.light.svg | 2 +- images/ss-i-ss10-1.dark.svg | 2 +- images/ss-i-ss10-1.light.svg | 2 +- images/ss-i-ss14-1.dark.svg | 2 +- images/ss-i-ss14-1.light.svg | 2 +- images/ss-u-ss10-1.dark.svg | 2 +- images/ss-u-ss10-1.light.svg | 2 +- images/ss-u-ss12-1.dark.svg | 4 +- images/ss-u-ss12-1.light.svg | 4 +- images/ss-u-ss14-1.dark.svg | 2 +- images/ss-u-ss14-1.light.svg | 2 +- package-lock.json | 4 +- package.json | 2 +- params/ligation-set.toml | 167 +++--- params/variants.toml | 19 + .../templates/ligation-set.mjs | 2 +- 129 files changed, 6112 insertions(+), 5943 deletions(-) delete mode 100644 changes/28.0.0-alpha.3.md rename changes/{28.0.0-alpha.2.md => 28.0.0-beta.1.md} (81%) diff --git a/changes/28.0.0-alpha.3.md b/changes/28.0.0-alpha.3.md deleted file mode 100644 index bf114af7ad..0000000000 --- a/changes/28.0.0-alpha.3.md +++ /dev/null @@ -1,3 +0,0 @@ -* Add Characters: - - LATIN SMALL LETTER U WITH LEFT HOOK (`U+AB52`). - - MODIFIER LETTER SMALL U WITH LEFT HOOK (`U+AB5F`). diff --git a/changes/28.0.0-alpha.2.md b/changes/28.0.0-beta.1.md similarity index 81% rename from changes/28.0.0-alpha.2.md rename to changes/28.0.0-beta.1.md index e59df56997..f23b9fe43f 100644 --- a/changes/28.0.0-alpha.2.md +++ b/changes/28.0.0-beta.1.md @@ -14,21 +14,29 @@ * \[**BREAKING**\] Reorder of glyph variants: - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - - Various other glyph variant tags are also changed to reflect this insertion. + - Various other glyph variant tags are also changed to reflect this insertion. +* \[**BREAKING**\] Make the ligation group names for symbol connections more intuitive, and add alternatives to start chaining from at least 3 continuous characters (#2100): + - `plusplus` → `plus-plus`, `plus-plus-plus`. + - `connected-hyphen` → `minus-minus`, `minus-minus-minus`. + - `connected-tilde-as-wave` → `tilde-tilde`, `tilde-tilde-tilde`. + - `connected-underscore` → `underscore-underscore`, `underscore-underscore-underscore`. + - `connected-number-sign` → `hash-hash`, `hash-hash-hash`. * Add Characters: - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - - RAISED SQUARE (`U+2E0B`). - - HYPODIASTOLE (`U+2E12`). - - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). - LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE (`U+2902`) ... LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKE (`U+2904`). - LONG LEFTWARDS SQUIGGLE ARROW (`U+2B33`). - DOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW (`U+2B4D`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). + - LATIN SMALL LETTER U WITH LEFT HOOK (`U+AB52`). + - MODIFIER LETTER SMALL U WITH LEFT HOOK (`U+AB5F`). * Add hook-inward-serifed variants for `a` (#2085). * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. * Remove earless-corner variants for `U+027E`. diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 745596fc61..9cabf64d99 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.0.0-alpha.2 +# Package list of Release 28.0.0-beta.1 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/custom-build.md b/doc/custom-build.md index df7f5c643b..538e1cfd2d 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -123,6 +123,9 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt` - `--wolfram-equality-inequality--`: Default ligation set would be assigned to undefined. - `--erlang-equality-inequality--`: Default ligation set would be assigned to undefined. - `--default-kern--`: Default ligation set would be assigned to undefined. + - `--default-chaining--`: Default ligation set would be assigned to undefined. + - `--fast-chaining--`: Default ligation set would be assigned to undefined. + - `--c-like-chaining--`: Default ligation set would be assigned to undefined. - `default-calt`: Inherit default ligation set. - `dlig`: Default ligation set would be assigned to Discretionary ligatures. - `clike`: Default ligation set would be assigned to C-Like. @@ -191,7 +194,6 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt` - `ltgt-slash-tag`: Enable ligation for `` and ``. - `brst`: Center asterisk in `(*` and `*)`. - `slash-asterisk`: Shift asterisk in `/*` and `*/`. - - `plusplus`: Enable ligation for `++` and further plus-chaining. - `kern-dotty`: Move connecting dotty punctuations closer, like for `::`, `:::` and `...`. - `kern-bars`: Move consecutive bars closer, like for `||`, `|||` and `//`. - `logic`: Enable ligation for `/\` and `\/`. @@ -201,10 +203,16 @@ Subsection `ligations` is used to customize the ligation set assigned to `calt` - `colon-greater-as-colon-arrow`: Transform `:>` into `:` and a narrow arrow. - `brace-bar`: Enable ligation for `{|` and `|}`. - `brack-bar`: Enable ligation for `[|` and `|]`. - - `connected-underscore`: Make contiguous underscores (like `__`) connected. - - `connected-number-sign`: Make contiguous number signs (like `##`) connected. - - `connected-tilde-as-wave`: Make contiguous ASCII tildes (like `~~`) connected as a wave line. - - `connected-hyphen`: Make contiguous hyphen-minuses (like `--`) connected as a straight solid line. + - `tilde-tilde`: Make 2 or more contiguous ASCII tildes (like `~~`, `~~~` and `~~~~`) connected as a wave line. + - `tilde-tilde-tilde`: Make 3 or more contiguous ASCII tildes (like `~~~` and `~~~~`) connected as a wave line. + - `minus-minus`: Make 2 or more contiguous hyphen-minuses (like `--`, `---` and `----`) connected as a straight solid line. + - `minus-minus-minus`: Make 3 or more contiguous hyphen-minuses (like `---` and `----`) connected as a straight solid line. + - `plus-plus`: Make 2 or more contiguous plus signs (like `++`, `+++` and `++++`) connected.. + - `plus-plus-plus`: Make 3 or more contiguous plus signs (like `+++` and `++++`) connected.. + - `underscore-underscore`: Make 2 or more contiguous underscores (like `__`, `___` and `____`) connected. + - `underscore-underscore-underscore`: Make 3 or more contiguous underscores (like `___` and `____`) connected. + - `hash-hash`: Make 2 or more contiguous hash signs (number signs) (like `##`, `###` and `####`) connected. + - `hash-hash-hash`: Make 3 or more contiguous hash signs (number signs) (like `##` and `###`) connected. diff --git a/doc/cv-influences.md b/doc/cv-influences.md index 5cb6472cd1..7eb2f34bdf 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -181,7 +181,7 @@ - `cv45`: - u (`U+0075`), ù (`U+00F9`), ú (`U+00FA`), û (`U+00FB`), ü (`U+00FC`), ũ (`U+0169`), ū (`U+016B`), ŭ (`U+016D`), ů (`U+016F`), ű (`U+0171`), ų (`U+0173`), Ɯ (`U+019C`), ư (`U+01B0`), ǔ (`U+01D4`), ǖ (`U+01D6`), ǘ (`U+01D8`), ǚ (`U+01DA`), ǜ (`U+01DC`), ȕ (`U+0215`), ȗ (`U+0217`), ɥ (`U+0265`), ɯ (`U+026F`), ɰ (`U+0270`), ʉ (`U+0289`), ʮ (`U+02AE`), ʯ (`U+02AF`), ͧ (`U+0367`), ᴝ (`U+1D1D`), ᴞ (`U+1D1E`), ᴟ (`U+1D1F`), ᵘ (`U+1D58`), ᵙ (`U+1D59`), ᵚ (`U+1D5A`), ᵤ (`U+1D64`), ᵫ (`U+1D6B`), ᶙ (`U+1D99`), ᶣ (`U+1DA3`), ᶭ (`U+1DAD`), ᶶ (`U+1DB6`), ᷰ (`U+1DF0`), ᷴ (`U+1DF4`), ṳ (`U+1E73`), ṵ (`U+1E75`), ṷ (`U+1E77`), ṹ (`U+1E79`), ṻ (`U+1E7B`), ụ (`U+1EE5`), ủ (`U+1EE7`), ứ (`U+1EE9`), ừ (`U+1EEB`), ử (`U+1EED`), ữ (`U+1EEF`), ự (`U+1EF1`), ℆ (`U+2106`), ⒰ (`U+24B0`), ⓤ (`U+24E4`), Ꞟ (`U+A79E`), ꞟ (`U+A79F`), ꞹ (`U+A7B9`), ꞿ (`U+A7BF`), ꭣ (`U+AB63`), 𝐮 (`U+1D42E`), 𝑢 (`U+1D462`), 𝒖 (`U+1D496`), 𝗎 (`U+1D5CE`), 𝘂 (`U+1D602`), 𝘶 (`U+1D636`), 𝙪 (`U+1D66A`), 𝚞 (`U+1D69E`) + u (`U+0075`), ù (`U+00F9`), ú (`U+00FA`), û (`U+00FB`), ü (`U+00FC`), ũ (`U+0169`), ū (`U+016B`), ŭ (`U+016D`), ů (`U+016F`), ű (`U+0171`), ų (`U+0173`), Ɯ (`U+019C`), ư (`U+01B0`), ǔ (`U+01D4`), ǖ (`U+01D6`), ǘ (`U+01D8`), ǚ (`U+01DA`), ǜ (`U+01DC`), ȕ (`U+0215`), ȗ (`U+0217`), ɥ (`U+0265`), ɯ (`U+026F`), ɰ (`U+0270`), ʉ (`U+0289`), ʮ (`U+02AE`), ʯ (`U+02AF`), ͧ (`U+0367`), ᴝ (`U+1D1D`), ᴞ (`U+1D1E`), ᴟ (`U+1D1F`), ᵘ (`U+1D58`), ᵙ (`U+1D59`), ᵚ (`U+1D5A`), ᵤ (`U+1D64`), ᵫ (`U+1D6B`), ᶙ (`U+1D99`), ᶣ (`U+1DA3`), ᶭ (`U+1DAD`), ᶶ (`U+1DB6`), ᷰ (`U+1DF0`), ᷴ (`U+1DF4`), ṳ (`U+1E73`), ṵ (`U+1E75`), ṷ (`U+1E77`), ṹ (`U+1E79`), ṻ (`U+1E7B`), ụ (`U+1EE5`), ủ (`U+1EE7`), ứ (`U+1EE9`), ừ (`U+1EEB`), ử (`U+1EED`), ữ (`U+1EEF`), ự (`U+1EF1`), ℆ (`U+2106`), ⒰ (`U+24B0`), ⓤ (`U+24E4`), Ꞟ (`U+A79E`), ꞟ (`U+A79F`), ꞹ (`U+A7B9`), ꞿ (`U+A7BF`), ꭒ (`U+AB52`), ꭟ (`U+AB5F`), ꭣ (`U+AB63`), 𝐮 (`U+1D42E`), 𝑢 (`U+1D462`), 𝒖 (`U+1D496`), 𝗎 (`U+1D5CE`), 𝘂 (`U+1D602`), 𝘶 (`U+1D636`), 𝙪 (`U+1D66A`), 𝚞 (`U+1D69E`) - `cv46`: @@ -644,7 +644,7 @@ - `cv45`: - u (`U+0075`), ù (`U+00F9`), ú (`U+00FA`), û (`U+00FB`), ü (`U+00FC`), ũ (`U+0169`), ū (`U+016B`), ŭ (`U+016D`), ů (`U+016F`), ű (`U+0171`), ų (`U+0173`), Ɯ (`U+019C`), ư (`U+01B0`), ǔ (`U+01D4`), ǖ (`U+01D6`), ǘ (`U+01D8`), ǚ (`U+01DA`), ǜ (`U+01DC`), ȕ (`U+0215`), ȗ (`U+0217`), ɥ (`U+0265`), ɯ (`U+026F`), ɰ (`U+0270`), ʉ (`U+0289`), ʮ (`U+02AE`), ʯ (`U+02AF`), ͧ (`U+0367`), и (`U+0438`), й (`U+0439`), ц (`U+0446`), ш (`U+0448`), щ (`U+0449`), ѝ (`U+045D`), џ (`U+045F`), ҋ (`U+048B`), ҵ (`U+04B5`), ӣ (`U+04E3`), ӥ (`U+04E5`), ᴝ (`U+1D1D`), ᴞ (`U+1D1E`), ᴟ (`U+1D1F`), ᵘ (`U+1D58`), ᵙ (`U+1D59`), ᵚ (`U+1D5A`), ᵤ (`U+1D64`), ᵫ (`U+1D6B`), ᶙ (`U+1D99`), ᶣ (`U+1DA3`), ᶭ (`U+1DAD`), ᶶ (`U+1DB6`), ᷰ (`U+1DF0`), ᷴ (`U+1DF4`), ṳ (`U+1E73`), ṵ (`U+1E75`), ṷ (`U+1E77`), ṹ (`U+1E79`), ṻ (`U+1E7B`), ụ (`U+1EE5`), ủ (`U+1EE7`), ứ (`U+1EE9`), ừ (`U+1EEB`), ử (`U+1EED`), ữ (`U+1EEF`), ự (`U+1EF1`), ℆ (`U+2106`), ⒰ (`U+24B0`), ⓤ (`U+24E4`), ⷰ (`U+2DF0`), ⷲ (`U+2DF2`), ⷳ (`U+2DF3`), ꙵ (`U+A675`), Ꞟ (`U+A79E`), ꞟ (`U+A79F`), ꞹ (`U+A7B9`), ꞿ (`U+A7BF`), ꭣ (`U+AB63`), 𝐮 (`U+1D42E`), 𝑢 (`U+1D462`), 𝒖 (`U+1D496`), 𝗎 (`U+1D5CE`), 𝘂 (`U+1D602`), 𝘶 (`U+1D636`), 𝙪 (`U+1D66A`), 𝚞 (`U+1D69E`), 𞀸 (`U+1E038`), 𞁄 (`U+1E044`), 𞁆 (`U+1E046`), 𞁙 (`U+1E059`), 𞁢 (`U+1E062`), 𞁤 (`U+1E064`), 𞁪 (`U+1E06A`) + u (`U+0075`), ù (`U+00F9`), ú (`U+00FA`), û (`U+00FB`), ü (`U+00FC`), ũ (`U+0169`), ū (`U+016B`), ŭ (`U+016D`), ů (`U+016F`), ű (`U+0171`), ų (`U+0173`), Ɯ (`U+019C`), ư (`U+01B0`), ǔ (`U+01D4`), ǖ (`U+01D6`), ǘ (`U+01D8`), ǚ (`U+01DA`), ǜ (`U+01DC`), ȕ (`U+0215`), ȗ (`U+0217`), ɥ (`U+0265`), ɯ (`U+026F`), ɰ (`U+0270`), ʉ (`U+0289`), ʮ (`U+02AE`), ʯ (`U+02AF`), ͧ (`U+0367`), и (`U+0438`), й (`U+0439`), ц (`U+0446`), ш (`U+0448`), щ (`U+0449`), ѝ (`U+045D`), џ (`U+045F`), ҋ (`U+048B`), ҵ (`U+04B5`), ӣ (`U+04E3`), ӥ (`U+04E5`), ᴝ (`U+1D1D`), ᴞ (`U+1D1E`), ᴟ (`U+1D1F`), ᵘ (`U+1D58`), ᵙ (`U+1D59`), ᵚ (`U+1D5A`), ᵤ (`U+1D64`), ᵫ (`U+1D6B`), ᶙ (`U+1D99`), ᶣ (`U+1DA3`), ᶭ (`U+1DAD`), ᶶ (`U+1DB6`), ᷰ (`U+1DF0`), ᷴ (`U+1DF4`), ṳ (`U+1E73`), ṵ (`U+1E75`), ṷ (`U+1E77`), ṹ (`U+1E79`), ṻ (`U+1E7B`), ụ (`U+1EE5`), ủ (`U+1EE7`), ứ (`U+1EE9`), ừ (`U+1EEB`), ử (`U+1EED`), ữ (`U+1EEF`), ự (`U+1EF1`), ℆ (`U+2106`), ⒰ (`U+24B0`), ⓤ (`U+24E4`), ⷰ (`U+2DF0`), ⷲ (`U+2DF2`), ⷳ (`U+2DF3`), ꙵ (`U+A675`), Ꞟ (`U+A79E`), ꞟ (`U+A79F`), ꞹ (`U+A7B9`), ꞿ (`U+A7BF`), ꭒ (`U+AB52`), ꭟ (`U+AB5F`), ꭣ (`U+AB63`), 𝐮 (`U+1D42E`), 𝑢 (`U+1D462`), 𝒖 (`U+1D496`), 𝗎 (`U+1D5CE`), 𝘂 (`U+1D602`), 𝘶 (`U+1D636`), 𝙪 (`U+1D66A`), 𝚞 (`U+1D69E`), 𞀸 (`U+1E038`), 𞁄 (`U+1E044`), 𞁆 (`U+1E046`), 𞁙 (`U+1E059`), 𞁢 (`U+1E062`), 𞁤 (`U+1E064`), 𞁪 (`U+1E06A`) - `cv46`: diff --git a/font-src/glyphs/symbol/ligation.ptl b/font-src/glyphs/symbol/ligation.ptl index 831defcdb6..0ed3169216 100644 --- a/font-src/glyphs/symbol/ligation.ptl +++ b/font-src/glyphs/symbol/ligation.ptl @@ -12,6 +12,7 @@ glyph-block Symbol-Ligation : begin glyph-block-import Common-Derivatives glyph-block-import Symbol-Math-Relation-Common : LessSlope EqualHalfSpace EqualHoleWidth glyph-block-import Symbol-Math-Relation-Equal : EqualShape EqualHole IdentShape IdentHole + glyph-block-import Symbol-Math-Arith : PlusShape local arrowheadsKern : (2 / 3) * [clamp 0 (Width * 0.4) (Width - OperatorStroke * 3)] @@ -83,6 +84,7 @@ glyph-block Symbol-Ligation : begin VBar.m x (SymbolMid - OperatorStroke / 3) (SymbolMid - OperatorStroke) EqualHoleWidth define Shapes : object + 'plus' { PlusShape HyphenNotch { arrowExtend arrowheadsKern arrowJ 0 } } 'hyphen' { HyphenShape HyphenNotch { arrowExtend arrowheadsKern arrowJ 0 } } 'equal' { EqualShape EqualHole { dblExtend arrowheadsKern dblArrowJ 1 } } 'ident' { IdentShape IdentHole { dblExtend arrowheadsKern dblArrowJ 1 } } @@ -418,27 +420,13 @@ glyph-block Symbol-Ligation : begin TrigRightShape koTag kiExtend2 0 MaskRightLine (slashDefautLeft - Width) ParenBot (slashDefaultRight - Width) ParenTop - do "Chaining Plus" - glyph-block-import Symbol-Math-Arith : PlusShape - - create-glyph 'plus.lig.fc' : glyph-proc - Joining.set currentGlyph Joining.Classes.Right - include : PlusShape SB (Width - O) + do "Chaining Plus (shifted middle bars)" create-glyph 'plus.lig.fc.s' : glyph-proc Joining.set currentGlyph Joining.Classes.Right include : PlusShape SB (Width - O) SB - create-glyph 'plus.lig.cc' : glyph-proc - Joining.set currentGlyph Joining.Classes.Mid - include : PlusShape O (Width - O) - create-glyph 'plus.lig.cf' : glyph-proc - Joining.set currentGlyph Joining.Classes.Left - include : PlusShape O RightSB create-glyph 'plus.lig.cf.s' : glyph-proc Joining.set currentGlyph Joining.Classes.Left include : PlusShape O RightSB (-SB) - create-glyph 'plus.lig.zf' : glyph-proc - Joining.set currentGlyph Joining.Classes.Left - include : PlusShape (-SB + O) RightSB do 'Less / Greater as arrow' create-glyph 'greaterArrow' : composite-proc diff --git a/font-src/otl/gsub-ligation.ptl b/font-src/otl/gsub-ligation.ptl index 38947eba2d..4bd083f95d 100644 --- a/font-src/otl/gsub-ligation.ptl +++ b/font-src/otl/gsub-ligation.ptl @@ -967,7 +967,7 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin greaterAndEquiv ~> [just 'greater.lig.tag-slash'] # :> - LigGroup "colon-less-greater" : if [hasLG 'colon-greater'] : begin + LigGroup "colon-less-greater" : if [hasLG 'colon-greater-as-colon-arrow'] : begin CreateLigationLookup : list chain-rule {'colon/mid'} ~> look-around @@ -990,23 +990,45 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin {'braceRight'} ~> {'ligExtBraceRight'} # +++++++++ - LigGroup "Plus chains" : if [hasLG 'plusplus'] : begin - CreateLigationLookup : list - chain-rule - {'plus.lig.cf' 'plus.lig.zf'} ~> look-around - {'plus'} ~> [lsx 'zf'] - chain-rule - {'plus'} ~> [lsx 'fc'] - {'plus'} ~> [lsx 'cc'] - {'plus'} ~> [lsx 'cc'] - {'plus'} ~> [lsx 'cf'] - chain-rule - {'plus'} ~> [lsx 'fc'] - {'plus'} ~> [lsx 'cc'] - {'plus'} ~> [lsx 'cf'] - chain-rule - {'plus'} ~> [lsx 'fc'] - {'plus'} ~> [lsx 'cf'] + define ChainingConfig : object + 'plus' { 'plus' 'plus' } + 'minus' { 'hyphen' 'hyphen' } + 'tilde' { 'asciiTilde' 'wave' } + + foreach { gr { gnFrom gnTo } } [Object.entries ChainingConfig] : begin + define [sfx suffix] : [lsx suffix] { gnTo } + define [src] { gnFrom } + + LigGroup "Chaining \(gr)" : if [hasLG "\(gr)-\(gr)-\(gr)"] : begin + CreateLigationLookup : list + chain-rule # Extension + [{}.concat [sfx "cf"] [sfx "zf"]] ~> look-around + [src] ~> [sfx "zf"] + chain-rule # Start 4 + [src] ~> [sfx "fc"] + [src] ~> [sfx "cc"] + [src] ~> [sfx "cc"] + [src] ~> [sfx "cf"] + chain-rule # Start 3 + [src] ~> [sfx "fc"] + [src] ~> [sfx "cc"] + [src] ~> [sfx "cf"] + chain-rule # Start 2 + [src] ~> [if [hasLG "\(gr)-\(gr)"] [sfx "fc"] advance] + [src] ~> [if [hasLG "\(gr)-\(gr)"] [sfx "cf"] advance] + CreateLigationLookup : list + chain-rule + {[sfx "jf"]} ~> {[sfx "jc"]} + [src] ~> {[sfx "cc"]} + {[sfx "fj"]} ~> {[sfx "cj"]} + chain-rule + {[sfx "jf"]} ~> {[sfx "jc"]} + {[sfx "fc"]} ~> {[sfx "cc"]} + chain-rule + {[sfx "zf"]} ~> {[sfx "zc"]} + {[sfx "fj"]} ~> {[sfx "cj"]} + + LigGroup "Chaining plus adjustments" : if [hasLG 'plus-plus-plus'] : begin CreateLigationLookup : list chain-rule # +++ {'plus.lig.fc'} ~> {'plus.lig.fc.s'} @@ -1016,46 +1038,41 @@ define [buildLigationsImpl gsub para $LigGroup$] : begin {'plus.lig.fc'} ~> {'plus.lig.fc.s'} {'plus.lig.cf'} ~> {'plus.lig.cf.s'} - LigGroup "Underscore chains" : if [hasLG 'connected-underscore'] : begin - CreateLigationLookup : list - chain-rule - [underscore.concat : [lsx 'zf'] underscore] ~> look-around - underscore ~> [lsx 'zf'] - - LigGroup "Tilde chains" : if [hasLG 'connected-tilde-as-wave'] : begin - CreateLigationLookup : list - chain-rule - {'wave.lig.cf' 'wave.lig.zf'} ~> look-around - {'asciiTilde'} ~> {'wave.lig.zf'} - chain-rule - {'asciiTilde'} ~> {"wave.lig.fc"} - {'asciiTilde'} ~> {"wave.lig.cf"} - - LigGroup "Hyphen chains" : if [hasLG 'connected-hyphen'] : begin - CreateLigationLookup : list - chain-rule - {'hyphen.lig.zf'} ~> look-around - {'hyphen'} ~> {'hyphen.lig.zf'} - chain-rule - {'hyphen'} ~> {"hyphen.lig.fc"} - {'hyphen'} ~> {"hyphen.lig.zf"} + LigGroup "Underscore chains" : if [hasLG 'underscore-underscore-underscore'] : begin CreateLigationLookup : list - chain-rule - {'hyphen.lig.jf'} ~> {'hyphen.lig.jc'} - {'hyphen'} ~> {'hyphen.lig.cc'} - {'hyphen.lig.fj'} ~> {'hyphen.lig.cj'} - chain-rule - {'hyphen.lig.jf'} ~> {'hyphen.lig.jc'} - {'hyphen.lig.fc'} ~> {'hyphen.lig.cc'} - chain-rule - {'hyphen.lig.zf'} ~> {'hyphen.lig.zc'} - {'hyphen.lig.fj'} ~> {'hyphen.lig.cj'} - - LigGroup "Number sign chains" : if [hasLG 'connected-number-sign'] : begin + chain-rule # Extension + [[lsx 'zf'] underscore] ~> look-around + underscore ~> [lsx 'zf'] + chain-rule # Start 4 + underscore ~> advance + underscore ~> [lsx 'zf'] + underscore ~> [lsx 'zf'] + underscore ~> [lsx 'zf'] + chain-rule # Start 3 + underscore ~> advance + underscore ~> [lsx 'zf'] + underscore ~> [lsx 'zf'] + chain-rule # Start 2 + underscore ~> advance + underscore ~> [if [hasLG 'underscore-underscore'] [lsx 'zf'] advance] + + LigGroup "Number sign chains" : if [hasLG 'hash-hash-hash'] : begin CreateLigationLookup : list - chain-rule - {'numberSign' 'numberSign.jr'} ~> look-around - {'numberSign'} ~> {'numberSign.jr'} + chain-rule # Extension + {'numberSign.jr'} ~> look-around + {'numberSign'} ~> [csx 'jr'] + chain-rule # Start 4 + {'numberSign'} ~> advance + {'numberSign'} ~> [csx 'jr'] + {'numberSign'} ~> [csx 'jr'] + {'numberSign'} ~> [csx 'jr'] + chain-rule # Start 3 + {'numberSign'} ~> advance + {'numberSign'} ~> [csx 'jr'] + {'numberSign'} ~> [csx 'jr'] + chain-rule # Start 2 + {'numberSign'} ~> advance + {'numberSign'} ~> [if [hasLG 'hash-hash'] [csx 'jr'] advance] LigGroup "Kern Bars" : if [hasLG 'kern-bars'] : foreach chBar [items-of anyBar] : begin define dp { chBar } diff --git a/font-src/support/ligation-data.mjs b/font-src/support/ligation-data.mjs index eb8be46a1a..aa00b52211 100644 --- a/font-src/support/ligation-data.mjs +++ b/font-src/support/ligation-data.mjs @@ -5,8 +5,9 @@ export function applyLigationData(data, para, argv) { const hives = {}; hives["default"] = { caltBuildup: [] }; for (const gr in data.simple) { - hives[`ligset-enable-${gr}`] = { appends: { caltBuildup: [data.simple[gr].ligGroup] } }; - hives[`ligset-disable-${gr}`] = { removes: { caltBuildup: [data.simple[gr].ligGroup] } }; + const lg = data.simple[gr]; + hives[`ligset-enable-${gr}`] = { appends: { caltBuildup: [gr] } }; + hives[`ligset-disable-${gr}`] = { removes: { caltBuildup: [gr] } }; } for (const gr in data.composite) { const comp = data.composite[gr]; @@ -39,16 +40,18 @@ export function applyLigationData(data, para, argv) { export function createBuildup(simple, composite, buildup) { let sink = new Set(); - createBuildupImpl(sink, simple, composite, buildup); + createBuildupImpl(false, sink, simple, composite, buildup); return Array.from(sink); } -function createBuildupImpl(sink, simple, composite, buildup) { +function createBuildupImpl(fSimpleOnly, sink, simple, composite, buildup) { for (const s of buildup) { if (simple[s]) { - sink.add(simple[s].ligGroup); - } else if (composite[s]) { - createBuildupImpl(sink, simple, composite, composite[s].buildup); + sink.add(s); + const gr = simple[s]; + if (gr.implies) createBuildupImpl(true, sink, simple, composite, gr.implies); + } else if (!fSimpleOnly && composite[s]) { + createBuildupImpl(fSimpleOnly, sink, simple, composite, composite[s].buildup); } else { throw new Error("Cannot find simple ligation group " + s); } diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index f06e8537ef..7299f45c6e 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -11,10 +11,11 @@ - - + + + - + @@ -23,7 +24,7 @@ - + @@ -31,12 +32,11 @@ - - - - - - - + + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index e77b14b285..416f3fa1a5 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -11,10 +11,11 @@ - - + + + - + @@ -23,7 +24,7 @@ - + @@ -31,12 +32,11 @@ - - - - - - - + + + + + + \ No newline at end of file diff --git a/images/cs-block-latin-extended-e.dark.svg b/images/cs-block-latin-extended-e.dark.svg index e1f07560de..162c1477cc 100644 --- a/images/cs-block-latin-extended-e.dark.svg +++ b/images/cs-block-latin-extended-e.dark.svg @@ -38,23 +38,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -230,11 +232,11 @@ - - + + - + @@ -258,19 +260,19 @@ - + - + - + - + - - + + @@ -281,40 +283,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-latin-extended-e.light.svg b/images/cs-block-latin-extended-e.light.svg index cbade97198..031c60acbf 100644 --- a/images/cs-block-latin-extended-e.light.svg +++ b/images/cs-block-latin-extended-e.light.svg @@ -38,23 +38,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -230,11 +232,11 @@ - - + + - + @@ -258,19 +260,19 @@ - + - + - + - + - - + + @@ -281,40 +283,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + diff --git a/images/cs-block-spacing-modifier-letters.dark.svg b/images/cs-block-spacing-modifier-letters.dark.svg index b56969d8c1..7477549c86 100644 --- a/images/cs-block-spacing-modifier-letters.dark.svg +++ b/images/cs-block-spacing-modifier-letters.dark.svg @@ -60,7 +60,7 @@ - + @@ -296,7 +296,7 @@ - + diff --git a/images/cs-block-spacing-modifier-letters.light.svg b/images/cs-block-spacing-modifier-letters.light.svg index 924b300098..588b04134a 100644 --- a/images/cs-block-spacing-modifier-letters.light.svg +++ b/images/cs-block-spacing-modifier-letters.light.svg @@ -60,7 +60,7 @@ - + @@ -296,7 +296,7 @@ - + diff --git a/images/cv-lig-hyphen-chain-with-notch.dark.svg b/images/cv-lig-hyphen-chain-with-notch.dark.svg index b2f35da990..3b76296343 100644 --- a/images/cv-lig-hyphen-chain-with-notch.dark.svg +++ b/images/cv-lig-hyphen-chain-with-notch.dark.svg @@ -2,7 +2,7 @@ - + diff --git a/images/cv-lig-hyphen-chain-with-notch.light.svg b/images/cv-lig-hyphen-chain-with-notch.light.svg index 5d11787d9d..74bcec49c0 100644 --- a/images/cv-lig-hyphen-chain-with-notch.light.svg +++ b/images/cv-lig-hyphen-chain-with-notch.light.svg @@ -2,7 +2,7 @@ - + diff --git a/images/cv-lig-hyphen-chain-without-notch.dark.svg b/images/cv-lig-hyphen-chain-without-notch.dark.svg index 2ac26c59e5..a0633a976c 100644 --- a/images/cv-lig-hyphen-chain-without-notch.dark.svg +++ b/images/cv-lig-hyphen-chain-without-notch.dark.svg @@ -2,7 +2,7 @@ - + diff --git a/images/cv-lig-hyphen-chain-without-notch.light.svg b/images/cv-lig-hyphen-chain-without-notch.light.svg index 97bec036c5..d9423d0559 100644 --- a/images/cv-lig-hyphen-chain-without-notch.light.svg +++ b/images/cv-lig-hyphen-chain-without-notch.light.svg @@ -2,7 +2,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-motion-serifed.dark.svg b/images/cv-lower-mu-toothless-corner-motion-serifed.dark.svg index a5251a9486..1942bbe1f1 100644 --- a/images/cv-lower-mu-toothless-corner-motion-serifed.dark.svg +++ b/images/cv-lower-mu-toothless-corner-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-motion-serifed.light.svg b/images/cv-lower-mu-toothless-corner-motion-serifed.light.svg index b1093601b9..d590308ded 100644 --- a/images/cv-lower-mu-toothless-corner-motion-serifed.light.svg +++ b/images/cv-lower-mu-toothless-corner-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-serifed.dark.svg b/images/cv-lower-mu-toothless-corner-serifed.dark.svg index af11f6beb6..14daa19636 100644 --- a/images/cv-lower-mu-toothless-corner-serifed.dark.svg +++ b/images/cv-lower-mu-toothless-corner-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-serifed.light.svg b/images/cv-lower-mu-toothless-corner-serifed.light.svg index 9a4f92dd2d..463340141c 100644 --- a/images/cv-lower-mu-toothless-corner-serifed.light.svg +++ b/images/cv-lower-mu-toothless-corner-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-serifless.dark.svg b/images/cv-lower-mu-toothless-corner-serifless.dark.svg index 52b52e4f28..23992a724c 100644 --- a/images/cv-lower-mu-toothless-corner-serifless.dark.svg +++ b/images/cv-lower-mu-toothless-corner-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-corner-serifless.light.svg b/images/cv-lower-mu-toothless-corner-serifless.light.svg index 7f7d55c7b2..5e4511c7dc 100644 --- a/images/cv-lower-mu-toothless-corner-serifless.light.svg +++ b/images/cv-lower-mu-toothless-corner-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-motion-serifed.dark.svg b/images/cv-lower-mu-toothless-rounded-motion-serifed.dark.svg index 966f64d67f..62c1a39207 100644 --- a/images/cv-lower-mu-toothless-rounded-motion-serifed.dark.svg +++ b/images/cv-lower-mu-toothless-rounded-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-motion-serifed.light.svg b/images/cv-lower-mu-toothless-rounded-motion-serifed.light.svg index 8181d0ddc9..c7e713edbf 100644 --- a/images/cv-lower-mu-toothless-rounded-motion-serifed.light.svg +++ b/images/cv-lower-mu-toothless-rounded-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-serifed.dark.svg b/images/cv-lower-mu-toothless-rounded-serifed.dark.svg index 481be44357..cbfbea0931 100644 --- a/images/cv-lower-mu-toothless-rounded-serifed.dark.svg +++ b/images/cv-lower-mu-toothless-rounded-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-serifed.light.svg b/images/cv-lower-mu-toothless-rounded-serifed.light.svg index e924701875..ad32417e01 100644 --- a/images/cv-lower-mu-toothless-rounded-serifed.light.svg +++ b/images/cv-lower-mu-toothless-rounded-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-serifless.dark.svg b/images/cv-lower-mu-toothless-rounded-serifless.dark.svg index 9b6e2750db..5a7dcf46bc 100644 --- a/images/cv-lower-mu-toothless-rounded-serifless.dark.svg +++ b/images/cv-lower-mu-toothless-rounded-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-mu-toothless-rounded-serifless.light.svg b/images/cv-lower-mu-toothless-rounded-serifless.light.svg index 450cc7ae9d..7a35e5c21a 100644 --- a/images/cv-lower-mu-toothless-rounded-serifless.light.svg +++ b/images/cv-lower-mu-toothless-rounded-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-motion-serifed.dark.svg b/images/cv-micro-sign-toothless-corner-motion-serifed.dark.svg index 3342bc80c4..e5cec40205 100644 --- a/images/cv-micro-sign-toothless-corner-motion-serifed.dark.svg +++ b/images/cv-micro-sign-toothless-corner-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-motion-serifed.light.svg b/images/cv-micro-sign-toothless-corner-motion-serifed.light.svg index 406ce555de..bee657caa4 100644 --- a/images/cv-micro-sign-toothless-corner-motion-serifed.light.svg +++ b/images/cv-micro-sign-toothless-corner-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-serifed.dark.svg b/images/cv-micro-sign-toothless-corner-serifed.dark.svg index ad1df79aad..6d28bbefa4 100644 --- a/images/cv-micro-sign-toothless-corner-serifed.dark.svg +++ b/images/cv-micro-sign-toothless-corner-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-serifed.light.svg b/images/cv-micro-sign-toothless-corner-serifed.light.svg index 5c4d6d0c1d..5528259b09 100644 --- a/images/cv-micro-sign-toothless-corner-serifed.light.svg +++ b/images/cv-micro-sign-toothless-corner-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-serifless.dark.svg b/images/cv-micro-sign-toothless-corner-serifless.dark.svg index a990cdb414..7a4d7bae12 100644 --- a/images/cv-micro-sign-toothless-corner-serifless.dark.svg +++ b/images/cv-micro-sign-toothless-corner-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-corner-serifless.light.svg b/images/cv-micro-sign-toothless-corner-serifless.light.svg index f7ca74b3cd..0ed4949208 100644 --- a/images/cv-micro-sign-toothless-corner-serifless.light.svg +++ b/images/cv-micro-sign-toothless-corner-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-motion-serifed.dark.svg b/images/cv-micro-sign-toothless-rounded-motion-serifed.dark.svg index 15202cc79f..894cdca602 100644 --- a/images/cv-micro-sign-toothless-rounded-motion-serifed.dark.svg +++ b/images/cv-micro-sign-toothless-rounded-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-motion-serifed.light.svg b/images/cv-micro-sign-toothless-rounded-motion-serifed.light.svg index 5d30cf219c..3f5b159061 100644 --- a/images/cv-micro-sign-toothless-rounded-motion-serifed.light.svg +++ b/images/cv-micro-sign-toothless-rounded-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-serifed.dark.svg b/images/cv-micro-sign-toothless-rounded-serifed.dark.svg index 887a7a4a13..02e390c56a 100644 --- a/images/cv-micro-sign-toothless-rounded-serifed.dark.svg +++ b/images/cv-micro-sign-toothless-rounded-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-serifed.light.svg b/images/cv-micro-sign-toothless-rounded-serifed.light.svg index f30a6abd2c..10034f67b4 100644 --- a/images/cv-micro-sign-toothless-rounded-serifed.light.svg +++ b/images/cv-micro-sign-toothless-rounded-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-serifless.dark.svg b/images/cv-micro-sign-toothless-rounded-serifless.dark.svg index 69d08824ad..813b167342 100644 --- a/images/cv-micro-sign-toothless-rounded-serifless.dark.svg +++ b/images/cv-micro-sign-toothless-rounded-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-micro-sign-toothless-rounded-serifless.light.svg b/images/cv-micro-sign-toothless-rounded-serifless.light.svg index 217225beeb..e7878624ec 100644 --- a/images/cv-micro-sign-toothless-rounded-serifless.light.svg +++ b/images/cv-micro-sign-toothless-rounded-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-motion-serifed.dark.svg b/images/cv-u-toothless-corner-motion-serifed.dark.svg index 0e0a400fb0..3bf8fcf135 100644 --- a/images/cv-u-toothless-corner-motion-serifed.dark.svg +++ b/images/cv-u-toothless-corner-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-motion-serifed.light.svg b/images/cv-u-toothless-corner-motion-serifed.light.svg index f0434caa53..8e167566c2 100644 --- a/images/cv-u-toothless-corner-motion-serifed.light.svg +++ b/images/cv-u-toothless-corner-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-serifed.dark.svg b/images/cv-u-toothless-corner-serifed.dark.svg index 02344c871a..57d3082f6e 100644 --- a/images/cv-u-toothless-corner-serifed.dark.svg +++ b/images/cv-u-toothless-corner-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-serifed.light.svg b/images/cv-u-toothless-corner-serifed.light.svg index 8d58d4fca4..361c9a72d4 100644 --- a/images/cv-u-toothless-corner-serifed.light.svg +++ b/images/cv-u-toothless-corner-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-serifless.dark.svg b/images/cv-u-toothless-corner-serifless.dark.svg index 81389c1cf6..8404c82f68 100644 --- a/images/cv-u-toothless-corner-serifless.dark.svg +++ b/images/cv-u-toothless-corner-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-corner-serifless.light.svg b/images/cv-u-toothless-corner-serifless.light.svg index 0b8a7e5306..3b6778ad1d 100644 --- a/images/cv-u-toothless-corner-serifless.light.svg +++ b/images/cv-u-toothless-corner-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-motion-serifed.dark.svg b/images/cv-u-toothless-rounded-motion-serifed.dark.svg index 003bbe59ee..83bb0c1fd4 100644 --- a/images/cv-u-toothless-rounded-motion-serifed.dark.svg +++ b/images/cv-u-toothless-rounded-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-motion-serifed.light.svg b/images/cv-u-toothless-rounded-motion-serifed.light.svg index ab559a8f22..0f00e00764 100644 --- a/images/cv-u-toothless-rounded-motion-serifed.light.svg +++ b/images/cv-u-toothless-rounded-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-serifed.dark.svg b/images/cv-u-toothless-rounded-serifed.dark.svg index cb36c7438c..d1bea23a84 100644 --- a/images/cv-u-toothless-rounded-serifed.dark.svg +++ b/images/cv-u-toothless-rounded-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-serifed.light.svg b/images/cv-u-toothless-rounded-serifed.light.svg index d61e6bd7ec..d6203bf1c3 100644 --- a/images/cv-u-toothless-rounded-serifed.light.svg +++ b/images/cv-u-toothless-rounded-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-serifless.dark.svg b/images/cv-u-toothless-rounded-serifless.dark.svg index 27f541cfaa..682030681e 100644 --- a/images/cv-u-toothless-rounded-serifless.dark.svg +++ b/images/cv-u-toothless-rounded-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-u-toothless-rounded-serifless.light.svg b/images/cv-u-toothless-rounded-serifless.light.svg index 06ba1c9cec..a42f2b3298 100644 --- a/images/cv-u-toothless-rounded-serifless.light.svg +++ b/images/cv-u-toothless-rounded-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 21d4d7f9b7..e595526fc1 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -82,7 +82,7 @@ - + @@ -200,120 +200,119 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -545,7 +544,8 @@ - + + @@ -1086,7 +1086,8 @@ - + + @@ -1272,14 +1273,16 @@ - + + - + + @@ -1287,7 +1290,8 @@ - + + @@ -1298,20 +1302,22 @@ - + + - + + - + - + @@ -1319,18 +1325,19 @@ - + - + - + + - + @@ -1339,7 +1346,7 @@ - + @@ -1350,7 +1357,7 @@ - + @@ -1398,14 +1405,14 @@ - + - + @@ -1422,13 +1429,13 @@ - + - - + + @@ -1445,7 +1452,7 @@ - + @@ -1454,8 +1461,8 @@ - - + + @@ -1478,25 +1485,25 @@ - + - + - + - + - + - + @@ -1505,7 +1512,7 @@ - + @@ -1518,27 +1525,27 @@ - + - + - + - + - + @@ -1548,18 +1555,18 @@ - - + + - + - + - + @@ -1573,7 +1580,7 @@ - + @@ -1584,24 +1591,24 @@ - + - + - + - + - - + + @@ -1610,14 +1617,14 @@ - - + + - + @@ -1633,26 +1640,26 @@ - + - + - + - + - + @@ -1664,7 +1671,7 @@ - + @@ -1707,29 +1714,30 @@ - + - + + - + - + - + - + - + @@ -1738,27 +1746,27 @@ - + - + - + - + @@ -1769,34 +1777,34 @@ - + - + - + - + - + - + - + @@ -1805,7 +1813,7 @@ - + @@ -1819,15 +1827,15 @@ - + - + - + @@ -1846,9 +1854,9 @@ - + - + @@ -1865,10 +1873,10 @@ - + - + @@ -1876,7 +1884,7 @@ - + @@ -1886,12 +1894,12 @@ - + - + @@ -1913,7 +1921,7 @@ - + @@ -1922,7 +1930,7 @@ - + @@ -1947,31 +1955,32 @@ - + - - + + - + - + + - + - + @@ -1990,7 +1999,7 @@ - + @@ -2001,7 +2010,7 @@ - + @@ -2014,7 +2023,7 @@ - + @@ -2032,14 +2041,14 @@ - + - + - + @@ -2063,12 +2072,12 @@ - + - + @@ -2078,20 +2087,21 @@ - + - + - + + - + @@ -2110,7 +2120,7 @@ - + @@ -2122,7 +2132,8 @@ - + + @@ -2134,7 +2145,7 @@ - + @@ -2143,8 +2154,8 @@ - - + + @@ -2156,13 +2167,13 @@ - + - + - + @@ -2175,7 +2186,7 @@ - + @@ -2183,7 +2194,7 @@ - + @@ -2196,8 +2207,9 @@ - - + + + @@ -2221,7 +2233,7 @@ - + @@ -2241,16 +2253,16 @@ - + - + - + @@ -2265,14 +2277,14 @@ - - + + - + - - - + + + @@ -2283,7 +2295,7 @@ - + @@ -2326,7 +2338,7 @@ - + @@ -2364,7 +2376,7 @@ - + @@ -2376,7 +2388,7 @@ - + @@ -2426,7 +2438,7 @@ - + @@ -2437,9 +2449,9 @@ - + - + @@ -2451,8 +2463,8 @@ - - + + @@ -2461,12 +2473,12 @@ - + - + @@ -2474,7 +2486,7 @@ - + @@ -2484,7 +2496,7 @@ - + @@ -2499,7 +2511,8 @@ - + + @@ -2507,52 +2520,53 @@ + - - + - + - + - - + + + - - + - - + + + - + - + - + - + @@ -2574,7 +2588,7 @@ - + @@ -2584,7 +2598,7 @@ - + @@ -2598,7 +2612,7 @@ - + @@ -2634,14 +2648,14 @@ - + - - + + diff --git a/images/languages.light.svg b/images/languages.light.svg index 9b1c563490..c6dacf8d07 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -82,7 +82,7 @@ - + @@ -200,120 +200,119 @@ - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -545,7 +544,8 @@ - + + @@ -1086,7 +1086,8 @@ - + + @@ -1272,14 +1273,16 @@ - + + - + + @@ -1287,7 +1290,8 @@ - + + @@ -1298,20 +1302,22 @@ - + + - + + - + - + @@ -1319,18 +1325,19 @@ - + - + - + + - + @@ -1339,7 +1346,7 @@ - + @@ -1350,7 +1357,7 @@ - + @@ -1398,14 +1405,14 @@ - + - + @@ -1422,13 +1429,13 @@ - + - - + + @@ -1445,7 +1452,7 @@ - + @@ -1454,8 +1461,8 @@ - - + + @@ -1478,25 +1485,25 @@ - + - + - + - + - + - + @@ -1505,7 +1512,7 @@ - + @@ -1518,27 +1525,27 @@ - + - + - + - + - + @@ -1548,18 +1555,18 @@ - - + + - + - + - + @@ -1573,7 +1580,7 @@ - + @@ -1584,24 +1591,24 @@ - + - + - + - + - - + + @@ -1610,14 +1617,14 @@ - - + + - + @@ -1633,26 +1640,26 @@ - + - + - + - + - + @@ -1664,7 +1671,7 @@ - + @@ -1707,29 +1714,30 @@ - + - + + - + - + - + - + - + @@ -1738,27 +1746,27 @@ - + - + - + - + @@ -1769,34 +1777,34 @@ - + - + - + - + - + - + - + @@ -1805,7 +1813,7 @@ - + @@ -1819,15 +1827,15 @@ - + - + - + @@ -1846,9 +1854,9 @@ - + - + @@ -1865,10 +1873,10 @@ - + - + @@ -1876,7 +1884,7 @@ - + @@ -1886,12 +1894,12 @@ - + - + @@ -1913,7 +1921,7 @@ - + @@ -1922,7 +1930,7 @@ - + @@ -1947,31 +1955,32 @@ - + - - + + - + - + + - + - + @@ -1990,7 +1999,7 @@ - + @@ -2001,7 +2010,7 @@ - + @@ -2014,7 +2023,7 @@ - + @@ -2032,14 +2041,14 @@ - + - + - + @@ -2063,12 +2072,12 @@ - + - + @@ -2078,20 +2087,21 @@ - + - + - + + - + @@ -2110,7 +2120,7 @@ - + @@ -2122,7 +2132,8 @@ - + + @@ -2134,7 +2145,7 @@ - + @@ -2143,8 +2154,8 @@ - - + + @@ -2156,13 +2167,13 @@ - + - + - + @@ -2175,7 +2186,7 @@ - + @@ -2183,7 +2194,7 @@ - + @@ -2196,8 +2207,9 @@ - - + + + @@ -2221,7 +2233,7 @@ - + @@ -2241,16 +2253,16 @@ - + - + - + @@ -2265,14 +2277,14 @@ - - + + - + - - - + + + @@ -2283,7 +2295,7 @@ - + @@ -2326,7 +2338,7 @@ - + @@ -2364,7 +2376,7 @@ - + @@ -2376,7 +2388,7 @@ - + @@ -2426,7 +2438,7 @@ - + @@ -2437,9 +2449,9 @@ - + - + @@ -2451,8 +2463,8 @@ - - + + @@ -2461,12 +2473,12 @@ - + - + @@ -2474,7 +2486,7 @@ - + @@ -2484,7 +2496,7 @@ - + @@ -2499,7 +2511,8 @@ - + + @@ -2507,52 +2520,53 @@ + - - + - + - + - - + + + - - + - - + + + - + - + - + - + @@ -2574,7 +2588,7 @@ - + @@ -2584,7 +2598,7 @@ - + @@ -2598,7 +2612,7 @@ - + @@ -2634,14 +2648,14 @@ - + - - + + diff --git a/images/ligset-CLIK-1.dark.svg b/images/ligset-CLIK-1.dark.svg index 9bf4c899fd..e03483a11e 100644 --- a/images/ligset-CLIK-1.dark.svg +++ b/images/ligset-CLIK-1.dark.svg @@ -5,71 +5,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -90,15 +93,15 @@ - - + + - - - + + + @@ -113,465 +116,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-CLIK-1.light.svg b/images/ligset-CLIK-1.light.svg index 79dec31474..13ac5e3d8e 100644 --- a/images/ligset-CLIK-1.light.svg +++ b/images/ligset-CLIK-1.light.svg @@ -5,71 +5,74 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -90,15 +93,15 @@ - - + + - - - + + + @@ -113,465 +116,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-COQX-1.dark.svg b/images/ligset-COQX-1.dark.svg index a929bf7e15..9d0daf5fa7 100644 --- a/images/ligset-COQX-1.dark.svg +++ b/images/ligset-COQX-1.dark.svg @@ -51,44 +51,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -327,270 +330,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-COQX-1.light.svg b/images/ligset-COQX-1.light.svg index 4838e8c7d0..56812e60a9 100644 --- a/images/ligset-COQX-1.light.svg +++ b/images/ligset-COQX-1.light.svg @@ -51,44 +51,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -327,270 +330,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-DFNY-1.dark.svg b/images/ligset-DFNY-1.dark.svg index e408593194..e05f159ac3 100644 --- a/images/ligset-DFNY-1.dark.svg +++ b/images/ligset-DFNY-1.dark.svg @@ -87,10 +87,13 @@ - - + + + + + @@ -549,15 +552,15 @@ - - - + + + - - + + @@ -590,9 +593,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-DFNY-1.light.svg b/images/ligset-DFNY-1.light.svg index 2483961e03..1a8d9fdb7d 100644 --- a/images/ligset-DFNY-1.light.svg +++ b/images/ligset-DFNY-1.light.svg @@ -87,10 +87,13 @@ - - + + + + + @@ -549,15 +552,15 @@ - - - + + + - - + + @@ -590,9 +593,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-ELMX-1.dark.svg b/images/ligset-ELMX-1.dark.svg index 4ca0f13a38..5fc7b9f12e 100644 --- a/images/ligset-ELMX-1.dark.svg +++ b/images/ligset-ELMX-1.dark.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-ELMX-1.light.svg b/images/ligset-ELMX-1.light.svg index 087a61175b..dc2ec4b6c7 100644 --- a/images/ligset-ELMX-1.light.svg +++ b/images/ligset-ELMX-1.light.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-ERLA-1.dark.svg b/images/ligset-ERLA-1.dark.svg index e6eddb5265..d110d8d0f4 100644 --- a/images/ligset-ERLA-1.dark.svg +++ b/images/ligset-ERLA-1.dark.svg @@ -74,7 +74,13 @@ - + + + + + + + @@ -538,20 +544,20 @@ - - - - + + + + - + - + @@ -574,9 +580,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-ERLA-1.light.svg b/images/ligset-ERLA-1.light.svg index 3ce9445f29..c33afa88c4 100644 --- a/images/ligset-ERLA-1.light.svg +++ b/images/ligset-ERLA-1.light.svg @@ -74,7 +74,13 @@ - + + + + + + + @@ -538,20 +544,20 @@ - - - - + + + + - + - + @@ -574,9 +580,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-FSHP-1.dark.svg b/images/ligset-FSHP-1.dark.svg index 25cd5ebcbd..9e3a14ce7f 100644 --- a/images/ligset-FSHP-1.dark.svg +++ b/images/ligset-FSHP-1.dark.svg @@ -40,42 +40,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -314,270 +318,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-FSHP-1.light.svg b/images/ligset-FSHP-1.light.svg index bf7775043f..2672af68fd 100644 --- a/images/ligset-FSHP-1.light.svg +++ b/images/ligset-FSHP-1.light.svg @@ -40,42 +40,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -314,270 +318,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-FSTA-1.dark.svg b/images/ligset-FSTA-1.dark.svg index 57b8907b43..807d9adc9f 100644 --- a/images/ligset-FSTA-1.dark.svg +++ b/images/ligset-FSTA-1.dark.svg @@ -40,46 +40,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -318,270 +322,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-FSTA-1.light.svg b/images/ligset-FSTA-1.light.svg index aee92b28f1..7d9c3e3d11 100644 --- a/images/ligset-FSTA-1.light.svg +++ b/images/ligset-FSTA-1.light.svg @@ -40,46 +40,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -318,270 +322,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-HSKL-1.dark.svg b/images/ligset-HSKL-1.dark.svg index 4ca0f13a38..5fc7b9f12e 100644 --- a/images/ligset-HSKL-1.dark.svg +++ b/images/ligset-HSKL-1.dark.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-HSKL-1.light.svg b/images/ligset-HSKL-1.light.svg index 087a61175b..dc2ec4b6c7 100644 --- a/images/ligset-HSKL-1.light.svg +++ b/images/ligset-HSKL-1.light.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-IDRS-1.dark.svg b/images/ligset-IDRS-1.dark.svg index 4ca0f13a38..5fc7b9f12e 100644 --- a/images/ligset-IDRS-1.dark.svg +++ b/images/ligset-IDRS-1.dark.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-IDRS-1.light.svg b/images/ligset-IDRS-1.light.svg index 087a61175b..dc2ec4b6c7 100644 --- a/images/ligset-IDRS-1.light.svg +++ b/images/ligset-IDRS-1.light.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-JLIA-1.dark.svg b/images/ligset-JLIA-1.dark.svg index bd494d9eed..f81ec5cfa7 100644 --- a/images/ligset-JLIA-1.dark.svg +++ b/images/ligset-JLIA-1.dark.svg @@ -77,9 +77,12 @@ - - + + + + + @@ -538,15 +541,15 @@ - - - + + + - - + + @@ -579,9 +582,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-JLIA-1.light.svg b/images/ligset-JLIA-1.light.svg index 38a7db8bf2..e2b11cb102 100644 --- a/images/ligset-JLIA-1.light.svg +++ b/images/ligset-JLIA-1.light.svg @@ -77,9 +77,12 @@ - - + + + + + @@ -538,15 +541,15 @@ - - - + + + - - + + @@ -579,9 +582,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-JSPT-1.dark.svg b/images/ligset-JSPT-1.dark.svg index 6e45b6fec5..7df256c9ae 100644 --- a/images/ligset-JSPT-1.dark.svg +++ b/images/ligset-JSPT-1.dark.svg @@ -5,77 +5,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -96,15 +97,15 @@ - - + + - - - + + + @@ -119,465 +120,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-JSPT-1.light.svg b/images/ligset-JSPT-1.light.svg index 6900e0405f..ecc27ba6a0 100644 --- a/images/ligset-JSPT-1.light.svg +++ b/images/ligset-JSPT-1.light.svg @@ -5,77 +5,78 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -96,15 +97,15 @@ - - + + - - - + + + @@ -119,465 +120,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-MLXX-1.dark.svg b/images/ligset-MLXX-1.dark.svg index 25cd5ebcbd..9e3a14ce7f 100644 --- a/images/ligset-MLXX-1.dark.svg +++ b/images/ligset-MLXX-1.dark.svg @@ -40,42 +40,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -314,270 +318,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-MLXX-1.light.svg b/images/ligset-MLXX-1.light.svg index bf7775043f..2672af68fd 100644 --- a/images/ligset-MLXX-1.light.svg +++ b/images/ligset-MLXX-1.light.svg @@ -40,42 +40,46 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -314,270 +318,270 @@ - + - + - - + + - + - + - + - - + + - - + + - + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-MTLB-1.dark.svg b/images/ligset-MTLB-1.dark.svg index c5f2c20ef5..bfd28f7d30 100644 --- a/images/ligset-MTLB-1.dark.svg +++ b/images/ligset-MTLB-1.dark.svg @@ -71,9 +71,12 @@ - - + + + + + @@ -532,15 +535,15 @@ - - - + + + - - + + @@ -573,9 +576,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-MTLB-1.light.svg b/images/ligset-MTLB-1.light.svg index 6dcfff1f16..5b9b17436f 100644 --- a/images/ligset-MTLB-1.light.svg +++ b/images/ligset-MTLB-1.light.svg @@ -71,9 +71,12 @@ - - + + + + + @@ -532,15 +535,15 @@ - - - + + + - - + + @@ -573,9 +576,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-PHPX-1.dark.svg b/images/ligset-PHPX-1.dark.svg index 4d518072ee..e0fd5337e6 100644 --- a/images/ligset-PHPX-1.dark.svg +++ b/images/ligset-PHPX-1.dark.svg @@ -5,78 +5,79 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -97,15 +98,15 @@ - - + + - - - + + + @@ -120,465 +121,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-PHPX-1.light.svg b/images/ligset-PHPX-1.light.svg index d993e0f77d..29df792519 100644 --- a/images/ligset-PHPX-1.light.svg +++ b/images/ligset-PHPX-1.light.svg @@ -5,78 +5,79 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -97,15 +98,15 @@ - - + + - - - + + + @@ -120,465 +121,465 @@ - - + + - - - + + + - - - + + + - - - - + + + + - - + + - + - - + + - + - + - + - + - - + + - - - + + + - + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - + + - - - + + + - + - - + + - - - + + + - - - - + + + + - - - - - + + + + + - - - - + + + + - - - + + + - - - - + + + + - - - - - + + + + + - - + + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - - + + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-PURS-1.dark.svg b/images/ligset-PURS-1.dark.svg index 4ca0f13a38..5fc7b9f12e 100644 --- a/images/ligset-PURS-1.dark.svg +++ b/images/ligset-PURS-1.dark.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-PURS-1.light.svg b/images/ligset-PURS-1.light.svg index 087a61175b..dc2ec4b6c7 100644 --- a/images/ligset-PURS-1.light.svg +++ b/images/ligset-PURS-1.light.svg @@ -51,48 +51,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -331,270 +334,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-RAKU-1.dark.svg b/images/ligset-RAKU-1.dark.svg index 89cde373c7..70f43c199b 100644 --- a/images/ligset-RAKU-1.dark.svg +++ b/images/ligset-RAKU-1.dark.svg @@ -42,43 +42,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,57 +321,57 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + @@ -377,210 +381,210 @@ - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-RAKU-1.light.svg b/images/ligset-RAKU-1.light.svg index f77da74c50..e2f6683575 100644 --- a/images/ligset-RAKU-1.light.svg +++ b/images/ligset-RAKU-1.light.svg @@ -42,43 +42,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -317,57 +321,57 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + @@ -377,210 +381,210 @@ - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-SWFT-1.dark.svg b/images/ligset-SWFT-1.dark.svg index e408593194..cf1cd32e02 100644 --- a/images/ligset-SWFT-1.dark.svg +++ b/images/ligset-SWFT-1.dark.svg @@ -51,46 +51,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -329,270 +333,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-SWFT-1.light.svg b/images/ligset-SWFT-1.light.svg index 2483961e03..06d5373a4b 100644 --- a/images/ligset-SWFT-1.light.svg +++ b/images/ligset-SWFT-1.light.svg @@ -51,46 +51,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -329,270 +333,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - + + + - + - - + + - - + + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-VRLG-1.dark.svg b/images/ligset-VRLG-1.dark.svg index 43058eb2cc..341538d6bf 100644 --- a/images/ligset-VRLG-1.dark.svg +++ b/images/ligset-VRLG-1.dark.svg @@ -75,9 +75,12 @@ - - + + + + + @@ -536,15 +539,15 @@ - - - + + + - - + + @@ -577,9 +580,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-VRLG-1.light.svg b/images/ligset-VRLG-1.light.svg index 79f7aa9f1c..7f5e5471ec 100644 --- a/images/ligset-VRLG-1.light.svg +++ b/images/ligset-VRLG-1.light.svg @@ -75,9 +75,12 @@ - - + + + + + @@ -536,15 +539,15 @@ - - - + + + - - + + @@ -577,9 +580,9 @@ - - - + + + \ No newline at end of file diff --git a/images/ligset-WFLM-1.dark.svg b/images/ligset-WFLM-1.dark.svg index 8307e182ca..4dc8d6bb8f 100644 --- a/images/ligset-WFLM-1.dark.svg +++ b/images/ligset-WFLM-1.dark.svg @@ -40,50 +40,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -322,270 +326,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-WFLM-1.light.svg b/images/ligset-WFLM-1.light.svg index c715da8e73..8cdd29f48f 100644 --- a/images/ligset-WFLM-1.light.svg +++ b/images/ligset-WFLM-1.light.svg @@ -40,50 +40,54 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -322,270 +326,270 @@ - + - + - - + + - + - + - + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - - - + + + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-calt-1.dark.svg b/images/ligset-calt-1.dark.svg index 804abd1854..8742338ce7 100644 --- a/images/ligset-calt-1.dark.svg +++ b/images/ligset-calt-1.dark.svg @@ -42,51 +42,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + @@ -325,270 +324,270 @@ - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/ligset-calt-1.light.svg b/images/ligset-calt-1.light.svg index e518849e01..c1e811b0fb 100644 --- a/images/ligset-calt-1.light.svg +++ b/images/ligset-calt-1.light.svg @@ -42,51 +42,50 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - + + + + + @@ -325,270 +324,270 @@ - + - + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - + - + - - + + - - - + + + - - - + + + - - - - + + + + - + - + - + - + - + - - + + - + - + - + - - + + - - - + + + - - + + - + - + - + - - + + - + - + - + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - + - + - - - + + + - - - - + + + + \ No newline at end of file diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index 4e04124c34..1bd91ccd52 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index b36a287150..92f839b93c 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index c832051c18..ae1212d54e 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index 4d9a8fbdee..5244fb8ecd 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index ddb0c5f1e5..88ed065944 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -48,7 +48,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 886ef593d2..3a58267df8 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -48,7 +48,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index 4e04124c34..1bd91ccd52 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index b36a287150..92f839b93c 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index c832051c18..ae1212d54e 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index 4d9a8fbdee..5244fb8ecd 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index ddb0c5f1e5..88ed065944 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -48,7 +48,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 886ef593d2..3a58267df8 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -48,7 +48,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index 4e04124c34..1bd91ccd52 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index b36a287150..92f839b93c 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index c832051c18..ae1212d54e 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index 4d9a8fbdee..5244fb8ecd 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index ddb0c5f1e5..88ed065944 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -48,7 +48,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 886ef593d2..3a58267df8 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -48,7 +48,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 1aeb7d1a31..1b8a987d75 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -67,7 +67,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index cbdf0b7ecd..bff97e4c3e 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -67,7 +67,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 7780bde478..6c4b3d466c 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -48,7 +48,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 8ac57ed7e7..6f19813e5d 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -48,7 +48,7 @@ - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index ce7aec1605..0aea7dc29a 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -67,7 +67,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index 51862938c8..c45d7559a2 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -67,7 +67,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index cafa3fad52..84fa6609ef 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index 8e328d5900..ecb57f0456 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -48,7 +48,7 @@ - + @@ -67,7 +67,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index f3a9607271..7f6f004a7c 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -48,7 +48,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 9118a417fb..22b5c29762 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -48,7 +48,7 @@ - + diff --git a/package-lock.json b/package-lock.json index 03cc5b81bd..1c6574cf17 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iosevka", - "version": "28.0.0-alpha.2", + "version": "28.0.0-beta.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "iosevka", - "version": "28.0.0-alpha.2", + "version": "28.0.0-beta.1", "dependencies": { "@iarna/toml": "^2.2.5", "@msgpack/msgpack": "^2.8.0", diff --git a/package.json b/package.json index 01547e67b9..ee099cffc2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "28.0.0-alpha.2", + "version": "28.0.0-beta.1", "main": "./font-src/index.js", "scripts": { "build": "verda -f verdafile.mjs", diff --git a/params/ligation-set.toml b/params/ligation-set.toml index 58acd28fa2..729992e800 100644 --- a/params/ligation-set.toml +++ b/params/ligation-set.toml @@ -1,284 +1,257 @@ [simple.center-ops] -ligGroup = 'center-ops' samples = [":=", ":-", ":+", "<*", "<*>", "*>", "+:", "-:", "=:", "<***>", "<:", ":>", "*-", "-*", "*=", "=*", "*+", "+*"] desc = 'Vertically align some of the operators (like `*`) to the center position it is before or after a "center" operator (like `+`)' [simple.center-op-trigger-plus-minus-l] -ligGroup = 'center-op-trigger-plus-minus-l' samples = ["*+", "*-", ":+", ":-", ".+", ".-"] desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at left to be centered' [simple.center-op-trigger-plus-minus-r] -ligGroup = 'center-op-trigger-plus-minus-r' samples = ["+*", "-*", "+:", "-:", "+.", "-."] desc = 'Plus (`+`) and Minus (`-`) will trigger other operator characters at right to be centered' [simple.center-op-trigger-equal-l] -ligGroup = 'center-op-trigger-equal-l' samples = ["*=", ":=", ".="] desc = 'Equal (`=`) will trigger other operator characters at left to be centered' [simple.center-op-trigger-equal-r] -ligGroup = 'center-op-trigger-equal-r' samples = ["=*", "=:", "=."] desc = 'Equal (`=`) will trigger other operator characters at right to be centered' [simple.center-op-trigger-bar-l] -ligGroup = 'center-op-trigger-bar-l' samples = ["*|", ":|"] desc = 'Bars (`|`) will trigger other operator characters at left to be centered' [simple.center-op-trigger-bar-r] -ligGroup = 'center-op-trigger-bar-r' samples = ["|*", "|:"] desc = 'Bars (`|`) will trigger other operator characters at right to be centered' [simple.center-op-trigger-angle-inside] -ligGroup = 'center-op-trigger-angle-inside' samples = ["<:", "<:>", ":>", "<*", "<*>", "*>", "<.", "<.>", ".>"] desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at inside to be centered' [simple.center-op-trigger-angle-outside] -ligGroup = 'center-op-trigger-angle-outside' samples = [">*", "*<"] desc = 'Less (`<`) and Greater (`>`) will trigger other operator characters at outside to be centered' [simple.center-op-influence-dot] -ligGroup = "center-op-influence-dot" samples = ["<.", "<.>", ".>"] desc = 'Treat dot (`.`) as operator and perform chained centering' [simple.center-op-influence-colon] -ligGroup = "center-op-influence-colon" samples = ["<:", "<:>", ":>", ":=", "=:", ":-", "-:"] desc = 'Treat colon (`:`) as operator and perform chained centering' [simple.arrow-l] -ligGroup = "arrow-l" -samples = ["<--", "<---", "<<-", "<-", "<->", "<-->", "<--->", "<---->", "<=", "<==", "<===", "<<=", "<=>", "<==>", "<===>", "<====>", "<~~", "<~", "<~>", "<=<", "<-<"] +samples = ["<--", "<---", "<<-", "<-", "<-->", "<--->", "<---->", "<=", "<==", "<===", "<<=", "<==>", "<===>", "<====>", "<~~", "<~", "<=<", "<-<"] desc = 'Enable ligation set that forms left-pointing arrows' [simple.arrow-r] -ligGroup = "arrow-r" -samples = ["->", "->>", "-->", "--->", "<->", "<-->", "<--->", "<---->", "=>", "=>>", "==>", "===>", "<=>", "<==>", "<===>", "<====>", "<~>", "~>", "~~>", "-------->", ">=>", ">->"] +samples = ["->", "->>", "-->", "--->", "<-->", "<--->", "<---->", "=>", "=>>", "==>", "===>", "<==>", "<===>", "<====>", "~>", "~~>", "-------->", ">=>", ">->"] desc = 'Enable ligation set that forms right-pointing arrows' [simple.arrow-lr] -ligGroup = "arrow-lr" samples = ["<->", "<=>", "<~>"] desc = 'Enable ligation set that forms dual-pointing arrows' [simple.counter-arrow-l] -ligGroup = "counter-arrow-l" samples = ["-<<", "-<", "-<-", "=<<", "=<", "=<=", "<=<", "-<<", "-<", "-<-", "=<<", "=<", "=<="] desc = 'Enable ligation that produces left-pointing counter-arrows' [simple.counter-arrow-r] -ligGroup = "counter-arrow-r" samples = ["->-", ">-", ">>-", "=>=", ">=>", "->-", ">-", ">>-", ">>=", "=>="] desc = 'Enable ligation that produces right-pointing counter-arrows' [simple.trig] -ligGroup = "trig" samples = ["<|", "<|>", "|>"] desc = 'Enable ligation for `<|`, `|>` , `<||`, and other bar-and-angle-bracket symbols' [simple.eqeqeq] -ligGroup = "eqeqeq" samples = ["==="] sampleRank = 2 desc = 'Enable special ligation for `===` with triple lines' [simple.eqeq] -ligGroup = "eqeq" samples = ["==", "==="] desc = 'Enable ligation for `==` and `===`' [simple.lteq] -ligGroup = "lteq" samples = ["<="] sampleRank = 2 desc = 'Enable ligation for `<=` as less-than-or-equal sign' [simple.eqlt] -ligGroup = "eqlt" samples = ["=<"] sampleRank = 2 desc = 'Enable ligation for `=<` as less-than-or-equal sign' [simple.gteq] -ligGroup = "gteq" samples = [">="] sampleRank = 2 desc = 'Enable ligation for `>=` as greater-than-or-equal sign' [simple.lteq-separate] -ligGroup = "lteq-separate" samples = ["<="] sampleRank = 3 desc = 'Display `<=` as separate shape' [simple.eqlt-separate] -ligGroup = "eqlt-separate" samples = ["=<"] sampleRank = 3 desc = 'Display `=<` as separate shape' [simple.gteq-separate] -ligGroup = "gteq-separate" samples = [">="] sampleRank = 3 desc = 'Display `>=` as separate shape' [simple.exeqeqeq] -ligGroup = "exeqeqeq" samples = ["!==="] sampleRank = 3 desc = 'Enable special ligation for `!===` with triple lines' [simple.exeqeq] -ligGroup = "exeqeq" samples = ["!=="] sampleRank = 3 desc = 'Enable special ligation for `!==` with triple lines' [simple.eqexeq] -ligGroup = "eqexeq" samples = ["=!="] desc = 'Enable special ligation for `=!=` with triple lines' [simple.eqexeq-dl] -ligGroup = "eqexeq-dl" samples = ["=!="] desc = 'Enable special ligation for `=!=` with double lines' [simple.exeq] -ligGroup = "exeq" samples = ["!=", "!==", "!==="] desc = 'Enable ligation for `!=` and `!==`' [simple.tildeeq] -ligGroup = "tildeeq" samples = ["~="] desc = 'Enable ligation for `~=` as inequality' [simple.eqslasheq] -ligGroup = "eqslasheq" samples = ["=/="] sampleRank = 2 desc = 'Enable special triple-line ligation for `=/=` as inequality' [simple.slasheq] -ligGroup = "slasheq" samples = ["/=", "=/="] desc = 'Enable ligation for `/=` and `=/=` as inequality' [simple.ltgt-ne] -ligGroup = "ltgt-ne" samples = ["<>"] sampleRank = 2 desc = 'Enable ligation for `<>` as inequality' [simple.ltgt-diamond] -ligGroup = "ltgt-diamond" samples = ["<>"] desc = 'Enable ligation for `<>` as diamond' [simple.ltgt-diamond-tag] -ligGroup = "ltgt-diamond-tag" samples = ["<>"] sampleRank = 3 desc = 'Enable ligation for `<>` as diamond-shaped empty HTML/XML tag' [simple.ltgt-slash-tag] -ligGroup = "ltgt-slash-tag" samples = ["", ""] sampleRank = 2 desc = 'Enable ligation for `` and ``' [simple.brst] -ligGroup = "brst" samples = ["(*", "*)", "(* comm *)"] desc = 'Center asterisk in `(*` and `*)`' [simple.slash-asterisk] -ligGroup = "slash-asterisk" samples = ["/*", "*/", "/* comm */"] desc = 'Shift asterisk in `/*` and `*/`' -[simple.plusplus] -ligGroup = "plusplus" -samples = ["++", "+++"] -desc = 'Enable ligation for `++` and further plus-chaining' - [simple.kern-dotty] -ligGroup = "kern-dotty" samples = ["::", ":::"] desc = 'Move connecting dotty punctuations closer, like for `::`, `:::` and `...`' [simple.kern-bars] -ligGroup = "kern-bars" samples = ["||", "|||"] desc = 'Move consecutive bars closer, like for `||`, `|||` and `//`' [simple.logic] -ligGroup = "logic" samples = ["/\\", "\\/", "|-", "-|"] desc = 'Enable ligation for `/\` and `\/`' [simple.llgg] -ligGroup = "llgg" samples = ["<<", ">>", "<<<", ">>>"] desc = 'Enable ligation for `<<`, `>>` and other angle-bracket chaining' [simple.llggeq] -ligGroup = "llggeq" samples = ["<<=", ">>="] sampleRank = 2 desc = 'Enable ligation for `<<=`, `>>=` as shift operator' [simple.html-comment] -ligGroup = "html-comment" samples = [" -# Package list of Release 28.0.0-beta.1 +# Package list of Release 28.0.0-beta.2 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index 4f23727f2a..7a33d82df3 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -438d3c86f21d0314705fb4f3c17de7128286305ef73dd76dcb2d90ea663a7d3f undefined -9a4438e0128e60d787000e7ed4ea0381caea9f96dc9c4ed038eba9c86e8566a4 undefined -eb452ad518e622a8d38d889acc74abd533d4a7bcda5e7f6d827c2ecb478011a2 undefined -47cd9a141918427bc396b7a9100fab9970a351fb49a869ce7e2814d105de6955 undefined -3413751d4f980a41814f7b44fe59d57d2fb47f7aef6ecb2af15b851fc92b8444 undefined -c84bc397404712711d951cbc359517d2cad5486cd44c566b1136bddf22435f85 undefined -2868f00efae69e3b30a0af07b8178a1b956fdfba11fa73687345c9cf4e23e504 undefined -129a211f997606b57709c79b99dc4eb126f477852c1422a3f19770b1e8e90a12 undefined -27b30fac875f4cad0a0a4fef380543ecf559c74f0e1210095bfcddc07c6d16d1 undefined -92200ae654933f6452e088344291241fb464f393d0445f5d29388c288f9b34ae undefined -a2fe00de8bef4016b770b25bb9a985178c8d2fc12919b84de25932aefad308cc undefined -ac11f37403c2a672d0cc66bbc92fb07a90836c81888da2b329380899e9a93c26 undefined -e471a101d9a0b0609683df9df2bfb3cd3b97904a5e0833898c7446b9cd0d1092 undefined -2828c10091e5b44cbcfd205b903bdc75f8cb2651c154993776877a666d6aca15 undefined -d1b751e016a78d1a52d6d5dfe22a728588ab00cc960ed543f69d210ed5d8d40f undefined -561b9b3e44ba14e563795abcdd143789b48ec6f3de022194d1eed16e4c274272 undefined -8f6a5db4ab409de339c19366d9eeea52b966c35056a982a0c21e4eb11cdcb081 undefined -be15146f79107065244e212d78dcdd9a01e40e12c5cc736cf20d0b80e98b0415 undefined -851449defa75bb29aa4b40203ef273bc58ceab37b2d1ff9ea9b18cd8f3f2f9d1 undefined -a7bfbf1bc925f170be7a1c0e034b17de419c0962412390f360d8af52c7fa378f undefined -b154bca0571c640b837313c40a0dba47916895339145e1432812e0130b71f992 undefined -aae978f1ef4cdd8fb6dc9fdadd059d4499825067a1fff6acfd124e5f84785029 undefined -a4a0ba6e85b2fdbc300f4767b01106a428bf8b5a52c6b7ea6c7be0803c269bcc undefined -4e7ce5d9b025090590a255cbe09cd9ef0e250e3675d9dc75510fe4faf545c02b undefined -f6c38f86c82a24ff0be7d2158ad250afa7a13031bec31fa98b48b965ae957e78 undefined -adb08fd37612af6473c6c19c4b284176146370ec1811727f99e0de7fccddbd0c undefined -885cd0b37233c57ff9e274f5c6b61371f127fa2c4b3cd493330341abbb13f9e4 undefined -2e4fe764df10dc1c348ef2cfe72dffcb351a66b429a199081eb6a0368b59e1bb undefined -0425d2c36f58dbde551359230dc7d1533037395c15289e706c98f188814dcf89 undefined -7867abbd0648c11bb8dc0c7b2239a2e2929ee172aa1617899a4ca3ddad0219a8 undefined -3dd7e2d813a46af1080977a2647545c8b41ebe90cdfc509df149855b69385097 undefined -51875c11f26585a59103cb787cf6dd3c9c08df137422e167af971e8406f7de84 undefined -6ee5d49eac691590ae684dd9e483bdd29dd00780e4a7bb292022a0a77b3f4b6d undefined -ec29784b7f00903ec45313be62afbb3538f7a848b5e286e57c674cf4c6f892f0 undefined -752013e73bdd9540c8afe3f37b1842384e2ff8dc40f4e12836054bc8c864ebbb undefined -8200c8ca23b05a1dc6740c3bf3c3c9cc4cbc637214d38779ae9d34c6e4e97a9d undefined -6c5f0d6cbf4ce280c8f04cdb0bbb0568f6667a80e1f90f5e7df648b3ea3393ec undefined -450475c80b2061a269f6648ffa10123811e9ac11f5b1f1f211a889a46260ae07 undefined -13a506fe5c4f881fdc1317f8b84f7869757720b00c374dfc6c1c069a6bbce49d undefined -755061515cc8311aea998c6da46f577a0ff810902a50881042340d44cc4b7345 undefined -69cc12cbce8285be959853ac5ad1b3b176394478456895ee5168f34dbfae42be undefined -0dc59e5e81d3b30d1630ea5a723e49e6f74764b32a67d18e5b428f0c0e4c34a4 undefined -e447a6a42965e46a1e9d5738f53b78b1a1e2b36ba9ebb08c05966cf9ae7a1d9a undefined -269e61156225553129d3c160499d622711c05260c19c9f8457e8ffdb7c336c7c undefined -2e6ca921182f9dd9bfedf702142d2d4460d79301a2b5e278b974f3bfb1ccd3f8 undefined -0259cf84ca5239e759974aa58309a0abc364c586e44766a5e065845385ca8165 undefined -e96bd010798bbdab98a5ab916e4a6ba83af487bcf8241f8d413b25ac2bc5d0de undefined -c5dc627d515740dfbaef820241bf6b062f2e79d4998a02b13ec7c7d2201d6c84 undefined -6a373cd42bdd6a5a77963d67339482f42c500ac1054d25713b6291f5d0c99e7b undefined -027d5d81b3a7de1f497114ab9617d96615d0926d8ae80184d4425bdd993d4ac0 undefined -282cbc1054aef84a8dd16ed6ae81c45b6255a12300eece65e3222a70878d2427 undefined -3e9fadf1801e2a51f755e540c35f4d3727f62474adbd4320048be38aec93605a undefined -a78ff552fa512f41d96288b6af53678a78109a50372b109346c5451799b8f660 undefined -b0b6581d85e484c746cac858c2e44735edd6accd371655314006be28093adc71 undefined -fb5f0e46f1c15842e23524707a4878c2e2afd29ced7ce8e9698ec307e661fe20 undefined -15a2f3d93df9a3a733fedaf01583938f50ec7311982f29f78fc7222faf827d9c undefined -13f8fe3435b5649c99286bb996cbc5bfe90871c7e156873ad740143f5286f0dc undefined -7534a8962053e32ae5ea24c12ac2f4dd6881f1d431077a65b46e5e61904aed66 undefined -13864ada637bd4f84c0ed42479313401e19885b1f9e32f5461c570f0f48d0b74 undefined -9da34a8fd8f7a61205237c1cfa650210bebbd45e3743be202602a6fc06526551 undefined -fa7f26e95b02f99d6422752bb5fa6cb4fdcf277db36d9dbe501494ff66b0c6f3 undefined -cfe0f062b05c1cc8ad8cd9f090284e611299ecf14a03f4f2ebad438cf1dcc9e5 undefined -dc099f2173ac8b11cdf7bfa7a7c0e97990c59459ab9afc0267a4e2327b5ac468 undefined -3d0952f1abced25ad861a4f92d92ae0b3954cb291545685edf767054558542a0 undefined -808d397e20367057c923fedbd1ee25d512e0971da5f4a5b9b7090ce605fc70c2 undefined -4615e6818a292ba1dc3a1d975be12f01d0930d9ba9e33291a23aa9585e8c2018 undefined -0effe08f7a81d70376f3f65b29459ed0e03d021a0dcede372e69a844335edb0e undefined -b3011c7fb8943d2c95d8cb51d2c00875b4f594a8340cb9b169bb9bf88627a394 undefined -5de7b96760019df8e482ebd742c2a57bfc12354df395344f3e24e788e2bb04e2 undefined -566af7c9b827b3a4e76940613c8922799adfd26eeb61615fd8c55fa8e3477305 undefined -75824ac960e9a958a9d3039c81cbe0e001223f080340eea738d12fc5e261d5f8 undefined -b9432c6544661ab0ff26219cdfbd11653bc297ae06dffb9de15c5843f629e951 undefined -0084d4aece2e02dd3b4391df378691c1918a467bbe39c1c080302f32078b2c7f undefined -83d4f2cdbb81469a6ba7931ba6231f2af4dd33c0c99e05e965e29ed86b9f7f9a undefined -696e986e44dc11ca36c1d1bb382df900178816b02f1296cd584fd11deaf8fcd9 undefined -5977a5b1d7abe6563f041c3f481f01bd7d159d5bbcf104a5989fead1e27c7cbb undefined -dd7f69be9d97fee3bdb35b929522b7075805acad5dd565cd8bcdb83bd2245bf5 undefined -f63ae0194a38cf43236ebb704d67ef99ea5f6b468cc39b9a0fafb8c87ba09fa6 undefined -277b80c451fc9996c089a9f8361ce0b7ebe1a12c3ce0f5923f4475df9d884f14 undefined -967fa6e0460b42a75f44d93ef8ab687a87a88f007fcf8995e793ce464ec58320 undefined -d7e57d5f9b5a31ab5d9a35def9ad8be53f9904334b09229ef56043c71a29e113 undefined -7c812bee574018dc56ebf2b065f13ec2f983a7f69107ad76e8ecd3005a61cb73 undefined -0b1664d4fb54666c6af83561bd534a4303aad826a1b02cd64debc6391f33b04c undefined -c7ad2ec6f29e87f884b7a693d94ac32b1deaa04777b12b98e4c235b116b387c2 undefined -d94d5e2c7662fe03c84ec11de66185c451a78d599fe3408686c2bb186578c2bb undefined -fb2e1f0f147bc719f1409d91d13c6f3274ca8bc3bcd76d978dd8a68cc7b13708 undefined -0f88a2a71f11af199a2fe08ed053d9c09e9f39e5ba9e326339cb08abadbed422 undefined -82edd7f5d74c6332e4b4d597fe2f228581d7738729242ef81d84a3eec17bae41 undefined -e0549685d343d0645415058d6e53aa5a285a72a665d577ddf46118e6b47070a7 undefined -706a76a5a66dd3c97790acf42fe09891dd802b9ac1df648b730814fd92d1dbd9 undefined -0aa13ee39a2a0fc3aeb7b2bbbe7ea20ceda1ae753f2099c3311ce24044feb8fd undefined -b10f0f17ae13827c15c0644f01fafaa6adc5176ea81d33cace00ea2f6199b263 undefined -dcc05db2b6497ab28c2563e925897605f324ac99c81b56b866d8cfa94b55d750 undefined -ec00df21a7fe6908b2ff38a86672e0e6afdb07728871deabcce62bc393e54e4f undefined -3dc923cd3d68b6d0c14181c5df84ec5ede1c17cd7e054cd373086af20def5ea7 undefined -60f7f13a07439e3a21d012317f882f661feab20070ab009391237d62b6325870 undefined -b933d1489cd0f4254677e91c6fc5493ca5db6cba92be550f77b54e1dc1ef7b09 undefined -560952c1432c38567492926eb31a5d31e60307200d020d41f0d751e45121453c undefined -9a5b2ebf748d4a198bfb48ecd45e36ad5c5da7d6b04dc4583db319a5004f50ff undefined -605b35543b0d038240483e7a042b4f0236af271158f6ad73fe367d56d560e028 undefined -18bf669536c14cb19ea8ce955b0c97a1f0578e92ca4fa8c74f6533ce140b839c undefined -fa29fff4dfaa4c3672d3f49b62c4a380a397f025bfe77a17603755f3e7113bb8 undefined -52f16ccdcb3a875201746d98f6924c9039bbc95ee19a1fb2a26c8a754ca2438b undefined -50233b46dcbf20d426725caba6698fdbebcf467c8b6f6c096da55974e8e8f5d2 undefined -646de524ed08449f4896086df4954a26aa9acd9d5fb6c2035b61fcb86522cc0c undefined -f1a23facae9620d3c05c868476d0bad1326cceb1255fb5d46feb24cb9bd38c0d undefined -adfd719f95b170add96594d6c0f7e0eb03215bd19edbba97ce8e8cacf2bcde76 undefined -c69db88bc89e7abf8a0423188e2b0a74f9bf46d17a3f25b62dc1669e8c3b3241 undefined -debfb79baf3af2a6bcd0941821a6c84b75f7dceb725f2ebf5b5d6ccd35b4058e undefined -7e411b98912c7dac122d1afc23911d05ae33bfd086b7519b476e5e1683284698 undefined -615c9e15d6ee80ac005ac02678ca5decbe10d91289c70ed729f26785967695d3 undefined -fe9dae4f57c3773f2a3f5fb448cae563c06b2d6a3f95da276d1aa6e7d23cc73c undefined -e7a6b66123f7bc6a397f9f21e1ec88898d6b3d5ef2c624181bf6cd18d4475bdd undefined -2a6782654423a8c58c09b65f0b3ecd6f1d2afab0c98e8d8475c20b4eb6cfe3ec undefined -2d6000b41f2728f9c799cc4cb087d9964d541d7733089962067977f531104ac4 undefined -c514d544677a659cbf2d6f077af8b6e5e6460237b8e91a71dab803c32a984bc1 undefined -c82a4ad6bf423de7300394f3162f3fbd0e10e6f9e04f43d80f97894aec2269d6 undefined -b220d4491445f992d4d195e1a84b4091a4a3fe55c62f0a6c3683a040f6ff0091 undefined -ce3f314712ed5bafdc41c40326b04ebf08dc22d863af469966e307e7f6cb01aa undefined -681290e7866c48c235767bd96a0fbabddaca822faabe993ae7bdcbb2405dcd73 undefined -5e7f1c5bd1bba02990d65963331b3ed952764f0ef7605b89004bee11fa7d553e undefined -879366a58ddd764fa0b62a4f51784dd04b01837bca12926e68183ca95d9d38da undefined -988fde80bf7b6d7c904d946d342ebf88150d9f17485431232dfdae7fa23d174e undefined -14d23550c451b443d65a918b83965b7d789ab0ffa3bc99540ec91f80618171e9 undefined -588a7f60154bec5e71b8453ee2bf1592bae1995d97e16cec52d0b39146f15be2 undefined -819e11c41ede35388312d50408d105b4094b9944f045e8443e47ff917b4a823c undefined -e352c6cbc62ed2f7abfe1b74237b20b2ea6229ebeea093a7c6629b2f0b1f2624 undefined -dc4bbdb1234dad52618331dc450b2dfa73e747184228ab34f6f9c4daf22f8ce4 undefined -22f5e9a471bd470c92a038511fe41e4e4dbe974eddf5d95d136027968f047b04 undefined -36a7e585f5d5345be02147592ea4864cac43e9a8e98123bb5f2d0eed02c3c505 undefined -e9c092d8247e435d1d200492ecd74d771096e7a48c4e38fcc66653cc1d690468 undefined -37602a942c7cff17a378de3b81ea06bfcf433efce465ea1303df83f51a1136d8 undefined -af2ef1acbb8ff80f9db96ad1ad105930443b73c2c2a723a2d5d5721c5a7a623f undefined -061c2337eefdcf190d21e3008fe9851a53d1c4cbc74faa3e5028189274d5a81e undefined -9472b79d7d6a2e6361ade9a56afb97f06e4d626ec98742768ed5d4184be31371 undefined -1afc0c737c83c9258d05da11f8fcd2c0fd8a8828545157252bf405aeded6cf94 undefined -6090ec805e722d06bfb70974fb2876055a965d1f631fc7550f84493f7459a50a undefined -87556025d934b036e9e8deff41361f36274159f56993aed834828a24f0906b51 undefined -64b020b04abe248df7bbc8b7151faa25f3c3271225b6f71b0ae7952449f23f2e undefined -411495a691a054ad157b5f31440abe3840153687d5cdbba9cfa3d99d12ac23f1 undefined -c7eb5e12f2dc4e2aa9d41eb119666faf6ee611b51f2dbdd54c74fc0e1717b564 undefined -008f8c924c967ca07855fc23f2662db72a1425eee8116d2df2810fd7fa7bfbad undefined -07295574a0df59bf2b6ba8a8e69b0d9bb74646768334412e28483df921fe6270 undefined -2ee598b8248a26f66153cc4152f457618b1b3fd943eb8d55cc53f9670358fa29 undefined -c998f8b2f2f29931f6fe82cce02bb83274388bd33dc44c59ccb873b7d308c9a0 undefined -47f24ace3e7a467fb5ea112403b7aad90ccbd3fc3aabff4778569fa8f8f11bd1 undefined -659e3b0b8f630b8d4d2e56e5482c81e920f4462f87345aaab73a9b0f8e251bc5 undefined -68d608d00c595943a9ab8d46a9eda7f55172ac9761beab183d284aff6c90cb7b undefined -7f10dcf15d80f65295c5e0977a1f16b074ca0dab7467abc84a1c9fb79a28d016 undefined -045240b1402f5856fc1221b47914a0cb1f75e2254dea8f217f9c37022b686df2 undefined -7f127066a8dd40b586f02b7d5554151461fad3590c1e7115caf8a68ce45b5b68 undefined -a9792f1237e8bb1e9f27f1f12e6537e2346914dad7bc27f5d738553d7e869b94 undefined -820a7dcf57927db4e74e069a5db60cce739b3a12445ae39b6e2fc279099136f4 undefined -647247b1ecde057f6dd02ea91da763b24372de263fa44e70addbb17679f2c4ca undefined -8d558d92b6edbccd084520175586f9e5258482309b92cb00b1ffc5f5911099b6 undefined -e96638f8988bfd293716ecb64b4879f5333634b1eb2fc15a2dd9e32fbd0f542b undefined -e021cd72ef76a50462fb2aae6af74b12b476a272eec0c0f7dab2e1e76f286fa4 undefined -df232553d4f21868065dd96b1e652cd5ba66cc0bcb28feb68b96f47e3983ca3f undefined -dfe95de04b13773470f40e015b58fb02a2009c767b3821ea326ee6b12a4f97f0 undefined -600589969eb5d56e1593478e71a30bc209433ab8deda03e9940739dfa4ad9dd5 undefined -2de4dbff2950ba01ab070f30a1e0ea94dbea95a076545b0a892d70e5c8dfbff1 undefined -98041f2df2f946660c534a48b5e979b6723d083fe2fe79a9c89c1c84580c8943 undefined -10bfcc831908489bd2c51b30ced48003ba3d0db1def3682c0cafce0a0c396ec2 undefined -fea3939735f8336d3d599e9b489caafa41ede37cb9e57ab09cd89b8e00ce62d0 undefined -d2621787ca011aaf71b7922d569a2efbb3c1217ee8e5e39594410ce0b9ab491c undefined -25d9f6703bf66251e250fde4768d7af05bb452d6b75fc7306cb00d3b3ec91454 undefined -3ee3ce4bdd75559ef0627a351bbee938cf2c1a9f5b196fefa13621c2accec8d7 undefined -2fbed89e68d82fc545fd5c8c0a4946c2b8473717ea27534ae66b02b7f2beba08 undefined -8bbc734119ce3075517945ff5668a72822bd2e59684db9c5f45f5cc7000a5765 undefined -0c496c09adbee71689ba8c7cdc16d889c295e043c4675350a0f41773c9a6033d undefined -ee99ccb42786aa924e6d93a8081e02832e051ff584ec539689c17806e9d29c91 undefined -e242d92e937c7b71cc44a3f257ab4164ec275bdff84c7b5992fb9b9a618ba266 undefined -63d6d3daf9b408dba6e6827ac19ac7b4d47593063e1980e94e2b93a7b819d460 undefined -aea74c6281c30fc4f54f5d472b4ad6a4da453195bf0ab3b387a195b2cecd0f3e undefined -43fbc8ea327d62c6d2cef9e40ca497092962fb0f338721948b008ba27120476e undefined -6c2c059b78606a9bff256129396f081717eb1040e8c1c4c62886a9deb46df885 undefined -005c9b782383622859fdec43d02e4217b1dab00e1cc6e15a4feb34d216b33ce0 undefined -511958adec2e7ba2e2cae7c5d9e37d4221f86e9ec2636c434ed2262cb3ee72a3 undefined -ab9823e3cd9c895e91b7e68a75558dfb0acf44c433955482b4b13ce8b13c2dec undefined -355d1b1c44f597e2adcc6e8c7f2cf758d9ab619d3be405ec94a27294e6c0db4e undefined -b95dfe410d0763dd0ffe5775a7ebe4e47715f41b5a0e85218f67dc5c6586eb44 undefined -68593c969d58fbb664e91455e0230adc4659718214f7799f52c41c6bd5017d8d undefined -556a56436a65e280e147ee6436a692e63226c5c0a5e10f7db5bff9e846544ef1 undefined -a0d32c247c77c08cb77839da56717caaaae30abdd4aea9bbcadb19fd38d065c2 undefined -d6891beddbc136fa36651a11fc0bd42616f69cc63e4958a8d81fc5c3a911d3a9 undefined -64d6fc94e2c1f2c08dbc13d9bd64cd1333175f89168ac30e2f1f0ec238e9b8d6 undefined -c5023931d58588d3a40e7ac4ecfbdd387be8ca72f2b6cebbf4de72171e81e1ee undefined -210a58adf456b3bdd6d37bde7d7111b2b6010572e8872c1aba1a301b52514557 undefined -572b04fa5cf39f637205f27ede9c683a4202c55fb68a8fb8ab209a73ebcc9afb undefined -b0966457c95673c7b38033dab35f493aff769ed6dbe4f3931a505d58223cfcae undefined -212fd3aaf6a3e62c8c26836c6283f896bbde7f603f64c63a7591fbee11137cb3 undefined -51a989263fdeb42e5a6e1956cc76fc14950ee1d846df8dec9efaeb3a102a7cff undefined -f708e71a2a0e7250e6e79221630a9c7207d80629349623f812087db3848d83b6 undefined -3ebc6dfb22146e498695b5e9e8f5d72c2594e638ccd2a406bf49afa37822da22 undefined -e9d00b1d80f07b6bc21be970295d8eb5af3b760f12b65a0e203f843f360ad8fa undefined -c92bf0ba94a4425d4d51d4f59e2d2d3caf83bcb84a0c6b5c21d627b22150a42a undefined -bde66286aef74d41dcad13c6dfa34c92bff271b798674f90a108d84a751f8a9d undefined -c587ccab037642bca1ad1ffecc17f945ce58baa84ecfcdc4653666af11b1cf81 undefined -283ddc025e1bfef86361cdd9f9ac0a96596ab400c9e26ac6fa19264337ea1e2f undefined -49c66c6ad2d3d46cfb93ed5700482e0d4c39d4ad5daa1734ab34b111ead8bb28 undefined -55caad1e54a579f7a987358c9770eb7294d75bc9501e22f84c079ae11d53e74f undefined -a94d9b015d200f9fe9083874faae33cb4c012abcd62284e93bd3a5c422d3ed21 undefined -fb4ad4b1a3b367c020031a50025ca354c27294d009571c95a1a25d443b210e9a undefined -7489f1a711a793540372483020b9d792c4ba7acca422f087f518cd4ecff33b3a undefined -baba65f68b7d1e61bdb795ee96ef416c54c4f1d128b823231b340ca1b1726f34 undefined -779740f7837f64ed0b02c9a9c49c38f427a3ded1166a5b3bcc98d5600174d686 undefined -c7769a1a105ae3b834d941d05692e4c449bb6ad2124e59469190278b67b752cb undefined -b1819fda69e8cc456775d4280679246f63a46ab77b7b886f22278d985d0e105a undefined -437f6c865e42d0927a2dcfc55dbdbb9afb30cfd95feb99ef944979246d474f57 undefined -1f9616e943b4ab2d83683197ccb5d9f3543cc66b92f16440dd7663c346acca99 undefined -5ec4e2403004234353bff29eb1188700ada52f4e3b78127e29667bce7861b3e8 undefined -42aeda93c68c0c96eccb8aeb95dfe4d66e231e36c5e7b1c1f7aef0a220d3ec75 undefined -dfd38b2a1442d297aed73a597ec74e9896587e9a5100bf41d84bbc9d82f06e48 undefined -db2c4b4c2853bd43d2f7dd7162c78a88926f1a0747c79744a37707ea91d1ed51 undefined -51bd723a5f8ea40d2a2b736fb61697988868b9c28f8f361131d8f5f9a288f14b undefined -6795cfbd5d2a5a0150f9160a49d7a229a29d60c7df832eafe806936048a1d27d undefined -7eea9412bcfa796bb42f40b33ce6088c3d15a21872628f021b075084afdfdfd8 undefined -210aaa8caf40b949080d996b16137d4f5defa5e2f7a87d96a817aa9bc76f1dcf undefined -af457ebc2b209cd70040922ecb4e1ea85116b07f92ff03feb6dfe3a591b01bc5 undefined -bff27239d863f92c547748d4c58908ae6b7171b783e6fef1b00aac6fcc564465 undefined -e1537b372c070bfe7f559707f4f0126d1435e7b85c24fecd687d4b2fca36a6fb undefined -86dadd0998074c5546b59aa7ea6903aa07ff5c469ca5e56cb60b508e97f48aea undefined -18cebbcf88a36bf5a3ca9e05d0c1f83f568a3d4f5eef2b4513c708443b865ec6 undefined -e64bb057911e467105a69515dd3acc4187ff71e7313f23ed32e1be4b5a2c6e19 undefined -4f33aedb5b29d37ffca8932f83cea3e795bf750462427382730b229748a1b2c9 undefined -40add88b2d227ba04a607f5fdbed5982d80e4e25ccc08e63188290cf620549ea undefined -e48118cb49ac0c6e5d47d7071f99fbc0c8eae0e47a2a19d5eeb01a50d8c814e1 undefined -f77a11a9433e0b3d31ddd436034228ecde1f69e64d777a750731ed122dac98b7 undefined -cb8eea59f01c781e638927ebc41509d30e73819a66489568f280ad39d97ba2bc undefined -b4386b1202ff661a9f1b25c1754afd4d059d68f5f3ab22daf269feb45ff6a67a undefined -925d6a76b92deb3b1585d2fb2392fe40255bdf1c3426072128f44705394bbc29 undefined -5789f29e845cdf373fbe429b915e4b4263acee956d1a8bf985ed0f4284b10f97 undefined -0e0d0dd49a13a06851f5499e2d7e0b8c8b66c4e284ebbc11f2c37a175c71c4d6 undefined -72f0fbfdf55261ba9994b85677ca3487451716ef22ea346d185a3cab8d8d418b undefined -022b7f10097b198d31f412a9e160aeb2fe4861f970fbd796cda4a077691b066f undefined -15b6843ec2022e60a7f5f92357f206b99b51619b033438a0c166977112cca1f5 undefined -34b7a1b982f36f5e1297fb459baff4a19d1dc5270a1c65c4a1d5ee7c514c4c38 undefined -7023d3a3037a2d1cacaea9f901ec448f21ae81a685afb7ccfa59bdd48d6cae01 undefined -1c516fbc84598a5c436cb6041a1a0674557f3ece41b43a7f7eb4df5f405d4420 undefined -87193851610d1e7b3fdc61aaa9d8c9a205526bd1f4f28ac75557d4163f70f1b2 undefined -6a4bc8910f4193253599de8f384d5e57b16cceab5697d85150f2086116957895 undefined -ba2a12fb93a790b1f288577bead01ca7566c738a3802adb451240cdda169b363 undefined -535c06a841b598fb727c914e734f902a83754a975c94fc43813ffa77f4863cdc undefined -0f9909f94edc5a3751ea5f3056da043a8c8e0bb23c201adf193b385bf827dd1a undefined -ca4fc1ebfc257642779c60830ee584a77f46aa224ec1ef7226d9d7654c065055 undefined -2332ca72434570e8a84778724d92765db42fd1f60c7fa357975f5831f31cec32 undefined -a8e66d201b40869d713b69dd565b2557d0a41cead2576d9a2b3bbc4ad58632f0 undefined -ba3510d7e85337bbc555e72776f7cda45885ccbb6dc68e0b91eb66e6a0f92e2f undefined -9db18d65695cae6a43afde270008e47da2d44a633677b938f3218e97941bc5c4 undefined -f39fc04fcace052b6fe6d7903d517308a6b7dcdc51999412ddbfd69d1309f9fd undefined -48753a4827b6066ecded0fbdd9c194c1dd9303ba7153fde7b1460398ee8dad7a undefined -12e784aa7a7cb4e5c0d5fc6f380f796a1775dbeba64a4cb37a603bcaf0cb9241 undefined -6194d27add54d0fdb51959221c53466ade8445c37cf90eea15e362c784406ce1 undefined -fc4e2703dd3085432ef7acf6e92997e4fb2bbdecaf16b59acf0b4141df3e1d7c undefined -474b107114590acfe8fb5825e34345694315b832ac0713745b879be74b1b5cd1 undefined -52564d930b5627699f717953dd2eade6e6bc2dbc993812608d59b422ca63ba3e undefined -9a2f237561cd2c2fe78084c325d89c2fe0a98b9fa307ce8bd30621b3211ec97b undefined -2623b6bb2a53c9324f1ebf7d3f421ada79fcc87c929fa4e92bd44c2ee1a16972 undefined -b7c19862bb50263894f723905328e98b8bfa301937fcd80167ca436d5d8097f2 undefined -c840d9caff119d811981381b40e509dd90b292e388aa8235fdbf04918237f0d2 undefined -7d5d8a616df46e7adc74ca598ee0bf742894ae561b35c3f306bc8c9c2b7d2f60 undefined -a2d203cdeaf045deea63d74ea797618e718700955515606fdfc017acea020002 undefined -76fef7f0e9658cf567281f12c0e251557eed316f4db76941f858cbec861c83bf undefined -0274406842d162d78eb9bc25495fb6b0d1a3bc2ee55b57e382ff13dcf0ee2874 undefined -f1891f83175608c29697e1b99dce2057a68ccaee0825c1413d75a9cf494c102c undefined -ffb14aa7e669691227b7872919732cfd17c75224c905f24d25b028aa3fbc9311 undefined -eb7ddb7d0843283a64c6c929cc224d3f59b5c0579b2dc66a3ff336a1c436c126 undefined -5b36928b80dfd336ef6a97ce11331b642426eab021b275ad733279010e4821d3 undefined -29a3784176e02080595dff4fe0a3bd716d85e18bbd4e21f3557948e7bbf268c3 undefined -58d35fe4808408032ace033f0494d0411f2ca56c1936c208a8f933774365affa undefined -3d3abcf5026869e37c96fe5c295443c6c7b631c902719fbefd9283ad04d1ce5b undefined -dfebc46cf4d38704394ca88e6f68e7aa0cd1ac10adace470a6b377e824f06810 undefined -baec04ef9b5cc96089648661ca1cc22f31b5dffa2be38597d7f66ca94c4f7a02 undefined -42f00d4b678b582e4f9c98987c1f236137f310279f13c882d6112e1b1d3e514a undefined -26b16828e45f6638acdf6a2d667055bd9a6b785b49f661146559a772cfe1a6e8 undefined -acb7232c70a6da17b186c6ce56ca70ab5ebfcc07f2732a73c4ee85d9ab7fdbf3 undefined -37ac5378eb8ff5e744d6bd7ae125fa6c5720e688f3550b8b2e45d2f6379994c3 undefined -3b18ba1aa4b53a90ec84bb6bd84740fb21f705008357b4fd4b2e7fb4a179cf3a undefined -e22ebb1371a27a6f2918e12f6b86a767b9366ad29734aabccb7fbf6cc8cf0645 undefined -feed29bae648fd2368323a56b4b811b4ffdfd17ee00379aa66e576a98c7fc281 undefined -33140ddf93e80789cb3076653834c9f475502ac18c43ee6d1801461dc2c68468 undefined -bc0b11d58e28561c27eb87ef3e3eaadccf7000e923ca61eea422deb0bee598e6 undefined -67a0df62a1b82ef5e699eba66f42ff9a36953a48fdcc2cc8c93cd60374883813 undefined -bca90628d8b08cef36df583a54529f116de674c98e8e1e6d974a3c640ecd9ec2 undefined -2d7203ab718ba80de191cf1585afa155e61339ad5ae801c792ed13d4edf59794 undefined -bd916931a0176d112cb83c2284cdc5c381f82157ada731b0d748d5d8edda10b6 undefined -156489d2e0f2c15089a61cfb3802784d8c6edc5217249f606f4b6dee529ba0b6 undefined -5738a4cb6f1d8e723f69e2f0880489f888303640e7ff0dda06bc94df5049b691 undefined -7dacf00c7d369162dee3910ea67be33520f80e5f93134ea79e14ded87487bd1f undefined -770aea14578b423c02ad63b8d1b95216bc08e7d4318c8be2e0738fd0c80982d8 undefined -c08a85f5121d0f3c3d2853647ef0fb4dfee1339444a3104bd7cf65dffd1e483c undefined -0a441a2014b88478f2bf6e955854691710b28168780231250c8aac012d3ac76f undefined -899659f9a197abbd0be3c916843df16275eec72ff5bf61bef3d828b84c1fcc6e undefined -d38f2f0db8f0db269ce7fdc939483de361d31d25ea0c89f48e38e8f6a1d5b8d1 undefined -b1707903e7911d508c0de43a52a7b367dc112f757043b8c7c4c67a41de384697 undefined -fdf63bba922be40b9b5fea94eb0bb94370bec3411b3d8f14b64fbbb7f7ad5a5e undefined -159c97a69ed268f1b68a0c4d79e6969e2e5e2aa8631c40570f9a85c4b83f012d undefined -0ac0f5f8b5e5d731c39aa186e2641cc2abfb9dd42b01b5cc8d0af158d2dd8a1b undefined -91166e8033a4003b9b73bff32aec61dbfb785504aec62ed7f70b0c7007f369e6 undefined -dd90e6ac034b274d8a66db5d4170b2328fa8ec7033242ae30f550654ee335392 undefined -bf55a0b4b86499db45b9ef220e61c61f66e7795736e0a2f607c5808b365366d8 undefined -e138016ee567733a1b03f3341617990b0b57ca791d31ff7b26bd4d56ce7a4db2 undefined -67d901d485cd8b28ed9cb21cec1c67cb42fefcc6e81ae56198aa0ea5cb2ce794 undefined -41583a24999405ffdd5e448fe1eda8eb78b999315d8ab227f19628bda1b52d7d undefined -a82a7c851871e8822df5e7c97fdafc501d9c22d66ed716596d73e31bff420839 undefined -eb31e1bd7fc06c04155f4e09477c6decf832499a5796f99f28a28019a75b26d6 undefined -fc0e29fa0b445dd89975f06b562261b6b5588f6ff7a6c2cebb0ad8e7a8678b32 undefined -2def6954252db78f1b7a6810fe64dc3eae20723a4e59f44fb5d28dba5fa77bac undefined -f50bfe7a1157d46d672b20fcbd21c89fed17ef7c65cb2ca0e95fd4104d32c69a undefined -74d7dadccf9e0f150cfdfe55a6f4cf36177aecf0b43a81a46da8f1580ba45ccc undefined -abaf7a9a8f31ce521c469fae17bc491eca4c4c459a3487d15c3a3c51a5c1c5b3 undefined -9202226514101d2bc6291193bd3b1e7095776c7a4b404338a2d1a242dbac2843 undefined -0e25a5bd2786ef19626fb4bb26b3225331bddd5a4eee7213efcd5b9f2162dd2d undefined -18230b2363b19124dc301fabec27f8831c142370eca6564ab48c49db7aeec209 undefined -fc7e1d435469c210913ec0eaa594e891d84d43deae8e67d17816e13a52bd9efd undefined -d685e8834366165848268dc20ebbe1c5b92026815903994b4c6f4ef101289102 undefined -21be1d4bf0de5c7e200565bd65519608128548e47248bd7eec91891087edfe7a undefined -1b3e441b3c4713e00b998c3f09e876ed493f6ed3b8781c8c2c6c71165b79de7d undefined -523f4376d2bb7944274dbc868f11641e596b9ba335effb9beb9d3153f16f9d58 undefined -c072924f7ae2d73c31c320fabe794c23fbeb5f70f61ccf06201c6211e9f83e3d undefined -408236676c0cc93a6f15148be2f8fa2189c23099cc09643ab0678eecbe6935da undefined -526a1117804ee20bc6c45a988867b499247c256886891747844a41ac3a5413ff undefined -98c67ee8b7cbb77f319204edbe02ea05bfb3a2fc5c88db9c342b63c6d8a12253 undefined -f339c86b00f4aadd85616dc1bdcfeb9dea22fa3c860366c4c3e3172a513f34c8 undefined -09869392c45037af16584dfa25e66cae47e10a86a1fe0928a3f1ecb7f9b71e45 undefined -7be9608b273367823e139bc8d851b6d67fd143c906674e47772807aebfaa9df8 undefined -482414914f499e728bb30a0fc6ae52290b65a9a6b71ebaaf50ef867a094ab851 undefined -ae9f1788070ecf90e273ff671e214e1352d253cb3a16b9d8ab516be248b38d7b undefined -fab64828a52d29e38f6870f9dd67790ef7034e2e6f47f9d31606ef32ca9e4f84 undefined -61d6b489f756623c60e46358303bb93746ea48ca30aacf97e5f4e411f1a15b32 undefined -9a3ffc610e5532ba9ddf77d721d252a7f586b2682b5d146d96b0f0d2089a1a81 undefined -d674d8dc3c8f6f9fd787b0c8da220eff2b33ba7cff33638458934885a91936de undefined -f9742c0e7cb1b3ccfa1a73bf5666c4faf25448708ecf5c82846e40170958c4a7 undefined -44a9c26296f63f69a79c015acc669c328db239f2dddec8a49487b2556fa0d2f7 undefined -beb7a209130014e41a3520ff41eb0fc1884933b5621cacb6a0e9bd1a9a0b7a90 undefined -f3c061d85af0d3c916a36fb5771e9ca70ca2a7b71934f5fe5a4d2973e1b45947 undefined -8f05a29e07f805e37b3dd218d2d0f1ee472a9554cb4b4f07b76e01bd107f81d7 undefined -19acc2df2d4b54e2d17cba0a0ecaaab30181af48256e52bb1906b11db1eed496 undefined -1093e1ec2a590ce44ddfa4c5a61afc6c30acada7f5d92f25fa5dc373145b8b99 undefined -bf972dbd83738bc1ea4763ac0f28bbad82192bb3332d07c9d10d3b0eeff1a0b7 undefined -f7bbdd562ff234416c56445e09066cbe255b6fd5f366f4598b9344e2071a4a0a undefined -4c4f142bd43319298eb833fcc7375db30f0a40f184c82bbfa6ace0a8eaf07971 undefined -49a3400beadbd4dab3a7655cafe94a608abfdf5702635e2382f375fe851e038a undefined -f63ef8d7a2ed30c4afad2da4dc38d5d0da1b534edb4f195df8128b120e50914e undefined -614bfbe3645747a84534dedc08488d71d16ebf575df016d9b102668db0907d67 undefined -8e289176dc4aa0dafe3cdf9ce5663b193784cf146a9f870f8dbe61da7ac06e28 undefined -c8cb3297a9a693c122abf4325cf25ea8b21e64bdbbb6a1349bcb929274ed58aa undefined -2ce7684136456c8b4d4b526d3e5bfd0c71b434834eeed103c2517ff233c5ea94 undefined -dea7182d3b6771d3191a1788d2c7fd3d4aaa31dbb63026e7b30a2e832ddff365 undefined -88cb6cb5d1efadc9250003aae31f7aac47da488bc0cff7577b4d9bbd558af2d9 undefined -cbabb74763a0796568c8879ed32682009cfcc5e01832fa664ccb6ad87f45531b undefined -2996f906456c43f90aeb4ba33a4b062369e226d8742ea604834bc2e079cc49b7 undefined -b3fa3cde23623f6311eb2bb1f1bf01ab3c7eb7cf90932ff297abdaf9a0dcbc90 undefined -4490f58828638db745d1549d91e9bffc0fefc1b689376100ed510f57f27f41f4 undefined -11058c74276a1023c7c7b2a5a3bda47c6c7063ff3d358e9bb1ba066865da3027 undefined -cd084dab2f20c0c9db8b16c6b0b8edfb919c2d9b093fe572a08771c7f0ceda47 undefined -0587e88913e2109e75795e0c2790b1c7cc2f5183ffe5a8b9bddf2a3952b9b38d undefined -91689003c80219f3500fa803b17be2975810a721d088cdb97cfe0478cf29a905 undefined -7f297a35575a3ee5395840d2a5ed283cbdb10fee757a3fb4709f2c5e395a14bc undefined -51490e91e592e6de3d0bbcb7bfc774f18803bc9b12178d1bdeeeaa757cdb1006 undefined -7b860025d54c118cc8d655691cd68940ad7edb318e559265fa8e09ef314262e1 undefined -904dd172f4b5c61497fb233765fe6b15df96198db8eb207bf657dd1347409f33 undefined -4bd519d2aae8de8f67dd8e4b15d3c4054096cf9bfc30ab6f73e3b6c4310c632b undefined -c7f662d9180297861b5d6753df9f457a021c64219a91abd54bbf72dd229e2f08 undefined -b63894ae87b0312ce0964a06c67f333db7d533147c3c19ce4532fc3003ed85df undefined -ac04de4ae7b05b91610e39e6f5aa47022c7f3afa5a485d7c485a619502a136a4 undefined -567ed08680d1d7c7e062201bddeea251406ca5703bee0ee808aac53e07c8f466 undefined -868affaa7fa763fb261686c2d432d3c0d7012eab94bcaec33ffeee1973d0d87b undefined -2348a2c3632682fa8f4708b3e4a6fbe102dfd7d4f70f07136d0de4ff37e9198a undefined -8ad2c805fb45b9ebddff2b9d4851f6c0a5497355c88bf593fb5b63c16a967a24 undefined -d0edfa854f138156b87667cb1f06adfd71d3a1f53e3ec3cc08f4e5d2b618ccbb undefined -8be4b36a8fead9c971d31c319d9ae6559a31408f86c06f298d4d1c4396e262e2 undefined -d9963c95a86605305e75e78210926188db21c5b9303e0c2158b84727bd13d8bb undefined -734e78aec94656e41e2ae0b4495b5ff565aff18fb92fd0c24c0b5028e0e64591 undefined -3f085e4903a19c94d9c79fb80960772169b3495e9dcead99a8b8809125ac8299 undefined -de9492ffb4e12507a82c020b920ee2be877a449068eaf534fb42ee15e785d3e6 undefined -a90dce14ecfc59e257e855c112b5fa6405ec1afc8fee4957c3feda2c39cb1765 undefined -dc0fcb8f523ebd10329baa975ae442a478b0913c21b89edeec9ba910a77b0c8b undefined -f2fe95679745b8d24099f7d64fae073e86d4f63afaa05ed3b75e9fbdeeb66901 undefined -7fadd77b7e73975619044f2eef8ad9e743026adb6240aca191c829cf02cb67b1 undefined -59166d3938c81838620540b16634f62a82eedf84de83b9bf21503bc3cfb122ac undefined -4b2a19fef315fa43710cc46be435be2f02d0939bff3679905efac6f943aa384d undefined -5266f8ba394efc532abef7ae612cdf915c45447479296e56390bc35a05652bb4 undefined -877769ce0e7820127b18385652dc41dac4618a3a2275a6794bada670c20e5733 undefined -005ca45f03b3744ecd94ccb688426ff1a6d1157e171a3dbb592a986abaf743f9 undefined -cbb36e3ee2f01fe0bcaa64bd6baa9bd0d65242a6a7ec3c7871416f57df9934d6 undefined -cadf3d3a38da46b3ea5961297940b5017db677ef84bd1c20d6fcab9e66cbeef2 undefined -d4220c067bbe4164828a79c8df21be12a5e10aeb1aa6e151b5833eb9bb9c0f14 undefined -3c96bf5be1b20aeef27f0378f0548d10cbf45223b94767eba42999fa6b140ccb undefined -b8d4f804df85eefe8098ce9bc3a6868a80b0257fc102d9297a8669fe109de6e0 undefined -68ca9c7685558c500d9562907af40f45896d01b4079a580ef453f040b721acc3 undefined -667f668d660b38adc9f519ce433bc4aef8f16263c18c203600191d597b3c0838 undefined -cbe582c6855224f60a560b793adb4aa58be42dc8d2cc01d15c191f375d84cc90 undefined -540dc85ae668a63984aa7bdf618a3e9bc1084db71d1143ad499982bc337a07e8 undefined -cd7efe8f67594de734022dac9a82ae8339a6b52f171adf6673d4b09451534f0a undefined -41e6fbabcc750f0229cd46166c7b8daed8bffaac98e176c431d21a956a50cad0 undefined -7859ee1aeb93389ce84844f71c7309d43c6e0e8636d53bfd58a7f1b97e7c5b5e undefined -a758052a1584d60d80412bb9621705223ff878e76151051a1dfb5006267ed27c undefined -fb0b1896f7b7026c22c1a2dc28a608ffbb71edcf0659743f9881a4be0fe42a0c undefined -d4d15d0e5f36b6d98f6f073082b90c4a30e9b1c474cf7aa604df1531c09ece5a undefined -9cd1acc7db533a8026a47c6ac6e187d63f80a9317b27ce8d91522efd96879324 undefined -2807fdca3daf6cd74aed3cfcd2c9621a53a4f89ab7f570ffc417f9c66c7e2e5f undefined -ce59c050d9bbbbf9b1d728b20174587898d3e06daf958983d17a24d966d43ab5 undefined -0b905f04c2d21077abb722004c6df123ad31d4fd8db602dd59fb5d03660424eb undefined -e8a7d4ad6da6cab627868152ba9e108b0c3623d6f4225eb4f6df9367e91bb096 undefined -97acd3bff6ced187dfd2ea6d7b915f70cf7a5e124ccb63960491237b89be0d17 undefined -5d8e69cc486cf57d6cc91555bd0818ba1c12c9a7dbecb4745c9b5314f5af013f undefined -a0e83507136ab6552ca193fb3a554d1356503ba88f03e6ac41180485963ac7ec undefined -8faa2291900c1500bf8e0047ab4064d4c8be8f66138bc2e0ab15e9b9931f822d undefined -2082de1a8b3bf0775b823e877feb0ceb63b79d33985bbe780acf50b6bd6c6aa9 undefined -e205482b3f8c50d84ea3379fae1230514b1cf1c9d5b2db123a05a0c152e1c595 undefined -93218db2a7ac6f164037da8f32c4b16fee90b94a55919727c413fa8c828616d2 undefined -1c48e69d94a6e0b8dac28990483b701641be426454db6db5513edb65679abb87 undefined -fa605c789020e83b0ed658d2ecad705be1b5c31d337cfc5d97d23359bf50d230 undefined -807615370a0080f7039cfad8ef0cb9e7c479fbdd8a172d326efcbbdaa8ce77b0 undefined -88d8f75926273d218b4210701361e6b608b7c663ec061b093caec2f337722e9b undefined -bf1924e8029ba3b012ee75ef29665ba9c1adcc86450bae0a300fcffce20141d0 undefined -8851e43c79c435ceb6c2c1f6aaec72e8e0b467842b506ae417650293452c63da undefined -8c6cc64d88ae2c687afd3199b1d675c796c55605871d90f620bdd1fd05ca9b19 undefined -7492bfffb870d46394bc7aa86e31dd1ecccf9c4530be71b197b26d2887faad8e undefined -e0bf77114a74b0e2bb4f1f2d50f787bf61970e550684fb7acaf7d8311aef517a undefined -4e4e07642b2a9b2eb797de9d13c5beef70d65abf31fec69e2760abd692920f4b undefined -81fc6823e3d3904829cc41ba72217eeaf3366c4e8fd544bbe27461b2c2d602c5 undefined -8afd9b915ba93cae713f8153c95f2fbe56d279165cea109d74764e85acb29399 undefined -5e56fd05ba189d13779ed235f0f37c49736c9adb6d04d51db234d8300f3901b1 undefined -c5c4de4829c08f366d1c506dfa578f0a175dbfeae61433b48dbe317c4bda50f4 undefined -8a7ddc66c02ddc3ed70e0499d930b8d0f674fbfbf71e733ecb14eb1b4c573a0a undefined -95c9c2372b4df7ac95aac1ad6aac3eef60894a2811af0f5bb4a9719fb0e0107e undefined -8cf34520786fd3c6cb7b79f11a155ebba40b98b1f9fe0ec64c67aec6d6d01b42 undefined -a48b8e7e5e8368116d7413ae5c511cf91478408a69474f8ffa85c56fbb1a40e8 undefined -a5266b93f0f09cd642ff3f95fa499a4744ac9d7fb16ae0fdd65bad8b47932428 undefined -6dcf976b86082961ae05c41f537cd28dd2f973d75e09c1f42c8c8a4ec876a7d1 undefined -03d3fe32c9cdc944268dd09cef14718d612072b159928cec34b5769db74d5b1a undefined -0fe62549648ba997bce4ea779fe268e11ca222995e5e2157ab5be68aede42c36 undefined -18a88177955074c21b922aa60e525d7497b41ff43127a8bc563c759b36f4e4d0 undefined -2b3eb8a8ef4282db2d22c58c20762746048975884c55723cf7f91fdd860d25cc undefined -137077b1c1b96ea2c8091092d573543f6abd4a2ba96613780150386f380b3d2f undefined -ce122d18419659f9ba70e16b95294f6b062be057749e282ede5931283042351c undefined -441fd4c1103aea45cfcb2f2df16da6813f52e5da8adc0ade9fd40ec02fc223ac undefined -9c83a8fbf7bd970f62fd4ccd3b052853d9da6dd33b56c28bf3d886913f390a68 undefined -068fff1eafb0426bd04c2b13159ec4b1b3d6bfde51de85bec21004b3f97c89eb undefined -f05d8bc8fc4cfcba99b761ee5a9cf0d32147ede448daf53f0d7f6462989af418 undefined -017a66c782839449f15d357b4938d4b06e7ff73415548f3d0f1dde5ddb99f840 undefined -18e8da7cf6b79fd627e66c235e5e88cbba582f2a0971bb0e6a96b1e097d83ceb undefined -a19532fb5d2670e6b3bf4a7c9f0d67c5b1099d9ae9804d026aa86edb8168b5b3 undefined -dd79b8ee33887a798e545688a66b599d561d62c6bc597569d02490ea56fad77f undefined -e061ff67542902a05d907d581b8de694dca72cfa88a3e17f77a20ec287daa40c undefined -8a4f90f989568a84c880e108eccc4b844697cfbee1d08d1483c2eed7ef9f1d3f undefined -c7b5de1b12f4cd31381ce82eb79932f41515db3a3b72914452a28366e43d4a4c undefined -2d322b954e33db8e43792e850d3ddf60745c2d02fc47e9af359d073244a437e5 undefined -36fba9195beebdcfd9d43b2ace502f4fb2b02c54e604c1aaa3423eec97c5b8aa undefined -ee3297ba723e19e8cb4b2c24de666ad21532db164e39e9b9bee6474969eb8919 undefined +cc38f3e632a807fde0f13c89b907478bc006f74f8b7aaba789d88da8a6d0451f undefined +ca5513e10b8f5e216b1a913eb48b2704146e35c6e68a9c90634d3b3c65e545dc undefined +f9b8f57b6a75e1ca66131e85c2d06b2aba321ac660f7431b1c69bab5b972e399 undefined +f7fdd3298009323577f4a79829e647dd14b0fce2d7dfde7d2fd35a703857491d undefined +740f28349685b2c9ea3afdbf557fbb7deea3164f0c43bd003412338c633c1f13 undefined +c43c7088fbf50475e3fbbc40717dbdfdb3ea7d42df0ba10891db6efeea6e4d4a undefined +363b682a98cac0b7fd711fd92afd43bd85d1f12a7f35be56b543cb8fba34e9b0 undefined +6dc583d0f438089f98701bd5bc0e2f591c38482efa9d7691c8350370846c2522 undefined +757b66be1a487fa3339cabf6b9904b613c0373a042a6c6ba6ff38d0b472feef0 undefined +c22e50658facbc865a30e9430730e12533ecfd31c6b9e0063a0e1956cb1a2805 undefined +6f9ed915ef801aff62b3b03c04bbee7add75793d37a361c49301272ec5d8e915 undefined +6ca0a94dedd29e6f2ccd2ca263ebb2f36e214cb5ee323850514957982faa65b9 undefined +90f53e99df03186f94486858c40df15e9f9a4a1fdbb81843c6c74a8be68473f2 undefined +b1f5092d957673d74049d642b4e4ebbdfd08f0b00e5f766b0ed4f762ad4ebeec undefined +815dc4b731a1a07a2164021946a09d2c9e1e5d22f13de082e7dff32f9d10c432 undefined +d379d2e716e42d67baa8e02ecf028b7608153e66fa4f1688c5eae220aba8c857 undefined +272d56ac055591e3669cf1e908620e3bf05fa34f859b1ca47b4964d4e7fcef95 undefined +f2e1904f369845a3e714374bca7d6818789e18751d66c4e7a4ee91e0b0d3c956 undefined +2a61655ccfe6f08e53e5ac61c7c341bbbc15a6e4f6918ec619bfee5aae61237a undefined +e8c56e62bec3eef5677e7180d2d002848b1ef9b3279197f942be9b0a67215f04 undefined +4b484489e195ea04bf6da0c03f5f7c227341af016c42087fcfd6aed4970fc135 undefined +d663b178ad31da50758e168a7590a9460680a663344c7a7bdfc94afb8ba42147 undefined +b1fb787304fa4b59b8eefacbc9106ead86085404048cb87d109dbd71402f4a6f undefined +996bff00fa5e3f629dc129399f32fa319e71c0944750bfe6cc25067f95f877c3 undefined +6e5ca1b4e59811607f6fd81b9aeda4610dc572112d5b0264ed34c1cee1916d3c undefined +f80eb703c8831087a1dbff82763552198d2c96633a5113b84cc6502d7b0f4c3c undefined +d866f0333e22d909152a90d9ff00b7a6841875e943e96994e09480a1455741db undefined +b5e36ad491c06813f89ed98e5ff1f81878289a38d487ec9c5bc94ab572d9f2a1 undefined +c76319821e8839daf9205708073ea14eef6fff51d4f75bfcf7b3c251338f8b3e undefined +bb26cf6fae8c3f588e32f55eb4044ba9731c45fd9f77b94ef9873d5046353df1 undefined +2b52f8fc2910c33ef195f145707a9677decf9e9456249e4ccc95fa0800292285 undefined +eb360a9a245bc7f5c88fa67c81994a9ca953aabfaafcf782d704140a637e3145 undefined +f36062b3f367ba34da26ece6e1cff72d7203ee09e40fc182de29ac88df9ba8f0 undefined +2d38ae3cd5e5fbd72f86a5eae3af89c632805831f071f3c5764914038a383023 undefined +0dbc183eae95229d6cd97257a1d719a7b39ffead939e76db38bf3104e8c2ef6d undefined +ed1742f01b01d6106137be49c47108a0cab9960ce23a1f71089a25470e97f301 undefined +62b5b91db6c4679ca66741222c265d0507496db4b20298e043908ba909a3494a undefined +8989fed9d7e93bae96895d70d9206464b9e1c32eac89c27ea3366cb39963018e undefined +c2cb0c6586fbef6815a5154e25fe653389d41460ae096dfd5af01b934789ddfb undefined +98952705a1620e7fec8a4205fe04fca1ad87aac9836afa1a072ae24671ca5e68 undefined +03332c2434991146e44818c0364598bbbb17519eb3ec1af44904a3f8e54e98bf undefined +49dd963866dfaae14ffb1c96ea08920220dce64b1bf9089e82c6f3921e370f5b undefined +482cbfc0c001178ffea67491bc3c48c4a2ef5c6d0a723bddb030edbd251a3dbf undefined +3910a94998c65cf05aa1c968e76f48f752cfe867606b3306955a7d97be44a669 undefined +7326f6bf839fdac47acaeccd299dc1c746f5b4f64b0aba6680858532062edc32 undefined +9360b91331b65e5b9beeed54bbcc8fae60450d2f8a8e7b8b94dad8108ee0149a undefined +60f900b058904859f5eb276849319e3575c9a72092063b3cb1320a6945867c0e undefined +996f47bb585d4ff336bea7ef10c617f95563416e9691d40c5f5dfec8c38d2eb8 undefined +7e883b69ca67f6910fe5a3ada2de881d18be4474f6d28b3f64303b7d6b2fcfb1 undefined +15c2dc9940582293487df0b3c304407559dd6a9167dba833ed2255a9bca5be18 undefined +0f21623df0803529c4826fbb2edcf548edc24c9bdbbd24f7b6be33a8c460fd36 undefined +20cf42addd1c8e38033702e9a725bd6f5e5d3505345ed27e492df4abe82c5e17 undefined +09ed32c421c017096171ab9ff250b63018fe6ce2c4503eee185c5213e617524b undefined +d6a4181034b649c75f4802b50726cffe5675afee8a339d39fdb7eae29f3b6f42 undefined +1dba6082203abd5845881fb589a0b09629f13b45bbba6f8b59e7c0b3dd671294 undefined +ca8f29e98c83f5ad49d7318f64e8b9d12e0f0b16be05d7eb0f556d03db7436e6 undefined +1482fd8d30086908718d42895f6a3329c8c805aef930bbcb9464510596909adf undefined +14e4919c2d0d875b1aab1a93895bb4dc2bfeb33e90682c5e7c9e3615bd3256a1 undefined +a727371896558d8e33883eb832cc447ca027e44ad04130dcc1332345d611f086 undefined +6ba533e3df3bea415f3d42183bd95a745aa75f4415e1ffbb2c00b35574704ef6 undefined +e6cc2d5092a35e60abcf168ef4fab0b982d7de93fd1774d84b1ce73ee85cf421 undefined +9d7a532492ca911cf2cd6b1990d918864fcdb98982c46533370558d17abb9264 undefined +fae657aa3f2563a333f8889cc9931b70f09dbbd4b1adfbae9f51e4c3dbe6d0db undefined +6490ff1a148c19956f53c84598fdef486e4dc628bd03d5cf7aac7586fe1084db undefined +32ff1f4467497027fa00fad3971fb6faf5a9d483369ea687c23d97a8689396c8 undefined +1e8c64bf2d7257a3214ad60abf4d3adc67819995beeebfed96523cf868f71375 undefined +29b58efa41c4eefff462c60edcf2bc2ef3e70402ffa0e04b1ba1fa61808b3625 undefined +bfc8afe3c678283acfa3b13f410b46c01059a00f0a4edef1e866a80e9bde4c85 undefined +2968c60c095be2207b2588e963a529bfc8213fcd9c614e36bff63057f51e90d7 undefined +4b2b00db95855c780795f1d898cafc2f6db02e0ebbaaa17c78f7ef93525bfd5e undefined +5428be4789cac39085f07cae89b1583ded90b5919a510680be810147ad814a46 undefined +e21fc1cad5ffcdf6173d9f22958a3169236b0cfee0097c11c7a281d17928113c undefined +90146f8347083be80f29d10df5012184ed670169f72958740d457537f82314ea undefined +bb540657355f5a231ff2feab008ee186ae43993c25eddecccade45497bc24fff undefined +4b8b132392f0ff425c4f2f321602e25525b84ee601a36d87f3672f2d6a9b9b0a undefined +10be8ba5728f79650acc5e7f4633c2d895754445644bae9a1afcce8d0586caa0 undefined +9fd0446c3995f937f1c89fe4d70416bcbee6fce11b1321889a97d894914328e1 undefined +1c7f26191a534759b87267a2ab74a9ce37aee5472681f9a7a266253e27d0608c undefined +762f35b462bf7e735c967b1c4c3d7706e0ebacbe7ab6b16e001b8d0d61b267d2 undefined +29a7c0f9f10010c9fd3d0b096f91e8c13a820ffed23dbfd2cc9162edbe9d7c03 undefined +364e727a7964d3137909bfcb9389d6eeb542bfeb455b6dda18f2b9a5dcce4366 undefined +3aaafba32b00fb8db26c02b9bd0911617968a6966aa62a0c51b2ed0c2afd5387 undefined +b1f5399a72451dc1ee7b600edda991bcc294cadf9426aeec9e1dfd42a63d08e2 undefined +e39f7d1e346a7b9c6e58e35d9a4292f86df95c7f41b53fa75f647d6bda6e3c0c undefined +c2a2bbab06ad18e64854bcec165c6d25121886279c9050ae4ed22e9b85a93121 undefined +4c0733cb085e46bcf21c848d9163b5de9cc96045abb3f908abe08abd4aca63d7 undefined +4791e61734d2396c474f445a8ecb8676b3cd18ba4e3ab088a3ed6dc1d981d06b undefined +7ae23074abce65fd74afe3acc214fa3e0e416449aa2e9be140b49420288e2fb8 undefined +a5f6f1a12fad2d3b181a8194952ddaa2cedb2b3ca73de7b31634bcaf0fbdf8a9 undefined +a54878d8a610e85b86c04dc4d4eb50d8a63a9292dc4be3a777cfd6275067a552 undefined +bb22ea17f10bdf82b979bb10822dc205868ec81afe50592006dd9e1d16a655b4 undefined +4aaccdfaf47b740b8f4e961f18b3abab4bb7785c4c8a18f698b64e4628f60d56 undefined +45265a03efb8490962ba78ec81d6ba8f968a40751252e3366fa96ce7b10ac2a7 undefined +5d7d0f235dfd72680078a51bdb8671a339145b847a942a8c063a6c1c4ae650fd undefined +64dcc9da39e6a59ac97c69cb69262b7c9d1dce5beee5860406517f2414d821d2 undefined +dc6f6ac31f3d2f52d9ed799fc089da565c1da6c065e9b1ee1a0fad26073775f8 undefined +f7944685b047f1cc7f21ce7cc7f6b39c9ce14b9b2e0aaafc30d8faf1304e38ae undefined +e19ffe75c450ad2c1247de2974423704890a803d8351c5ac7bf0b9e6a41d3a75 undefined +88886e29e0e09d00b230f37b381f5d68ad703e1e16069dfbdd00b24d2cc6c594 undefined +0575a0361e6a840f9670e2d5934ac8b816401d15146e40d4be8900ecd5d3660e undefined +27bb6e38d84aa17b481d3dbac8c25b06a3048fa495be21513d5bb2a2301d49c5 undefined +e77bd0c0ec8feadffc41e8596b0f7414997da81743b9be28487d429a5b50eb6f undefined +f45e907bd6a4b34b6a2b07a6495d814260d81265cb8f214d6162f21b5dfb16fe undefined +af605d337b03c03fe68288719b1c07a4ac88ca3cddfbb1de9009ea912a76367a undefined +1b67189b5be6d8b0f905976fd2affe0172fe95ca26f43a3cafad9130b6bc1376 undefined +f6939a2877ad2503ea70de90a92b99bf6a537098773aebdc45ccf7b6d3d42f2d undefined +427420129256704358a2a1460d04c1c373b754325fcd8d46d3df7197f261fe0f undefined +b72149df4aad40dd59eca96ba265b7b2ec67a089d5a9dbfdd72b15e587a6a640 undefined +3b159c0a9ee7f2a06ee249c1b79892961dfb0e4b4af7dac657858e0889ef17fc undefined +42f1d79ded07286a82ecf9769b4a8d68c35f871f7960642418a7aa904024c71f undefined +201e865a5c96ff46ea7095dc6ad1e7a8740d2ef1ed5090b88cc41bc1724d9d52 undefined +ce8a9dfae6927167b23cae6b27b7f60f4d29c8479c47af0b7c5f03a9d9b27877 undefined +38c0aa7360a91e9c431b3a47d4cdf23c1adfb67e0dd6e81e93d47c36791b169e undefined +a2cd30bce7cf196021abd45672cc3488a35a750bbb8a32cad1c04a189875cc72 undefined +d75411ef42a18cb85d67d2ab43118ffecd4f7805424f9a2e4dfc121ac20cc2cb undefined +5655f9bf4b7825a9d965247dfdc3f9025cc65b427d967e3e8ed68b9b0f2862d1 undefined +369aa82bfd3d9a7fc72e7fb9e0081ab05be0bb00b3e4ad685adc7178fca6cf05 undefined +f4980885f8ce3e551658f44ba0dcb4a3e40042fd9af9786abdd97a0cb862f1da undefined +8c9cf88add546feddd50308a09ae3f8feae646c08735d2160b05fa284bccb10a undefined +fff56c4303e73b6c839183207d7dddc998278df217a487a862b37f462daed160 undefined +5e1ad9f80f54b2d385efd6e277ede18753d98761f4f38785d5e0cd96930dd177 undefined +f9f5436e52d3bd66f01c99b8cca9ca4bba1df5126a1320c8abfdfdfbae7ed83e undefined +1b03cb05921c0df0fda2c7da9f92ab778a56c70d108bd5cc3f24a624a0e4b1a5 undefined +5ccf4fefc87f6d974a77f85e91920d9e1852244d26e87df88575092e068c001a undefined +3008f80b56fc3eaf03f897c607c937257aaa7eadd921295304acf20c1b1c42be undefined +cacba8f5455e50b762a6d325d395e8254cc30cf65628e5bcbdb19fcbf3c1bfd1 undefined +133a3a7a422f07c06e3d800dcb747805cf2f81ddf30479336e291ed89a16d4bf undefined +0cc8497cbe4bae5bbab516d6a9951da2b689771f880a3ef963ee300cb905c1e9 undefined +d55726dfab980954bbff206107131e81e87256de5a10b5826b14a049b9ad0ebc undefined +c4ce9f2e5cd5d1f8506741049b6c041ee766834b002544a2a51391459134db60 undefined +0f247caf4b7599f9631354b426a8fe540a2535ab36dd31add368ba82761c8f43 undefined +7d0d8b94ef17ecacf2b9cf4b4421eb6531a0658eeeb090edcef6fa37056bdc1a undefined +8e9822d69359a3675afe22c7562f65338d96c7964c94235e9a7cddf39a14db26 undefined +62d2aeac00d9d217f911fcfd521305f548414c670693e52f3d4d9e24351b3146 undefined +05dd4a841d3f4ab5ca1a3fd1a53001b4c856c8f3747b54c74c118457adadfb3e undefined +ff52aa204ca5b8a68fe34fbbee52aceb3f698bbdd73a2822f5db12e084f1cb2a undefined +b6b49e713ea27f324a7cf478cc8e8b29210ad4a4d0a5e2a241a89c79b33f256f undefined +129f3c59048ad43206f3c729def230bb788483a5f8acfd612c1768d5b17506b9 undefined +cfdeb9cb5913789b696ee4157a591dd1e2d20c6ef63378664af7d19cf8a3f6b2 undefined +33eadc1532cb14a6b5e4153cc039e4f3501b9a8f2021e8138f8c73245d4c8772 undefined +4d68284f3dd5f10e8b64187bdc6d7d10c4d0a6f8311e88aaf8a26319d71f7113 undefined +b70dc537f02f9a72bde5242d398caeff1b77be50d63c96fac7d36d47016c4598 undefined +713210e5b1c5c7fc943410dbbfca8ab25bda89706a400ef6a1be5f20f379957c undefined +cba724464b630de1aa55006dc4b236393770c406147029ae449ab3ed1ba6625d undefined +6ad8a1f646212f46e83b10ca39c7a108a2b121a1e4077f722d8d4212317ee04b undefined +fe583acbc8788dc5c0b308ff48268b7126f871581fbca6ec3a607932cad88e6b undefined +2f35e720e5f972ca86bb4ffb7f3806e7b1ddd4e75b664b448ecf22d91c42bc67 undefined +0a6f203d94a26ef387f2900c34f8e6c1d3e2f273d1c4c0f4a94da3cd0a6eece9 undefined +70f826a6f692e689801c0a063490b64bc66321be6a00a036c0ff513bc523c41e undefined +85e781c2f406523028367c13cdcc944235fc96d85a940f515ccf19958135a8f5 undefined +24e564b7ed9dd2ccdb6a85f6cd604c11b4aa7d2c97d00dd328b77a4b1f3df641 undefined +6d0b206f7542cbc1219d48e8204b6bfab8917e8c6fbfb4647cff3309cfa40224 undefined +09e8a0cdc9212a81a9d671466f55b3e38710fbd3b23b7b16a3c60b7bee7fe25b undefined +0e930bacc1535f59200695e7649220698fef3090cc3642a59cba372e0198f310 undefined +51def382bca2b09fe27fc470b153868c293cae832ddee3140d1361d41e99f01e undefined +a0d1161c38b241514bb7a0e3c026bf5cc9f493777c7d14a28f2572917abf8c4b undefined +1161fd5fb103449ac480aa7c6e0867ec7205470d8fac32438bd8ba770eda0648 undefined +6bff022e8047077528f6eba0b89f3d872085835734127db615e535aa2cde753e undefined +5f9fd11d0f2e3f557320404b1c52b23ec9bcf0bc66aceb88ea7cb6f690c5f631 undefined +e64cb050054bc2c9d4f3e96ef6d26a175413b555cf142bf26e61d8c8bd9d837e undefined +9019a8d65d00daf79a0d62593635c712ebf873e61e774a6385b25bb9efc77e1c undefined +165c5ab0ce3455b20ae7916208bb8cff7f5b6e38c24c5ece5e7d2bbbcd4cdd85 undefined +c4b94f41cba8a45ed9db2151773f0ce0134e4af645e60fe9de8fa546ea07c17b undefined +9eb2d75af61a71898ebdc2618ff76959883af7210aea28b43cda9cadffe891d2 undefined +8b98522b4ff93582eafc1f96302bc236569d804ab0124a03780cea0ec1379e1e undefined +1fa8ac2d07be7ba07ecccb062d664c4f9f920af6c34ec3981b04af239151a7fb undefined +94de7ab863b623c6d090421b4c92369a7be18034c8495504f72941e8fc5ca1ed undefined +8a68ab6693c282913366dd1ff4519c800e0ce76a982bca1f3447c825bebb7e8b undefined +472ddf3f19409e46819f4b22853411197865da4382a0b5bfa0ca9c2c23dff365 undefined +984682ef811d826eeedd66012f61f89e4dc6d34373a44d02a334b5337c278d15 undefined +18b723545004dbe96620a2ab4bf321ee6565bbb4c4d4af784ea3746d8815313f undefined +4c77408e933fbe8c8f66bdec33dc15a18e4dfee5fc254733774bf085d4496b60 undefined +e51ed3038121ac40bedcd16ee051e0953fc0d978470bf1cd53c2c7f3ddc96117 undefined +9536703e7d0be1dcf39b8fe14a38bf84df30727450a2fa3d96fd5fad7b2548dc undefined +ef0834e677c6a413404cb0c5b4db88bff7b3cdb29c1699011fa420ddfa650e9a undefined +f1e93451d369461cfd6833b1e6a4005cc98d4117f0d7023d43a4ac2c9e808c66 undefined +d9ed9dfe023afe7ddf49ea5089a5d413a72a9f0cfc231bed9c1c20f0a9d2950f undefined +3c75b3ddaa4290f63156572d6c7030c635447f3b700b681259fc4f3dbe52a78a undefined +6bf6ac15a1c8d448a309db71c6b1bc81bb02eb6c0939d802728ea726087598a2 undefined +cd83d2e34eeead7df3224922a73d9bd95f81731fa10d98e5b40aa5937d0d2025 undefined +88833f1bdc74e6d682b5dc99061c345c9ef1fbd1a474487444cef239989a0ef2 undefined +c036d072da8028ec5a8d4d5f127cc4be3d968ab8e2361570fc9bdd8eaed018d8 undefined +4d8318159e7f33550779f268687bb78058c5418b90e401ff68d5de5662ced3fa undefined +5f421cbf9594fc3bcf7c52c2bebbdad924af5e3bee5b00d80d2cafedeb92966d undefined +7e247c4e5953368cf766de4b268a08625777d188a398f994d14b7b0e1afef695 undefined +d647ad95d5db01e1e7fc6d74d19c0a6ff6d2d983d806b73e31b4ef77c54d1205 undefined +f118c6629c220216254c7afe7f20541ea82054040a5f7352676766e6bc4e70e5 undefined +135a6eda69b61efc8299f819a3e7058793c533cbcf3d7fc5967c1fae765849a2 undefined +bbd98fc9577265f9712a3985ac4be2f2129c71bbc91776c1f9b61793241bd506 undefined +d0c13a01ad861d964735cc383e876cd052e77c2e1f2790f8d2ff24055c88233c undefined +d22545e9e870356cade917cd616590ef25a550b3bf9d32217428d4f0658504ed undefined +cb399f88d0201b09fc53c949b1b2294e04ce7ece91ed0fa0d272fc08f4002803 undefined +727d3648fbda85769eb0b8f9a013749759e8fbe6ea3fc4571b36fd70aa8e9773 undefined +953ab9d133a8cb4d4ca45d6529d6aba13de1c7ff6514918b925d44c04fe6ea40 undefined +0683f9fdf959d6bdb778e9338a62d6d3b5f48168267f27247d493e58814f11de undefined +f3f6a03a2d9581aee3aa4160d9d45d56d8d52da3147471c28630bf854299fe5d undefined +e66d3e4577ab4504d54f192e6d2f3e0f8ba78d0a620638e5213879a364766078 undefined +89217f162329375c345ab33121176d8dbeeec37c9d7b631bcfab04f50556faf2 undefined +a1eb0e2845373173de418d58464cb43e914c622f9ead5149ca85c2eb785ea96c undefined +8b05990b2f99ab01ca2ccad451866036bb1c1cfdd01960342379f4ac7ce68d1a undefined +265681c93109b8b1b69e70aacbccce425d1b041141e5d16600df82c63f932432 undefined +9eebe74ad690206d123d81337321ed16d4df43a92fff1788be889a1059449c67 undefined +974bbe639a63dfe47591919a7be1d614043ba4098b3c7f8b284883e4c2d5a51b undefined +c68b0518435ee3b2d630eb207ca4c1089706467da9de4588c7f5f41819f4c19c undefined +5e5402b0c0e6097953131cd7e2e32d591eb6ac02dfbafdbddac2abed813e92db undefined +bb70a69041cee7a130bcb3bd205d4eae28f6c6e2898824b00b120b723a36b1d2 undefined +06e3d1c679981d22dc61d21149ccdd694f9bddd08b93d9aae3f84261a27caf3f undefined +43230f2d92bda17dae584d81b3c591a28ef0c492b7620175e84b29c992117d8a undefined +f23b59fde8ee669d069352656c7b53a674b79b495a771d12a8effaaa6beb0659 undefined +a0fc5cf80ddd2441a81af875fb9dc37907db9efd5466644d2e9379cec61acc31 undefined +920b41426cc1f12d21c687b85a99f1a5f22096e3fd98aee5c49b4c6e33c4554d undefined +27210c1640b820516c8065009f68f709d0b09656bfdc37a04b1c2ab8995abbda undefined +123a2a8ca6d2d55e7fb3e3e99e399cc549bb4ec9ca5933b7751961805cbfb88a undefined +a4d16649d7878aad726ef4891b7131f9d2380cdf2e934239e160186a53747891 undefined +a14b7a7a02a24967a6b26160bd83fbc7f44196faf9eb17df926ec7e025101daf undefined +e313fdbe37c047c26142a5a2c26921a1810631826a06bf9dc757bc84c115cba0 undefined +5a381e6ad71a6eb47e2baafe44270cf58f2ff4f2d86341308908f93262ec9442 undefined +ac012d4bef568cd56eb2cadc9215766b0c2ff4ef9b856e0b933a493e3a38efb5 undefined +3caa02b58661962ce8d624da88fd05d445b5f440ac7544aada899c9ad418f80f undefined +ec67947c98036cc660692532beed44921332ff0011d910e74416aaf1a080faf6 undefined +d3457567b731f8e5935f0f9d363a5ce0f8e9040c893e62742f85175998408cbe undefined +d144f9603f0ad16070b96131499931307e267af85b34a1c893ccabaea06dad91 undefined +b7f8bc8ba822d725afe232b4eb1e95de5cf5b6db692a1160de636edb3252aa0f undefined +5c9d46a9be4da34258a1f3d4e912ce02b7def06f0d77a290a6c9cc1ab0adf621 undefined +bc5ff9afea4d784b2c57eefcf6d6fe9cf6d66d855fd644efdb2f668ec7569a86 undefined +21ab70cedacd9f778b30d2ff5aae6e550b68bf2d0816e34c000af4f480ff48c3 undefined +80dadd9933b5445e1248334fa796556ee1d3f768ea4a653ca219831e73d710ea undefined +78dbc2bc1eb5b307e676aa424a6423f6910a2594a0a96be071d6438a64f005bd undefined +7ed33184ee2f1e1a520bda49c96f7c4703187fd518688fae62c1e33236582528 undefined +f9df134997be208b6311eb4622ab969f03f228322b9775715b7f9f6da6121ca6 undefined +217fa7cc611581e9d0cf5d516f1dc2aebd95e7ecf8a66467278a30e5ab5f58aa undefined +1630d611c614db9b0a22d2194330473a1658493d9e5daa55de39249d029cbff0 undefined +d00a0ef5784f763f1ca82ff5acf902bb0278bac8963c2e983247732219e5d416 undefined +5e0eb6caf750c4b35b924c0a9bdb73fa4d0dbf72e9102926e2a8bf1dc9687028 undefined +582dad92558e94c7f645ec212aa04a16ae961e93b24d89a2789d16fdde5ad199 undefined +bf8efce59a23926b5511d603826251ef4d38e0084aa33c3bb444e2f8a8ee2f90 undefined +e15ab9e379e2ef6e0e598fdc3912e5b8ea5fbc1cbf36f64908fd5ad609aca996 undefined +11ecea751de47e4a92bbe037842ad67079ab6f9b2ca8e8d1b30b6182842f700e undefined +9789b9002a0a3dc069ed780a1e2ed7a68b196ac1ca425a039982159be140bb35 undefined +a6ed3e62d4fb33a2e575577e99c63e0ebf8268a0b88b9d569422ff7d1bc4a766 undefined +3e58758347604615223cd7db0489cdecf30faf1601a8de68a11d4e126e0a4abf undefined +0f551ea4cb0ab0792194be4af1d61be729f1a373fa21f9b99642ad355ebf69ab undefined +ccb713150d5cb38eba50db578edae3f165d661c120cbb3770bff7dae4e93825c undefined +f47502030b3e1e7384c91ca5913b229e184a3a933a3a6346bfe934a9c964993e undefined +e3c2127dd52fd64243836887bba8a398148d4100b68b4f6cde4a3d1dce0b7762 undefined +73131119668ba7919eb3e732d2a7ed93c12065ad52bda8bce82836a2d824388c undefined +7a905b43241bb8fdf15fd8743197c9ea6ac50b730617a2250cd9105299dc464c undefined +166ccfb16f479b2a01b33327a8f7837f977ff79867e0af7081af58bfc71094d4 undefined +7fa3795a8e64dc4753300bc99e3255b7fac2aafc6d59f29e49f3ad16091ca1e2 undefined +4e06bd73875062b41fe0a22c39cfe589d3a0f55d258703cc31b030ae4d660aa9 undefined +f3930b2cf46331816dd88f04d3bdb3d848d9be2a29ceb9b0aca2693524d074a1 undefined +ae09398dc4e39415e22ce571e1d46176217f8ec43c11180604c08bcc92fff0c9 undefined +44788b16a0e606d7ed90bd5873d35a76f78171ce2a26d20238417a45d800c435 undefined +59b46b4cab2eaa92bd21984b574cc58238825c7f1c2438dbe81f58ba4c7b14ce undefined +6d769e28ffe5f096e15833ed0b05b3f6fb48c3ac15f847a135d7e04204b560e1 undefined +22cba73da4be574b5c77421ef2f0b68fecfddf7b75fcd91b2827795f33e6e814 undefined +6f91caf5ca728431505dfb2d8d504f5cfb76d63a3116fb60c97bd7fb5fe66031 undefined +7faec31492641d5b59790614853ff96363a280d54eaff3a400b395c8c9a9fff4 undefined +0d23444ec6e43d6b1f435b597f891d3a2deb45ea396498d59fb7cd15580ebb88 undefined +47b2c661a5e5087a1012870b08037573e87590284d8b0c613d459999b83ef29c undefined +b3f42a5d3acf246decc42524f8d5e1cbce05f50904010fc5df4d37050c4aa79f undefined +ae0a05018290a2b4bf6bf2df2a059a22737e50b2fb3d15ea2d3c5187681de467 undefined +247eac90dddc3ad6cdc8b3502d10dfc621fc387bcdf8599d295455895a22260c undefined +c2c27f3708b34a3e25ba87f4ad9cf5b4a2e7b6ad27e3e28881ac5cbe2835faba undefined +2a62a957442785d57643269d43bbddea92a8340d08a9d14967e3ebc504c0511c undefined +4cbc375a974cfc162fd7744b7839a84225a8c7d34cb076ca088992300fa7b125 undefined +eff0102cfc4f590ca1b8080b59eb75f77d07fd73555a327d76993a3b881f2c15 undefined +ee394a093c56e8f6cc6287783fc8bf3a89980d74b931d4013e3b2c55408529b7 undefined +415e902bdcbe9b64ae8de3652b004c06d01d037cb77e9435e371eaa179a49176 undefined +1cc9ef26c30fa270a10234e753dced94f8f84e09b345426a0d533f794d66eb4f undefined +dd76f7e00653c67335650dde2881849c0d9ec5602b645b0632f65c1a2ed71701 undefined +92cf8b391c401ad73b887190bd7791c3cc48083f8d2db7bb20451622e0f6ac83 undefined +044c6edece3545ddd11b4e53fbd734a8de5f72e65eccaed414bb6f071e6bda03 undefined +669834e5dc5c285f0dc5cd0467f3eb346f5bfc2bdcfbfe5693064013436b702f undefined +8d08df5c5af163f02eb56f242c5b15e2fd011fd39be59f7510d79ab3191377ec undefined +0159518c60c2316e522b40dbf573bcc336667aac0c4f1a74fa97a4715daa5db1 undefined +afdeb897c7e17066c6e5670da496776225921a3a30812033edd75a6520d56eb7 undefined +4e5f70bfff7139ddf3e616f460fc6c4959a7b7ce1b86b4a142aef62374e31f2c undefined +7f12309d71d0263e99eb766004ed1754fac8de15a3aea6a7e2a3ec30ff870253 undefined +a8bc6a6b7f4f634e6d264df3ac55a00fabcda1a7f822955a7ca2a1d08d06bb63 undefined +f6ebc44dbd558b777a595e578518aa73774c46f50d7ac4dda36dfe37e223da52 undefined +d5919644c7a53cca167a9632720b14cc237ab062d8966129707b1fc931ee9d79 undefined +7f6eee88382fe936b1d849e0ff9f2400aeacaf3642caf2dda015cc831177d695 undefined +41d14b122a303877c34f960633dd865f56717bc6036653528f4ca432f9c93861 undefined +b0e0f8da743a6a483cae263e604b0609da322c524ce9dec2d79bd4b6484e1294 undefined +2a56bb58280d028c14857be060ee2be36c153ff7534d2750467b751b1de1b6d4 undefined +b8ad8ff28df63720970185286cdee973f5b1af358cc0ac2c351fc0eee8cf25b7 undefined +579b4944c29afd455799add7bc97fcad773b527b59d8f91a6df0a448e3d1bc88 undefined +5467c89d27b0b6a40ccb987bdecaa2a3e3120d64af9801a43db0cf6ebbcd7d83 undefined +5352504590f2941179a21052f1ce60ea617bf40fc51b9145ea6c1d6b4afa2fe1 undefined +e02a79aece69563ce81b07e9f87251bd756c9bdfd420a90f56232df387c29ab5 undefined +ee37a98c95c919284d7be21fb055c97e77539ea574f5393ac75da6e6d0ca922c undefined +ef52b4c63d078061dbf9f006b872cb0a46d4eaf3422c481fd8ad1063f30dd4d1 undefined +42c837e818f155c31e341cb6fe5af0ec134e86f75f35c0133b2475c33b89590c undefined +4f75bf250f7d71f5514866eba917a171d7b99989a8bb67fc6ccdf6f3400c58dc undefined +dee4fd969fa6b1ad558ecf2a69aac6d9c25acc19dc9e2e470bc5b9ef846c8683 undefined +8f935df3a1539840efd18c219302a3b0f307f95bcae91e22b5a4ae8d50cf5a5f undefined +2c21e461748faa1bd1a835d08862c38963de52df56096c0897a9984426169945 undefined +848e1e956e2048c1d87659c218dfc9a67ef198e7d2f7c754658d503be1fec97b undefined +fe147f0a35f3362f53b80b83d6949c83d8603375d7430448514b03ae8d6f9c93 undefined +55b067ab487f5528097cdd91c069c50c245e03d42629f0649ebdab57bed1f41f undefined +a8fbdeeff0d1e2ae151ba8cf82068aa76b503638e54cd0ad5d636626f9106c1f undefined +ebe5f77305912af13aa6086b7e33506b8a2464056ace097b1131d071f93f7493 undefined +fda1ccba04512be16861ee6724a791a432a813d471ab9974594f4ca7de8bc590 undefined +3f1d92a85256d35aadc91f98ef75234c94c52f93c5dcc1522162b7766c3c46e2 undefined +0f9a174a0256cc610bb4cbde55388463e7df9b20af377ab84ce9bf5ab34c8e1d undefined +9de8ec4794264c995e324e2ef979dc11fbb1da9bf883fce2b2a8fe72c6df29c5 undefined +d700b720caf21116a5c21b760aa748f48aff4883b96724669674963a8e8e3589 undefined +6c041b48785e1c2208510d114f186cd5eb32e53d931811c7fc82426c1a64a3fc undefined +3bcfb24212364cfcc1faaebfbcde07924737a9ca56df7d94bbfae7f264b5b730 undefined +8ab45c778d04af88bafd6147cad43be10d4569fa9ce436e2ccc569d174df1318 undefined +c6bf6e4e6e719e1bd7aa5b8548df7b2449ebbc52078cec6f56dd0fa419c95544 undefined +3fef40a3266f4cce1f7715eebaeddf7f3632e153b7d9a39e610a2c68fd06a835 undefined +edab6dc12e5dc3b17450be12d4d9bc022bc18ddd3fe85385152e024243933a37 undefined +f52407dcf3fc61745185b54e5c44551fe24fc6fedf271155cd8b58994621b263 undefined +5e3259867f30d28d764cb48ce31bea65b17baee1e073c62cdf47142e3ac6eb2e undefined +322056da6dfd9fb2d641faba70732808ac43c43ee1557055d482fd50bc1a72c0 undefined +b9b1f6b97155eb5295568a76914d62344d03e9e0c138d85b05214f1950c300ed undefined +62e25d102b0e177b36f735f806b5cadfc2b92b60974a5e1c4a5b83a6499e0a70 undefined +940a9c50a5721df2de88a98e254ab107f44c2a189c5dd74a34c7d3f6679837f0 undefined +8e7e2ab8ba13c5fbe46949fcca833c2935ff66ac57acaabde7c3ee2ebcd87935 undefined +1e2b752113a8fb7f33418c05458ef1ae7194353107502d5da9aca734af92f3de undefined +36cfdcdd3f0e4b669e7a4743ef441c1581ef3ad809abd21a5c94078807501983 undefined +2fd9ebc5cf54b9698c2579482f98456d97f74340c9b568321c3c244784e0e617 undefined +cfddc5cb2867d11b0e4a67411ece9c918e3fb8c2d94a12457c28aa37c247d613 undefined +1220cdd4e7a6ded4b89fa46637cbc13008fa565219e1b795ec439e21a5f1348a undefined +14b137a5b63ecd0e58a25d215b60b0e223c604841236d0a504a2871c89c51923 undefined +5e06e277b798f4815da19bb603ee8e25a5655e33b1537e6ca5e52219a17cb6a8 undefined +fe3a391e7187131c799cd40eae4fb55fcd85b1e5256574f7b939c96893d2997f undefined +96f1ea39363e1c4a7cd0df97f0c84a54729bd0073ab7443d5042a39259179401 undefined +f7ad7806f6d2b72fbf10ddd4a8936e8a168a7e924639ff8dac28888f9c4fa0d3 undefined +d1eb7da915fe0336ddcd27c607ef5d4513d40be7e13fd35ec4eeeb9aba64edcc undefined +cd7bfe56732ecfe54d6686dd4f455719df1c5f3d62ac64fd519226fea949feb0 undefined +898d969b5b12e896e8ec28c6760139457e6667cc8900fa75c14f2f4564d70a92 undefined +ff2a8175d6fb5e96d6c8220f79943212b6b6723086b6e5535d36ec3ca0ff007f undefined +883e3b7396e053c1ba5b5f340ea6809a832c505d290dde102199e6cd3727a892 undefined +53e42a13d35478bb1b018f4339f95006f85e5ef95dd395bced313df9098574ef undefined +975c2d1b1e96327f2cebe149c3e34e9fcc64a552a01926dbdf92a43bc0b48a43 undefined +b45a848b599c1fdc9037d02266c99f2227429dd2c294fd84d3d2fd7cb7891b1d undefined +04027227de175d61165d21c5d89bc1ba3d583998d74c4b61e6f5fc04fda3985a undefined +d4dadf052e4ff0e2c2d955c4bb2a4929214407984ac0ef7e29e79f667275d86c undefined +d13709aff73c71188421b83d73b07d4b2ec1e618d185333251a20b625e3aed86 undefined +78d86e5a7c669abf6bebf7d786b9bad9fabb74644b17000572670780b118b4cc undefined +0d45a2fc491a9f3da79b22e5d369fdcc8c64e479c9335561acf0f3903ac45baa undefined +be0b99f257eac618469a754e169274bd00ffdc21212101a344512a71b03a7840 undefined +d709c7e1feaaaf82772d55c153b43f1a6ff4d21eabf296fea3b9aec42b03f65b undefined +615d54f6a4f75fb892d3a1c9196d5230d216581141e3e572fbfc84d83866767f undefined +07292435fae2f8e52abead4eb6e66bc8bb6d49485ebaa1c18eaec3c7bc718375 undefined +1333a8fc8e4521accf2622dd68f0213096712edc4959c0b6176115c2c3f394a9 undefined +7e187f61b9a20fe216d1ce5ec69c8550f38706de2b3a0e0fb0cf4593fb91c67e undefined +0895ad47e5cf363e704dd510ffef760a1b5d4ab31a0f72ad1ef056530c9ae982 undefined +162f555c769280c3b29ea791e9fa74da58a37205d4bb503dfcd4e94fe1d308c5 undefined +7e632b6ddb4354e18f7ac79ca4183261c6acf95909e4dd9ad313d8b289b6b146 undefined +598aa40f052ca17eb7be0cd81187afb181ead5b412ad3df86cc1edb3f9306f07 undefined +bdb6411fb41d7fabf23de4fcc8c97ff8da2594125dcca3ef57241693eb0b7ce7 undefined +e3d98878913705b9b7b2392b797ad057d909addc3f97d6c694cedac348c38460 undefined +e8709eb118cbae50a154fa67b2d87defb9a2b55a3f94c004fa3ef35af424aadc undefined +555e51c75ba558d63a9e8184324cc12a13dc2f547a6ff3c4b90296b8dd6f70c5 undefined +0610907e0762b419ae04b6a6e9ad8822076ea9047ed4bb2d63774293d9b9f98e undefined +b6bf21f963c7322b1b787cbc3f6c717e17c489121462cf6c7b1b35271fcdb806 undefined +19760480fcf950eedd9eab38b612dcb0625c85daa35f8d19e62d89bc0fe77c4a undefined +8149dce1be8b2de361afeed4faf9c6912e00e07fdced96285e7be2f369b988fe undefined +3b0e353a540ae15cff8a4204cd97c73b1c656fa04c695068ed73b965314a5c2c undefined +31a0fa878831d9b76c7315398195b869b5d6b5a39ef0dab02ff253891fcdab2f undefined +47cd00de296a0ad1ade477855f80c1a2f573f2bca7d910715e35de0bd553ec63 undefined +66b07c08b17b594fb2f2779b772906f7f2ba29cf24ead96f913b7dc2d11738c8 undefined +9c32efc6a3458bdecde41875c7e9d89d6e0db50fcfe8e13e4ca37950a62fedb2 undefined +ae4d541a4c50f2262cec96bb8ad80153c56de75e208e2659cc47c4513d117bd0 undefined +747e3b09d81272d3b101bb21fd8a99e0f7cf4e6e4eb8172c7b7611534bf874a0 undefined +d0c4148ea17ff6b5504e32b79af47ddea3a1cf4f60668a31e878b622c2366068 undefined +feb626a703af678d276677f80e0d0114c55c5e383dc68f45b7bcd1685a900a0e undefined +9f9ce77dfc06f0e65484c6c6c8cf63cb4d7d50b80d22a3fa24300a58236bd9ac undefined +3d338aec9456c523d666daaeef4c2255cb7eebaaa591bddb7c85eac0e2682c73 undefined +37ca6cd844389208e2a1dd2af274c736e73dd83b0630017643734490edd52f2f undefined +d2e47e13a765135614f2efa29c321bc637ac707fba9b5ff999ed48f0a1b404ad undefined +4df6539da5e4894968864bea4b4d8ef4892f7daf0a4749f9289752682ca38c2e undefined +f272a059d2f1ea8932609b796ceda5a4a3cf45b1954a4e93ecd1f2c70558e893 undefined +0fe89edbe0ec7f8c866186944ab8a206965a872ee920feb937de64b26788d9c6 undefined +2883a0cb97abf6bfa72948475aea0d321d7db077337c553be7567e83cc9ee07b undefined +cdb9f963300573cac410131481751f4f2dc19551d6da621f206eb4c2e0100b6b undefined +12abf8db13d1207ffe18a529c357d299a506f450a28b17d669e7ab826f4d28f9 undefined +f0d5c7b1723e6a3295d98748766e7d208dc95815b2218e57372be6c9f5fd84ed undefined +2b0c0c4543b2f57058e12de2982392580000aceb84d7637a8878f4ac0c87a929 undefined +484f7f7cb16475da052a7c53519f7a6abc5d966724652c59e911c33e64f39c4c undefined +520b048f51998b50615b2af0408a3409d60e87624b155297dd2803a1a1e67b51 undefined +ba8fb57ea695463442c38c6699fc92b55ee378c5c96ab3a0cdbac1d16973e272 undefined +44f4d004a6e0b51df86d12d50165ea7f34198aa68d71fe96fe7b2867455f2a69 undefined +60cc9fab4b4711c3b3d29e78c647c0b82e4d84df2788420dd9d47e380db1d058 undefined +c32b58220a4f18e4f3801f69e551c1c2d1e606194e062f0ed304f5beb883621c undefined +14a78967a590b34560945fd8df85f0cee9867f80fb3e0ec2ab8f6d2546d3328f undefined +4df2b70f9a6c155e64a86e7f5cfe0d555caa5395be94165eef1a61b687625300 undefined +362d9187d434f583ffd73645854e0f7d5fd2f1459b79ed2f9c794f363b2f5da5 undefined +151678bd825fcdf09b74cfff7ebc07a62660cb93332e2655d6a383b602726741 undefined +0d5f35cabc2bf6258c776fa028da2b631f41c174be14de795ca2e96499018562 undefined +e228f36174b7e2f95e90db024079b19d4eedd758920d17af863af7e3800dd537 undefined +458cc0dc8271d39337a5f9f22b8df490e23d6bab61dd486f0b2f11c3aa6f38dd undefined +6227a7b0a974794095acdaa62c793c593b313ea997a87d7af99034753da6dffe undefined +14065e7502bd441006f711b5f6700efb42a99f734220eef286b83512371b7604 undefined +4fc1481b6810db56bbf74506f8746c4f86dad60d0706ec2c02ad7f048324948b undefined +b9b11ede3891c518d50575e25b176fa6dec71bebf9ae61059bd51041cba04f2a undefined +6e02d29ec0db12153901236071e2d8f861c7b78e506b1a53506e8a81f6f49cf5 undefined +f12e7945ad8224283c941ba151d4363af73bdae0a949e020eaefdf5c23506df5 undefined +1ae48207ce5a908e82d57f0f0d16444717a7b5ad11ac8a7d0598a7f346bbe67d undefined +1cb80e543e5424275bc3c756c664920c7aa46a7e3f2a7df6a451bb52f1402fc2 undefined +e453f50cd841763a49a72e460bbb0f9e0a79b1687d8eec8584e5a2973981aa88 undefined +ab4c89132807e92f117b75557ec01d5153773fee2b22a3d339c46666a4c5b19c undefined +a35f8dee129cdfbfc15e8f24aa907a4ae55850b5a9e8d457d77d608a52668534 undefined +e02e2c44a63e5dfe703c745ceae3f2aa0074d0c8754bd05b58930350eb11788f undefined +c560df9dfcd2c85088b32f6558a49c21d02387846994d314d35bf5b30e151a2d undefined +953ef8e7459a41629002cd3e261510612c983cce3ddf37f45a6999cd30ff5faf undefined +86ada043f893c38fba7d1f85992eb175478e6eb14e514db4052ae03bf9c0172c undefined +7e514cd968f05c850f1a84f38458af62fd608e25909141d4a1cad63845997f37 undefined +bd8053b9206748e1c28de032ac4768be4f4eba27bb1dbcc44f9383996547d182 undefined +bb0df35b4a549d5a60f35567607b0ad944adf2b52dc2f666324e191c33ff3837 undefined +852abfcd6e99859ae5f26645092201f8dbd0da3b5312a4a224b5b9f81bb1ae8f undefined +a6ee99719c183590831bcb65626c6c5cd82d929e5ddfc1eba3ee9702064d2d8f undefined +6c1b39d9a8cb3d9e5688cca0780a741592d51593bbc870cfeacda5b26ff5d058 undefined +9e564f829c660bd86e892be1dfcd0b280b841e1e9767acafba98c786a9c419d0 undefined +5307707911380836ed0778b633e57fb326f089b1b65a05e88640bb1e666b02d8 undefined +b460c75271cebd57e9272e0c55659169fd9aec750f52610c5191f43b1323e799 undefined +79cc55ca9c1c457a246e6d3ae2356ae72ed55c69cb7cfd51aaa46c6369bf1d38 undefined +ebcec7b29d50788f4b2ad78d69fc0cfa8f70d990f3e9814a73d0e1fa455af266 undefined +3c00eb2943d4f7777fa2dca85cc29bb6855d3483e0052af9fd828eb5d6f6a6ee undefined +428509ce181625b9cf4612bd98de2fc4c575e6099847ed48f1bd814c8a73f542 undefined +201ebd9d8355a9e39601879cfc9000851e13928197e45d2c78f359b0ce1b421d undefined +f3ce8670cc9a6e240ed9e31221e6342d1374dd8709a0be8ec4a8faf8b57f5c44 undefined +1233a45708dc3150c526d8e118a7d0ef0584c29cfd48358098b75ce050a77c7a undefined +7dccc7ce638d421d1c3b3a64e06efdb159dcfe90e15b0fe8e1eca4d296b47c64 undefined +a8c897c15716d99f007d6fdeb6b48563ba9b7590977c21712ce880bb4df38bb4 undefined +cc1bb615a6a5af43ded344ccfce41191d7bbdbcef1b5ac6e5dd1d865b77209f6 undefined +f3b9f46d4ba5b3923784e3f11115e27502fd551956e842bf8af2b9dfc7a72aa2 undefined +799e7423c31b269988e538a17700583f2c7aaf3dd60efda6a707f749be1056ac undefined +b508b3f24dd580ff954561a04a5d14c25c78c7990a3524ea37e9adf011c25854 undefined +5253d726a6ecc5bcdf39ca7ee0b7f8057ea498c2c075e84daab50e2dddcb2083 undefined +c907d3f3bfc0ab8d78c17568153d2e3548639cdbc48cd30c77d10d5dc31365ac undefined +44a06df667d169530cb6d3cdbfe996ff57049d1daf29838dcbca688fe6b9b8b0 undefined +968af744ef1a2aa726f6efb1da9a713c45a6595bf62dabda8a9d504a8ea068f7 undefined +8d87a4b85e117b7fd1e58512667926d696a0c298cbb2296bdd096a9f7358fcfc undefined +bc6027ec3354beb0004e3e1c9155870a67a9dad4605a6348cb8e32027c6a7bfe undefined +faaaf1463648c4eb9ae573268b76112286adaa617f5d8008bb6b997722589865 undefined +86769476afc5e087bc022af684f832370c29f6c1b41a854e42152701cf310b99 undefined +8f725d8b9b4fca640137ca4b03392169e119a8ff3c77880b0c0b5dd8349fd5bb undefined +9d497881ee61acccdcb3b71b4a627fb0416dabd1add4c1f1be360eb82092c77e undefined +539078def560c6db49e8e9b11af9426946a04b981bfe814732137b7e836e430a undefined +97ed0be8a6065588c63bbbbb86ed6aa52f7c15a80c6971a4fbdbb8985c338292 undefined +e5011c3ee790271a211dcc8ae2a2fba09fdaee59395771b3a4c7a681af6bb623 undefined +e752f889860689dce1375efeb77c6256d2ebc133e776092530437973d7bfc335 undefined +059f322097e8880338f88f453cab631eec425b198b2be4695efea1f02f835ef2 undefined +12952749312d1383a2c918132ce949bddb5622d21bad5f487c6bfa6adadbb59e undefined +f5452d502e8f9e4f0f08cba39d221bf13407654ac63d1f703883e6106d17ff30 undefined +b773f9702ec6e5722b22b7fb28f146f482c0d4e7ef01d0c045a0569c1e7f574a undefined +06bdb88ac592fab4bbefae0a1cedec0751c82005a93049b95392aa20cfe54fde undefined diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 7299f45c6e..16ae39c2f1 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -13,7 +13,6 @@ - @@ -24,7 +23,7 @@ - + @@ -37,6 +36,6 @@ - + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 416f3fa1a5..5a3f0a9bc8 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -13,7 +13,6 @@ - @@ -24,7 +23,7 @@ - + @@ -37,6 +36,6 @@ - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 1c6574cf17..19987c0f60 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iosevka", - "version": "28.0.0-beta.1", + "version": "28.0.0-beta.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "iosevka", - "version": "28.0.0-beta.1", + "version": "28.0.0-beta.2", "dependencies": { "@iarna/toml": "^2.2.5", "@msgpack/msgpack": "^2.8.0", diff --git a/package.json b/package.json index ee099cffc2..cf61f2db62 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "28.0.0-beta.1", + "version": "28.0.0-beta.2", "main": "./font-src/index.js", "scripts": { "build": "verda -f verdafile.mjs", From 65d1880a84fe8775d3780da893056b8883db7235 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 2 Dec 2023 19:05:38 -0800 Subject: [PATCH 47/59] Update deps --- package-lock.json | 70 +++++++++++++++++++++++------------------------ package.json | 6 ++-- 2 files changed, 38 insertions(+), 38 deletions(-) diff --git a/package-lock.json b/package-lock.json index 19987c0f60..5205f53886 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,11 +24,11 @@ "devDependencies": { "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", - "prettier": "^3.0.3", + "prettier": "^3.1.0", "verda": "^1.11.1", "which": "^4.0.0" }, @@ -76,9 +76,9 @@ } }, "node_modules/@eslint/eslintrc": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.3.tgz", - "integrity": "sha512-yZzuIG+jnVu6hNSzFEN07e8BxF3uAzYtQb6uDkaYZLo6oYZDCq454c5kB8zxnzfCYyP4MIuyBn10L0DqwujTmA==", + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", + "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", "dev": true, "dependencies": { "ajv": "^6.12.4", @@ -99,9 +99,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.53.0.tgz", - "integrity": "sha512-Kn7K8dx/5U6+cT1yEhpX1w4PCSg0M+XyRILPgvwcEBjerFWCwQj5sbr3/VmxqV0JGHCBCzyd6LxypEuehypY1w==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.55.0.tgz", + "integrity": "sha512-qQfo2mxH5yVom1kacMtZZJFVdW+E70mqHMJvVg6WTLo+VBuQJ4TojZlfWBjK0ve5BdEeNAVxOsl/nvNMpJOaJA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -1387,15 +1387,15 @@ } }, "node_modules/eslint": { - "version": "8.53.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.53.0.tgz", - "integrity": "sha512-N4VuiPjXDUa4xVeV/GC/RV3hQW9Nw+Y463lkWaKKXKYMvmRiRDAtfpuPFLN+E1/6ZhyR8J2ig+eVREnYgUsiag==", + "version": "8.55.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.55.0.tgz", + "integrity": "sha512-iyUUAM0PCKj5QpwGfmCAG9XXbZCWsqP/eWAWrG/W0umvjuLRBECwSFdt+rCntju0xEH7teIABPwXpahftIaTdA==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.3", - "@eslint/js": "8.53.0", + "@eslint/eslintrc": "^2.1.4", + "@eslint/js": "8.55.0", "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", @@ -1442,9 +1442,9 @@ } }, "node_modules/eslint-config-prettier": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz", - "integrity": "sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw==", + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", + "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", "dev": true, "bin": { "eslint-config-prettier": "bin/cli.js" @@ -1888,9 +1888,9 @@ } }, "node_modules/flat-cache": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz", - "integrity": "sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", "dev": true, "dependencies": { "flatted": "^3.2.9", @@ -1898,7 +1898,7 @@ "rimraf": "^3.0.2" }, "engines": { - "node": ">=12.0.0" + "node": "^10.12.0 || >=12.0.0" } }, "node_modules/flatted": { @@ -2213,9 +2213,9 @@ } }, "node_modules/ignore": { - "version": "5.2.4", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz", - "integrity": "sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", + "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "dev": true, "engines": { "node": ">= 4" @@ -2739,9 +2739,9 @@ "optional": true }, "node_modules/node-gyp-build": { - "version": "4.6.1", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.1.tgz", - "integrity": "sha512-24vnklJmyRS8ViBNI8KbtK/r/DmXQMRiOMXTNz2nrTnAYUwjmEEbnnpB/+kt+yWRv73bPsSPRFddrcIbAxSiMQ==", + "version": "4.7.1", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", + "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", "dev": true, "optional": true, "bin": { @@ -2782,12 +2782,12 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -3071,9 +3071,9 @@ } }, "node_modules/prettier": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.3.tgz", - "integrity": "sha512-L/4pUDMxcNa8R/EthV08Zt42WBO4h1rarVtK0K+QJG0X187OLo7l699jWw0GKuwzkPQ//jMFA/8Xm6Fh3J/DAg==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.0.tgz", + "integrity": "sha512-TQLvXjq5IAibjh8EpBIkNKxO749UEWABoiIZehEPiY4GNpVdhaFKqSTu+QrlU6D2dPAfubRmtJTi4K4YkQ5eXw==", "dev": true, "bin": { "prettier": "bin/prettier.cjs" diff --git a/package.json b/package.json index cf61f2db62..60f80a777a 100644 --- a/package.json +++ b/package.json @@ -25,11 +25,11 @@ "devDependencies": { "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0", - "eslint": "^8.53.0", - "eslint-config-prettier": "^9.0.0", + "eslint": "^8.55.0", + "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", - "prettier": "^3.0.3", + "prettier": "^3.1.0", "verda": "^1.11.1", "which": "^4.0.0" }, From 08c69f0fd3658fb6df00c00fe67c1d0662ca1869 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 3 Dec 2023 02:49:33 -0800 Subject: [PATCH 48/59] Move around files so the repo will be organized as a monorepo. --- .gitignore | 3 + CHANGELOG.md | 7 +- changes/28.0.0-beta.2.md | 1 - changes/{28.0.0-beta.1.md => 28.0.0.md} | 0 doc/PACKAGE-LIST.md | 274 ++++++++--------- font-src/gen/meta/empty-font.mjs | 17 -- font-src/merge-cache.mjs | 5 - images/button-release.dark.svg | 16 +- images/button-release.light.svg | 16 +- package-lock.json | 282 ++++++++++++------ package.json | 28 +- packages/font-glyphs/package.json | 18 ++ .../font-glyphs/src}/auto-build/accents.ptl | 8 +- .../font-glyphs/src}/auto-build/composite.ptl | 10 +- .../src}/auto-build/mark-doppelganger.ptl | 11 +- .../src}/auto-build/recursive-build.ptl | 4 +- .../src}/auto-build/transformed.ptl | 12 +- .../font-glyphs/src}/common/derivatives.ptl | 6 +- .../font-glyphs/src}/common/shapes.ptl | 11 +- .../font-glyphs/src}/index.ptl | 20 +- .../font-glyphs/src}/letter/cyrillic.ptl | 2 +- .../src}/letter/cyrillic/abk-ha.ptl | 4 +- .../src}/letter/cyrillic/big-yus.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/che.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/dche.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/de.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/dje.ptl | 4 +- .../src}/letter/cyrillic/djerv.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/dzhe.ptl | 4 +- .../src}/letter/cyrillic/dzzhe-zhwe.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/e.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/el.ptl | 6 +- .../font-glyphs/src}/letter/cyrillic/fita.ptl | 4 +- .../src}/letter/cyrillic/iotified-a.ptl | 6 +- .../font-glyphs/src}/letter/cyrillic/lje.ptl | 6 +- .../src}/letter/cyrillic/lower-be.ptl | 4 +- .../src}/letter/cyrillic/lower-uk.ptl | 4 +- .../src}/letter/cyrillic/multiocular-o.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/nje.ptl | 6 +- .../src}/letter/cyrillic/omega.ptl | 4 +- .../src}/letter/cyrillic/orthography.ptl | 2 +- .../font-glyphs/src}/letter/cyrillic/sha.ptl | 4 +- .../src}/letter/cyrillic/small-yus.ptl | 4 +- .../src}/letter/cyrillic/te-comb.ptl | 4 +- .../src}/letter/cyrillic/te-midhook.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/tse.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/tshe.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/yat.ptl | 6 +- .../font-glyphs/src}/letter/cyrillic/yeri.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/yu.ptl | 4 +- .../font-glyphs/src}/letter/cyrillic/zhe.ptl | 4 +- .../font-glyphs/src}/letter/greek.ptl | 2 +- .../src}/letter/greek/lower-delta.ptl | 4 +- .../src}/letter/greek/lower-epsilon.ptl | 4 +- .../src}/letter/greek/lower-gamma.ptl | 4 +- .../src}/letter/greek/lower-kappa-symbol.ptl | 4 +- .../letter/greek/lower-lunate-epsilon.ptl | 4 +- .../src}/letter/greek/lower-nu.ptl | 4 +- .../src}/letter/greek/lower-omega.ptl | 4 +- .../src}/letter/greek/lower-phi.ptl | 4 +- .../src}/letter/greek/lower-rho.ptl | 6 +- .../src}/letter/greek/lower-sigma-final.ptl | 6 +- .../src}/letter/greek/lower-sigma.ptl | 6 +- .../src}/letter/greek/lower-theta.ptl | 6 +- .../src}/letter/greek/lower-upsilon.ptl | 6 +- .../src}/letter/greek/lower-xi.ptl | 6 +- .../src}/letter/greek/lower-zeta.ptl | 4 +- .../font-glyphs/src}/letter/greek/pi.ptl | 6 +- .../font-glyphs/src}/letter/greek/psi.ptl | 6 +- .../font-glyphs/src}/letter/greek/qoppa.ptl | 6 +- .../font-glyphs/src}/letter/greek/sampi.ptl | 6 +- .../src}/letter/greek/upper-gamma.ptl | 8 +- .../src}/letter/greek/upper-omega.ptl | 6 +- .../src}/letter/greek/upper-phi.ptl | 6 +- .../src}/letter/greek/upper-sigma.ptl | 6 +- .../src}/letter/greek/upper-theta.ptl | 6 +- .../src}/letter/greek/upper-xi.ptl | 6 +- .../letter/latin-ext/bidental-percussive.ptl | 4 +- .../src}/letter/latin-ext/egyptological.ptl | 4 +- .../src}/letter/latin-ext/eszet.ptl | 6 +- .../font-glyphs/src}/letter/latin-ext/eth.ptl | 4 +- .../font-glyphs/src}/letter/latin-ext/ezh.ptl | 4 +- .../src}/letter/latin-ext/f-ligatures.ptl | 4 +- .../letter/latin-ext/flattened-open-a.ptl | 4 +- .../font-glyphs/src}/letter/latin-ext/gha.ptl | 4 +- .../src}/letter/latin-ext/glottal-stop.ptl | 4 +- .../src}/letter/latin-ext/hwair.ptl | 4 +- .../src}/letter/latin-ext/insular-g.ptl | 4 +- .../src}/letter/latin-ext/insular-t.ptl | 4 +- .../src}/letter/latin-ext/long-s.ptl | 6 +- .../src}/letter/latin-ext/lower-ae-oe.ptl | 4 +- .../src}/letter/latin-ext/lower-db-qp.ptl | 4 +- .../src}/letter/latin-ext/middle-welsh-v.ptl | 4 +- .../src}/letter/latin-ext/orthography.ptl | 2 +- .../font-glyphs/src}/letter/latin-ext/ou.ptl | 4 +- .../src}/letter/latin-ext/rams-horn.ptl | 4 +- .../src}/letter/latin-ext/rhotic.ptl | 6 +- .../src}/letter/latin-ext/sakha-yat.ptl | 4 +- .../src}/letter/latin-ext/thorn.ptl | 4 +- .../src}/letter/latin-ext/upper-aa-ao.ptl | 6 +- .../src}/letter/latin-ext/upper-ae-oe.ptl | 4 +- .../src}/letter/latin-ext/wynn.ptl | 4 +- .../src}/letter/latin-ext/yogh.ptl | 4 +- .../font-glyphs/src}/letter/latin.ptl | 2 +- .../font-glyphs/src}/letter/latin/c.ptl | 6 +- .../font-glyphs/src}/letter/latin/k.ptl | 8 +- .../font-glyphs/src}/letter/latin/lower-a.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-b.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-d.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-e.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-f.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-g.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-h.ptl | 6 +- .../src}/letter/latin/lower-il.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-j.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-m.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-n.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-p.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-q.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-r.ptl | 6 +- .../font-glyphs/src}/letter/latin/lower-t.ptl | 4 +- .../font-glyphs/src}/letter/latin/lower-y.ptl | 6 +- .../font-glyphs/src}/letter/latin/o.ptl | 4 +- .../font-glyphs/src}/letter/latin/s.ptl | 6 +- .../font-glyphs/src}/letter/latin/u.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-a.ptl | 8 +- .../font-glyphs/src}/letter/latin/upper-b.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-d.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-e.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-f.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-g.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-h.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-i.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-j.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-l.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-m.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-n.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-p.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-q.ptl | 4 +- .../font-glyphs/src}/letter/latin/upper-r.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-t.ptl | 6 +- .../font-glyphs/src}/letter/latin/upper-y.ptl | 6 +- .../font-glyphs/src}/letter/latin/v.ptl | 6 +- .../font-glyphs/src}/letter/latin/w.ptl | 6 +- .../font-glyphs/src}/letter/latin/x.ptl | 6 +- .../font-glyphs/src}/letter/latin/z.ptl | 6 +- .../font-glyphs/src}/letter/shared.ptl | 8 +- .../font-glyphs/src}/marks/above.ptl | 14 +- .../font-glyphs/src}/marks/adjust.ptl | 4 +- .../font-glyphs/src}/marks/below.ptl | 9 +- .../font-glyphs/src}/marks/composite.ptl | 6 +- .../font-glyphs/src}/marks/horn-and-angle.ptl | 7 +- .../font-glyphs/src}/marks/index.ptl | 2 +- .../font-glyphs/src}/marks/overlay.ptl | 6 +- .../font-glyphs/src}/marks/shared-metrics.ptl | 8 +- .../font-glyphs/src}/marks/tie.ptl | 8 +- .../font-glyphs/src}/meta/aesthetics.ptl | 8 +- .../font-glyphs/src}/meta/macros.ptl | 0 .../src}/meta/unicode-knowledge.ptl | 0 .../font-glyphs/src}/number/0.ptl | 6 +- .../font-glyphs/src}/number/1.ptl | 6 +- .../font-glyphs/src}/number/2.ptl | 4 +- .../font-glyphs/src}/number/3.ptl | 4 +- .../font-glyphs/src}/number/4.ptl | 4 +- .../font-glyphs/src}/number/5.ptl | 4 +- .../font-glyphs/src}/number/6.ptl | 4 +- .../font-glyphs/src}/number/7.ptl | 6 +- .../font-glyphs/src}/number/8.ptl | 4 +- .../font-glyphs/src}/number/9.ptl | 4 +- .../font-glyphs/src}/number/index.ptl | 2 +- .../font-glyphs/src}/number/shared.ptl | 4 +- .../font-glyphs/src}/space/index.ptl | 6 +- .../font-glyphs/src}/symbol/arrow.ptl | 4 +- .../font-glyphs/src}/symbol/braille.ptl | 6 +- .../font-glyphs/src}/symbol/enclosure.ptl | 6 +- .../font-glyphs/src}/symbol/geometric.ptl | 2 +- .../src}/symbol/geometric/ballot-box.ptl | 6 +- .../src}/symbol/geometric/corner-shape.ptl | 2 +- .../src}/symbol/geometric/dotted.ptl | 6 +- .../src}/symbol/geometric/masked.ptl | 6 +- .../src}/symbol/geometric/plain.ptl | 6 +- .../src}/symbol/geometric/rounded.ptl | 6 +- .../src}/symbol/geometric/shaded.ptl | 6 +- .../src}/symbol/geometric/shared.ptl | 6 +- .../src}/symbol/geometric/stars.ptl | 6 +- .../src}/symbol/geometric/sun-and-gear.ptl | 6 +- .../font-glyphs/src}/symbol/letter.ptl | 8 +- .../font-glyphs/src}/symbol/ligation.ptl | 8 +- .../font-glyphs/src}/symbol/math.ptl | 2 +- .../font-glyphs/src}/symbol/math/apl.ptl | 10 +- .../font-glyphs/src}/symbol/math/arith.ptl | 4 +- .../font-glyphs/src}/symbol/math/boxed.ptl | 4 +- .../font-glyphs/src}/symbol/math/circled.ptl | 4 +- .../src}/symbol/math/complement.ptl | 4 +- .../src}/symbol/math/dots-and-colons.ptl | 4 +- .../font-glyphs/src}/symbol/math/frame.ptl | 4 +- .../font-glyphs/src}/symbol/math/geometry.ptl | 4 +- .../src}/symbol/math/integrals.ptl | 4 +- .../src}/symbol/math/large-operators.ptl | 6 +- .../src}/symbol/math/letter-like.ptl | 4 +- .../font-glyphs/src}/symbol/math/logicals.ptl | 4 +- .../font-glyphs/src}/symbol/math/negation.ptl | 4 +- .../src}/symbol/math/not-glyph-fn.ptl | 4 +- .../font-glyphs/src}/symbol/math/other.ptl | 4 +- .../font-glyphs/src}/symbol/math/relation.ptl | 8 +- .../src}/symbol/math/v-and-cup.ptl | 4 +- .../font-glyphs/src}/symbol/mosaic.ptl | 4 +- .../font-glyphs/src}/symbol/pictograph.ptl | 2 +- .../src}/symbol/pictograph/astronomy.ptl | 4 +- .../src}/symbol/pictograph/atom.ptl | 4 +- .../src}/symbol/pictograph/bolt-symbol.ptl | 4 +- .../src}/symbol/pictograph/checking-marks.ptl | 4 +- .../src}/symbol/pictograph/clock.ptl | 6 +- .../src}/symbol/pictograph/cross.ptl | 6 +- .../src}/symbol/pictograph/faces.ptl | 4 +- .../src}/symbol/pictograph/flags.ptl | 4 +- .../src}/symbol/pictograph/heart.ptl | 6 +- .../src}/symbol/pictograph/i-ching.ptl | 6 +- .../pictograph/iec-power-and-playback.ptl | 4 +- .../src}/symbol/pictograph/kome.ptl | 4 +- .../src}/symbol/pictograph/metric-marks.ptl | 4 +- .../src}/symbol/pictograph/musical.ptl | 6 +- .../symbol/pictograph/powerline-and-gui.ptl | 6 +- .../src}/symbol/pictograph/stick-figure.ptl | 8 +- .../src}/symbol/pictograph/suit.ptl | 6 +- .../symbol/pictograph/telephone-recorder.ptl | 6 +- .../font-glyphs/src}/symbol/punctuation.ptl | 2 +- .../src}/symbol/punctuation/ampersand.ptl | 4 +- .../src}/symbol/punctuation/ascii-marks.ptl | 4 +- .../src}/symbol/punctuation/asterisk.ptl | 4 +- .../src}/symbol/punctuation/at.ptl | 4 +- .../src}/symbol/punctuation/bar.ptl | 8 +- .../src}/symbol/punctuation/brackets.ptl | 8 +- .../src}/symbol/punctuation/bullets.ptl | 4 +- .../src}/symbol/punctuation/caret.ptl | 4 +- .../src}/symbol/punctuation/daggers.ptl | 4 +- .../src}/symbol/punctuation/dashes.ptl | 6 +- .../src}/symbol/punctuation/ellipsis.ptl | 4 +- .../src}/symbol/punctuation/emotion.ptl | 4 +- .../src}/symbol/punctuation/guillemet.ptl | 4 +- .../src}/symbol/punctuation/interpuncts.ptl | 4 +- .../src}/symbol/punctuation/joiners.ptl | 4 +- .../symbol/punctuation/ligation-variants.ptl | 4 +- .../symbol/punctuation/other-phonetic.ptl | 6 +- .../src}/symbol/punctuation/percentages.ptl | 4 +- .../src}/symbol/punctuation/pilcrow.ptl | 4 +- .../symbol/punctuation/quotes-and-primes.ptl | 6 +- .../src}/symbol/punctuation/section.ptl | 4 +- .../punctuation/slashes-and-number-sign.ptl | 6 +- .../src}/symbol/punctuation/small.ptl | 6 +- .../src}/symbol/punctuation/ties.ptl | 4 +- .../font-glyphs/src}/symbol/shared.ptl | 4 +- packages/font-kits/package.json | 16 + .../font-kits/src}/boole-kit.mjs | 5 +- .../font-kits/src}/spiro-kit.mjs | 14 +- packages/font-otl/package.json | 13 + .../font-otl/src}/gpos-mark-mkmk.ptl | 0 .../font-otl/src}/gsub-ccmp.ptl | 8 +- .../font-otl/src}/gsub-cv-ss.ptl | 4 +- .../font-otl/src}/gsub-frac.ptl | 4 +- .../otl => packages/font-otl/src}/gsub-gr.ptl | 0 .../font-otl/src}/gsub-ligation.ptl | 2 +- .../font-otl/src}/gsub-locl.ptl | 4 +- .../font-otl/src}/gsub-texture.ptl | 4 +- .../font-otl/src}/gsub-thousands.ptl | 4 +- .../otl => packages/font-otl/src}/index.ptl | 27 +- packages/font-otl/src/meta/macros.ptl | 8 + .../font-otl/src}/table-util.ptl | 2 +- packages/font/package.json | 26 ++ .../font/src}/derive-spacing.mjs | 4 +- .../gen => packages/font/src}/finalize/gc.mjs | 6 +- .../font/src}/finalize/glyphs.mjs | 9 +- .../font/src}/finalize/index.mjs | 2 +- .../font/src/font-io/index.mjs | 18 ++ .../font/src/font.mjs | 12 +- .../font/src}/generated/ttfa-ranges.mjs | 0 .../font/src}/hb-compat-ligature/index.mjs | 2 +- {font-src => packages/font/src}/index.mjs | 39 ++- packages/font/src/merge-cache.mjs | 5 + .../font/src/naming/index.mjs | 0 .../font/src}/otd-conv/glyph-name.mjs | 2 +- .../font/src}/otd-conv/glyphs.mjs | 5 +- .../font/src}/otd-conv/index.mjs | 0 .../font/src}/otd-conv/layout.mjs | 3 +- .../font/src}/ttfa-controls/index.mjs | 7 +- packages/geometry-cache/package.json | 11 + .../geometry-cache/src}/index.mjs | 0 packages/geometry/package.json | 19 ++ .../geometry/src}/anchor.mjs | 0 .../geometry/src}/box.mjs | 2 +- .../geometry/src}/curve-util.mjs | 0 .../geometry/src}/index.mjs | 3 +- .../geometry/src}/point.mjs | 2 +- .../geometry/src}/spiro-control.mjs | 2 +- .../geometry/src}/spiro-expand.mjs | 3 +- .../geometry/src}/transform.mjs | 0 packages/glyph/package.json | 16 + .../glyph/src/block.mjs | 0 .../index.mjs => packages/glyph/src/glyph.mjs | 8 +- .../gr.mjs => packages/glyph/src/relation.mjs | 0 .../glyph/src/store.mjs | 0 packages/param/package.json | 14 + .../param/src/index.mjs | 2 +- .../param/src/ligation.mjs | 2 +- .../param/src}/metric-override.mjs | 2 +- .../param/src/variant.mjs | 2 +- packages/util/package.json | 11 + .../util => packages/util/src}/formatter.mjs | 0 .../utils.mjs => packages/util/src/index.mjs | 0 .../util => packages/util/src}/mask-bit.mjs | 0 .../util/src}/monotonic-interpolate.mjs | 0 tools/amend-readme/package.json | 13 + .../description-cheery-picking-styles.md | 0 ...escription-cherry-picking-ligation-sets.md | 0 .../description-predefined-ligation-sets.md | 0 .../fragments/description-stylistic-sets.md | 0 .../src}/fragments/packages-desc.md | 0 .../amend-readme/src}/generate-change-log.mjs | 13 +- .../src}/generate-release-note.mjs | 13 +- .../amend-readme/src}/index.mjs | 23 +- .../amend-readme/src}/license-year.mjs | 0 .../amend-readme/src}/md-format-tools.mjs | 0 .../src}/sections/cherry-picking-styles.mjs | 7 +- .../src}/sections/cv-influences.mjs | 3 +- .../amend-readme/src}/sections/cv-ot.mjs | 7 +- .../amend-readme/src}/sections/lang-list.mjs | 3 +- .../src}/sections/lig-set-cherry-picking.mjs | 7 +- .../amend-readme/src}/sections/lig-set-ot.mjs | 7 +- .../src}/sections/lig-set-pre-def.mjs | 7 +- .../src}/sections/package-list.mjs | 0 .../src}/sections/private-build-plans.mjs | 4 +- .../amend-readme/src}/sections/ss-ot.mjs | 7 +- .../amend-readme/src}/sections/ss-styles.mjs | 7 +- tools/data-export/package.json | 17 ++ .../src}/coverage-export/block-data.mjs | 0 .../coverage-export/gather-coverage-data.mjs | 0 .../data-export/src}/index.mjs | 19 +- .../data-export/src}/ligation-data.mjs | 9 +- .../data-export/src}/supported-languages.mjs | 0 .../data-export/src}/variants-data.mjs | 10 +- tools/generate-samples/package.json | 11 + .../generate-samples/src}/index.mjs | 10 +- .../src}/templates/button.mjs | 0 .../src}/templates/char-grid.mjs | 0 .../src}/templates/character-variant.mjs | 0 .../src}/templates/grand-title.mjs | 0 .../src}/templates/languages.mjs | 0 .../src}/templates/ligation-set.mjs | 0 .../src}/templates/matrix.mjs | 0 .../src}/templates/package-sample.mjs | 0 .../src}/templates/stylistic-set.mjs | 0 .../src}/templates/weights.mjs | 0 .../generate-samples/src}/themes/index.mjs | 0 .../src/tokenized-sample-code.mjs | 2 +- tools/misc/package.json | 10 + .../misc/src}/copy-char-name-to-markdown.mjs | 0 .../misc/src}/create-sha-file.mjs | 0 .../misc/src/generate-ttfa-ranges.mjs | 4 +- .../misc/src}/make-webfont-css.mjs | 0 {utility => tools/misc/src}/ttf-to-woff2.mjs | 4 +- .../misc/src/update-package-json-version.mjs | 91 ++++++ utility/dump-cv-list.mjs | 18 -- utility/transpose-variant-tensor.mjs | 102 ------- utility/update-package-json-version/index.mjs | 41 --- verdafile.mjs | 57 ++-- 365 files changed, 1500 insertions(+), 1285 deletions(-) delete mode 100644 changes/28.0.0-beta.2.md rename changes/{28.0.0-beta.1.md => 28.0.0.md} (100%) delete mode 100644 font-src/gen/meta/empty-font.mjs delete mode 100644 font-src/merge-cache.mjs create mode 100644 packages/font-glyphs/package.json rename {font-src/glyphs => packages/font-glyphs/src}/auto-build/accents.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/auto-build/composite.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/auto-build/mark-doppelganger.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/auto-build/recursive-build.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/auto-build/transformed.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/common/derivatives.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/common/shapes.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/index.ptl (88%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/abk-ha.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/big-yus.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/che.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/dche.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/de.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/dje.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/djerv.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/dzhe.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/dzzhe-zhwe.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/e.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/el.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/fita.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/iotified-a.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/lje.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/lower-be.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/lower-uk.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/multiocular-o.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/nje.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/omega.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/orthography.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/sha.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/small-yus.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/te-comb.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/te-midhook.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/tse.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/tshe.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/yat.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/yeri.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/yu.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/cyrillic/zhe.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-delta.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-epsilon.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-gamma.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-kappa-symbol.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-lunate-epsilon.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-nu.ptl (84%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-omega.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-phi.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-rho.ptl (86%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-sigma-final.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-sigma.ptl (81%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-theta.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-upsilon.ptl (83%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-xi.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/lower-zeta.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/pi.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/psi.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/qoppa.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/sampi.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-gamma.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-omega.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-phi.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-sigma.ptl (87%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-theta.ptl (81%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/greek/upper-xi.ptl (83%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/bidental-percussive.ptl (80%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/egyptological.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/eszet.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/eth.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/ezh.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/f-ligatures.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/flattened-open-a.ptl (87%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/gha.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/glottal-stop.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/hwair.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/insular-g.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/insular-t.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/long-s.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/lower-ae-oe.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/lower-db-qp.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/middle-welsh-v.ptl (88%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/orthography.ptl (83%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/ou.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/rams-horn.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/rhotic.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/sakha-yat.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/thorn.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/upper-aa-ao.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/upper-ae-oe.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/wynn.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin-ext/yogh.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/c.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/k.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-a.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-b.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-d.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-e.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-f.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-g.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-h.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-il.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-j.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-m.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-n.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-p.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-q.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-r.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-t.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/lower-y.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/o.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/s.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/u.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-a.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-b.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-d.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-e.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-f.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-g.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-h.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-i.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-j.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-l.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-m.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-n.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-p.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-q.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-r.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-t.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/upper-y.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/v.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/w.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/x.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/latin/z.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/letter/shared.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/above.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/adjust.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/below.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/composite.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/horn-and-angle.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/index.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/overlay.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/shared-metrics.ptl (82%) rename {font-src/glyphs => packages/font-glyphs/src}/marks/tie.ptl (94%) rename {font-src => packages/font-glyphs/src}/meta/aesthetics.ptl (98%) rename {font-src => packages/font-glyphs/src}/meta/macros.ptl (100%) rename {font-src => packages/font-glyphs/src}/meta/unicode-knowledge.ptl (100%) rename {font-src/glyphs => packages/font-glyphs/src}/number/0.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/number/1.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/number/2.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/number/3.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/number/4.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/number/5.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/number/6.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/number/7.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/number/8.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/number/9.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/number/index.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/number/shared.ptl (86%) rename {font-src/glyphs => packages/font-glyphs/src}/space/index.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/arrow.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/braille.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/enclosure.ptl (66%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric.ptl (93%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/ballot-box.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/corner-shape.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/dotted.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/masked.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/plain.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/rounded.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/shaded.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/shared.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/stars.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/geometric/sun-and-gear.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/letter.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/ligation.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/apl.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/arith.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/boxed.ptl (87%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/circled.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/complement.ptl (73%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/dots-and-colons.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/frame.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/geometry.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/integrals.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/large-operators.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/letter-like.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/logicals.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/negation.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/not-glyph-fn.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/other.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/relation.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/math/v-and-cup.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/mosaic.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/astronomy.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/atom.ptl (90%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/bolt-symbol.ptl (85%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/checking-marks.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/clock.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/cross.ptl (92%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/faces.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/flags.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/heart.ptl (88%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/i-ching.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/iec-power-and-playback.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/kome.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/metric-marks.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/musical.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/powerline-and-gui.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/stick-figure.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/suit.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/pictograph/telephone-recorder.ptl (81%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/ampersand.ptl (99%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/ascii-marks.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/asterisk.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/at.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/bar.ptl (94%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/brackets.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/bullets.ptl (89%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/caret.ptl (75%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/daggers.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/dashes.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/ellipsis.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/emotion.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/guillemet.ptl (95%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/interpuncts.ptl (87%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/joiners.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/ligation-variants.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/other-phonetic.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/percentages.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/pilcrow.ptl (96%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/quotes-and-primes.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/section.ptl (91%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/slashes-and-number-sign.ptl (97%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/small.ptl (98%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/punctuation/ties.ptl (86%) rename {font-src/glyphs => packages/font-glyphs/src}/symbol/shared.ptl (93%) create mode 100644 packages/font-kits/package.json rename {font-src/kits => packages/font-kits/src}/boole-kit.mjs (90%) rename {font-src/kits => packages/font-kits/src}/spiro-kit.mjs (97%) create mode 100644 packages/font-otl/package.json rename {font-src/otl => packages/font-otl/src}/gpos-mark-mkmk.ptl (100%) rename {font-src/otl => packages/font-otl/src}/gsub-ccmp.ptl (98%) rename {font-src/otl => packages/font-otl/src}/gsub-cv-ss.ptl (98%) rename {font-src/otl => packages/font-otl/src}/gsub-frac.ptl (92%) rename {font-src/otl => packages/font-otl/src}/gsub-gr.ptl (100%) rename {font-src/otl => packages/font-otl/src}/gsub-ligation.ptl (99%) rename {font-src/otl => packages/font-otl/src}/gsub-locl.ptl (97%) rename {font-src/otl => packages/font-otl/src}/gsub-texture.ptl (97%) rename {font-src/otl => packages/font-otl/src}/gsub-thousands.ptl (95%) rename {font-src/otl => packages/font-otl/src}/index.ptl (84%) create mode 100644 packages/font-otl/src/meta/macros.ptl rename {font-src/otl => packages/font-otl/src}/table-util.ptl (99%) create mode 100644 packages/font/package.json rename {font-src => packages/font/src}/derive-spacing.mjs (95%) rename {font-src/gen => packages/font/src}/finalize/gc.mjs (98%) rename {font-src/gen => packages/font/src}/finalize/glyphs.mjs (97%) rename {font-src/gen => packages/font/src}/finalize/index.mjs (96%) rename font-src/support/font-io/font-io.mjs => packages/font/src/font-io/index.mjs (52%) rename font-src/gen/build-font.mjs => packages/font/src/font.mjs (78%) rename {font-src => packages/font/src}/generated/ttfa-ranges.mjs (100%) rename {font-src/gen => packages/font/src}/hb-compat-ligature/index.mjs (97%) rename {font-src => packages/font/src}/index.mjs (67%) create mode 100644 packages/font/src/merge-cache.mjs rename font-src/gen/meta/naming.mjs => packages/font/src/naming/index.mjs (100%) rename {font-src/gen => packages/font/src}/otd-conv/glyph-name.mjs (99%) rename {font-src/gen => packages/font/src}/otd-conv/glyphs.mjs (97%) rename {font-src/gen => packages/font/src}/otd-conv/index.mjs (100%) rename {font-src/gen => packages/font/src}/otd-conv/layout.mjs (99%) rename {font-src/gen => packages/font/src}/ttfa-controls/index.mjs (94%) create mode 100644 packages/geometry-cache/package.json rename {font-src/gen/caching => packages/geometry-cache/src}/index.mjs (100%) create mode 100644 packages/geometry/package.json rename {font-src/support/geometry => packages/geometry/src}/anchor.mjs (100%) rename {font-src/support/geometry => packages/geometry/src}/box.mjs (96%) rename {font-src/support/geometry => packages/geometry/src}/curve-util.mjs (100%) rename {font-src/support/geometry => packages/geometry/src}/index.mjs (99%) rename {font-src/support/geometry => packages/geometry/src}/point.mjs (97%) rename {font-src/support/geometry => packages/geometry/src}/spiro-control.mjs (98%) rename {font-src/support/geometry => packages/geometry/src}/spiro-expand.mjs (99%) rename {font-src/support/geometry => packages/geometry/src}/transform.mjs (100%) create mode 100644 packages/glyph/package.json rename font-src/support/glyph-block.mjs => packages/glyph/src/block.mjs (100%) rename font-src/support/glyph/index.mjs => packages/glyph/src/glyph.mjs (96%) rename font-src/support/gr.mjs => packages/glyph/src/relation.mjs (100%) rename font-src/support/glyph-store.mjs => packages/glyph/src/store.mjs (100%) create mode 100644 packages/param/package.json rename font-src/support/parameters.mjs => packages/param/src/index.mjs (97%) rename font-src/support/ligation-data.mjs => packages/param/src/ligation.mjs (97%) rename {font-src/support => packages/param/src}/metric-override.mjs (98%) rename font-src/support/variant-data.mjs => packages/param/src/variant.mjs (99%) create mode 100644 packages/util/package.json rename {font-src/support/util => packages/util/src}/formatter.mjs (100%) rename font-src/support/utils.mjs => packages/util/src/index.mjs (100%) rename {font-src/support/util => packages/util/src}/mask-bit.mjs (100%) rename {font-src/support/util => packages/util/src}/monotonic-interpolate.mjs (100%) create mode 100644 tools/amend-readme/package.json rename {utility/amend-readme => tools/amend-readme/src}/fragments/description-cheery-picking-styles.md (100%) rename {utility/amend-readme => tools/amend-readme/src}/fragments/description-cherry-picking-ligation-sets.md (100%) rename {utility/amend-readme => tools/amend-readme/src}/fragments/description-predefined-ligation-sets.md (100%) rename {utility/amend-readme => tools/amend-readme/src}/fragments/description-stylistic-sets.md (100%) rename {utility/amend-readme => tools/amend-readme/src}/fragments/packages-desc.md (100%) rename {utility/amend-readme => tools/amend-readme/src}/generate-change-log.mjs (74%) rename {utility/amend-readme => tools/amend-readme/src}/generate-release-note.mjs (87%) rename {utility/amend-readme => tools/amend-readme/src}/index.mjs (66%) rename {utility/amend-readme => tools/amend-readme/src}/license-year.mjs (100%) rename {utility/amend-readme => tools/amend-readme/src}/md-format-tools.mjs (100%) rename {utility/amend-readme => tools/amend-readme/src}/sections/cherry-picking-styles.mjs (94%) rename {utility/amend-readme => tools/amend-readme/src}/sections/cv-influences.mjs (95%) rename {utility/amend-readme => tools/amend-readme/src}/sections/cv-ot.mjs (91%) rename {utility/amend-readme => tools/amend-readme/src}/sections/lang-list.mjs (80%) rename {utility/amend-readme => tools/amend-readme/src}/sections/lig-set-cherry-picking.mjs (68%) rename {utility/amend-readme => tools/amend-readme/src}/sections/lig-set-ot.mjs (78%) rename {utility/amend-readme => tools/amend-readme/src}/sections/lig-set-pre-def.mjs (74%) rename {utility/amend-readme => tools/amend-readme/src}/sections/package-list.mjs (100%) rename {utility/amend-readme => tools/amend-readme/src}/sections/private-build-plans.mjs (68%) rename {utility/amend-readme => tools/amend-readme/src}/sections/ss-ot.mjs (75%) rename {utility/amend-readme => tools/amend-readme/src}/sections/ss-styles.mjs (74%) create mode 100644 tools/data-export/package.json rename {utility/export-data => tools/data-export/src}/coverage-export/block-data.mjs (100%) rename {utility/export-data => tools/data-export/src}/coverage-export/gather-coverage-data.mjs (100%) rename {utility/export-data => tools/data-export/src}/index.mjs (59%) rename {utility/export-data => tools/data-export/src}/ligation-data.mjs (88%) rename {utility/export-data => tools/data-export/src}/supported-languages.mjs (100%) rename {utility/export-data => tools/data-export/src}/variants-data.mjs (93%) create mode 100644 tools/generate-samples/package.json rename {utility/generate-samples => tools/generate-samples/src}/index.mjs (91%) rename {utility/generate-samples => tools/generate-samples/src}/templates/button.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/char-grid.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/character-variant.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/grand-title.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/languages.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/ligation-set.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/matrix.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/package-sample.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/stylistic-set.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/templates/weights.mjs (100%) rename {utility/generate-samples => tools/generate-samples/src}/themes/index.mjs (100%) rename utility/export-tokenized-sample-code.mjs => tools/generate-samples/src/tokenized-sample-code.mjs (86%) create mode 100644 tools/misc/package.json rename {utility => tools/misc/src}/copy-char-name-to-markdown.mjs (100%) rename {utility => tools/misc/src}/create-sha-file.mjs (100%) rename utility/generate-ttfa-ranges/index.mjs => tools/misc/src/generate-ttfa-ranges.mjs (97%) rename {utility => tools/misc/src}/make-webfont-css.mjs (100%) rename {utility => tools/misc/src}/ttf-to-woff2.mjs (79%) create mode 100644 tools/misc/src/update-package-json-version.mjs delete mode 100644 utility/dump-cv-list.mjs delete mode 100644 utility/transpose-variant-tensor.mjs delete mode 100644 utility/update-package-json-version/index.mjs diff --git a/.gitignore b/.gitignore index 808393ab9a..15e0c4c2c2 100644 --- a/.gitignore +++ b/.gitignore @@ -50,6 +50,9 @@ font-src/meta/**/*.mjs font-src/otl/**/*.mjs font-src/glyphs/**/*.mjs +packages/font-glyphs/src/**/*.mjs +packages/font-otl/src/**/*.mjs + private.toml private-build-plans.toml private.mk diff --git a/CHANGELOG.md b/CHANGELOG.md index c80456de2a..bcea8a32f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,11 +1,6 @@ ## Modifications since last major version -### 28.0.0-beta.2 - -* Fix broken TTCs in beta.1 (#2108). - - -### 28.0.0-beta.1 +### 28.0.0 * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. diff --git a/changes/28.0.0-beta.2.md b/changes/28.0.0-beta.2.md deleted file mode 100644 index 839fac6850..0000000000 --- a/changes/28.0.0-beta.2.md +++ /dev/null @@ -1 +0,0 @@ -* Fix broken TTCs in beta.1 (#2108). diff --git a/changes/28.0.0-beta.1.md b/changes/28.0.0.md similarity index 100% rename from changes/28.0.0-beta.1.md rename to changes/28.0.0.md diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 11aaf476ce..71495cf6b8 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.0.0-beta.2 +# Package list of Release 28.0.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/font-src/gen/meta/empty-font.mjs b/font-src/gen/meta/empty-font.mjs deleted file mode 100644 index 9222f9592e..0000000000 --- a/font-src/gen/meta/empty-font.mjs +++ /dev/null @@ -1,17 +0,0 @@ -import { Ot } from "ot-builder"; - -export function CreateEmptyFont(argv) { - let font = { - head: new Ot.Head.Table(), - hhea: new Ot.MetricHead.Hhea(), - os2: new Ot.Os2.Table(4), - post: new Ot.Post.Table(argv.featureControl.exportGlyphNames ? 2 : 3, 0), - maxp: Ot.Maxp.Table.TrueType(), - name: new Ot.Name.Table() - }; - if (process.env.SOURCE_DATE_EPOCH) { - font.head.created = new Date(process.env.SOURCE_DATE_EPOCH * 1000); - font.head.modified = new Date(process.env.SOURCE_DATE_EPOCH * 1000); - } - return font; -} diff --git a/font-src/merge-cache.mjs b/font-src/merge-cache.mjs deleted file mode 100644 index 7276b00068..0000000000 --- a/font-src/merge-cache.mjs +++ /dev/null @@ -1,5 +0,0 @@ -import * as Caching from "./gen/caching/index.mjs"; - -export default (async function main(argv) { - await Caching.merge(argv.base, argv.diff, argv.version, argv.freshAgeKey); -}); diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 16ae39c2f1..d9d39af6ec 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -10,11 +10,8 @@ - - - - + @@ -23,19 +20,12 @@ - + - - - - - - - \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 5a3f0a9bc8..6aa51cc26d 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -10,11 +10,8 @@ - - - - + @@ -23,19 +20,12 @@ - + - - - - - - - \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 5205f53886..2dc7d9852d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,36 +1,31 @@ { - "name": "iosevka", - "version": "28.0.0-beta.2", + "name": "@iosevka/monorepo", + "version": "28.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "iosevka", - "version": "28.0.0-beta.2", + "name": "@iosevka/monorepo", + "version": "28.0.0", + "workspaces": [ + "packages/*", + "tools/*" + ], "dependencies": { "@iarna/toml": "^2.2.5", - "@msgpack/msgpack": "^2.8.0", "deep-equal": "^2.2.3", - "harfbuzzjs": "^0.3.3", - "ot-builder": "^1.7.3", "otb-ttc-bundle": "^1.7.3", "semver": "^7.5.4", - "spiro": "^3.0.0", - "toposort": "^2.0.2", - "typo-geom": "^0.13.1", "uuid": "^9.0.1", - "wawoff2": "^2.0.1" + "verda": "^1.11.1", + "which": "^4.0.0" }, "devDependencies": { - "@unicode/unicode-15.0.0": "^1.5.2", - "cldr": "^7.5.0", "eslint": "^8.55.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", - "prettier": "^3.1.0", - "verda": "^1.11.1", - "which": "^4.0.0" + "prettier": "^3.1.0" }, "engines": { "node": ">=16.0.0" @@ -48,8 +43,7 @@ "node_modules/@assemblyscript/loader": { "version": "0.10.1", "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", - "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", - "dev": true + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==" }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", @@ -145,6 +139,58 @@ "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==" }, + "node_modules/@iosevka/amend-readme": { + "resolved": "tools/amend-readme", + "link": true + }, + "node_modules/@iosevka/data-export": { + "resolved": "tools/data-export", + "link": true + }, + "node_modules/@iosevka/font": { + "resolved": "packages/font", + "link": true + }, + "node_modules/@iosevka/font-glyphs": { + "resolved": "packages/font-glyphs", + "link": true + }, + "node_modules/@iosevka/font-kits": { + "resolved": "packages/font-kits", + "link": true + }, + "node_modules/@iosevka/font-otl": { + "resolved": "packages/font-otl", + "link": true + }, + "node_modules/@iosevka/generate-samples": { + "resolved": "tools/generate-samples", + "link": true + }, + "node_modules/@iosevka/geometry": { + "resolved": "packages/geometry", + "link": true + }, + "node_modules/@iosevka/geometry-cache": { + "resolved": "packages/geometry-cache", + "link": true + }, + "node_modules/@iosevka/glyph": { + "resolved": "packages/glyph", + "link": true + }, + "node_modules/@iosevka/misc": { + "resolved": "tools/misc", + "link": true + }, + "node_modules/@iosevka/param": { + "resolved": "packages/param", + "link": true + }, + "node_modules/@iosevka/util": { + "resolved": "packages/util", + "link": true + }, "node_modules/@msgpack/msgpack": { "version": "2.8.0", "resolved": "https://registry.npmjs.org/@msgpack/msgpack/-/msgpack-2.8.0.tgz", @@ -714,14 +760,12 @@ "node_modules/@unicode/unicode-15.0.0": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/@unicode/unicode-15.0.0/-/unicode-15.0.0-1.5.2.tgz", - "integrity": "sha512-PepMvMxf9j4sp4bZn7W9JJoMxynHk66ZPCsx6n3v47T5vmM+qfIy0z1MMU+EDmRZr2cvs1aT9ZwUEMRPVXR23g==", - "dev": true + "integrity": "sha512-PepMvMxf9j4sp4bZn7W9JJoMxynHk66ZPCsx6n3v47T5vmM+qfIy0z1MMU+EDmRZr2cvs1aT9ZwUEMRPVXR23g==" }, "node_modules/@xmldom/xmldom": { "version": "0.8.10", "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==", - "dev": true, "engines": { "node": ">=10.0.0" } @@ -781,7 +825,6 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true, "engines": { "node": ">=8" } @@ -933,7 +976,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -985,7 +1027,6 @@ "version": "0.0.9", "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.0.9.tgz", "integrity": "sha512-nG8PYH+/4xB+8zkV4G844EtfvZ5tTiLFoX3dZ4nhF4t3OCKIb9UvaFyNmeZO2zOSmRWzBoTD+napN6hiL+EgcA==", - "dev": true, "dependencies": { "traverse": ">=0.3.0 <0.4" }, @@ -1012,7 +1053,6 @@ "version": "7.5.0", "resolved": "https://registry.npmjs.org/cldr/-/cldr-7.5.0.tgz", "integrity": "sha512-2qy3ASYFbNToTujNnk5Y8ak++B4TH/G+S8AEOrN1xUFZhxhmqWDPUGnOFGyId61vD2Trf+yE65wVzIcdE/bpPg==", - "dev": true, "dependencies": { "@xmldom/xmldom": "^0.8.0", "escodegen": "^2.0.0", @@ -1029,7 +1069,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "dependencies": { "restore-cursor": "^3.1.0" }, @@ -1208,8 +1247,7 @@ "node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/es-abstract": { "version": "1.22.3", @@ -1327,7 +1365,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, "engines": { "node": ">=6" } @@ -1348,7 +1385,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.1.0.tgz", "integrity": "sha512-2NlIDTwUWJN0mRPQOdtQBzbUHvdGY2P1VXSyU83Q3xKxM7WHX2Ql8dKq782Q9TgQUNOLEzEYu9bzLNj1q88I5w==", - "dev": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -1752,7 +1788,6 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -1812,7 +1847,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -1821,7 +1855,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -1829,14 +1862,12 @@ "node_modules/eventemitter-asyncresource": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", - "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", - "dev": true + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==" }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", @@ -1919,7 +1950,6 @@ "version": "10.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, "dependencies": { "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", @@ -1973,7 +2003,6 @@ "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } @@ -2084,8 +2113,7 @@ "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", - "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", - "dev": true + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==" }, "node_modules/graphemer": { "version": "1.4.0", @@ -2165,7 +2193,6 @@ "version": "0.0.4", "resolved": "https://registry.npmjs.org/hashish/-/hashish-0.0.4.tgz", "integrity": "sha512-xyD4XgslstNAs72ENaoFvgMwtv8xhiDtC2AtzCG+8yF7W/Knxxm9BX+e2s25mm+HxMKh0rBmXVOEGF3zNImXvA==", - "dev": true, "dependencies": { "traverse": ">=0.2.4" }, @@ -2188,7 +2215,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", - "dev": true, "dependencies": { "@assemblyscript/loader": "^0.10.1", "base64-js": "^1.2.0", @@ -2198,8 +2224,7 @@ "node_modules/hdr-histogram-percentiles-obj": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", - "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", - "dev": true + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==" }, "node_modules/iconv-lite": { "version": "0.6.3", @@ -2379,7 +2404,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, "engines": { "node": ">=8" } @@ -2556,7 +2580,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", - "dev": true, "engines": { "node": ">=16" } @@ -2607,7 +2630,6 @@ "version": "6.1.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, "dependencies": { "universalify": "^2.0.0" }, @@ -2661,14 +2683,12 @@ "node_modules/lru-cache": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.5.0.tgz", - "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==", - "dev": true + "integrity": "sha512-dVmQmXPBlTgFw77hm60ud//l2bCuDKkqC2on1EBoM7s9Urm9IQDrnujwZ93NFnAq0dVZ0HBXTS7PwEG+YE7+EQ==" }, "node_modules/memoizeasync": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/memoizeasync/-/memoizeasync-1.1.0.tgz", "integrity": "sha512-HMfzdLqClZo8HMyuM9B6TqnXCNhw82iVWRLqd2cAdXi063v2iJB4mQfWFeKVByN8VUwhmDZ8NMhryBwKrPRf8Q==", - "dev": true, "dependencies": { "lru-cache": "2.5.0", "passerror": "1.1.1" @@ -2678,7 +2698,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "engines": { "node": ">=6" } @@ -2720,7 +2739,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", - "dev": true, "hasInstallScript": true, "optional": true, "os": [ @@ -2735,14 +2753,12 @@ "version": "3.2.1", "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", - "dev": true, "optional": true }, "node_modules/node-gyp-build": { "version": "4.7.1", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.7.1.tgz", "integrity": "sha512-wTSrZ+8lsRRa3I3H8Xr65dLWSgCvY2l4AOnaeKdPA9TB/WYMPaTcrzf3rXvFoVvjKNVnu0CcWSx54qq9GKRUYg==", - "dev": true, "optional": true, "bin": { "node-gyp-build": "bin.js", @@ -2857,7 +2873,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, @@ -2947,8 +2962,7 @@ "node_modules/pako": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" }, "node_modules/parent-module": { "version": "1.0.1", @@ -2966,7 +2980,6 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/passerror/-/passerror-1.1.1.tgz", "integrity": "sha512-PwrEQJBkJMxnxG+tdraz95vTstYnCRqiURNbGtg/vZHLgcAODc9hbiD5ZumGUoh3bpw0F0qKLje7Vd2Fd5Lx3g==", - "dev": true, "engines": { "node": "*" } @@ -3039,7 +3052,6 @@ "version": "0.10.0", "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", "integrity": "sha512-qI5+oFNEGi3L5HAxDwN2LA4Gg7irF70Zs25edhjld9QemOgp0CbvMtbFcMvFtEo1OityPrcCzkQFB8JP/hxgow==", - "dev": true, "bin": { "pegjs": "bin/pegjs" }, @@ -3051,7 +3063,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", - "dev": true, "dependencies": { "eventemitter-asyncresource": "^1.0.0", "hdr-histogram-js": "^2.0.1", @@ -3134,7 +3145,6 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -3169,7 +3179,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" @@ -3276,7 +3285,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/semaphore-async-await/-/semaphore-async-await-1.5.1.tgz", "integrity": "sha512-b/ptP11hETwYWpeilHXXQiV5UJNJl7ZWWooKRE5eBIYWoom6dZ0SluCIdCtKycsMtZgKWE01/qAw6jblw1YVhg==", - "dev": true, "engines": { "node": ">=4.1" } @@ -3310,7 +3318,6 @@ "version": "0.3.5", "resolved": "https://registry.npmjs.org/seq/-/seq-0.3.5.tgz", "integrity": "sha512-sisY2Ln1fj43KBkRtXkesnRHYNdswIkIibvNe/0UKm2GZxjMbqmccpiatoKr/k2qX5VKiLU8xm+tz/74LAho4g==", - "dev": true, "dependencies": { "chainsaw": ">=0.0.7 <0.1", "hashish": ">=0.0.2 <0.1" @@ -3383,14 +3390,12 @@ "node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true, "engines": { "node": ">=0.10.0" @@ -3419,7 +3424,6 @@ "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", @@ -3478,7 +3482,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, @@ -3551,7 +3554,6 @@ "version": "0.3.9", "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", "integrity": "sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==", - "dev": true, "engines": { "node": "*" } @@ -3692,14 +3694,12 @@ "node_modules/unicoderegexp": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/unicoderegexp/-/unicoderegexp-0.4.1.tgz", - "integrity": "sha512-ydh8D5mdd2ldTS25GtZJEgLciuF0Qf2n3rwPhonELk3HioX201ClYGvZMc1bCmx6nblZiADQwbMWekeIqs51qw==", - "dev": true + "integrity": "sha512-ydh8D5mdd2ldTS25GtZJEgLciuF0Qf2n3rwPhonELk3HioX201ClYGvZMc1bCmx6nblZiADQwbMWekeIqs51qw==" }, "node_modules/universalify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", - "dev": true, "engines": { "node": ">= 10.0.0" } @@ -3729,7 +3729,6 @@ "version": "1.11.1", "resolved": "https://registry.npmjs.org/verda/-/verda-1.11.1.tgz", "integrity": "sha512-CJiuHqTFSm7qe4TccjZMI6iT+TJ2JpN7A2NEgYHk/EA8EKh6bVf5ITM7XnLF8v2qL5Hy/Bt2C6zpuNyDoVPDYQ==", - "dev": true, "dependencies": { "chalk": "^4.1.2", "cli-cursor": "^3.1.0", @@ -3752,7 +3751,6 @@ "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", @@ -3765,14 +3763,12 @@ "node_modules/verda/node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/verda/node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, "dependencies": { "isexe": "^2.0.0" }, @@ -3787,7 +3783,6 @@ "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", - "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", @@ -3805,7 +3800,6 @@ "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true, "engines": { "node": ">=12" } @@ -3826,7 +3820,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", - "dev": true, "dependencies": { "isexe": "^3.1.1" }, @@ -3897,7 +3890,6 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", @@ -3920,7 +3912,6 @@ "version": "0.0.33", "resolved": "https://registry.npmjs.org/xpath/-/xpath-0.0.33.tgz", "integrity": "sha512-NNXnzrkDrAzalLhIUc01jO2mOzXGXh1JwPgkihcLLzw98c0WgYDmmjSh1Kl3wzaxSVWMuA+fe0WTWOBDWCBmNA==", - "dev": true, "engines": { "node": ">=0.6.0" } @@ -3929,7 +3920,6 @@ "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true, "engines": { "node": ">=10" } @@ -3977,6 +3967,128 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } + }, + "packages/font": { + "name": "@iosevka/font", + "version": "28.0.0", + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/font-otl": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/param": "28.0.0", + "@iosevka/util": "28.0.0", + "harfbuzzjs": "^0.3.3", + "ot-builder": "^1.7.3", + "semver": "^7.5.4", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } + }, + "packages/font-glyphs": { + "name": "@iosevka/font-glyphs", + "version": "28.0.0", + "dependencies": { + "@iosevka/font-kits": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", + "typo-geom": "^0.13.1" + } + }, + "packages/font-kits": { + "name": "@iosevka/font-kits", + "version": "28.0.0", + "dependencies": { + "@iosevka/geometry": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } + }, + "packages/font-otl": { + "name": "@iosevka/font-otl", + "version": "28.0.0", + "dependencies": { + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/glyph": "28.0.0", + "toposort": "^2.0.2" + } + }, + "packages/geometry": { + "name": "@iosevka/geometry", + "version": "28.0.0", + "dependencies": { + "@iosevka/util": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } + }, + "packages/geometry-cache": { + "name": "@iosevka/geometry-cache", + "version": "28.0.0", + "dependencies": { + "@msgpack/msgpack": "^2.8.0" + } + }, + "packages/glyph": { + "name": "@iosevka/glyph", + "version": "28.0.0", + "dependencies": { + "@iosevka/geometry": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } + }, + "packages/param": { + "name": "@iosevka/param", + "version": "28.0.0", + "dependencies": { + "@iosevka/util": "28.0.0" + } + }, + "packages/util": { + "name": "@iosevka/util", + "version": "28.0.0" + }, + "tools/amend-readme": { + "name": "@iosevka/amend-readme", + "version": "28.0.0", + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.0", + "@unicode/unicode-15.0.0": "^1.5.2" + } + }, + "tools/data-export": { + "name": "@iosevka/data-export", + "version": "28.0.0", + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.0", + "@unicode/unicode-15.0.0": "^1.5.2", + "cldr": "^7.5.0" + } + }, + "tools/generate-samples": { + "name": "@iosevka/generate-samples", + "version": "28.0.0", + "dependencies": { + "@iosevka/data-export": "28.0.0" + } + }, + "tools/misc": { + "name": "@iosevka/misc", + "version": "28.0.0", + "dependencies": { + "@iosevka/util": "28.0.0", + "semver": "^7.5.4", + "wawoff2": "^2.0.1" + } } } } diff --git a/package.json b/package.json index 60f80a777a..66cc13abd9 100644 --- a/package.json +++ b/package.json @@ -1,37 +1,31 @@ { - "name": "iosevka", - "version": "28.0.0-beta.2", - "main": "./font-src/index.js", + "name": "@iosevka/monorepo", + "version": "28.0.0", + "workspaces": [ + "packages/*", + "tools/*" + ], "scripts": { "build": "verda -f verdafile.mjs", - "bump-ver": "node utility/update-package-json-version/index.mjs && npm install && node utility/generate-ttfa-ranges/index.mjs", + "bump-ver": "node tools/misc/src/update-package-json-version.mjs && npm install && node tools/misc/src/generate-ttfa-ranges.mjs", "clean": "verda -f verdafile.mjs clean", "lint": "eslint . --ext .mjs" }, "dependencies": { + "otb-ttc-bundle": "^1.7.3", "@iarna/toml": "^2.2.5", - "@msgpack/msgpack": "^2.8.0", "deep-equal": "^2.2.3", - "harfbuzzjs": "^0.3.3", - "ot-builder": "^1.7.3", - "otb-ttc-bundle": "^1.7.3", "semver": "^7.5.4", - "spiro": "^3.0.0", - "toposort": "^2.0.2", - "typo-geom": "^0.13.1", "uuid": "^9.0.1", - "wawoff2": "^2.0.1" + "verda": "^1.11.1", + "which": "^4.0.0" }, "devDependencies": { - "@unicode/unicode-15.0.0": "^1.5.2", - "cldr": "^7.5.0", "eslint": "^8.55.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.0", "patel": "^0.39.0", - "prettier": "^3.1.0", - "verda": "^1.11.1", - "which": "^4.0.0" + "prettier": "^3.1.0" }, "engines": { "node": ">=16.0.0" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json new file mode 100644 index 0000000000..02cb9997e9 --- /dev/null +++ b/packages/font-glyphs/package.json @@ -0,0 +1,18 @@ +{ + "name": "@iosevka/font-glyphs", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./aesthetics": "./src/meta/aesthetics.mjs", + "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" + }, + "dependencies": { + "@iosevka/font-kits": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", + "typo-geom": "^0.13.1" + } +} diff --git a/font-src/glyphs/auto-build/accents.ptl b/packages/font-glyphs/src/auto-build/accents.ptl similarity index 97% rename from font-src/glyphs/auto-build/accents.ptl rename to packages/font-glyphs/src/auto-build/accents.ptl index 9158a705af..fb1fb083c9 100644 --- a/font-src/glyphs/auto-build/accents.ptl +++ b/packages/font-glyphs/src/auto-build/accents.ptl @@ -1,9 +1,9 @@ ###### Automatic builds -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose LeaningMark LeaningMarkSpacer] from"../../support/gr.mjs" -import [fallback ArrayUtil MatchUtil constant] from"../../support/utils.mjs" -import as UnicodeKnowledge from"../../meta/unicode-knowledge.mjs" +import [Dotless AnyDerivingCv DotlessOrNot getGrTree CvDecompose LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" +import [fallback ArrayUtil MatchUtil constant] from "@iosevka/util" +import as UnicodeKnowledge from "../meta/unicode-knowledge.mjs" extern Map extern Set diff --git a/font-src/glyphs/auto-build/composite.ptl b/packages/font-glyphs/src/auto-build/composite.ptl similarity index 99% rename from font-src/glyphs/auto-build/composite.ptl rename to packages/font-glyphs/src/auto-build/composite.ptl index e05a490813..99b49be26c 100644 --- a/font-src/glyphs/auto-build/composite.ptl +++ b/packages/font-glyphs/src/auto-build/composite.ptl @@ -1,10 +1,10 @@ ###### Automatic builds -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [getGrMesh AnyCv CvDecompose Joining hashCv] from"../../support/gr.mjs" -import [hashGeometry] from"../../support/geometry/index.mjs" -import [Transform] from"../../support/geometry/transform.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [getGrMesh AnyCv CvDecompose Joining hashCv] from "@iosevka/glyph/relation" +import [hashGeometry] from "@iosevka/geometry" +import [Transform] from "@iosevka/geometry/transform" extern Map extern Set diff --git a/font-src/glyphs/auto-build/mark-doppelganger.ptl b/packages/font-glyphs/src/auto-build/mark-doppelganger.ptl similarity index 90% rename from font-src/glyphs/auto-build/mark-doppelganger.ptl rename to packages/font-glyphs/src/auto-build/mark-doppelganger.ptl index 4288b92e09..888d9af290 100644 --- a/font-src/glyphs/auto-build/mark-doppelganger.ptl +++ b/packages/font-glyphs/src/auto-build/mark-doppelganger.ptl @@ -1,10 +1,11 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [TieMark AnyDerivingCv ScheduleLeaningMark LeaningMark LeaningMarkSpacer] from"../../support/gr.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" +import [TieMark AnyDerivingCv ScheduleLeaningMark LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" + +import [DesignParameters] from "../meta/aesthetics.mjs" extern Set diff --git a/font-src/glyphs/auto-build/recursive-build.ptl b/packages/font-glyphs/src/auto-build/recursive-build.ptl similarity index 96% rename from font-src/glyphs/auto-build/recursive-build.ptl rename to packages/font-glyphs/src/auto-build/recursive-build.ptl index e4d36ad7b9..0a6c95bdcb 100644 --- a/font-src/glyphs/auto-build/recursive-build.ptl +++ b/packages/font-glyphs/src/auto-build/recursive-build.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [clamp fallback] from"../../support/utils.mjs" +import [clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/auto-build/transformed.ptl b/packages/font-glyphs/src/auto-build/transformed.ptl similarity index 98% rename from font-src/glyphs/auto-build/transformed.ptl rename to packages/font-glyphs/src/auto-build/transformed.ptl index d19688a1b5..f6f78366e7 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/packages/font-glyphs/src/auto-build/transformed.ptl @@ -1,11 +1,11 @@ ###### Automatic builds -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [linreg clamp mix fallback] from"../../support/utils.mjs" -import [getGrTree IsSuperscript IsSubscript] from"../../support/gr.mjs" -import [AnyCv DotlessOrNot CvDecompose MathSansSerif Texture] from"../../support/gr.mjs" -import [NumeratorForm DenominatorForm] from"../../support/gr.mjs" -import [Transform] from"../../support/geometry/transform.mjs" +import [linreg clamp mix fallback] from "@iosevka/util" +import [getGrTree IsSuperscript IsSubscript] from "@iosevka/glyph/relation" +import [AnyCv DotlessOrNot CvDecompose MathSansSerif Texture] from "@iosevka/glyph/relation" +import [NumeratorForm DenominatorForm] from "@iosevka/glyph/relation" +import [Transform] from "@iosevka/geometry/transform" extern Map extern Set diff --git a/font-src/glyphs/common/derivatives.ptl b/packages/font-glyphs/src/common/derivatives.ptl similarity index 98% rename from font-src/glyphs/common/derivatives.ptl rename to packages/font-glyphs/src/common/derivatives.ptl index ebc6510bfa..7969dc6ef6 100644 --- a/font-src/glyphs/common/derivatives.ptl +++ b/packages/font-glyphs/src/common/derivatives.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [Cv AnyCv AnyDerivingCv Dotless SvInheritableRelations PseudoCvDecompose getGrMesh] from"../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Cv AnyCv AnyDerivingCv Dotless SvInheritableRelations PseudoCvDecompose getGrMesh] from "@iosevka/glyph/relation" extern Map diff --git a/font-src/glyphs/common/shapes.ptl b/packages/font-glyphs/src/common/shapes.ptl similarity index 98% rename from font-src/glyphs/common/shapes.ptl rename to packages/font-glyphs/src/common/shapes.ptl index c048c29e7e..326c09b607 100644 --- a/font-src/glyphs/common/shapes.ptl +++ b/packages/font-glyphs/src/common/shapes.ptl @@ -1,10 +1,9 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [Transform] from"../../support/geometry/transform.mjs" - -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [Radical] from"../../support/gr.mjs" -import [Interpolator] from"../../support/geometry/spiro-control.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Transform] from "@iosevka/geometry/transform" +import [Interpolator] from "@iosevka/geometry/spiro-control" +import [Radical] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/index.ptl b/packages/font-glyphs/src/index.ptl similarity index 88% rename from font-src/glyphs/index.ptl rename to packages/font-glyphs/src/index.ptl index 504bedb883..493261ca0d 100644 --- a/font-src/glyphs/index.ptl +++ b/packages/font-glyphs/src/index.ptl @@ -1,17 +1,15 @@ -import [Glyph] from"../support/glyph/index.mjs" -import [GlyphStore] from"../support/glyph-store.mjs" -import [GlyphBlock GlyphBuildExecutor] from"../support/glyph-block.mjs" -import as Gr from"../support/gr.mjs" -import as SpiroKit from"../kits/spiro-kit.mjs" -import as BooleKit from"../kits/boole-kit.mjs" -import [DesignParameters] from"../meta/aesthetics.mjs" +import [Glyph] from "@iosevka/glyph" +import [GlyphStore] from "@iosevka/glyph/store" +import [GlyphBlock GlyphBuildExecutor] from "@iosevka/glyph/block" +import as Gr from "@iosevka/glyph/relation" +import as SpiroKit from "@iosevka/font-kits/spiro-kit" +import as BooleKit from "@iosevka/font-kits/boole-kit" +import [DesignParameters calculateMetrics setFontMetrics GenDivFrame] from "./meta/aesthetics.mjs" +import [$NamedParameterPair$] from "@iosevka/util" extern isFinite -import [$NamedParameterPair$] from"../support/utils.mjs" -import [calculateMetrics setFontMetrics GenDivFrame] from"../meta/aesthetics.mjs" - -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' export : define [buildGlyphs para recursive] : begin # Execution and dependency management diff --git a/font-src/glyphs/letter/cyrillic.ptl b/packages/font-glyphs/src/letter/cyrillic.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic.ptl rename to packages/font-glyphs/src/letter/cyrillic.ptl index 4448b870cc..522bb8c785 100644 --- a/font-src/glyphs/letter/cyrillic.ptl +++ b/packages/font-glyphs/src/letter/cyrillic.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/letter/cyrillic/abk-ha.ptl b/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl similarity index 92% rename from font-src/glyphs/letter/cyrillic/abk-ha.ptl rename to packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl index 80309dead6..46a6d1a423 100644 --- a/font-src/glyphs/letter/cyrillic/abk-ha.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/abk-ha.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/big-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/big-yus.ptl rename to packages/font-glyphs/src/letter/cyrillic/big-yus.ptl index c07f53767f..66eded66b7 100644 --- a/font-src/glyphs/letter/cyrillic/big-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/big-yus.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/che.ptl b/packages/font-glyphs/src/letter/cyrillic/che.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/che.ptl rename to packages/font-glyphs/src/letter/cyrillic/che.ptl index f5931f2956..cc5d9655bd 100644 --- a/font-src/glyphs/letter/cyrillic/che.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/che.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/dche.ptl b/packages/font-glyphs/src/letter/cyrillic/dche.ptl similarity index 94% rename from font-src/glyphs/letter/cyrillic/dche.ptl rename to packages/font-glyphs/src/letter/cyrillic/dche.ptl index 7dc62e7211..5291088623 100644 --- a/font-src/glyphs/letter/cyrillic/dche.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dche.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/de.ptl b/packages/font-glyphs/src/letter/cyrillic/de.ptl similarity index 98% rename from font-src/glyphs/letter/cyrillic/de.ptl rename to packages/font-glyphs/src/letter/cyrillic/de.ptl index 602dd549fc..d7d040701a 100644 --- a/font-src/glyphs/letter/cyrillic/de.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/de.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/dje.ptl b/packages/font-glyphs/src/letter/cyrillic/dje.ptl similarity index 92% rename from font-src/glyphs/letter/cyrillic/dje.ptl rename to packages/font-glyphs/src/letter/cyrillic/dje.ptl index 300e4f3006..f27797edd2 100644 --- a/font-src/glyphs/letter/cyrillic/dje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dje.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/djerv.ptl b/packages/font-glyphs/src/letter/cyrillic/djerv.ptl similarity index 92% rename from font-src/glyphs/letter/cyrillic/djerv.ptl rename to packages/font-glyphs/src/letter/cyrillic/djerv.ptl index 62fc8f24e5..1000e1664c 100644 --- a/font-src/glyphs/letter/cyrillic/djerv.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/djerv.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/dzhe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl similarity index 91% rename from font-src/glyphs/letter/cyrillic/dzhe.ptl rename to packages/font-glyphs/src/letter/cyrillic/dzhe.ptl index 406c4b6940..c9349035cb 100644 --- a/font-src/glyphs/letter/cyrillic/dzhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzhe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl similarity index 98% rename from font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl rename to packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl index cfce393f40..4415e02c97 100644 --- a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/dzzhe-zhwe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/e.ptl b/packages/font-glyphs/src/letter/cyrillic/e.ptl similarity index 96% rename from font-src/glyphs/letter/cyrillic/e.ptl rename to packages/font-glyphs/src/letter/cyrillic/e.ptl index b591a69240..64f4b7ec35 100644 --- a/font-src/glyphs/letter/cyrillic/e.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/e.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/el.ptl b/packages/font-glyphs/src/letter/cyrillic/el.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/el.ptl rename to packages/font-glyphs/src/letter/cyrillic/el.ptl index a37ed6d922..19a241706a 100644 --- a/font-src/glyphs/letter/cyrillic/el.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/el.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Point] from"../../../support/geometry/point.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Point] from "@iosevka/geometry/point" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/fita.ptl b/packages/font-glyphs/src/letter/cyrillic/fita.ptl similarity index 93% rename from font-src/glyphs/letter/cyrillic/fita.ptl rename to packages/font-glyphs/src/letter/cyrillic/fita.ptl index 73d37fe03a..e7fb2e19f6 100644 --- a/font-src/glyphs/letter/cyrillic/fita.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/fita.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/iotified-a.ptl b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/iotified-a.ptl rename to packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl index b49268f84b..c0ef4b3556 100644 --- a/font-src/glyphs/letter/cyrillic/iotified-a.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/iotified-a.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [bitOr] from"../../../support/util/mask-bit.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [bitOr] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/lje.ptl b/packages/font-glyphs/src/letter/cyrillic/lje.ptl similarity index 89% rename from font-src/glyphs/letter/cyrillic/lje.ptl rename to packages/font-glyphs/src/letter/cyrillic/lje.ptl index f187c8e0b9..f0fc7865c1 100644 --- a/font-src/glyphs/letter/cyrillic/lje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lje.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Point] from"../../../support/geometry/point.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Point] from "@iosevka/geometry/point" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/lower-be.ptl b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl similarity index 89% rename from font-src/glyphs/letter/cyrillic/lower-be.ptl rename to packages/font-glyphs/src/letter/cyrillic/lower-be.ptl index 933c7b701e..cf528a1a6a 100644 --- a/font-src/glyphs/letter/cyrillic/lower-be.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lower-be.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/lower-uk.ptl b/packages/font-glyphs/src/letter/cyrillic/lower-uk.ptl similarity index 91% rename from font-src/glyphs/letter/cyrillic/lower-uk.ptl rename to packages/font-glyphs/src/letter/cyrillic/lower-uk.ptl index 4c290ca647..7208aefda5 100644 --- a/font-src/glyphs/letter/cyrillic/lower-uk.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/lower-uk.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/multiocular-o.ptl b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl similarity index 94% rename from font-src/glyphs/letter/cyrillic/multiocular-o.ptl rename to packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl index f89268ebfd..bb5443f25c 100644 --- a/font-src/glyphs/letter/cyrillic/multiocular-o.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/multiocular-o.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/nje.ptl b/packages/font-glyphs/src/letter/cyrillic/nje.ptl similarity index 95% rename from font-src/glyphs/letter/cyrillic/nje.ptl rename to packages/font-glyphs/src/letter/cyrillic/nje.ptl index d8e1e2c044..7f479c4082 100644 --- a/font-src/glyphs/letter/cyrillic/nje.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/nje.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/omega.ptl b/packages/font-glyphs/src/letter/cyrillic/omega.ptl similarity index 95% rename from font-src/glyphs/letter/cyrillic/omega.ptl rename to packages/font-glyphs/src/letter/cyrillic/omega.ptl index 6d45b14844..44ffa31a8b 100644 --- a/font-src/glyphs/letter/cyrillic/omega.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/omega.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/orthography.ptl b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/orthography.ptl rename to packages/font-glyphs/src/letter/cyrillic/orthography.ptl index b18f098672..368f62fef7 100644 --- a/font-src/glyphs/letter/cyrillic/orthography.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/orthography.ptl @@ -1,4 +1,4 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' glyph-module diff --git a/font-src/glyphs/letter/cyrillic/sha.ptl b/packages/font-glyphs/src/letter/cyrillic/sha.ptl similarity index 95% rename from font-src/glyphs/letter/cyrillic/sha.ptl rename to packages/font-glyphs/src/letter/cyrillic/sha.ptl index dac482e367..841b2dbf8e 100644 --- a/font-src/glyphs/letter/cyrillic/sha.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/sha.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/small-yus.ptl b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl similarity index 97% rename from font-src/glyphs/letter/cyrillic/small-yus.ptl rename to packages/font-glyphs/src/letter/cyrillic/small-yus.ptl index 8721bfc18f..2936b96752 100644 --- a/font-src/glyphs/letter/cyrillic/small-yus.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/small-yus.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/te-comb.ptl b/packages/font-glyphs/src/letter/cyrillic/te-comb.ptl similarity index 89% rename from font-src/glyphs/letter/cyrillic/te-comb.ptl rename to packages/font-glyphs/src/letter/cyrillic/te-comb.ptl index e54dc59add..206fabdc1d 100644 --- a/font-src/glyphs/letter/cyrillic/te-comb.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/te-comb.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/te-midhook.ptl b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl similarity index 94% rename from font-src/glyphs/letter/cyrillic/te-midhook.ptl rename to packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl index 8af719e135..dc4bc72581 100644 --- a/font-src/glyphs/letter/cyrillic/te-midhook.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/te-midhook.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/tse.ptl b/packages/font-glyphs/src/letter/cyrillic/tse.ptl similarity index 96% rename from font-src/glyphs/letter/cyrillic/tse.ptl rename to packages/font-glyphs/src/letter/cyrillic/tse.ptl index 875ff30b58..d0db466c59 100644 --- a/font-src/glyphs/letter/cyrillic/tse.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tse.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/tshe.ptl b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl similarity index 91% rename from font-src/glyphs/letter/cyrillic/tshe.ptl rename to packages/font-glyphs/src/letter/cyrillic/tshe.ptl index 44b37a1f5a..6923d7b28e 100644 --- a/font-src/glyphs/letter/cyrillic/tshe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/tshe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/yat.ptl b/packages/font-glyphs/src/letter/cyrillic/yat.ptl similarity index 96% rename from font-src/glyphs/letter/cyrillic/yat.ptl rename to packages/font-glyphs/src/letter/cyrillic/yat.ptl index 882a0a150d..57d2129f87 100644 --- a/font-src/glyphs/letter/cyrillic/yat.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yat.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/yeri.ptl b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl similarity index 99% rename from font-src/glyphs/letter/cyrillic/yeri.ptl rename to packages/font-glyphs/src/letter/cyrillic/yeri.ptl index 86b2f05c59..98cc080e5a 100644 --- a/font-src/glyphs/letter/cyrillic/yeri.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yeri.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/yu.ptl b/packages/font-glyphs/src/letter/cyrillic/yu.ptl similarity index 95% rename from font-src/glyphs/letter/cyrillic/yu.ptl rename to packages/font-glyphs/src/letter/cyrillic/yu.ptl index a4b50ecb52..e0d8fc1298 100644 --- a/font-src/glyphs/letter/cyrillic/yu.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/yu.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix barMixL linreg clamp fallback] from"../../../support/utils.mjs" +import [mix barMixL linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/cyrillic/zhe.ptl b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl similarity index 98% rename from font-src/glyphs/letter/cyrillic/zhe.ptl rename to packages/font-glyphs/src/letter/cyrillic/zhe.ptl index a38bce41fb..2ee61cf97e 100644 --- a/font-src/glyphs/letter/cyrillic/zhe.ptl +++ b/packages/font-glyphs/src/letter/cyrillic/zhe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek.ptl b/packages/font-glyphs/src/letter/greek.ptl similarity index 97% rename from font-src/glyphs/letter/greek.ptl rename to packages/font-glyphs/src/letter/greek.ptl index f7425a0222..e48c8acc4e 100644 --- a/font-src/glyphs/letter/greek.ptl +++ b/packages/font-glyphs/src/letter/greek.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/letter/greek/lower-delta.ptl b/packages/font-glyphs/src/letter/greek/lower-delta.ptl similarity index 95% rename from font-src/glyphs/letter/greek/lower-delta.ptl rename to packages/font-glyphs/src/letter/greek/lower-delta.ptl index 9157cb7eb1..42516191a0 100644 --- a/font-src/glyphs/letter/greek/lower-delta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-delta.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl similarity index 99% rename from font-src/glyphs/letter/greek/lower-epsilon.ptl rename to packages/font-glyphs/src/letter/greek/lower-epsilon.ptl index ca634dcf60..e639efd520 100644 --- a/font-src/glyphs/letter/greek/lower-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-epsilon.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' extern isFinite -import [mix linreg clamp fallback SuffixCfg] from"../../../support/utils.mjs" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-gamma.ptl b/packages/font-glyphs/src/letter/greek/lower-gamma.ptl similarity index 93% rename from font-src/glyphs/letter/greek/lower-gamma.ptl rename to packages/font-glyphs/src/letter/greek/lower-gamma.ptl index 664191d2fb..14f2eb4abe 100644 --- a/font-src/glyphs/letter/greek/lower-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-gamma.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-kappa-symbol.ptl b/packages/font-glyphs/src/letter/greek/lower-kappa-symbol.ptl similarity index 94% rename from font-src/glyphs/letter/greek/lower-kappa-symbol.ptl rename to packages/font-glyphs/src/letter/greek/lower-kappa-symbol.ptl index 1172e975f8..3805c6222f 100644 --- a/font-src/glyphs/letter/greek/lower-kappa-symbol.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-kappa-symbol.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-lunate-epsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl similarity index 91% rename from font-src/glyphs/letter/greek/lower-lunate-epsilon.ptl rename to packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl index 8d5882225a..eb4f996878 100644 --- a/font-src/glyphs/letter/greek/lower-lunate-epsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-lunate-epsilon.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-nu.ptl b/packages/font-glyphs/src/letter/greek/lower-nu.ptl similarity index 84% rename from font-src/glyphs/letter/greek/lower-nu.ptl rename to packages/font-glyphs/src/letter/greek/lower-nu.ptl index cbba2fad53..a704db66eb 100644 --- a/font-src/glyphs/letter/greek/lower-nu.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-nu.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-omega.ptl b/packages/font-glyphs/src/letter/greek/lower-omega.ptl similarity index 96% rename from font-src/glyphs/letter/greek/lower-omega.ptl rename to packages/font-glyphs/src/letter/greek/lower-omega.ptl index 8a7094b874..0e1fbff404 100644 --- a/font-src/glyphs/letter/greek/lower-omega.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-omega.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-phi.ptl b/packages/font-glyphs/src/letter/greek/lower-phi.ptl similarity index 90% rename from font-src/glyphs/letter/greek/lower-phi.ptl rename to packages/font-glyphs/src/letter/greek/lower-phi.ptl index 522f3ed9a0..fd80e39c21 100644 --- a/font-src/glyphs/letter/greek/lower-phi.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-phi.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-rho.ptl b/packages/font-glyphs/src/letter/greek/lower-rho.ptl similarity index 86% rename from font-src/glyphs/letter/greek/lower-rho.ptl rename to packages/font-glyphs/src/letter/greek/lower-rho.ptl index 03c288b402..c4da40774c 100644 --- a/font-src/glyphs/letter/greek/lower-rho.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-rho.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-sigma-final.ptl b/packages/font-glyphs/src/letter/greek/lower-sigma-final.ptl similarity index 91% rename from font-src/glyphs/letter/greek/lower-sigma-final.ptl rename to packages/font-glyphs/src/letter/greek/lower-sigma-final.ptl index 3ed99f0c10..26645b76b6 100644 --- a/font-src/glyphs/letter/greek/lower-sigma-final.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-sigma-final.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-sigma.ptl b/packages/font-glyphs/src/letter/greek/lower-sigma.ptl similarity index 81% rename from font-src/glyphs/letter/greek/lower-sigma.ptl rename to packages/font-glyphs/src/letter/greek/lower-sigma.ptl index b6a190ac7b..34318f5a20 100644 --- a/font-src/glyphs/letter/greek/lower-sigma.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-sigma.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-theta.ptl b/packages/font-glyphs/src/letter/greek/lower-theta.ptl similarity index 90% rename from font-src/glyphs/letter/greek/lower-theta.ptl rename to packages/font-glyphs/src/letter/greek/lower-theta.ptl index aa51fe774a..78fc3aa205 100644 --- a/font-src/glyphs/letter/greek/lower-theta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-theta.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-upsilon.ptl b/packages/font-glyphs/src/letter/greek/lower-upsilon.ptl similarity index 83% rename from font-src/glyphs/letter/greek/lower-upsilon.ptl rename to packages/font-glyphs/src/letter/greek/lower-upsilon.ptl index efabd90c78..b77cf35bc6 100644 --- a/font-src/glyphs/letter/greek/lower-upsilon.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-upsilon.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-xi.ptl b/packages/font-glyphs/src/letter/greek/lower-xi.ptl similarity index 94% rename from font-src/glyphs/letter/greek/lower-xi.ptl rename to packages/font-glyphs/src/letter/greek/lower-xi.ptl index f2834649b1..2b872f6f1c 100644 --- a/font-src/glyphs/letter/greek/lower-xi.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-xi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/lower-zeta.ptl b/packages/font-glyphs/src/letter/greek/lower-zeta.ptl similarity index 91% rename from font-src/glyphs/letter/greek/lower-zeta.ptl rename to packages/font-glyphs/src/letter/greek/lower-zeta.ptl index 7c4e3afaff..82a0ee9e7e 100644 --- a/font-src/glyphs/letter/greek/lower-zeta.ptl +++ b/packages/font-glyphs/src/letter/greek/lower-zeta.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix] from"../../../support/utils.mjs" +import [mix] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/greek/pi.ptl b/packages/font-glyphs/src/letter/greek/pi.ptl similarity index 95% rename from font-src/glyphs/letter/greek/pi.ptl rename to packages/font-glyphs/src/letter/greek/pi.ptl index 5d8f1f11fc..0bf49c1dfb 100644 --- a/font-src/glyphs/letter/greek/pi.ptl +++ b/packages/font-glyphs/src/letter/greek/pi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/psi.ptl b/packages/font-glyphs/src/letter/greek/psi.ptl similarity index 91% rename from font-src/glyphs/letter/greek/psi.ptl rename to packages/font-glyphs/src/letter/greek/psi.ptl index 6e4791ce79..825bd3f6f6 100644 --- a/font-src/glyphs/letter/greek/psi.ptl +++ b/packages/font-glyphs/src/letter/greek/psi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/qoppa.ptl b/packages/font-glyphs/src/letter/greek/qoppa.ptl similarity index 92% rename from font-src/glyphs/letter/greek/qoppa.ptl rename to packages/font-glyphs/src/letter/greek/qoppa.ptl index 7b8edca72e..0c71a81884 100644 --- a/font-src/glyphs/letter/greek/qoppa.ptl +++ b/packages/font-glyphs/src/letter/greek/qoppa.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/sampi.ptl b/packages/font-glyphs/src/letter/greek/sampi.ptl similarity index 94% rename from font-src/glyphs/letter/greek/sampi.ptl rename to packages/font-glyphs/src/letter/greek/sampi.ptl index b844b2c9c4..f72c46a086 100644 --- a/font-src/glyphs/letter/greek/sampi.ptl +++ b/packages/font-glyphs/src/letter/greek/sampi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-gamma.ptl b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl similarity index 96% rename from font-src/glyphs/letter/greek/upper-gamma.ptl rename to packages/font-glyphs/src/letter/greek/upper-gamma.ptl index 3cc68123e4..479cdc2209 100644 --- a/font-src/glyphs/letter/greek/upper-gamma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-gamma.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-omega.ptl b/packages/font-glyphs/src/letter/greek/upper-omega.ptl similarity index 89% rename from font-src/glyphs/letter/greek/upper-omega.ptl rename to packages/font-glyphs/src/letter/greek/upper-omega.ptl index 5aebe5b217..a56ae8cdf6 100644 --- a/font-src/glyphs/letter/greek/upper-omega.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-omega.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-phi.ptl b/packages/font-glyphs/src/letter/greek/upper-phi.ptl similarity index 96% rename from font-src/glyphs/letter/greek/upper-phi.ptl rename to packages/font-glyphs/src/letter/greek/upper-phi.ptl index 7b4ab8922d..f2b55143aa 100644 --- a/font-src/glyphs/letter/greek/upper-phi.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-phi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback SuffixCfg] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-sigma.ptl b/packages/font-glyphs/src/letter/greek/upper-sigma.ptl similarity index 87% rename from font-src/glyphs/letter/greek/upper-sigma.ptl rename to packages/font-glyphs/src/letter/greek/upper-sigma.ptl index d190aec359..9a31cc43e1 100644 --- a/font-src/glyphs/letter/greek/upper-sigma.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-sigma.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-theta.ptl b/packages/font-glyphs/src/letter/greek/upper-theta.ptl similarity index 81% rename from font-src/glyphs/letter/greek/upper-theta.ptl rename to packages/font-glyphs/src/letter/greek/upper-theta.ptl index 1042f155e8..ec8061c7e0 100644 --- a/font-src/glyphs/letter/greek/upper-theta.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-theta.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/greek/upper-xi.ptl b/packages/font-glyphs/src/letter/greek/upper-xi.ptl similarity index 83% rename from font-src/glyphs/letter/greek/upper-xi.ptl rename to packages/font-glyphs/src/letter/greek/upper-xi.ptl index 941a8b8ca5..c6d869d058 100644 --- a/font-src/glyphs/letter/greek/upper-xi.ptl +++ b/packages/font-glyphs/src/letter/greek/upper-xi.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/bidental-percussive.ptl b/packages/font-glyphs/src/letter/latin-ext/bidental-percussive.ptl similarity index 80% rename from font-src/glyphs/letter/latin-ext/bidental-percussive.ptl rename to packages/font-glyphs/src/letter/latin-ext/bidental-percussive.ptl index 136c8782f6..4d3e342827 100644 --- a/font-src/glyphs/letter/latin-ext/bidental-percussive.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/bidental-percussive.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/egyptological.ptl b/packages/font-glyphs/src/letter/latin-ext/egyptological.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/egyptological.ptl rename to packages/font-glyphs/src/letter/latin-ext/egyptological.ptl index cee126aa27..318e0927e7 100644 --- a/font-src/glyphs/letter/latin-ext/egyptological.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/egyptological.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/eszet.ptl b/packages/font-glyphs/src/letter/latin-ext/eszet.ptl similarity index 97% rename from font-src/glyphs/letter/latin-ext/eszet.ptl rename to packages/font-glyphs/src/letter/latin-ext/eszet.ptl index 4b27cc447f..e577f55353 100644 --- a/font-src/glyphs/letter/latin-ext/eszet.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/eszet.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" -import [maskBits] from"../../../support/util/mask-bit.mjs" +import [maskBits] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/eth.ptl b/packages/font-glyphs/src/letter/latin-ext/eth.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/eth.ptl rename to packages/font-glyphs/src/letter/latin-ext/eth.ptl index c9c9ef5c00..7ff4280a44 100644 --- a/font-src/glyphs/letter/latin-ext/eth.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/eth.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/ezh.ptl b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl similarity index 98% rename from font-src/glyphs/letter/latin-ext/ezh.ptl rename to packages/font-glyphs/src/letter/latin-ext/ezh.ptl index 058f3c28e0..a56f0a26ae 100644 --- a/font-src/glyphs/letter/latin-ext/ezh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ezh.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/f-ligatures.ptl b/packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl similarity index 95% rename from font-src/glyphs/letter/latin-ext/f-ligatures.ptl rename to packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl index ff0cd9007e..81afe53d73 100644 --- a/font-src/glyphs/letter/latin-ext/f-ligatures.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/f-ligatures.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl similarity index 87% rename from font-src/glyphs/letter/latin-ext/flattened-open-a.ptl rename to packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl index b2a38e06da..441b97027e 100644 --- a/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/flattened-open-a.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/gha.ptl b/packages/font-glyphs/src/letter/latin-ext/gha.ptl similarity index 92% rename from font-src/glyphs/letter/latin-ext/gha.ptl rename to packages/font-glyphs/src/letter/latin-ext/gha.ptl index ddd6629cf9..c41b2c15d3 100644 --- a/font-src/glyphs/letter/latin-ext/gha.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/gha.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/glottal-stop.ptl b/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl similarity index 95% rename from font-src/glyphs/letter/latin-ext/glottal-stop.ptl rename to packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl index ed652cb0fd..60410a59b8 100644 --- a/font-src/glyphs/letter/latin-ext/glottal-stop.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/glottal-stop.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/hwair.ptl b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl similarity index 93% rename from font-src/glyphs/letter/latin-ext/hwair.ptl rename to packages/font-glyphs/src/letter/latin-ext/hwair.ptl index c9a443a8c2..968d7d12a6 100644 --- a/font-src/glyphs/letter/latin-ext/hwair.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/hwair.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/insular-g.ptl b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/insular-g.ptl rename to packages/font-glyphs/src/letter/latin-ext/insular-g.ptl index 3597cc5c0d..39044356c6 100644 --- a/font-src/glyphs/letter/latin-ext/insular-g.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/insular-g.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix] from"../../../support/utils.mjs" +import [mix] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/insular-t.ptl b/packages/font-glyphs/src/letter/latin-ext/insular-t.ptl similarity index 90% rename from font-src/glyphs/letter/latin-ext/insular-t.ptl rename to packages/font-glyphs/src/letter/latin-ext/insular-t.ptl index b2718775c3..26e1cd3132 100644 --- a/font-src/glyphs/letter/latin-ext/insular-t.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/insular-t.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix] from"../../../support/utils.mjs" +import [mix] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/long-s.ptl b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl similarity index 98% rename from font-src/glyphs/letter/latin-ext/long-s.ptl rename to packages/font-glyphs/src/letter/latin-ext/long-s.ptl index 9d5684c657..d9cab861f8 100644 --- a/font-src/glyphs/letter/latin-ext/long-s.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/long-s.ptl @@ -1,8 +1,8 @@ -$$include "../../../meta/macros.ptl" +$$include "../../meta/macros.ptl" -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" -import [maskBit maskBits] from"../../../support/util/mask-bit.mjs" +import [maskBit maskBits] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl similarity index 99% rename from font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl rename to packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl index 471cab1cdc..6ac67c776b 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-ae-oe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/lower-db-qp.ptl b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl similarity index 93% rename from font-src/glyphs/letter/latin-ext/lower-db-qp.ptl rename to packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl index 03743755fb..060a491222 100644 --- a/font-src/glyphs/letter/latin-ext/lower-db-qp.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/lower-db-qp.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/middle-welsh-v.ptl b/packages/font-glyphs/src/letter/latin-ext/middle-welsh-v.ptl similarity index 88% rename from font-src/glyphs/letter/latin-ext/middle-welsh-v.ptl rename to packages/font-glyphs/src/letter/latin-ext/middle-welsh-v.ptl index c0f7eff163..3a6eeb098b 100644 --- a/font-src/glyphs/letter/latin-ext/middle-welsh-v.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/middle-welsh-v.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/orthography.ptl b/packages/font-glyphs/src/letter/latin-ext/orthography.ptl similarity index 83% rename from font-src/glyphs/letter/latin-ext/orthography.ptl rename to packages/font-glyphs/src/letter/latin-ext/orthography.ptl index 8847ebe80d..13c3b21a31 100644 --- a/font-src/glyphs/letter/latin-ext/orthography.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/orthography.ptl @@ -1,4 +1,4 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' glyph-module diff --git a/font-src/glyphs/letter/latin-ext/ou.ptl b/packages/font-glyphs/src/letter/latin-ext/ou.ptl similarity index 92% rename from font-src/glyphs/letter/latin-ext/ou.ptl rename to packages/font-glyphs/src/letter/latin-ext/ou.ptl index be084b26e0..7c9bf3594d 100644 --- a/font-src/glyphs/letter/latin-ext/ou.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/ou.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/rams-horn.ptl b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/rams-horn.ptl rename to packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl index 1e81eff9b2..90ea3885e0 100644 --- a/font-src/glyphs/letter/latin-ext/rams-horn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/rams-horn.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/rhotic.ptl b/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl similarity index 89% rename from font-src/glyphs/letter/latin-ext/rhotic.ptl rename to packages/font-glyphs/src/letter/latin-ext/rhotic.ptl index 2b4f9b2670..0e854cd701 100644 --- a/font-src/glyphs/letter/latin-ext/rhotic.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/rhotic.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [IsSuperscript IsSubscript] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [IsSuperscript IsSubscript] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/sakha-yat.ptl b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl similarity index 89% rename from font-src/glyphs/letter/latin-ext/sakha-yat.ptl rename to packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl index d54ad3cca7..9bdd700740 100644 --- a/font-src/glyphs/letter/latin-ext/sakha-yat.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/sakha-yat.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/thorn.ptl b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/thorn.ptl rename to packages/font-glyphs/src/letter/latin-ext/thorn.ptl index 81375e9023..2b1473c0af 100644 --- a/font-src/glyphs/letter/latin-ext/thorn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/thorn.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl similarity index 96% rename from font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl rename to packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl index 3662802591..db54b1faa8 100644 --- a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-aa-ao.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [maskOffBits] from"../../../support/util/mask-bit.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [maskOffBits] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl similarity index 98% rename from font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl rename to packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl index 6d97f185fd..d7f7398e96 100644 --- a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/upper-ae-oe.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/wynn.ptl b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl similarity index 93% rename from font-src/glyphs/letter/latin-ext/wynn.ptl rename to packages/font-glyphs/src/letter/latin-ext/wynn.ptl index 4594d49942..89484954e9 100644 --- a/font-src/glyphs/letter/latin-ext/wynn.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/wynn.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin-ext/yogh.ptl b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl similarity index 95% rename from font-src/glyphs/letter/latin-ext/yogh.ptl rename to packages/font-glyphs/src/letter/latin-ext/yogh.ptl index d7f2024e05..76f10c24a9 100644 --- a/font-src/glyphs/letter/latin-ext/yogh.ptl +++ b/packages/font-glyphs/src/letter/latin-ext/yogh.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin.ptl b/packages/font-glyphs/src/letter/latin.ptl similarity index 98% rename from font-src/glyphs/letter/latin.ptl rename to packages/font-glyphs/src/letter/latin.ptl index 112e6b91c5..3acbe4362f 100644 --- a/font-src/glyphs/letter/latin.ptl +++ b/packages/font-glyphs/src/letter/latin.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/letter/latin/c.ptl b/packages/font-glyphs/src/letter/latin/c.ptl similarity index 98% rename from font-src/glyphs/letter/latin/c.ptl rename to packages/font-glyphs/src/letter/latin/c.ptl index fe361033f7..88d8db2a8f 100644 --- a/font-src/glyphs/letter/latin/c.ptl +++ b/packages/font-glyphs/src/letter/latin/c.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/k.ptl b/packages/font-glyphs/src/letter/latin/k.ptl similarity index 99% rename from font-src/glyphs/letter/latin/k.ptl rename to packages/font-glyphs/src/letter/latin/k.ptl index c102f18912..a5581d9a50 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/packages/font-glyphs/src/letter/latin/k.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix clamp fallback linreg SuffixCfg] from"../../../support/utils.mjs" -import [Dotless MathSansSerif HintClass] from"../../../support/gr.mjs" -import [maskBit] from"../../../support/util/mask-bit.mjs" +import [mix clamp fallback linreg SuffixCfg] from "@iosevka/util" +import [Dotless MathSansSerif HintClass] from "@iosevka/glyph/relation" +import [maskBit] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-a.ptl b/packages/font-glyphs/src/letter/latin/lower-a.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-a.ptl rename to packages/font-glyphs/src/letter/latin/lower-a.ptl index 2b9e2e5993..95b6bcab40 100644 --- a/font-src/glyphs/letter/latin/lower-a.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-a.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-b.ptl b/packages/font-glyphs/src/letter/latin/lower-b.ptl similarity index 95% rename from font-src/glyphs/letter/latin/lower-b.ptl rename to packages/font-glyphs/src/letter/latin/lower-b.ptl index f12020dc87..e8d5b7cc38 100644 --- a/font-src/glyphs/letter/latin/lower-b.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-b.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-d.ptl b/packages/font-glyphs/src/letter/latin/lower-d.ptl similarity index 97% rename from font-src/glyphs/letter/latin/lower-d.ptl rename to packages/font-glyphs/src/letter/latin/lower-d.ptl index b661c4905e..1c9a3806f7 100644 --- a/font-src/glyphs/letter/latin/lower-d.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-d.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix clamp fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-e.ptl b/packages/font-glyphs/src/letter/latin/lower-e.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-e.ptl rename to packages/font-glyphs/src/letter/latin/lower-e.ptl index 2fc89d33f3..16473e2687 100644 --- a/font-src/glyphs/letter/latin/lower-e.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-e.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-f.ptl b/packages/font-glyphs/src/letter/latin/lower-f.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-f.ptl rename to packages/font-glyphs/src/letter/latin/lower-f.ptl index 8cdaf17da8..9ca6af429b 100644 --- a/font-src/glyphs/letter/latin/lower-f.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-f.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-g.ptl b/packages/font-glyphs/src/letter/latin/lower-g.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-g.ptl rename to packages/font-glyphs/src/letter/latin/lower-g.ptl index be1809e7ec..f992b2074d 100644 --- a/font-src/glyphs/letter/latin/lower-g.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-g.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-h.ptl b/packages/font-glyphs/src/letter/latin/lower-h.ptl similarity index 97% rename from font-src/glyphs/letter/latin/lower-h.ptl rename to packages/font-glyphs/src/letter/latin/lower-h.ptl index 2bc2b46c1e..7637f234fa 100644 --- a/font-src/glyphs/letter/latin/lower-h.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-h.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [ScheduleLeaningMark MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [ScheduleLeaningMark MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-il.ptl b/packages/font-glyphs/src/letter/latin/lower-il.ptl similarity index 99% rename from font-src/glyphs/letter/latin/lower-il.ptl rename to packages/font-glyphs/src/letter/latin/lower-il.ptl index 0fceb180fc..bbb6e69e25 100644 --- a/font-src/glyphs/letter/latin/lower-il.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-il.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Dotless MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Dotless MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-j.ptl b/packages/font-glyphs/src/letter/latin/lower-j.ptl similarity index 97% rename from font-src/glyphs/letter/latin/lower-j.ptl rename to packages/font-glyphs/src/letter/latin/lower-j.ptl index 03fab76523..031ab2b995 100644 --- a/font-src/glyphs/letter/latin/lower-j.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-j.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Dotless MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Dotless MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-m.ptl b/packages/font-glyphs/src/letter/latin/lower-m.ptl similarity index 99% rename from font-src/glyphs/letter/latin/lower-m.ptl rename to packages/font-glyphs/src/letter/latin/lower-m.ptl index ae83758a86..6547af18d6 100644 --- a/font-src/glyphs/letter/latin/lower-m.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-m.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-n.ptl b/packages/font-glyphs/src/letter/latin/lower-n.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-n.ptl rename to packages/font-glyphs/src/letter/latin/lower-n.ptl index df38fcb477..44d06651d1 100644 --- a/font-src/glyphs/letter/latin/lower-n.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-n.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix clamp fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif Joining] from"../../../support/gr.mjs" +import [mix clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-p.ptl b/packages/font-glyphs/src/letter/latin/lower-p.ptl similarity index 96% rename from font-src/glyphs/letter/latin/lower-p.ptl rename to packages/font-glyphs/src/letter/latin/lower-p.ptl index 2fc5506de3..ec93ea116f 100644 --- a/font-src/glyphs/letter/latin/lower-p.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-p.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-q.ptl b/packages/font-glyphs/src/letter/latin/lower-q.ptl similarity index 96% rename from font-src/glyphs/letter/latin/lower-q.ptl rename to packages/font-glyphs/src/letter/latin/lower-q.ptl index 2c6b912165..cafed04737 100644 --- a/font-src/glyphs/letter/latin/lower-q.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-q.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-r.ptl b/packages/font-glyphs/src/letter/latin/lower-r.ptl similarity index 98% rename from font-src/glyphs/letter/latin/lower-r.ptl rename to packages/font-glyphs/src/letter/latin/lower-r.ptl index 49591a8294..b739414e56 100644 --- a/font-src/glyphs/letter/latin/lower-r.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-r.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-t.ptl b/packages/font-glyphs/src/letter/latin/lower-t.ptl similarity index 99% rename from font-src/glyphs/letter/latin/lower-t.ptl rename to packages/font-glyphs/src/letter/latin/lower-t.ptl index b330be8cdf..96c6e0f572 100644 --- a/font-src/glyphs/letter/latin/lower-t.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-t.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix clamp SuffixCfg] from"../../../support/utils.mjs" +import [mix clamp SuffixCfg] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin/lower-y.ptl b/packages/font-glyphs/src/letter/latin/lower-y.ptl similarity index 99% rename from font-src/glyphs/letter/latin/lower-y.ptl rename to packages/font-glyphs/src/letter/latin/lower-y.ptl index ff57560283..a4fdc94b98 100644 --- a/font-src/glyphs/letter/latin/lower-y.ptl +++ b/packages/font-glyphs/src/letter/latin/lower-y.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg fallback SuffixCfg] from"../../../support/utils.mjs" -import [LowerYDotAtBelow Dotless CvDecompose MathSansSerif OgonekTrY] from"../../../support/gr.mjs" +import [mix linreg fallback SuffixCfg] from "@iosevka/util" +import [LowerYDotAtBelow Dotless CvDecompose MathSansSerif OgonekTrY] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/o.ptl b/packages/font-glyphs/src/letter/latin/o.ptl similarity index 99% rename from font-src/glyphs/letter/latin/o.ptl rename to packages/font-glyphs/src/letter/latin/o.ptl index 24ec8f2ba4..1a7549d388 100644 --- a/font-src/glyphs/letter/latin/o.ptl +++ b/packages/font-glyphs/src/letter/latin/o.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin/s.ptl b/packages/font-glyphs/src/letter/latin/s.ptl similarity index 99% rename from font-src/glyphs/letter/latin/s.ptl rename to packages/font-glyphs/src/letter/latin/s.ptl index 8db17bfee5..a2083ea8ca 100644 --- a/font-src/glyphs/letter/latin/s.ptl +++ b/packages/font-glyphs/src/letter/latin/s.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/u.ptl b/packages/font-glyphs/src/letter/latin/u.ptl similarity index 98% rename from font-src/glyphs/letter/latin/u.ptl rename to packages/font-glyphs/src/letter/latin/u.ptl index 9554b7b224..b5e2f25874 100644 --- a/font-src/glyphs/letter/latin/u.ptl +++ b/packages/font-glyphs/src/letter/latin/u.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-a.ptl b/packages/font-glyphs/src/letter/latin/upper-a.ptl similarity index 97% rename from font-src/glyphs/letter/latin/upper-a.ptl rename to packages/font-glyphs/src/letter/latin/upper-a.ptl index e07ad206cf..c2c0b6c130 100644 --- a/font-src/glyphs/letter/latin/upper-a.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-a.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" -import [maskBits bitOr] from"../../../support/util/mask-bit.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" +import [maskBits bitOr] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-b.ptl b/packages/font-glyphs/src/letter/latin/upper-b.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-b.ptl rename to packages/font-glyphs/src/letter/latin/upper-b.ptl index fc6a049a9b..33eea28b9e 100644 --- a/font-src/glyphs/letter/latin/upper-b.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-b.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-d.ptl b/packages/font-glyphs/src/letter/latin/upper-d.ptl similarity index 96% rename from font-src/glyphs/letter/latin/upper-d.ptl rename to packages/font-glyphs/src/letter/latin/upper-d.ptl index 0912c31e70..fda5997c92 100644 --- a/font-src/glyphs/letter/latin/upper-d.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-d.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix clamp fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix clamp fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-e.ptl b/packages/font-glyphs/src/letter/latin/upper-e.ptl similarity index 95% rename from font-src/glyphs/letter/latin/upper-e.ptl rename to packages/font-glyphs/src/letter/latin/upper-e.ptl index 77f807cbd1..3887c16520 100644 --- a/font-src/glyphs/letter/latin/upper-e.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-e.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-f.ptl b/packages/font-glyphs/src/letter/latin/upper-f.ptl similarity index 95% rename from font-src/glyphs/letter/latin/upper-f.ptl rename to packages/font-glyphs/src/letter/latin/upper-f.ptl index 560661d941..438188219a 100644 --- a/font-src/glyphs/letter/latin/upper-f.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-f.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-g.ptl b/packages/font-glyphs/src/letter/latin/upper-g.ptl similarity index 97% rename from font-src/glyphs/letter/latin/upper-g.ptl rename to packages/font-glyphs/src/letter/latin/upper-g.ptl index 52b5135aaa..43ed9a626d 100644 --- a/font-src/glyphs/letter/latin/upper-g.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-g.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-h.ptl b/packages/font-glyphs/src/letter/latin/upper-h.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-h.ptl rename to packages/font-glyphs/src/letter/latin/upper-h.ptl index 4fb931c983..b4a3318ab4 100644 --- a/font-src/glyphs/letter/latin/upper-h.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-h.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-i.ptl b/packages/font-glyphs/src/letter/latin/upper-i.ptl similarity index 94% rename from font-src/glyphs/letter/latin/upper-i.ptl rename to packages/font-glyphs/src/letter/latin/upper-i.ptl index e8d62d9135..fb5608c84c 100644 --- a/font-src/glyphs/letter/latin/upper-i.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-i.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-j.ptl b/packages/font-glyphs/src/letter/latin/upper-j.ptl similarity index 97% rename from font-src/glyphs/letter/latin/upper-j.ptl rename to packages/font-glyphs/src/letter/latin/upper-j.ptl index 4bf5547bc6..ee13ad8ee7 100644 --- a/font-src/glyphs/letter/latin/upper-j.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-j.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-l.ptl b/packages/font-glyphs/src/letter/latin/upper-l.ptl similarity index 96% rename from font-src/glyphs/letter/latin/upper-l.ptl rename to packages/font-glyphs/src/letter/latin/upper-l.ptl index 13b831a60d..e7e6387076 100644 --- a/font-src/glyphs/letter/latin/upper-l.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-l.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-m.ptl b/packages/font-glyphs/src/letter/latin/upper-m.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-m.ptl rename to packages/font-glyphs/src/letter/latin/upper-m.ptl index c2104cb77e..0c75e0b8aa 100644 --- a/font-src/glyphs/letter/latin/upper-m.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-m.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-n.ptl b/packages/font-glyphs/src/letter/latin/upper-n.ptl similarity index 97% rename from font-src/glyphs/letter/latin/upper-n.ptl rename to packages/font-glyphs/src/letter/latin/upper-n.ptl index e8586e09ea..31eb8bea61 100644 --- a/font-src/glyphs/letter/latin/upper-n.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-n.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-p.ptl b/packages/font-glyphs/src/letter/latin/upper-p.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-p.ptl rename to packages/font-glyphs/src/letter/latin/upper-p.ptl index abfaeafbd4..43e7393dd1 100644 --- a/font-src/glyphs/letter/latin/upper-p.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-p.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-q.ptl b/packages/font-glyphs/src/letter/latin/upper-q.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-q.ptl rename to packages/font-glyphs/src/letter/latin/upper-q.ptl index bfb5f8f0bd..6666ea2c94 100644 --- a/font-src/glyphs/letter/latin/upper-q.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-q.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-r.ptl b/packages/font-glyphs/src/letter/latin/upper-r.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-r.ptl rename to packages/font-glyphs/src/letter/latin/upper-r.ptl index 44ebec52c3..0dec8137d3 100644 --- a/font-src/glyphs/letter/latin/upper-r.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-r.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-t.ptl b/packages/font-glyphs/src/letter/latin/upper-t.ptl similarity index 98% rename from font-src/glyphs/letter/latin/upper-t.ptl rename to packages/font-glyphs/src/letter/latin/upper-t.ptl index bb1ad7848e..58dc89af5d 100644 --- a/font-src/glyphs/letter/latin/upper-t.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-t.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/upper-y.ptl b/packages/font-glyphs/src/letter/latin/upper-y.ptl similarity index 97% rename from font-src/glyphs/letter/latin/upper-y.ptl rename to packages/font-glyphs/src/letter/latin/upper-y.ptl index 719053233e..72f8c4f3ec 100644 --- a/font-src/glyphs/letter/latin/upper-y.ptl +++ b/packages/font-glyphs/src/letter/latin/upper-y.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/v.ptl b/packages/font-glyphs/src/letter/latin/v.ptl similarity index 98% rename from font-src/glyphs/letter/latin/v.ptl rename to packages/font-glyphs/src/letter/latin/v.ptl index 10c12a1672..64716d8466 100644 --- a/font-src/glyphs/letter/latin/v.ptl +++ b/packages/font-glyphs/src/letter/latin/v.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/w.ptl b/packages/font-glyphs/src/letter/latin/w.ptl similarity index 99% rename from font-src/glyphs/letter/latin/w.ptl rename to packages/font-glyphs/src/letter/latin/w.ptl index e21b03953e..1b9d23964a 100644 --- a/font-src/glyphs/letter/latin/w.ptl +++ b/packages/font-glyphs/src/letter/latin/w.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/x.ptl b/packages/font-glyphs/src/letter/latin/x.ptl similarity index 98% rename from font-src/glyphs/letter/latin/x.ptl rename to packages/font-glyphs/src/letter/latin/x.ptl index b8083ecadf..2867168b51 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/packages/font-glyphs/src/letter/latin/x.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [MathSansSerif] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/latin/z.ptl b/packages/font-glyphs/src/letter/latin/z.ptl similarity index 98% rename from font-src/glyphs/letter/latin/z.ptl rename to packages/font-glyphs/src/letter/latin/z.ptl index 1cdb01620e..9202f83bef 100644 --- a/font-src/glyphs/letter/latin/z.ptl +++ b/packages/font-glyphs/src/letter/latin/z.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix SuffixCfg fallback] from"../../../support/utils.mjs" -import [CvDecompose MathSansSerif] from"../../../support/gr.mjs" +import [mix SuffixCfg fallback] from "@iosevka/util" +import [CvDecompose MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/letter/shared.ptl b/packages/font-glyphs/src/letter/shared.ptl similarity index 99% rename from font-src/glyphs/letter/shared.ptl rename to packages/font-glyphs/src/letter/shared.ptl index 1fe516099c..8b24b2b2c7 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/packages/font-glyphs/src/letter/shared.ptl @@ -1,8 +1,8 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix clamp fallback] from"../../support/utils.mjs" -import [Dotless CvDecompose RightDependentTrigger RightDependentLink DependentSelector] from"../../support/gr.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" +import [mix clamp fallback] from "@iosevka/util" +import [Dotless CvDecompose RightDependentTrigger RightDependentLink DependentSelector] from "@iosevka/glyph/relation" +import [DesignParameters] from "../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl similarity index 99% rename from font-src/glyphs/marks/above.ptl rename to packages/font-glyphs/src/marks/above.ptl index 830d6cfa89..87238aa90b 100644 --- a/font-src/glyphs/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -1,12 +1,12 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [OffsetCurve BezToContoursSink GEOMETRY_PRECISION] from"../../support/geometry/curve-util.mjs" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [ScheduleLeaningMark] from"../../support/gr.mjs" -import [Box] from"../../support/geometry/box.mjs" -import [Point] from"../../support/geometry/point.mjs" +import [OffsetCurve BezToContoursSink GEOMETRY_PRECISION] from "@iosevka/geometry/curve-util" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../meta/aesthetics.mjs" +import [ScheduleLeaningMark] from "@iosevka/glyph/relation" +import [Box] from "@iosevka/geometry/box" +import [Point] from "@iosevka/geometry/point" glyph-module diff --git a/font-src/glyphs/marks/adjust.ptl b/packages/font-glyphs/src/marks/adjust.ptl similarity index 95% rename from font-src/glyphs/marks/adjust.ptl rename to packages/font-glyphs/src/marks/adjust.ptl index 43ed0b211e..4de0104413 100644 --- a/font-src/glyphs/marks/adjust.ptl +++ b/packages/font-glyphs/src/marks/adjust.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix fallback] from"../../support/utils.mjs" +import [mix fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/marks/below.ptl b/packages/font-glyphs/src/marks/below.ptl similarity index 97% rename from font-src/glyphs/marks/below.ptl rename to packages/font-glyphs/src/marks/below.ptl index 2ec1caa20d..8e8cc66dde 100644 --- a/font-src/glyphs/marks/below.ptl +++ b/packages/font-glyphs/src/marks/below.ptl @@ -1,10 +1,9 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [ScheduleLeaningMark] from"../../support/gr.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [ScheduleLeaningMark] from "@iosevka/glyph/relation" +import [Box] from "@iosevka/geometry/box" glyph-module diff --git a/font-src/glyphs/marks/composite.ptl b/packages/font-glyphs/src/marks/composite.ptl similarity index 96% rename from font-src/glyphs/marks/composite.ptl rename to packages/font-glyphs/src/marks/composite.ptl index be3ae8f95c..94ba86c3a5 100644 --- a/font-src/glyphs/marks/composite.ptl +++ b/packages/font-glyphs/src/marks/composite.ptl @@ -1,9 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/marks/horn-and-angle.ptl b/packages/font-glyphs/src/marks/horn-and-angle.ptl similarity index 97% rename from font-src/glyphs/marks/horn-and-angle.ptl rename to packages/font-glyphs/src/marks/horn-and-angle.ptl index f77d37f306..ab44411aa2 100644 --- a/font-src/glyphs/marks/horn-and-angle.ptl +++ b/packages/font-glyphs/src/marks/horn-and-angle.ptl @@ -1,9 +1,8 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/marks/index.ptl b/packages/font-glyphs/src/marks/index.ptl similarity index 91% rename from font-src/glyphs/marks/index.ptl rename to packages/font-glyphs/src/marks/index.ptl index 091a32abf0..9ccce20641 100644 --- a/font-src/glyphs/marks/index.ptl +++ b/packages/font-glyphs/src/marks/index.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' glyph-module diff --git a/font-src/glyphs/marks/overlay.ptl b/packages/font-glyphs/src/marks/overlay.ptl similarity index 98% rename from font-src/glyphs/marks/overlay.ptl rename to packages/font-glyphs/src/marks/overlay.ptl index 29df4c4817..d794cbca1d 100644 --- a/font-src/glyphs/marks/overlay.ptl +++ b/packages/font-glyphs/src/marks/overlay.ptl @@ -1,9 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/marks/shared-metrics.ptl b/packages/font-glyphs/src/marks/shared-metrics.ptl similarity index 82% rename from font-src/glyphs/marks/shared-metrics.ptl rename to packages/font-glyphs/src/marks/shared-metrics.ptl index 42e8b33618..5eda903a5c 100644 --- a/font-src/glyphs/marks/shared-metrics.ptl +++ b/packages/font-glyphs/src/marks/shared-metrics.ptl @@ -1,9 +1,9 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../meta/aesthetics.mjs" +import [Box] from "@iosevka/geometry/box" glyph-module diff --git a/font-src/glyphs/marks/tie.ptl b/packages/font-glyphs/src/marks/tie.ptl similarity index 94% rename from font-src/glyphs/marks/tie.ptl rename to packages/font-glyphs/src/marks/tie.ptl index bbbd19a8bd..2b04c5d01d 100644 --- a/font-src/glyphs/marks/tie.ptl +++ b/packages/font-glyphs/src/marks/tie.ptl @@ -1,10 +1,8 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' import [Arcs Quadify ShapeConv] from "typo-geom" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" -import [TieMark TieGlyph] from"../../support/gr.mjs" -import [Box] from"../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [TieMark TieGlyph] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/meta/aesthetics.ptl b/packages/font-glyphs/src/meta/aesthetics.ptl similarity index 98% rename from font-src/meta/aesthetics.ptl rename to packages/font-glyphs/src/meta/aesthetics.ptl index 726b251c27..cc7585100c 100644 --- a/font-src/meta/aesthetics.ptl +++ b/packages/font-glyphs/src/meta/aesthetics.ptl @@ -1,7 +1,7 @@ -import [Point] from"../support/geometry/point.mjs" -import [Transform] from"../support/geometry/transform.mjs" -import [Anchor] from"../support/geometry/anchor.mjs" -import [mix linreg clamp fallback] from"../support/utils.mjs" +import [Point] from "@iosevka/geometry/point" +import [Transform] from "@iosevka/geometry/transform" +import [Anchor] from "@iosevka/geometry/anchor" +import [mix linreg clamp fallback] from "@iosevka/util" # Parameter generation export : define [calculateMetrics para] : begin diff --git a/font-src/meta/macros.ptl b/packages/font-glyphs/src/meta/macros.ptl similarity index 100% rename from font-src/meta/macros.ptl rename to packages/font-glyphs/src/meta/macros.ptl diff --git a/font-src/meta/unicode-knowledge.ptl b/packages/font-glyphs/src/meta/unicode-knowledge.ptl similarity index 100% rename from font-src/meta/unicode-knowledge.ptl rename to packages/font-glyphs/src/meta/unicode-knowledge.ptl diff --git a/font-src/glyphs/number/0.ptl b/packages/font-glyphs/src/number/0.ptl similarity index 98% rename from font-src/glyphs/number/0.ptl rename to packages/font-glyphs/src/number/0.ptl index fdd7233334..b7218ad6a6 100644 --- a/font-src/glyphs/number/0.ptl +++ b/packages/font-glyphs/src/number/0.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix clamp fallback SuffixCfg] from"../../support/utils.mjs" -import [VS01 Zero] from"../../support/gr.mjs" +import [mix clamp fallback SuffixCfg] from "@iosevka/util" +import [VS01 Zero] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/number/1.ptl b/packages/font-glyphs/src/number/1.ptl similarity index 95% rename from font-src/glyphs/number/1.ptl rename to packages/font-glyphs/src/number/1.ptl index 1c8a14d5c8..4daa855855 100644 --- a/font-src/glyphs/number/1.ptl +++ b/packages/font-glyphs/src/number/1.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [MathSansSerif] from"../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/number/2.ptl b/packages/font-glyphs/src/number/2.ptl similarity index 96% rename from font-src/glyphs/number/2.ptl rename to packages/font-glyphs/src/number/2.ptl index fce14d8f96..73bbb76217 100644 --- a/font-src/glyphs/number/2.ptl +++ b/packages/font-glyphs/src/number/2.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/3.ptl b/packages/font-glyphs/src/number/3.ptl similarity index 95% rename from font-src/glyphs/number/3.ptl rename to packages/font-glyphs/src/number/3.ptl index 6bcbf3d056..bea7731ba8 100644 --- a/font-src/glyphs/number/3.ptl +++ b/packages/font-glyphs/src/number/3.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/4.ptl b/packages/font-glyphs/src/number/4.ptl similarity index 97% rename from font-src/glyphs/number/4.ptl rename to packages/font-glyphs/src/number/4.ptl index 60cfbff2af..2c6b4fe3df 100644 --- a/font-src/glyphs/number/4.ptl +++ b/packages/font-glyphs/src/number/4.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/5.ptl b/packages/font-glyphs/src/number/5.ptl similarity index 97% rename from font-src/glyphs/number/5.ptl rename to packages/font-glyphs/src/number/5.ptl index 09815ee58b..429457111b 100644 --- a/font-src/glyphs/number/5.ptl +++ b/packages/font-glyphs/src/number/5.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback SuffixCfg] from"../../support/utils.mjs" +import [mix linreg clamp fallback SuffixCfg] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/6.ptl b/packages/font-glyphs/src/number/6.ptl similarity index 97% rename from font-src/glyphs/number/6.ptl rename to packages/font-glyphs/src/number/6.ptl index a5b9e1f1cd..6f6947cbbf 100644 --- a/font-src/glyphs/number/6.ptl +++ b/packages/font-glyphs/src/number/6.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/7.ptl b/packages/font-glyphs/src/number/7.ptl similarity index 96% rename from font-src/glyphs/number/7.ptl rename to packages/font-glyphs/src/number/7.ptl index dc002d3c72..acafa1621d 100644 --- a/font-src/glyphs/number/7.ptl +++ b/packages/font-glyphs/src/number/7.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix fallback SuffixCfg] from"../../support/utils.mjs" -import [MathSansSerif] from"../../support/gr.mjs" +import [mix fallback SuffixCfg] from "@iosevka/util" +import [MathSansSerif] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/number/8.ptl b/packages/font-glyphs/src/number/8.ptl similarity index 98% rename from font-src/glyphs/number/8.ptl rename to packages/font-glyphs/src/number/8.ptl index b4fccdb678..49010b3297 100644 --- a/font-src/glyphs/number/8.ptl +++ b/packages/font-glyphs/src/number/8.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/9.ptl b/packages/font-glyphs/src/number/9.ptl similarity index 94% rename from font-src/glyphs/number/9.ptl rename to packages/font-glyphs/src/number/9.ptl index 9154db82ca..d38291d9c3 100644 --- a/font-src/glyphs/number/9.ptl +++ b/packages/font-glyphs/src/number/9.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/number/index.ptl b/packages/font-glyphs/src/number/index.ptl similarity index 91% rename from font-src/glyphs/number/index.ptl rename to packages/font-glyphs/src/number/index.ptl index d68b095efa..a99f9cab79 100644 --- a/font-src/glyphs/number/index.ptl +++ b/packages/font-glyphs/src/number/index.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' glyph-module diff --git a/font-src/glyphs/number/shared.ptl b/packages/font-glyphs/src/number/shared.ptl similarity index 86% rename from font-src/glyphs/number/shared.ptl rename to packages/font-glyphs/src/number/shared.ptl index 0d0db89629..acc7fafd20 100644 --- a/font-src/glyphs/number/shared.ptl +++ b/packages/font-glyphs/src/number/shared.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/space/index.ptl b/packages/font-glyphs/src/space/index.ptl similarity index 93% rename from font-src/glyphs/space/index.ptl rename to packages/font-glyphs/src/space/index.ptl index da1fff0337..d61794e978 100644 --- a/font-src/glyphs/space/index.ptl +++ b/packages/font-glyphs/src/space/index.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [Joining] from"../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/arrow.ptl b/packages/font-glyphs/src/symbol/arrow.ptl similarity index 99% rename from font-src/glyphs/symbol/arrow.ptl rename to packages/font-glyphs/src/symbol/arrow.ptl index 71bbdd471e..fdda40cff0 100644 --- a/font-src/glyphs/symbol/arrow.ptl +++ b/packages/font-glyphs/src/symbol/arrow.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/braille.ptl b/packages/font-glyphs/src/symbol/braille.ptl similarity index 92% rename from font-src/glyphs/symbol/braille.ptl rename to packages/font-glyphs/src/symbol/braille.ptl index 531979f75a..edd7c143f2 100644 --- a/font-src/glyphs/symbol/braille.ptl +++ b/packages/font-glyphs/src/symbol/braille.ptl @@ -1,8 +1,8 @@ ###### Braille symbols -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [maskBit maskBits popCountByte] from"../../support/util/mask-bit.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [maskBit maskBits popCountByte] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/symbol/enclosure.ptl b/packages/font-glyphs/src/symbol/enclosure.ptl similarity index 66% rename from font-src/glyphs/symbol/enclosure.ptl rename to packages/font-glyphs/src/symbol/enclosure.ptl index d795f35a04..9cd30da371 100644 --- a/font-src/glyphs/symbol/enclosure.ptl +++ b/packages/font-glyphs/src/symbol/enclosure.ptl @@ -1,7 +1,7 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric.ptl b/packages/font-glyphs/src/symbol/geometric.ptl similarity index 93% rename from font-src/glyphs/symbol/geometric.ptl rename to packages/font-glyphs/src/symbol/geometric.ptl index 5164d46ff2..5196010741 100644 --- a/font-src/glyphs/symbol/geometric.ptl +++ b/packages/font-glyphs/src/symbol/geometric.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/symbol/geometric/ballot-box.ptl b/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl similarity index 90% rename from font-src/glyphs/symbol/geometric/ballot-box.ptl rename to packages/font-glyphs/src/symbol/geometric/ballot-box.ptl index d8150a0de3..b4f4e675ef 100644 --- a/font-src/glyphs/symbol/geometric/ballot-box.ptl +++ b/packages/font-glyphs/src/symbol/geometric/ballot-box.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/corner-shape.ptl b/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl similarity index 97% rename from font-src/glyphs/symbol/geometric/corner-shape.ptl rename to packages/font-glyphs/src/symbol/geometric/corner-shape.ptl index 3c426fdd13..37561b825e 100644 --- a/font-src/glyphs/symbol/geometric/corner-shape.ptl +++ b/packages/font-glyphs/src/symbol/geometric/corner-shape.ptl @@ -1,4 +1,4 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' glyph-module diff --git a/font-src/glyphs/symbol/geometric/dotted.ptl b/packages/font-glyphs/src/symbol/geometric/dotted.ptl similarity index 95% rename from font-src/glyphs/symbol/geometric/dotted.ptl rename to packages/font-glyphs/src/symbol/geometric/dotted.ptl index ab32d64153..a4b70636c1 100644 --- a/font-src/glyphs/symbol/geometric/dotted.ptl +++ b/packages/font-glyphs/src/symbol/geometric/dotted.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/masked.ptl b/packages/font-glyphs/src/symbol/geometric/masked.ptl similarity index 98% rename from font-src/glyphs/symbol/geometric/masked.ptl rename to packages/font-glyphs/src/symbol/geometric/masked.ptl index ab6e556b9a..915f9b2aff 100644 --- a/font-src/glyphs/symbol/geometric/masked.ptl +++ b/packages/font-glyphs/src/symbol/geometric/masked.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/plain.ptl b/packages/font-glyphs/src/symbol/geometric/plain.ptl similarity index 99% rename from font-src/glyphs/symbol/geometric/plain.ptl rename to packages/font-glyphs/src/symbol/geometric/plain.ptl index ba283ffc8d..41fc230bbb 100644 --- a/font-src/glyphs/symbol/geometric/plain.ptl +++ b/packages/font-glyphs/src/symbol/geometric/plain.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/rounded.ptl b/packages/font-glyphs/src/symbol/geometric/rounded.ptl similarity index 92% rename from font-src/glyphs/symbol/geometric/rounded.ptl rename to packages/font-glyphs/src/symbol/geometric/rounded.ptl index bde249b5cc..872f109c26 100644 --- a/font-src/glyphs/symbol/geometric/rounded.ptl +++ b/packages/font-glyphs/src/symbol/geometric/rounded.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/shaded.ptl b/packages/font-glyphs/src/symbol/geometric/shaded.ptl similarity index 97% rename from font-src/glyphs/symbol/geometric/shaded.ptl rename to packages/font-glyphs/src/symbol/geometric/shaded.ptl index 1494aefe5b..575c0ebc9e 100644 --- a/font-src/glyphs/symbol/geometric/shaded.ptl +++ b/packages/font-glyphs/src/symbol/geometric/shaded.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/shared.ptl b/packages/font-glyphs/src/symbol/geometric/shared.ptl similarity index 94% rename from font-src/glyphs/symbol/geometric/shared.ptl rename to packages/font-glyphs/src/symbol/geometric/shared.ptl index dde40c3688..d61cb0cb89 100644 --- a/font-src/glyphs/symbol/geometric/shared.ptl +++ b/packages/font-glyphs/src/symbol/geometric/shared.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/stars.ptl b/packages/font-glyphs/src/symbol/geometric/stars.ptl similarity index 98% rename from font-src/glyphs/symbol/geometric/stars.ptl rename to packages/font-glyphs/src/symbol/geometric/stars.ptl index b3b47afb61..1cbe9d5527 100644 --- a/font-src/glyphs/symbol/geometric/stars.ptl +++ b/packages/font-glyphs/src/symbol/geometric/stars.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/geometric/sun-and-gear.ptl b/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl similarity index 91% rename from font-src/glyphs/symbol/geometric/sun-and-gear.ptl rename to packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl index ac08781a3a..de23a04f5e 100644 --- a/font-src/glyphs/symbol/geometric/sun-and-gear.ptl +++ b/packages/font-glyphs/src/symbol/geometric/sun-and-gear.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/letter.ptl b/packages/font-glyphs/src/symbol/letter.ptl similarity index 98% rename from font-src/glyphs/symbol/letter.ptl rename to packages/font-glyphs/src/symbol/letter.ptl index 2126b4e9e0..4154aafb3f 100644 --- a/font-src/glyphs/symbol/letter.ptl +++ b/packages/font-glyphs/src/symbol/letter.ptl @@ -1,10 +1,10 @@ ###### Letter-like symbols -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [Box] from"../../support/geometry/box.mjs" -import [mix linreg clamp fallback] from"../../support/utils.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" +import [Box] from "@iosevka/geometry/box" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/ligation.ptl b/packages/font-glyphs/src/symbol/ligation.ptl similarity index 98% rename from font-src/glyphs/symbol/ligation.ptl rename to packages/font-glyphs/src/symbol/ligation.ptl index 0ed3169216..216d46c170 100644 --- a/font-src/glyphs/symbol/ligation.ptl +++ b/packages/font-glyphs/src/symbol/ligation.ptl @@ -1,9 +1,9 @@ ###### Other symbols -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix clamp fallback] from"../../support/utils.mjs" -import [Joining NeqLigationSlashDotted] from"../../support/gr.mjs" -import [DesignParameters] from"../../meta/aesthetics.mjs" +import [mix clamp fallback] from "@iosevka/util" +import [Joining NeqLigationSlashDotted] from "@iosevka/glyph/relation" +import [DesignParameters] from "../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/math.ptl b/packages/font-glyphs/src/symbol/math.ptl similarity index 95% rename from font-src/glyphs/symbol/math.ptl rename to packages/font-glyphs/src/symbol/math.ptl index 7af2636ac7..5ba7305317 100644 --- a/font-src/glyphs/symbol/math.ptl +++ b/packages/font-glyphs/src/symbol/math.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/symbol/math/apl.ptl b/packages/font-glyphs/src/symbol/math/apl.ptl similarity index 97% rename from font-src/glyphs/symbol/math/apl.ptl rename to packages/font-glyphs/src/symbol/math/apl.ptl index a40e2b1e06..66e7754730 100644 --- a/font-src/glyphs/symbol/math/apl.ptl +++ b/packages/font-glyphs/src/symbol/math/apl.ptl @@ -1,9 +1,9 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" -import [Point] from"../../../support/geometry/point.mjs" -import [AplForm] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" +import [Point] from "@iosevka/geometry/point" +import [AplForm] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/math/arith.ptl b/packages/font-glyphs/src/symbol/math/arith.ptl similarity index 99% rename from font-src/glyphs/symbol/math/arith.ptl rename to packages/font-glyphs/src/symbol/math/arith.ptl index a7935bb92d..15cbb430e7 100644 --- a/font-src/glyphs/symbol/math/arith.ptl +++ b/packages/font-glyphs/src/symbol/math/arith.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/boxed.ptl b/packages/font-glyphs/src/symbol/math/boxed.ptl similarity index 87% rename from font-src/glyphs/symbol/math/boxed.ptl rename to packages/font-glyphs/src/symbol/math/boxed.ptl index 603b48165b..bf48321979 100644 --- a/font-src/glyphs/symbol/math/boxed.ptl +++ b/packages/font-glyphs/src/symbol/math/boxed.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/circled.ptl b/packages/font-glyphs/src/symbol/math/circled.ptl similarity index 97% rename from font-src/glyphs/symbol/math/circled.ptl rename to packages/font-glyphs/src/symbol/math/circled.ptl index 9aa74b4111..3103ccf275 100644 --- a/font-src/glyphs/symbol/math/circled.ptl +++ b/packages/font-glyphs/src/symbol/math/circled.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/complement.ptl b/packages/font-glyphs/src/symbol/math/complement.ptl similarity index 73% rename from font-src/glyphs/symbol/math/complement.ptl rename to packages/font-glyphs/src/symbol/math/complement.ptl index cebde46f7b..712d28f165 100644 --- a/font-src/glyphs/symbol/math/complement.ptl +++ b/packages/font-glyphs/src/symbol/math/complement.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/dots-and-colons.ptl b/packages/font-glyphs/src/symbol/math/dots-and-colons.ptl similarity index 95% rename from font-src/glyphs/symbol/math/dots-and-colons.ptl rename to packages/font-glyphs/src/symbol/math/dots-and-colons.ptl index 2d92794c0a..4e6e70d01b 100644 --- a/font-src/glyphs/symbol/math/dots-and-colons.ptl +++ b/packages/font-glyphs/src/symbol/math/dots-and-colons.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/frame.ptl b/packages/font-glyphs/src/symbol/math/frame.ptl similarity index 96% rename from font-src/glyphs/symbol/math/frame.ptl rename to packages/font-glyphs/src/symbol/math/frame.ptl index 8fe6b3a3c8..a4d605b2e0 100644 --- a/font-src/glyphs/symbol/math/frame.ptl +++ b/packages/font-glyphs/src/symbol/math/frame.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/geometry.ptl b/packages/font-glyphs/src/symbol/math/geometry.ptl similarity index 97% rename from font-src/glyphs/symbol/math/geometry.ptl rename to packages/font-glyphs/src/symbol/math/geometry.ptl index 87fad76408..e95f3c5c43 100644 --- a/font-src/glyphs/symbol/math/geometry.ptl +++ b/packages/font-glyphs/src/symbol/math/geometry.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/integrals.ptl b/packages/font-glyphs/src/symbol/math/integrals.ptl similarity index 98% rename from font-src/glyphs/symbol/math/integrals.ptl rename to packages/font-glyphs/src/symbol/math/integrals.ptl index bf12f80ab8..69ffbd842e 100644 --- a/font-src/glyphs/symbol/math/integrals.ptl +++ b/packages/font-glyphs/src/symbol/math/integrals.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/large-operators.ptl b/packages/font-glyphs/src/symbol/math/large-operators.ptl similarity index 95% rename from font-src/glyphs/symbol/math/large-operators.ptl rename to packages/font-glyphs/src/symbol/math/large-operators.ptl index 3100c86458..321f88e109 100644 --- a/font-src/glyphs/symbol/math/large-operators.ptl +++ b/packages/font-glyphs/src/symbol/math/large-operators.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module @@ -68,4 +68,4 @@ glyph-block Symbol-Math-Large-Operators : for-width-kinds WideWidth1 ada -- [ArchDepthAOf (ArchDepth * [Math.sqrt df.div]) (df.width)] adb -- [ArchDepthBOf (ArchDepth * [Math.sqrt df.div]) (df.width)] - turned [MangleName 'Cap'] [MangleUnicode 0x22C2] [MangleName 'Cup'] df.middle SymbolMid \ No newline at end of file + turned [MangleName 'Cap'] [MangleUnicode 0x22C2] [MangleName 'Cup'] df.middle SymbolMid diff --git a/font-src/glyphs/symbol/math/letter-like.ptl b/packages/font-glyphs/src/symbol/math/letter-like.ptl similarity index 92% rename from font-src/glyphs/symbol/math/letter-like.ptl rename to packages/font-glyphs/src/symbol/math/letter-like.ptl index 00f6ee3eb4..5fb711baa9 100644 --- a/font-src/glyphs/symbol/math/letter-like.ptl +++ b/packages/font-glyphs/src/symbol/math/letter-like.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/logicals.ptl b/packages/font-glyphs/src/symbol/math/logicals.ptl similarity index 97% rename from font-src/glyphs/symbol/math/logicals.ptl rename to packages/font-glyphs/src/symbol/math/logicals.ptl index 80d08b0d7e..1b951c782d 100644 --- a/font-src/glyphs/symbol/math/logicals.ptl +++ b/packages/font-glyphs/src/symbol/math/logicals.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/negation.ptl b/packages/font-glyphs/src/symbol/math/negation.ptl similarity index 94% rename from font-src/glyphs/symbol/math/negation.ptl rename to packages/font-glyphs/src/symbol/math/negation.ptl index 20b47338a5..270d2fd0e5 100644 --- a/font-src/glyphs/symbol/math/negation.ptl +++ b/packages/font-glyphs/src/symbol/math/negation.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/not-glyph-fn.ptl b/packages/font-glyphs/src/symbol/math/not-glyph-fn.ptl similarity index 94% rename from font-src/glyphs/symbol/math/not-glyph-fn.ptl rename to packages/font-glyphs/src/symbol/math/not-glyph-fn.ptl index 36fe263cb4..583a377efb 100644 --- a/font-src/glyphs/symbol/math/not-glyph-fn.ptl +++ b/packages/font-glyphs/src/symbol/math/not-glyph-fn.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/other.ptl b/packages/font-glyphs/src/symbol/math/other.ptl similarity index 94% rename from font-src/glyphs/symbol/math/other.ptl rename to packages/font-glyphs/src/symbol/math/other.ptl index 2ab56a31cd..8bd27190d5 100644 --- a/font-src/glyphs/symbol/math/other.ptl +++ b/packages/font-glyphs/src/symbol/math/other.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/math/relation.ptl b/packages/font-glyphs/src/symbol/math/relation.ptl similarity index 99% rename from font-src/glyphs/symbol/math/relation.ptl rename to packages/font-glyphs/src/symbol/math/relation.ptl index bd899e2c19..c28df71022 100644 --- a/font-src/glyphs/symbol/math/relation.ptl +++ b/packages/font-glyphs/src/symbol/math/relation.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Box] from"../../../support/geometry/box.mjs" -import [Joining] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" +import [Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/math/v-and-cup.ptl b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl similarity index 98% rename from font-src/glyphs/symbol/math/v-and-cup.ptl rename to packages/font-glyphs/src/symbol/math/v-and-cup.ptl index a415b5ee2d..a848bd3b7e 100644 --- a/font-src/glyphs/symbol/math/v-and-cup.ptl +++ b/packages/font-glyphs/src/symbol/math/v-and-cup.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/mosaic.ptl b/packages/font-glyphs/src/symbol/mosaic.ptl similarity index 99% rename from font-src/glyphs/symbol/mosaic.ptl rename to packages/font-glyphs/src/symbol/mosaic.ptl index 113d6969cd..3224844099 100644 --- a/font-src/glyphs/symbol/mosaic.ptl +++ b/packages/font-glyphs/src/symbol/mosaic.ptl @@ -1,7 +1,7 @@ ###### Teletext symbols -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph.ptl b/packages/font-glyphs/src/symbol/pictograph.ptl similarity index 96% rename from font-src/glyphs/symbol/pictograph.ptl rename to packages/font-glyphs/src/symbol/pictograph.ptl index 7f783c8eef..691bc1d877 100644 --- a/font-src/glyphs/symbol/pictograph.ptl +++ b/packages/font-glyphs/src/symbol/pictograph.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/symbol/pictograph/astronomy.ptl b/packages/font-glyphs/src/symbol/pictograph/astronomy.ptl similarity index 92% rename from font-src/glyphs/symbol/pictograph/astronomy.ptl rename to packages/font-glyphs/src/symbol/pictograph/astronomy.ptl index a147796176..790faa7817 100644 --- a/font-src/glyphs/symbol/pictograph/astronomy.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/astronomy.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/atom.ptl b/packages/font-glyphs/src/symbol/pictograph/atom.ptl similarity index 90% rename from font-src/glyphs/symbol/pictograph/atom.ptl rename to packages/font-glyphs/src/symbol/pictograph/atom.ptl index 494d287c69..86c3f58cad 100644 --- a/font-src/glyphs/symbol/pictograph/atom.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/atom.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/bolt-symbol.ptl b/packages/font-glyphs/src/symbol/pictograph/bolt-symbol.ptl similarity index 85% rename from font-src/glyphs/symbol/pictograph/bolt-symbol.ptl rename to packages/font-glyphs/src/symbol/pictograph/bolt-symbol.ptl index 73f127e07d..5332f30f85 100644 --- a/font-src/glyphs/symbol/pictograph/bolt-symbol.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/bolt-symbol.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/checking-marks.ptl b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl similarity index 96% rename from font-src/glyphs/symbol/pictograph/checking-marks.ptl rename to packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl index c075b83e53..f447b51c3a 100644 --- a/font-src/glyphs/symbol/pictograph/checking-marks.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/checking-marks.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/clock.ptl b/packages/font-glyphs/src/symbol/pictograph/clock.ptl similarity index 89% rename from font-src/glyphs/symbol/pictograph/clock.ptl rename to packages/font-glyphs/src/symbol/pictograph/clock.ptl index f0ac4c7f27..46c9ab93ba 100644 --- a/font-src/glyphs/symbol/pictograph/clock.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/clock.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/cross.ptl b/packages/font-glyphs/src/symbol/pictograph/cross.ptl similarity index 92% rename from font-src/glyphs/symbol/pictograph/cross.ptl rename to packages/font-glyphs/src/symbol/pictograph/cross.ptl index b3704aec97..17a1664908 100644 --- a/font-src/glyphs/symbol/pictograph/cross.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/cross.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/faces.ptl b/packages/font-glyphs/src/symbol/pictograph/faces.ptl similarity index 96% rename from font-src/glyphs/symbol/pictograph/faces.ptl rename to packages/font-glyphs/src/symbol/pictograph/faces.ptl index 229c73f9d8..2fd9dacb8f 100644 --- a/font-src/glyphs/symbol/pictograph/faces.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/faces.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/flags.ptl b/packages/font-glyphs/src/symbol/pictograph/flags.ptl similarity index 94% rename from font-src/glyphs/symbol/pictograph/flags.ptl rename to packages/font-glyphs/src/symbol/pictograph/flags.ptl index 7ea3578603..16d1c77dab 100644 --- a/font-src/glyphs/symbol/pictograph/flags.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/flags.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/heart.ptl b/packages/font-glyphs/src/symbol/pictograph/heart.ptl similarity index 88% rename from font-src/glyphs/symbol/pictograph/heart.ptl rename to packages/font-glyphs/src/symbol/pictograph/heart.ptl index f1f5e655e3..872013d326 100644 --- a/font-src/glyphs/symbol/pictograph/heart.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/heart.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Box] from"../../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/i-ching.ptl b/packages/font-glyphs/src/symbol/pictograph/i-ching.ptl similarity index 94% rename from font-src/glyphs/symbol/pictograph/i-ching.ptl rename to packages/font-glyphs/src/symbol/pictograph/i-ching.ptl index bd33439494..0f754a9e35 100644 --- a/font-src/glyphs/symbol/pictograph/i-ching.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/i-ching.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [maskBit] from"../../../support/util/mask-bit.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [maskBit] from "@iosevka/util/mask-bit" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/iec-power-and-playback.ptl b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl similarity index 98% rename from font-src/glyphs/symbol/pictograph/iec-power-and-playback.ptl rename to packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl index 6b8852c117..2bbc61d2b9 100644 --- a/font-src/glyphs/symbol/pictograph/iec-power-and-playback.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/iec-power-and-playback.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/kome.ptl b/packages/font-glyphs/src/symbol/pictograph/kome.ptl similarity index 91% rename from font-src/glyphs/symbol/pictograph/kome.ptl rename to packages/font-glyphs/src/symbol/pictograph/kome.ptl index 8f8f214529..8be0fd0091 100644 --- a/font-src/glyphs/symbol/pictograph/kome.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/kome.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/metric-marks.ptl b/packages/font-glyphs/src/symbol/pictograph/metric-marks.ptl similarity index 96% rename from font-src/glyphs/symbol/pictograph/metric-marks.ptl rename to packages/font-glyphs/src/symbol/pictograph/metric-marks.ptl index f6c2bb0139..3a5bbe3fd4 100644 --- a/font-src/glyphs/symbol/pictograph/metric-marks.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/metric-marks.ptl @@ -1,6 +1,6 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/musical.ptl b/packages/font-glyphs/src/symbol/pictograph/musical.ptl similarity index 97% rename from font-src/glyphs/symbol/pictograph/musical.ptl rename to packages/font-glyphs/src/symbol/pictograph/musical.ptl index e79c1c318d..fcb2805729 100644 --- a/font-src/glyphs/symbol/pictograph/musical.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/musical.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Transform] from"../../../support/geometry/transform.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Transform] from "@iosevka/geometry/transform" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/powerline-and-gui.ptl b/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl similarity index 99% rename from font-src/glyphs/symbol/pictograph/powerline-and-gui.ptl rename to packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl index d3c9680013..7f020facfa 100644 --- a/font-src/glyphs/symbol/pictograph/powerline-and-gui.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/powerline-and-gui.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Box] from"../../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/stick-figure.ptl b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl similarity index 96% rename from font-src/glyphs/symbol/pictograph/stick-figure.ptl rename to packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl index e90a0562b8..19c4dd4ad5 100644 --- a/font-src/glyphs/symbol/pictograph/stick-figure.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/stick-figure.ptl @@ -1,8 +1,8 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Box] from"../../../support/geometry/box.mjs" -import [Transform] from"../../../support/geometry/transform.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" +import [Transform] from "@iosevka/geometry/transform" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/suit.ptl b/packages/font-glyphs/src/symbol/pictograph/suit.ptl similarity index 95% rename from font-src/glyphs/symbol/pictograph/suit.ptl rename to packages/font-glyphs/src/symbol/pictograph/suit.ptl index 79b7b476ac..1330da3103 100644 --- a/font-src/glyphs/symbol/pictograph/suit.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/suit.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Box] from"../../../support/geometry/box.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Box] from "@iosevka/geometry/box" glyph-module diff --git a/font-src/glyphs/symbol/pictograph/telephone-recorder.ptl b/packages/font-glyphs/src/symbol/pictograph/telephone-recorder.ptl similarity index 81% rename from font-src/glyphs/symbol/pictograph/telephone-recorder.ptl rename to packages/font-glyphs/src/symbol/pictograph/telephone-recorder.ptl index 4103e33e2d..5ea1f6195c 100644 --- a/font-src/glyphs/symbol/pictograph/telephone-recorder.ptl +++ b/packages/font-glyphs/src/symbol/pictograph/telephone-recorder.ptl @@ -1,7 +1,7 @@ -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/punctuation.ptl b/packages/font-glyphs/src/symbol/punctuation.ptl similarity index 97% rename from font-src/glyphs/symbol/punctuation.ptl rename to packages/font-glyphs/src/symbol/punctuation.ptl index 8fa3e64780..a3efd895da 100644 --- a/font-src/glyphs/symbol/punctuation.ptl +++ b/packages/font-glyphs/src/symbol/punctuation.ptl @@ -1,4 +1,4 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' export : define [apply] : begin define $$Capture$$ this diff --git a/font-src/glyphs/symbol/punctuation/ampersand.ptl b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl similarity index 99% rename from font-src/glyphs/symbol/punctuation/ampersand.ptl rename to packages/font-glyphs/src/symbol/punctuation/ampersand.ptl index de92beab00..a9d6b4c073 100644 --- a/font-src/glyphs/symbol/punctuation/ampersand.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ampersand.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/ascii-marks.ptl b/packages/font-glyphs/src/symbol/punctuation/ascii-marks.ptl similarity index 96% rename from font-src/glyphs/symbol/punctuation/ascii-marks.ptl rename to packages/font-glyphs/src/symbol/punctuation/ascii-marks.ptl index 935ed3c9fb..9ece5e7c9f 100644 --- a/font-src/glyphs/symbol/punctuation/ascii-marks.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ascii-marks.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/asterisk.ptl b/packages/font-glyphs/src/symbol/punctuation/asterisk.ptl similarity index 97% rename from font-src/glyphs/symbol/punctuation/asterisk.ptl rename to packages/font-glyphs/src/symbol/punctuation/asterisk.ptl index 08a9cb4127..5f60e2c8e3 100644 --- a/font-src/glyphs/symbol/punctuation/asterisk.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/asterisk.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/at.ptl b/packages/font-glyphs/src/symbol/punctuation/at.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/at.ptl rename to packages/font-glyphs/src/symbol/punctuation/at.ptl index c8dd3e1c3d..5fb25d8b4e 100644 --- a/font-src/glyphs/symbol/punctuation/at.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/at.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/bar.ptl b/packages/font-glyphs/src/symbol/punctuation/bar.ptl similarity index 94% rename from font-src/glyphs/symbol/punctuation/bar.ptl rename to packages/font-glyphs/src/symbol/punctuation/bar.ptl index cbb8bc47a6..489f5c50ae 100644 --- a/font-src/glyphs/symbol/punctuation/bar.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/bar.ptl @@ -1,9 +1,9 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Joining] from"../../../support/gr.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/brackets.ptl b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/brackets.ptl rename to packages/font-glyphs/src/symbol/punctuation/brackets.ptl index 03ef9b1b34..b879822d44 100644 --- a/font-src/glyphs/symbol/punctuation/brackets.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/brackets.ptl @@ -1,9 +1,9 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Joining] from"../../../support/gr.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/bullets.ptl b/packages/font-glyphs/src/symbol/punctuation/bullets.ptl similarity index 89% rename from font-src/glyphs/symbol/punctuation/bullets.ptl rename to packages/font-glyphs/src/symbol/punctuation/bullets.ptl index 7f32b48bae..c7b129425d 100644 --- a/font-src/glyphs/symbol/punctuation/bullets.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/bullets.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/caret.ptl b/packages/font-glyphs/src/symbol/punctuation/caret.ptl similarity index 75% rename from font-src/glyphs/symbol/punctuation/caret.ptl rename to packages/font-glyphs/src/symbol/punctuation/caret.ptl index b98ad24537..ccfe621b2c 100644 --- a/font-src/glyphs/symbol/punctuation/caret.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/caret.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/daggers.ptl b/packages/font-glyphs/src/symbol/punctuation/daggers.ptl similarity index 91% rename from font-src/glyphs/symbol/punctuation/daggers.ptl rename to packages/font-glyphs/src/symbol/punctuation/daggers.ptl index fefdf75157..7e3ece0cae 100644 --- a/font-src/glyphs/symbol/punctuation/daggers.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/daggers.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/dashes.ptl b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl similarity index 95% rename from font-src/glyphs/symbol/punctuation/dashes.ptl rename to packages/font-glyphs/src/symbol/punctuation/dashes.ptl index 465a8b55ae..49fc035a75 100644 --- a/font-src/glyphs/symbol/punctuation/dashes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/dashes.ptl @@ -1,8 +1,8 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Joining] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/ellipsis.ptl b/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/ellipsis.ptl rename to packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl index af2210586a..cec5da6564 100644 --- a/font-src/glyphs/symbol/punctuation/ellipsis.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ellipsis.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/emotion.ptl b/packages/font-glyphs/src/symbol/punctuation/emotion.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/emotion.ptl rename to packages/font-glyphs/src/symbol/punctuation/emotion.ptl index 52db5a3ef7..79e0090a7a 100644 --- a/font-src/glyphs/symbol/punctuation/emotion.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/emotion.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/guillemet.ptl b/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl similarity index 95% rename from font-src/glyphs/symbol/punctuation/guillemet.ptl rename to packages/font-glyphs/src/symbol/punctuation/guillemet.ptl index c98d9aa877..732a8e8fd6 100644 --- a/font-src/glyphs/symbol/punctuation/guillemet.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/guillemet.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/interpuncts.ptl b/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl similarity index 87% rename from font-src/glyphs/symbol/punctuation/interpuncts.ptl rename to packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl index a70edbfbd0..67ce458452 100644 --- a/font-src/glyphs/symbol/punctuation/interpuncts.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/interpuncts.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/joiners.ptl b/packages/font-glyphs/src/symbol/punctuation/joiners.ptl similarity index 91% rename from font-src/glyphs/symbol/punctuation/joiners.ptl rename to packages/font-glyphs/src/symbol/punctuation/joiners.ptl index e30cae90b3..179f0f625a 100644 --- a/font-src/glyphs/symbol/punctuation/joiners.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/joiners.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/ligation-variants.ptl b/packages/font-glyphs/src/symbol/punctuation/ligation-variants.ptl similarity index 91% rename from font-src/glyphs/symbol/punctuation/ligation-variants.ptl rename to packages/font-glyphs/src/symbol/punctuation/ligation-variants.ptl index eed86c4e2b..6672eb49ac 100644 --- a/font-src/glyphs/symbol/punctuation/ligation-variants.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ligation-variants.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/other-phonetic.ptl b/packages/font-glyphs/src/symbol/punctuation/other-phonetic.ptl similarity index 97% rename from font-src/glyphs/symbol/punctuation/other-phonetic.ptl rename to packages/font-glyphs/src/symbol/punctuation/other-phonetic.ptl index 30c721d36c..9a3a911b63 100644 --- a/font-src/glyphs/symbol/punctuation/other-phonetic.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/other-phonetic.ptl @@ -1,8 +1,8 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Joining] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/percentages.ptl b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/percentages.ptl rename to packages/font-glyphs/src/symbol/punctuation/percentages.ptl index 411955d498..b06bc8bcdb 100644 --- a/font-src/glyphs/symbol/punctuation/percentages.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/percentages.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/pilcrow.ptl b/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl similarity index 96% rename from font-src/glyphs/symbol/punctuation/pilcrow.ptl rename to packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl index 9b5fd0d5fa..4891ef83f9 100644 --- a/font-src/glyphs/symbol/punctuation/pilcrow.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/pilcrow.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl b/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl rename to packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl index 4a261eff5c..8acc6a3c35 100644 --- a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/quotes-and-primes.ptl @@ -1,8 +1,8 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DependentSelector] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DependentSelector] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/section.ptl b/packages/font-glyphs/src/symbol/punctuation/section.ptl similarity index 91% rename from font-src/glyphs/symbol/punctuation/section.ptl rename to packages/font-glyphs/src/symbol/punctuation/section.ptl index 3faf789e31..ea0cf3dd05 100644 --- a/font-src/glyphs/symbol/punctuation/section.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/section.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/slashes-and-number-sign.ptl b/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl similarity index 97% rename from font-src/glyphs/symbol/punctuation/slashes-and-number-sign.ptl rename to packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl index 1710a5eeec..4c38138e70 100644 --- a/font-src/glyphs/symbol/punctuation/slashes-and-number-sign.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/slashes-and-number-sign.ptl @@ -1,8 +1,8 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [Joining] from"../../../support/gr.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [Joining] from "@iosevka/glyph/relation" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/small.ptl b/packages/font-glyphs/src/symbol/punctuation/small.ptl similarity index 98% rename from font-src/glyphs/symbol/punctuation/small.ptl rename to packages/font-glyphs/src/symbol/punctuation/small.ptl index 98e26974a2..31dfe1356e 100644 --- a/font-src/glyphs/symbol/punctuation/small.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/small.ptl @@ -1,8 +1,8 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [DesignParameters] from"../../../meta/aesthetics.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" +import [DesignParameters] from "../../meta/aesthetics.mjs" glyph-module diff --git a/font-src/glyphs/symbol/punctuation/ties.ptl b/packages/font-glyphs/src/symbol/punctuation/ties.ptl similarity index 86% rename from font-src/glyphs/symbol/punctuation/ties.ptl rename to packages/font-glyphs/src/symbol/punctuation/ties.ptl index d1525f1c13..f3532b7418 100644 --- a/font-src/glyphs/symbol/punctuation/ties.ptl +++ b/packages/font-glyphs/src/symbol/punctuation/ties.ptl @@ -1,7 +1,7 @@ ### Punctuation symbols -$$include '../../../meta/macros.ptl' +$$include '../../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/font-src/glyphs/symbol/shared.ptl b/packages/font-glyphs/src/symbol/shared.ptl similarity index 93% rename from font-src/glyphs/symbol/shared.ptl rename to packages/font-glyphs/src/symbol/shared.ptl index 02af0648bb..6a9e4c5d3b 100644 --- a/font-src/glyphs/symbol/shared.ptl +++ b/packages/font-glyphs/src/symbol/shared.ptl @@ -1,6 +1,6 @@ -$$include '../../meta/macros.ptl' +$$include '../meta/macros.ptl' -import [mix linreg clamp fallback] from"../../support/utils.mjs" +import [mix linreg clamp fallback] from "@iosevka/util" glyph-module diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json new file mode 100644 index 0000000000..6e0b5c13d2 --- /dev/null +++ b/packages/font-kits/package.json @@ -0,0 +1,16 @@ +{ + "name": "@iosevka/font-kits", + "version": "28.0.0", + "private": true, + "exports": { + "./boole-kit": "./src/boole-kit.mjs", + "./spiro-kit": "./src/spiro-kit.mjs" + }, + "dependencies": { + "@iosevka/geometry": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } +} diff --git a/font-src/kits/boole-kit.mjs b/packages/font-kits/src/boole-kit.mjs similarity index 90% rename from font-src/kits/boole-kit.mjs rename to packages/font-kits/src/boole-kit.mjs index fbee9f0d96..584148c289 100644 --- a/font-src/kits/boole-kit.mjs +++ b/packages/font-kits/src/boole-kit.mjs @@ -1,8 +1,7 @@ +import { BooleanGeometry, TransformedGeometry } from "@iosevka/geometry"; +import { Glyph } from "@iosevka/glyph"; import * as TypoGeom from "typo-geom"; -import { BooleanGeometry, TransformedGeometry } from "../support/geometry/index.mjs"; -import { Glyph } from "../support/glyph/index.mjs"; - /////////////////////////////////////////////////////////////////////////////////////////////////// class BooleImpl { constructor(bindings, operator, operands) { diff --git a/font-src/kits/spiro-kit.mjs b/packages/font-kits/src/spiro-kit.mjs similarity index 97% rename from font-src/kits/spiro-kit.mjs rename to packages/font-kits/src/spiro-kit.mjs index 8919e82666..ff6dcb04b6 100644 --- a/font-src/kits/spiro-kit.mjs +++ b/packages/font-kits/src/spiro-kit.mjs @@ -1,11 +1,11 @@ -import { DiSpiroGeometry, SpiroGeometry } from "../support/geometry/index.mjs"; +import { DiSpiroGeometry, SpiroGeometry } from "@iosevka/geometry"; import { BiKnotCollector, ControlKnot, Interpolator, TerminateInstruction -} from "../support/geometry/spiro-control.mjs"; -import { bez3, fallback, mix } from "../support/utils.mjs"; +} from "@iosevka/geometry/spiro-control"; +import { bez3, fallback, mix } from "@iosevka/util"; /////////////////////////////////////////////////////////////////////////////////////////////////// @@ -233,8 +233,8 @@ export function SetupBuilders(bindings) { args.raf && args.raf.blend && rt !== void 0 ? args.raf.blend(rt) : args.raf - ? args.raf - : unimportant + ? args.raf + : unimportant ) ); } @@ -250,8 +250,8 @@ export function SetupBuilders(bindings) { args.raf && args.raf.blend && rt !== void 0 ? args.raf.blend(rt) : args.raf - ? args.raf - : unimportant + ? args.raf + : unimportant ) ); } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json new file mode 100644 index 0000000000..119d36e62c --- /dev/null +++ b/packages/font-otl/package.json @@ -0,0 +1,13 @@ +{ + "name": "@iosevka/font-otl", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/glyph": "28.0.0", + "toposort": "^2.0.2" + } +} diff --git a/font-src/otl/gpos-mark-mkmk.ptl b/packages/font-otl/src/gpos-mark-mkmk.ptl similarity index 100% rename from font-src/otl/gpos-mark-mkmk.ptl rename to packages/font-otl/src/gpos-mark-mkmk.ptl diff --git a/font-src/otl/gsub-ccmp.ptl b/packages/font-otl/src/gsub-ccmp.ptl similarity index 98% rename from font-src/otl/gsub-ccmp.ptl rename to packages/font-otl/src/gsub-ccmp.ptl index 570eb16be0..11516598a0 100644 --- a/font-src/otl/gsub-ccmp.ptl +++ b/packages/font-otl/src/gsub-ccmp.ptl @@ -1,8 +1,8 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' -import [UkMapToLookup UkMap2ToLookup] from"./table-util.mjs" -import [Dotless TieMark TieGlyph OgonekTrY IsSuperscript IsSubscript LeaningMark LeaningMarkSpacer] from"../support/gr.mjs" -import as UnicodeKnowledge from"../meta/unicode-knowledge.mjs" +import [UkMapToLookup UkMap2ToLookup] from "./table-util.mjs" +import [Dotless TieMark TieGlyph OgonekTrY IsSuperscript IsSubscript LeaningMark LeaningMarkSpacer] from "@iosevka/glyph/relation" +import as UnicodeKnowledge from "@iosevka/font-glyphs/unicode-knowledge" extern Set diff --git a/font-src/otl/gsub-cv-ss.ptl b/packages/font-otl/src/gsub-cv-ss.ptl similarity index 98% rename from font-src/otl/gsub-cv-ss.ptl rename to packages/font-otl/src/gsub-cv-ss.ptl index a093e0a04c..d0936aa4b5 100644 --- a/font-src/otl/gsub-cv-ss.ptl +++ b/packages/font-otl/src/gsub-cv-ss.ptl @@ -1,6 +1,6 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' -import [AnyCv CvDecompose] from"../support/gr.mjs" +import [AnyCv CvDecompose] from "@iosevka/glyph/relation" extern Map extern Set diff --git a/font-src/otl/gsub-frac.ptl b/packages/font-otl/src/gsub-frac.ptl similarity index 92% rename from font-src/otl/gsub-frac.ptl rename to packages/font-otl/src/gsub-frac.ptl index b5d9283545..9e5c899bcb 100644 --- a/font-src/otl/gsub-frac.ptl +++ b/packages/font-otl/src/gsub-frac.ptl @@ -1,6 +1,6 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' -import [NumeratorForm DenominatorForm] from"../support/gr.mjs" +import [NumeratorForm DenominatorForm] from "@iosevka/glyph/relation" # Name-driven feature pairs export : define [buildFrac gsub glyphStore] : begin diff --git a/font-src/otl/gsub-gr.ptl b/packages/font-otl/src/gsub-gr.ptl similarity index 100% rename from font-src/otl/gsub-gr.ptl rename to packages/font-otl/src/gsub-gr.ptl diff --git a/font-src/otl/gsub-ligation.ptl b/packages/font-otl/src/gsub-ligation.ptl similarity index 99% rename from font-src/otl/gsub-ligation.ptl rename to packages/font-otl/src/gsub-ligation.ptl index 4bd083f95d..11beeafbaf 100644 --- a/font-src/otl/gsub-ligation.ptl +++ b/packages/font-otl/src/gsub-ligation.ptl @@ -1,4 +1,4 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' extern Map extern Set diff --git a/font-src/otl/gsub-locl.ptl b/packages/font-otl/src/gsub-locl.ptl similarity index 97% rename from font-src/otl/gsub-locl.ptl rename to packages/font-otl/src/gsub-locl.ptl index 3c8f5965ba..c518776969 100644 --- a/font-src/otl/gsub-locl.ptl +++ b/packages/font-otl/src/gsub-locl.ptl @@ -1,6 +1,6 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' -import [CvDecompose] from"../support/gr.mjs" +import [CvDecompose] from "@iosevka/glyph/relation" extern Set diff --git a/font-src/otl/gsub-texture.ptl b/packages/font-otl/src/gsub-texture.ptl similarity index 97% rename from font-src/otl/gsub-texture.ptl rename to packages/font-otl/src/gsub-texture.ptl index 2a74d84b6c..f5286c1bd6 100644 --- a/font-src/otl/gsub-texture.ptl +++ b/packages/font-otl/src/gsub-texture.ptl @@ -1,8 +1,8 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' extern Set -import [Texture CvDecompose] from"../support/gr.mjs" +import [Texture CvDecompose] from "@iosevka/glyph/relation" # Name-driven feature pairs export : define [buildGsubTexture gsub glyphStore markGlyphs cvs] : begin diff --git a/font-src/otl/gsub-thousands.ptl b/packages/font-otl/src/gsub-thousands.ptl similarity index 95% rename from font-src/otl/gsub-thousands.ptl rename to packages/font-otl/src/gsub-thousands.ptl index a1cb1d53da..9e327f0c38 100644 --- a/font-src/otl/gsub-thousands.ptl +++ b/packages/font-otl/src/gsub-thousands.ptl @@ -1,6 +1,6 @@ -$$include '../meta/macros.ptl' +$$include './meta/macros.ptl' -import [QueryRelatedGlyphs] from"./table-util.mjs" +import [QueryRelatedGlyphs] from "./table-util.mjs" export : define [buildGsubThousands gsub para] : begin local rec : gsub.beginBlock diff --git a/font-src/otl/index.ptl b/packages/font-otl/src/index.ptl similarity index 84% rename from font-src/otl/index.ptl rename to packages/font-otl/src/index.ptl index 155528f9a6..9e898ef85a 100644 --- a/font-src/otl/index.ptl +++ b/packages/font-otl/src/index.ptl @@ -1,17 +1,16 @@ -import as toposort from 'toposort' -import as Gr from"../support/gr.mjs" - -import [CreateEmptyTable] from"./table-util.mjs" - -import [buildLigations] from"./gsub-ligation.mjs" -import [buildCCMP buildCCMPPostCvSs] from"./gsub-ccmp.mjs" -import [buildGrFeature] from"./gsub-gr.mjs" -import [buildFrac] from"./gsub-frac.mjs" -import [buildCVSS] from"./gsub-cv-ss.mjs" -import [buildLOCL] from"./gsub-locl.mjs" -import [buildGsubThousands] from"./gsub-thousands.mjs" -import [buildGsubTexture] from"./gsub-texture.mjs" -import [buildMarkMkmk] from"./gpos-mark-mkmk.mjs" +import as Gr from "@iosevka/glyph/relation" + +import [CreateEmptyTable] from "./table-util.mjs" + +import [buildLigations] from "./gsub-ligation.mjs" +import [buildCCMP buildCCMPPostCvSs] from "./gsub-ccmp.mjs" +import [buildGrFeature] from "./gsub-gr.mjs" +import [buildFrac] from "./gsub-frac.mjs" +import [buildCVSS] from "./gsub-cv-ss.mjs" +import [buildLOCL] from "./gsub-locl.mjs" +import [buildGsubThousands] from "./gsub-thousands.mjs" +import [buildGsubTexture] from "./gsub-texture.mjs" +import [buildMarkMkmk] from "./gpos-mark-mkmk.mjs" define GDEF_SIMPLE 1 define GDEF_LIGATURE 2 diff --git a/packages/font-otl/src/meta/macros.ptl b/packages/font-otl/src/meta/macros.ptl new file mode 100644 index 0000000000..c42deafeee --- /dev/null +++ b/packages/font-otl/src/meta/macros.ptl @@ -0,0 +1,8 @@ +### Autoarg macro +define-operator "--" 890 'right' : syntax-rules + `(@l -- @r) [atom l] : dirty `[new $NamedParameterPair$ @{".quote" [formOf l]} @r] + `(@{".quote" l} -- @r) : dirty `[new $NamedParameterPair$ @l @r] + +### Arbitrary pair operator +define-operator "~>" 880 'right' : syntax-rules + `(@l ~> @r) `{.left @l .right @r} diff --git a/font-src/otl/table-util.ptl b/packages/font-otl/src/table-util.ptl similarity index 99% rename from font-src/otl/table-util.ptl rename to packages/font-otl/src/table-util.ptl index e880877455..9974baf814 100644 --- a/font-src/otl/table-util.ptl +++ b/packages/font-otl/src/table-util.ptl @@ -1,5 +1,5 @@ import toposort from 'toposort' -import [AnyCv] from"../support/gr.mjs" +import [AnyCv] from "@iosevka/glyph/relation" extern Map extern Set diff --git a/packages/font/package.json b/packages/font/package.json new file mode 100644 index 0000000000..800b235cfb --- /dev/null +++ b/packages/font/package.json @@ -0,0 +1,26 @@ +{ + "name": "@iosevka/font", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./anchor": "./src/anchor.mjs", + "./point": "./src/point.mjs", + "./transform": "./src/transform.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/font-otl": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/param": "28.0.0", + "@iosevka/util": "28.0.0", + "harfbuzzjs": "^0.3.3", + "ot-builder": "^1.7.3", + "semver": "^7.5.4", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } +} diff --git a/font-src/derive-spacing.mjs b/packages/font/src/derive-spacing.mjs similarity index 95% rename from font-src/derive-spacing.mjs rename to packages/font/src/derive-spacing.mjs index b8be486d05..4197cf1503 100644 --- a/font-src/derive-spacing.mjs +++ b/packages/font/src/derive-spacing.mjs @@ -5,8 +5,8 @@ import url from "url"; import * as Toml from "@iarna/toml"; import { CliProc, Ot } from "ot-builder"; -import { assignFontNames, createNamingDictFromArgv } from "./gen/meta/naming.mjs"; -import { readTTF, saveTTF } from "./support/font-io/font-io.mjs"; +import { readTTF, saveTTF } from "./font-io/index.mjs"; +import { assignFontNames, createNamingDictFromArgv } from "./naming/index.mjs"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); diff --git a/font-src/gen/finalize/gc.mjs b/packages/font/src/finalize/gc.mjs similarity index 98% rename from font-src/gen/finalize/gc.mjs rename to packages/font/src/finalize/gc.mjs index 71e2a57e64..063b9e1524 100644 --- a/font-src/gen/finalize/gc.mjs +++ b/packages/font/src/finalize/gc.mjs @@ -1,6 +1,6 @@ -import * as Geometry from "../../support/geometry/index.mjs"; -import { Transform } from "../../support/geometry/transform.mjs"; -import { Radical, VS01 } from "../../support/gr.mjs"; +import * as Geometry from "@iosevka/geometry"; +import { Transform } from "@iosevka/geometry/transform"; +import { Radical, VS01 } from "@iosevka/glyph/relation"; export function gcFont(glyphStore, excludedChars, otl) { const daGsub = markSweepOtlLookups(otl.GSUB); diff --git a/font-src/gen/finalize/glyphs.mjs b/packages/font/src/finalize/glyphs.mjs similarity index 97% rename from font-src/gen/finalize/glyphs.mjs rename to packages/font/src/finalize/glyphs.mjs index 7b5ab3eeb3..5fe6edd1cb 100644 --- a/font-src/gen/finalize/glyphs.mjs +++ b/packages/font/src/finalize/glyphs.mjs @@ -1,10 +1,9 @@ +import * as Geom from "@iosevka/geometry"; +import * as CurveUtil from "@iosevka/geometry/curve-util"; +import { Point } from "@iosevka/geometry/point"; +import { Transform } from "@iosevka/geometry/transform"; import * as TypoGeom from "typo-geom"; -import * as CurveUtil from "../../support/geometry/curve-util.mjs"; -import * as Geom from "../../support/geometry/index.mjs"; -import { Point } from "../../support/geometry/point.mjs"; -import { Transform } from "../../support/geometry/transform.mjs"; - /////////////////////////////////////////////////////////////////////////////////////////////////// export function finalizeGlyphs(cache, para, glyphStore) { diff --git a/font-src/gen/finalize/index.mjs b/packages/font/src/finalize/index.mjs similarity index 96% rename from font-src/gen/finalize/index.mjs rename to packages/font/src/finalize/index.mjs index d734ea0227..dc68812aed 100644 --- a/font-src/gen/finalize/index.mjs +++ b/packages/font/src/finalize/index.mjs @@ -1,4 +1,4 @@ -import { Nwid, Wwid } from "../../support/gr.mjs"; +import { Nwid, Wwid } from "@iosevka/glyph/relation"; import { gcFont } from "./gc.mjs"; import { finalizeGlyphs } from "./glyphs.mjs"; diff --git a/font-src/support/font-io/font-io.mjs b/packages/font/src/font-io/index.mjs similarity index 52% rename from font-src/support/font-io/font-io.mjs rename to packages/font/src/font-io/index.mjs index 054b093518..286136d072 100644 --- a/font-src/support/font-io/font-io.mjs +++ b/packages/font/src/font-io/index.mjs @@ -2,6 +2,24 @@ import fs from "fs"; import { FontIo, Ot } from "ot-builder"; +export function CreateEmptyFont(argv) { + let font = { + head: new Ot.Head.Table(), + hhea: new Ot.MetricHead.Hhea(), + os2: new Ot.Os2.Table(4), + post: new Ot.Post.Table(argv.featureControl.exportGlyphNames ? 2 : 3, 0), + maxp: Ot.Maxp.Table.TrueType(), + name: new Ot.Name.Table() + }; + if (process.env.SOURCE_DATE_EPOCH) { + font.head.created = new Date(process.env.SOURCE_DATE_EPOCH * 1000); + font.head.modified = new Date(process.env.SOURCE_DATE_EPOCH * 1000); + } + return font; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + export async function readTTF(input) { const buf = await fs.promises.readFile(input); return parseTTF(buf); diff --git a/font-src/gen/build-font.mjs b/packages/font/src/font.mjs similarity index 78% rename from font-src/gen/build-font.mjs rename to packages/font/src/font.mjs index 5f67bae357..df6c8b15fb 100644 --- a/font-src/gen/build-font.mjs +++ b/packages/font/src/font.mjs @@ -1,11 +1,11 @@ -import { buildGlyphs } from "../glyphs/index.mjs"; -import { copyFontMetrics } from "../meta/aesthetics.mjs"; -import { buildOtl } from "../otl/index.mjs"; +import { buildGlyphs } from "@iosevka/font-glyphs"; +import { copyFontMetrics } from "@iosevka/font-glyphs/aesthetics"; +import { buildOtl } from "@iosevka/font-otl"; +import * as Caching from "@iosevka/geometry-cache"; -import * as Caching from "./caching/index.mjs"; import { finalizeFont } from "./finalize/index.mjs"; -import { CreateEmptyFont } from "./meta/empty-font.mjs"; -import { assignFontNames } from "./meta/naming.mjs"; +import { CreateEmptyFont } from "./font-io/index.mjs"; +import { assignFontNames } from "./naming/index.mjs"; import { convertOtd } from "./otd-conv/index.mjs"; import { generateTtfaControls } from "./ttfa-controls/index.mjs"; diff --git a/font-src/generated/ttfa-ranges.mjs b/packages/font/src/generated/ttfa-ranges.mjs similarity index 100% rename from font-src/generated/ttfa-ranges.mjs rename to packages/font/src/generated/ttfa-ranges.mjs diff --git a/font-src/gen/hb-compat-ligature/index.mjs b/packages/font/src/hb-compat-ligature/index.mjs similarity index 97% rename from font-src/gen/hb-compat-ligature/index.mjs rename to packages/font/src/hb-compat-ligature/index.mjs index 4095b54df9..1ce887e54e 100644 --- a/font-src/gen/hb-compat-ligature/index.mjs +++ b/packages/font/src/hb-compat-ligature/index.mjs @@ -1,6 +1,6 @@ import { Ot } from "ot-builder"; -import { buildTTF } from "../../support/font-io/font-io.mjs"; +import { buildTTF } from "../font-io/index.mjs"; export async function buildCompatLigatures(para, font) { // We need to fix the glyph order before building the TTF diff --git a/font-src/index.mjs b/packages/font/src/index.mjs similarity index 67% rename from font-src/index.mjs rename to packages/font/src/index.mjs index 0b89328af6..4f73e65aac 100644 --- a/font-src/index.mjs +++ b/packages/font/src/index.mjs @@ -1,26 +1,23 @@ import fs from "fs"; import path from "path"; -import url from "url"; import zlib from "zlib"; import * as Toml from "@iarna/toml"; +import { createGrDisplaySheet } from "@iosevka/glyph/relation"; +import * as Parameters from "@iosevka/param"; +import { applyLigationData } from "@iosevka/param/ligation"; +import { applyMetricOverride } from "@iosevka/param/metric-override"; +import * as VariantData from "@iosevka/param/variant"; import { encode } from "@msgpack/msgpack"; -import { buildFont } from "./gen/build-font.mjs"; -import { buildCompatLigatures } from "./gen/hb-compat-ligature/index.mjs"; -import { createNamingDictFromArgv } from "./gen/meta/naming.mjs"; -import { saveTTF } from "./support/font-io/font-io.mjs"; -import { createGrDisplaySheet } from "./support/gr.mjs"; -import { applyLigationData } from "./support/ligation-data.mjs"; -import { applyMetricOverride } from "./support/metric-override.mjs"; -import * as Parameters from "./support/parameters.mjs"; -import * as VariantData from "./support/variant-data.mjs"; - -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +import { saveTTF } from "./font-io/index.mjs"; +import { buildFont } from "./font.mjs"; +import { buildCompatLigatures } from "./hb-compat-ligature/index.mjs"; +import { createNamingDictFromArgv } from "./naming/index.mjs"; export default main; async function main(argv) { - const paraT = await getParameters(); + const paraT = await getParameters(argv); const para = paraT(argv); const { font, glyphStore, cacheUpdated, ttfaControls } = await buildFont(argv, para); if (argv.oCharMap) { @@ -39,14 +36,14 @@ async function main(argv) { /////////////////////////////////////////////////////////////////////////////////////////////////// // Parameter preparation -async function getParameters() { - const PARAMETERS_TOML = path.resolve(__dirname, "../params/parameters.toml"); - const WEIGHTS_TOML = path.resolve(__dirname, "../params/shape-weight.toml"); - const WIDTHS_TOML = path.resolve(__dirname, "../params/shape-width.toml"); - const SLOPES_TOML = path.resolve(__dirname, "../params/shape-slope.toml"); - const PRIVATE_TOML = path.resolve(__dirname, "../params/private-parameters.toml"); - const VARIANTS_TOML = path.resolve(__dirname, "../params/variants.toml"); - const LIGATIONS_TOML = path.resolve(__dirname, "../params/ligation-set.toml"); +async function getParameters(argv) { + const PARAMETERS_TOML = path.resolve(argv.paramsDir, "./parameters.toml"); + const WEIGHTS_TOML = path.resolve(argv.paramsDir, "./shape-weight.toml"); + const WIDTHS_TOML = path.resolve(argv.paramsDir, "./shape-width.toml"); + const SLOPES_TOML = path.resolve(argv.paramsDir, "./shape-slope.toml"); + const PRIVATE_TOML = path.resolve(argv.paramsDir, "./private-parameters.toml"); + const VARIANTS_TOML = path.resolve(argv.paramsDir, "./variants.toml"); + const LIGATIONS_TOML = path.resolve(argv.paramsDir, "./ligation-set.toml"); const parametersData = Object.assign( {}, await tryParseToml(PARAMETERS_TOML), diff --git a/packages/font/src/merge-cache.mjs b/packages/font/src/merge-cache.mjs new file mode 100644 index 0000000000..c1a469d51d --- /dev/null +++ b/packages/font/src/merge-cache.mjs @@ -0,0 +1,5 @@ +import * as Caching from "@iosevka/geometry-cache"; + +export default async function main(argv) { + await Caching.merge(argv.base, argv.diff, argv.version, argv.freshAgeKey); +} diff --git a/font-src/gen/meta/naming.mjs b/packages/font/src/naming/index.mjs similarity index 100% rename from font-src/gen/meta/naming.mjs rename to packages/font/src/naming/index.mjs diff --git a/font-src/gen/otd-conv/glyph-name.mjs b/packages/font/src/otd-conv/glyph-name.mjs similarity index 99% rename from font-src/gen/otd-conv/glyph-name.mjs rename to packages/font/src/otd-conv/glyph-name.mjs index 4b6ac5357a..06427d0abf 100644 --- a/font-src/gen/otd-conv/glyph-name.mjs +++ b/packages/font/src/otd-conv/glyph-name.mjs @@ -1,4 +1,4 @@ -import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01, CvDecompose } from "../../support/gr.mjs"; +import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01, CvDecompose } from "@iosevka/glyph/relation"; const ApplePostNames = new Map([ /* spell-checker: disable */ diff --git a/font-src/gen/otd-conv/glyphs.mjs b/packages/font/src/otd-conv/glyphs.mjs similarity index 97% rename from font-src/gen/otd-conv/glyphs.mjs rename to packages/font/src/otd-conv/glyphs.mjs index b288a2ba7c..10395c66ce 100644 --- a/font-src/gen/otd-conv/glyphs.mjs +++ b/packages/font/src/otd-conv/glyphs.mjs @@ -1,8 +1,7 @@ +import { Point } from "@iosevka/geometry/point"; +import * as Gr from "@iosevka/glyph/relation"; import { Ot } from "ot-builder"; -import { Point } from "../../support/geometry/point.mjs"; -import * as Gr from "../../support/gr.mjs"; - import * as GlyphName from "./glyph-name.mjs"; function byRank([gna, a], [gnb, b]) { diff --git a/font-src/gen/otd-conv/index.mjs b/packages/font/src/otd-conv/index.mjs similarity index 100% rename from font-src/gen/otd-conv/index.mjs rename to packages/font/src/otd-conv/index.mjs diff --git a/font-src/gen/otd-conv/layout.mjs b/packages/font/src/otd-conv/layout.mjs similarity index 99% rename from font-src/gen/otd-conv/layout.mjs rename to packages/font/src/otd-conv/layout.mjs index 8c0fd06d5b..0621e3b7f1 100644 --- a/font-src/gen/otd-conv/layout.mjs +++ b/packages/font/src/otd-conv/layout.mjs @@ -1,7 +1,6 @@ +import { Vec2 } from "@iosevka/geometry/point"; import { Ot } from "ot-builder"; -import { Vec2 } from "../../support/geometry/point.mjs"; - export function convertGsub(table, glyphs) { return ConvertGsubGposImpl(GsubHandlers, Ot.Gsub.Table, table, glyphs); } diff --git a/font-src/gen/ttfa-controls/index.mjs b/packages/font/src/ttfa-controls/index.mjs similarity index 94% rename from font-src/gen/ttfa-controls/index.mjs rename to packages/font/src/ttfa-controls/index.mjs index fdda564cd8..7840fd7591 100644 --- a/font-src/gen/ttfa-controls/index.mjs +++ b/packages/font/src/ttfa-controls/index.mjs @@ -1,6 +1,7 @@ -import ttfaRanges from "../../generated/ttfa-ranges.mjs"; -import * as Gr from "../../support/gr.mjs"; -import { ArrayUtil } from "../../support/utils.mjs"; +import * as Gr from "@iosevka/glyph/relation"; +import { ArrayUtil } from "@iosevka/util"; + +import ttfaRanges from "../generated/ttfa-ranges.mjs"; export async function generateTtfaControls(gsOrig, gsTtf) { let ttfaControls = [`# Machine generated. Do not modify.`]; diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json new file mode 100644 index 0000000000..7b77f2958b --- /dev/null +++ b/packages/geometry-cache/package.json @@ -0,0 +1,11 @@ +{ + "name": "@iosevka/geometry-cache", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@msgpack/msgpack": "^2.8.0" + } +} diff --git a/font-src/gen/caching/index.mjs b/packages/geometry-cache/src/index.mjs similarity index 100% rename from font-src/gen/caching/index.mjs rename to packages/geometry-cache/src/index.mjs diff --git a/packages/geometry/package.json b/packages/geometry/package.json new file mode 100644 index 0000000000..adf5baa2e0 --- /dev/null +++ b/packages/geometry/package.json @@ -0,0 +1,19 @@ +{ + "name": "@iosevka/geometry", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./anchor": "./src/anchor.mjs", + "./box": "./src/box.mjs", + "./curve-util": "./src/curve-util.mjs", + "./point": "./src/point.mjs", + "./transform": "./src/transform.mjs", + "./spiro-control": "./src/spiro-control.mjs" + }, + "dependencies": { + "@iosevka/util": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } +} diff --git a/font-src/support/geometry/anchor.mjs b/packages/geometry/src/anchor.mjs similarity index 100% rename from font-src/support/geometry/anchor.mjs rename to packages/geometry/src/anchor.mjs diff --git a/font-src/support/geometry/box.mjs b/packages/geometry/src/box.mjs similarity index 96% rename from font-src/support/geometry/box.mjs rename to packages/geometry/src/box.mjs index 701612598d..7e1e9b1806 100644 --- a/font-src/support/geometry/box.mjs +++ b/packages/geometry/src/box.mjs @@ -1,4 +1,4 @@ -import { mix } from "../utils.mjs"; +import { mix } from "@iosevka/util"; export class Box { constructor(t, b, l, r) { diff --git a/font-src/support/geometry/curve-util.mjs b/packages/geometry/src/curve-util.mjs similarity index 100% rename from font-src/support/geometry/curve-util.mjs rename to packages/geometry/src/curve-util.mjs diff --git a/font-src/support/geometry/index.mjs b/packages/geometry/src/index.mjs similarity index 99% rename from font-src/support/geometry/index.mjs rename to packages/geometry/src/index.mjs index d414fa004b..8a0d9c8c98 100644 --- a/font-src/support/geometry/index.mjs +++ b/packages/geometry/src/index.mjs @@ -1,10 +1,9 @@ import crypto from "crypto"; +import * as Format from "@iosevka/util/formatter"; import * as SpiroJs from "spiro"; import * as TypoGeom from "typo-geom"; -import * as Format from "../util/formatter.mjs"; - import * as CurveUtil from "./curve-util.mjs"; import { Point } from "./point.mjs"; import { SpiroExpander } from "./spiro-expand.mjs"; diff --git a/font-src/support/geometry/point.mjs b/packages/geometry/src/point.mjs similarity index 97% rename from font-src/support/geometry/point.mjs rename to packages/geometry/src/point.mjs index 4fb61d42ec..706816da55 100644 --- a/font-src/support/geometry/point.mjs +++ b/packages/geometry/src/point.mjs @@ -1,4 +1,4 @@ -import { mix } from "../utils.mjs"; +import { mix } from "@iosevka/util"; export class Vec2 { constructor(x, y) { diff --git a/font-src/support/geometry/spiro-control.mjs b/packages/geometry/src/spiro-control.mjs similarity index 98% rename from font-src/support/geometry/spiro-control.mjs rename to packages/geometry/src/spiro-control.mjs index 55e3f79f8e..24df788ab5 100644 --- a/font-src/support/geometry/spiro-control.mjs +++ b/packages/geometry/src/spiro-control.mjs @@ -1,4 +1,4 @@ -import * as Format from "../util/formatter.mjs"; +import * as Format from "@iosevka/util/formatter"; /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/font-src/support/geometry/spiro-expand.mjs b/packages/geometry/src/spiro-expand.mjs similarity index 99% rename from font-src/support/geometry/spiro-expand.mjs rename to packages/geometry/src/spiro-expand.mjs index d1451a4d2d..7a41988829 100644 --- a/font-src/support/geometry/spiro-expand.mjs +++ b/packages/geometry/src/spiro-expand.mjs @@ -1,7 +1,6 @@ +import { linreg, mix } from "@iosevka/util"; import * as SpiroJs from "spiro"; -import { linreg, mix } from "../utils.mjs"; - import { Vec2 } from "./point.mjs"; import { ControlKnot } from "./spiro-control.mjs"; diff --git a/font-src/support/geometry/transform.mjs b/packages/geometry/src/transform.mjs similarity index 100% rename from font-src/support/geometry/transform.mjs rename to packages/geometry/src/transform.mjs diff --git a/packages/glyph/package.json b/packages/glyph/package.json new file mode 100644 index 0000000000..9d476b6a56 --- /dev/null +++ b/packages/glyph/package.json @@ -0,0 +1,16 @@ +{ + "name": "@iosevka/glyph", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/glyph.mjs", + "./store": "./src/store.mjs", + "./block": "./src/block.mjs", + "./relation": "./src/relation.mjs" + }, + "dependencies": { + "@iosevka/geometry": "28.0.0", + "spiro": "^3.0.0", + "typo-geom": "^0.13.1" + } +} diff --git a/font-src/support/glyph-block.mjs b/packages/glyph/src/block.mjs similarity index 100% rename from font-src/support/glyph-block.mjs rename to packages/glyph/src/block.mjs diff --git a/font-src/support/glyph/index.mjs b/packages/glyph/src/glyph.mjs similarity index 96% rename from font-src/support/glyph/index.mjs rename to packages/glyph/src/glyph.mjs index da52941d8c..f756b25386 100644 --- a/font-src/support/glyph/index.mjs +++ b/packages/glyph/src/glyph.mjs @@ -1,9 +1,9 @@ import * as util from "util"; -import { Anchor } from "../geometry/anchor.mjs"; -import * as Geom from "../geometry/index.mjs"; -import { Point, Vec2 } from "../geometry/point.mjs"; -import { Transform } from "../geometry/transform.mjs"; +import * as Geom from "@iosevka/geometry"; +import { Anchor } from "@iosevka/geometry/anchor"; +import { Point, Vec2 } from "@iosevka/geometry/point"; +import { Transform } from "@iosevka/geometry/transform"; export class Glyph { constructor(identifier) { diff --git a/font-src/support/gr.mjs b/packages/glyph/src/relation.mjs similarity index 100% rename from font-src/support/gr.mjs rename to packages/glyph/src/relation.mjs diff --git a/font-src/support/glyph-store.mjs b/packages/glyph/src/store.mjs similarity index 100% rename from font-src/support/glyph-store.mjs rename to packages/glyph/src/store.mjs diff --git a/packages/param/package.json b/packages/param/package.json new file mode 100644 index 0000000000..4748ff0017 --- /dev/null +++ b/packages/param/package.json @@ -0,0 +1,14 @@ +{ + "name": "@iosevka/param", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./variant": "./src/variant.mjs", + "./ligation": "./src/ligation.mjs", + "./metric-override": "./src/metric-override.mjs" + }, + "dependencies": { + "@iosevka/util": "28.0.0" + } +} diff --git a/font-src/support/parameters.mjs b/packages/param/src/index.mjs similarity index 97% rename from font-src/support/parameters.mjs rename to packages/param/src/index.mjs index bfd1c79904..cf602cf3bf 100644 --- a/font-src/support/parameters.mjs +++ b/packages/param/src/index.mjs @@ -1,4 +1,4 @@ -import { monotonicInterpolate } from "./util/monotonic-interpolate.mjs"; +import { monotonicInterpolate } from "@iosevka/util/monotonic-interpolate"; export function init(data, argv) { let para = {}; diff --git a/font-src/support/ligation-data.mjs b/packages/param/src/ligation.mjs similarity index 97% rename from font-src/support/ligation-data.mjs rename to packages/param/src/ligation.mjs index aa00b52211..e8f43e51e0 100644 --- a/font-src/support/ligation-data.mjs +++ b/packages/param/src/ligation.mjs @@ -1,4 +1,4 @@ -import * as Parameters from "./parameters.mjs"; +import * as Parameters from "./index.mjs"; export function applyLigationData(data, para, argv) { const defaultBuildup = {}; diff --git a/font-src/support/metric-override.mjs b/packages/param/src/metric-override.mjs similarity index 98% rename from font-src/support/metric-override.mjs rename to packages/param/src/metric-override.mjs index ff6620eddc..e69726f35e 100644 --- a/font-src/support/metric-override.mjs +++ b/packages/param/src/metric-override.mjs @@ -1,4 +1,4 @@ -import { monotonicInterpolate } from "./util/monotonic-interpolate.mjs"; +import { monotonicInterpolate } from "@iosevka/util/monotonic-interpolate"; export function applyMetricOverride(para, mo, argv) { const bindings = initBindings(para, argv); diff --git a/font-src/support/variant-data.mjs b/packages/param/src/variant.mjs similarity index 99% rename from font-src/support/variant-data.mjs rename to packages/param/src/variant.mjs index a866bd290a..c2be464b39 100644 --- a/font-src/support/variant-data.mjs +++ b/packages/param/src/variant.mjs @@ -1,4 +1,4 @@ -import { joinCamel } from "./utils.mjs"; +import { joinCamel } from "@iosevka/util"; export function apply(data, para, argv) { const parsed = parse(data, argv); diff --git a/packages/util/package.json b/packages/util/package.json new file mode 100644 index 0000000000..97a3161c84 --- /dev/null +++ b/packages/util/package.json @@ -0,0 +1,11 @@ +{ + "name": "@iosevka/util", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./formatter": "./src/formatter.mjs", + "./mask-bit": "./src/mask-bit.mjs", + "./monotonic-interpolate": "./src/monotonic-interpolate.mjs" + } +} diff --git a/font-src/support/util/formatter.mjs b/packages/util/src/formatter.mjs similarity index 100% rename from font-src/support/util/formatter.mjs rename to packages/util/src/formatter.mjs diff --git a/font-src/support/utils.mjs b/packages/util/src/index.mjs similarity index 100% rename from font-src/support/utils.mjs rename to packages/util/src/index.mjs diff --git a/font-src/support/util/mask-bit.mjs b/packages/util/src/mask-bit.mjs similarity index 100% rename from font-src/support/util/mask-bit.mjs rename to packages/util/src/mask-bit.mjs diff --git a/font-src/support/util/monotonic-interpolate.mjs b/packages/util/src/monotonic-interpolate.mjs similarity index 100% rename from font-src/support/util/monotonic-interpolate.mjs rename to packages/util/src/monotonic-interpolate.mjs diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json new file mode 100644 index 0000000000..d865440b58 --- /dev/null +++ b/tools/amend-readme/package.json @@ -0,0 +1,13 @@ +{ + "name": "@iosevka/amend-readme", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.0", + "@unicode/unicode-15.0.0": "^1.5.2" + } +} diff --git a/utility/amend-readme/fragments/description-cheery-picking-styles.md b/tools/amend-readme/src/fragments/description-cheery-picking-styles.md similarity index 100% rename from utility/amend-readme/fragments/description-cheery-picking-styles.md rename to tools/amend-readme/src/fragments/description-cheery-picking-styles.md diff --git a/utility/amend-readme/fragments/description-cherry-picking-ligation-sets.md b/tools/amend-readme/src/fragments/description-cherry-picking-ligation-sets.md similarity index 100% rename from utility/amend-readme/fragments/description-cherry-picking-ligation-sets.md rename to tools/amend-readme/src/fragments/description-cherry-picking-ligation-sets.md diff --git a/utility/amend-readme/fragments/description-predefined-ligation-sets.md b/tools/amend-readme/src/fragments/description-predefined-ligation-sets.md similarity index 100% rename from utility/amend-readme/fragments/description-predefined-ligation-sets.md rename to tools/amend-readme/src/fragments/description-predefined-ligation-sets.md diff --git a/utility/amend-readme/fragments/description-stylistic-sets.md b/tools/amend-readme/src/fragments/description-stylistic-sets.md similarity index 100% rename from utility/amend-readme/fragments/description-stylistic-sets.md rename to tools/amend-readme/src/fragments/description-stylistic-sets.md diff --git a/utility/amend-readme/fragments/packages-desc.md b/tools/amend-readme/src/fragments/packages-desc.md similarity index 100% rename from utility/amend-readme/fragments/packages-desc.md rename to tools/amend-readme/src/fragments/packages-desc.md diff --git a/utility/amend-readme/generate-change-log.mjs b/tools/amend-readme/src/generate-change-log.mjs similarity index 74% rename from utility/amend-readme/generate-change-log.mjs rename to tools/amend-readme/src/generate-change-log.mjs index d825e077ae..2870194daf 100644 --- a/utility/amend-readme/generate-change-log.mjs +++ b/tools/amend-readme/src/generate-change-log.mjs @@ -7,13 +7,16 @@ import semver from "semver"; import { MdCol } from "./md-format-tools.mjs"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +const ChangesFileDir = path.join(__dirname, "../../../changes"); + +/////////////////////////////////////////////////////////////////////////////////////////////////// +// CHANGE LIST -const ChangeFileDir = path.join(__dirname, "../../changes"); async function GenerateChangeList(argv, out) { - const changeFiles = await fs.promises.readdir(ChangeFileDir); + const changeFiles = await fs.promises.readdir(ChangesFileDir); const fragments = new Map(); for (const file of changeFiles) { - const filePath = path.join(ChangeFileDir, file); + const filePath = path.join(ChangesFileDir, file); const fileParts = path.parse(filePath); if (fileParts.ext !== ".md") continue; if (!semver.valid(fileParts.name) || semver.lt(argv.version, fileParts.name)) continue; @@ -26,8 +29,8 @@ async function GenerateChangeList(argv, out) { out.log(notes.trimEnd() + "\n"); } } -export default (async function main(argv) { +export default async function main(argv) { const out = new MdCol(); await GenerateChangeList(argv, out); await fs.promises.writeFile(argv.outputPath, out.data); -}); +} diff --git a/utility/amend-readme/generate-release-note.mjs b/tools/amend-readme/src/generate-release-note.mjs similarity index 87% rename from utility/amend-readme/generate-release-note.mjs rename to tools/amend-readme/src/generate-release-note.mjs index c991c44dbe..f206363c0c 100644 --- a/utility/amend-readme/generate-release-note.mjs +++ b/tools/amend-readme/src/generate-release-note.mjs @@ -7,17 +7,16 @@ import SemVer from "semver"; import { MdCol } from "./md-format-tools.mjs"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - -const ChangeFileDir = path.join(__dirname, "../../changes"); +const ChangesFileDir = path.join(__dirname, "../../../changes"); /////////////////////////////////////////////////////////////////////////////////////////////////// -// CHANGE LIST +// RELEASE NOTE async function GenerateChangeList(argv, out) { - const changeFiles = await fs.promises.readdir(ChangeFileDir); + const changeFiles = await fs.promises.readdir(ChangesFileDir); const fragments = new Map(); for (const file of changeFiles) { - const filePath = path.join(ChangeFileDir, file); + const filePath = path.join(ChangesFileDir, file); const fileParts = path.parse(filePath); if (fileParts.ext !== ".md") continue; if (!SemVer.valid(fileParts.name) || SemVer.lt(argv.version, fileParts.name)) continue; @@ -35,7 +34,7 @@ async function GenerateChangeList(argv, out) { out.log(notes.trimEnd() + "\n"); } } -export default (async function main(argv) { +export default async function main(argv) { const out = new MdCol("Release-Note"); let baseUrl = `https://github.com/be5invis/Iosevka/blob/v${argv.version}/doc`; await GenerateChangeList(argv, out); @@ -50,4 +49,4 @@ export default (async function main(argv) { `` ); await fs.promises.writeFile(argv.outputPath, out.data); -}); +} diff --git a/utility/amend-readme/index.mjs b/tools/amend-readme/src/index.mjs similarity index 66% rename from utility/amend-readme/index.mjs rename to tools/amend-readme/src/index.mjs index 1d52d6382b..00c123099c 100644 --- a/utility/amend-readme/index.mjs +++ b/tools/amend-readme/src/index.mjs @@ -20,20 +20,23 @@ export default main; async function main(argv) { let readme = await fs.promises.readFile(argv.mdFilePath, "utf-8"); const dirs = { - projectRoot: path.resolve(__dirname, "../../"), images: path.posix.relative(path.dirname(argv.mdFilePath), "images"), fragments: path.resolve(__dirname, "fragments") }; - readme = (await processSsOt(dirs)).apply(readme); - readme = (await processCherryPickingStyles(dirs)).apply(readme); - readme = (await processSsStyles(dirs)).apply(readme); - readme = (await processCvOt(dirs)).apply(readme); - readme = (await processLigSetCherryPicking(dirs)).apply(readme); - readme = (await processLigSetPreDef(dirs)).apply(readme); - readme = (await processLigSetOt(dirs, 1, g => !isLanguageSpecificLigTag(g.tag))).apply(readme); - readme = (await processLigSetOt(dirs, 2, g => isLanguageSpecificLigTag(g.tag))).apply(readme); + readme = (await processSsOt(argv, dirs)).apply(readme); + readme = (await processCherryPickingStyles(argv, dirs)).apply(readme); + readme = (await processSsStyles(argv, dirs)).apply(readme); + readme = (await processCvOt(argv, dirs)).apply(readme); + readme = (await processLigSetCherryPicking(argv, dirs)).apply(readme); + readme = (await processLigSetPreDef(argv, dirs)).apply(readme); + readme = (await processLigSetOt(argv, dirs, 1, g => !isLanguageSpecificLigTag(g.tag))).apply( + readme + ); + readme = (await processLigSetOt(argv, dirs, 2, g => isLanguageSpecificLigTag(g.tag))).apply( + readme + ); readme = (await processLangList(argv)).apply(readme); - readme = (await processPrivateBuildPlans(dirs)).apply(readme); + readme = (await processPrivateBuildPlans(argv, dirs)).apply(readme); readme = (await processCvInfluences(argv)).apply(readme); readme = (await processPackageList(argv, dirs)).apply(readme); await fs.promises.writeFile(argv.mdFilePath, readme); diff --git a/utility/amend-readme/license-year.mjs b/tools/amend-readme/src/license-year.mjs similarity index 100% rename from utility/amend-readme/license-year.mjs rename to tools/amend-readme/src/license-year.mjs diff --git a/utility/amend-readme/md-format-tools.mjs b/tools/amend-readme/src/md-format-tools.mjs similarity index 100% rename from utility/amend-readme/md-format-tools.mjs rename to tools/amend-readme/src/md-format-tools.mjs diff --git a/utility/amend-readme/sections/cherry-picking-styles.mjs b/tools/amend-readme/src/sections/cherry-picking-styles.mjs similarity index 94% rename from utility/amend-readme/sections/cherry-picking-styles.mjs rename to tools/amend-readme/src/sections/cherry-picking-styles.mjs index f61f32da87..78abf2643a 100644 --- a/utility/amend-readme/sections/cherry-picking-styles.mjs +++ b/tools/amend-readme/src/sections/cherry-picking-styles.mjs @@ -1,13 +1,14 @@ import fs from "fs"; import path from "path"; -import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { parseVariantsData } from "@iosevka/data-export/variants-data"; + import { ImgX, MdCol } from "../md-format-tools.mjs"; import { sampleImageCountEmOfCv } from "./cv-ot.mjs"; -export default async function processCherryPickingStyles(dirs) { - const variantsData = await parseVariantsData(); +export default async function processCherryPickingStyles(argv, dirs) { + const variantsData = await parseVariantsData(argv); const md = new MdCol("Section-Cherry-Picking-Styles"); const headerPath = path.resolve(dirs.fragments, "description-cheery-picking-styles.md"); md.log(await fs.promises.readFile(headerPath, "utf-8")); diff --git a/utility/amend-readme/sections/cv-influences.mjs b/tools/amend-readme/src/sections/cv-influences.mjs similarity index 95% rename from utility/amend-readme/sections/cv-influences.mjs rename to tools/amend-readme/src/sections/cv-influences.mjs index 93dc15c9d6..ebe56346d3 100644 --- a/utility/amend-readme/sections/cv-influences.mjs +++ b/tools/amend-readme/src/sections/cv-influences.mjs @@ -1,4 +1,5 @@ -import { getCharMapAndSupportedLanguageList } from "../../export-data/supported-languages.mjs"; +import { getCharMapAndSupportedLanguageList } from "@iosevka/data-export/supported-languages"; + import { MdCol } from "../md-format-tools.mjs"; export default async function processCvInfluences(argv) { diff --git a/utility/amend-readme/sections/cv-ot.mjs b/tools/amend-readme/src/sections/cv-ot.mjs similarity index 91% rename from utility/amend-readme/sections/cv-ot.mjs rename to tools/amend-readme/src/sections/cv-ot.mjs index c61b593798..9f32076d2d 100644 --- a/utility/amend-readme/sections/cv-ot.mjs +++ b/tools/amend-readme/src/sections/cv-ot.mjs @@ -1,8 +1,9 @@ -import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { parseVariantsData } from "@iosevka/data-export/variants-data"; + import { ImgX, MdCol } from "../md-format-tools.mjs"; -export default async function processCvOt(dirs) { - const variantsData = await parseVariantsData(); +export default async function processCvOt(argv, dirs) { + const variantsData = await parseVariantsData(argv); const md = new MdCol("Section-OT-Character-Variants"); const TableColumns = 12; md.log(``); diff --git a/utility/amend-readme/sections/lang-list.mjs b/tools/amend-readme/src/sections/lang-list.mjs similarity index 80% rename from utility/amend-readme/sections/lang-list.mjs rename to tools/amend-readme/src/sections/lang-list.mjs index 527e4e3e36..228814f434 100644 --- a/utility/amend-readme/sections/lang-list.mjs +++ b/tools/amend-readme/src/sections/lang-list.mjs @@ -1,4 +1,5 @@ -import { getCharMapAndSupportedLanguageList } from "../../export-data/supported-languages.mjs"; +import { getCharMapAndSupportedLanguageList } from "@iosevka/data-export/supported-languages"; + import { MdCol } from "../md-format-tools.mjs"; export default async function processLangList(argv) { diff --git a/utility/amend-readme/sections/lig-set-cherry-picking.mjs b/tools/amend-readme/src/sections/lig-set-cherry-picking.mjs similarity index 68% rename from utility/amend-readme/sections/lig-set-cherry-picking.mjs rename to tools/amend-readme/src/sections/lig-set-cherry-picking.mjs index 06ce37ea2a..78bbfd199b 100644 --- a/utility/amend-readme/sections/lig-set-cherry-picking.mjs +++ b/tools/amend-readme/src/sections/lig-set-cherry-picking.mjs @@ -1,11 +1,12 @@ import fs from "fs"; import path from "path"; -import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { parseLigationData } from "@iosevka/data-export/ligation-data"; + import { MdCol } from "../md-format-tools.mjs"; -export default async function processLigSetCherryPicking(dirs) { - const ligData = await parseLigationData(); +export default async function processLigSetCherryPicking(argv, dirs) { + const ligData = await parseLigationData(argv); const md = new MdCol("Section-Cherry-Picking-Ligation-Sets"); const headerPath = path.resolve(dirs.fragments, "description-cherry-picking-ligation-sets.md"); md.log(await fs.promises.readFile(headerPath, "utf-8")); diff --git a/utility/amend-readme/sections/lig-set-ot.mjs b/tools/amend-readme/src/sections/lig-set-ot.mjs similarity index 78% rename from utility/amend-readme/sections/lig-set-ot.mjs rename to tools/amend-readme/src/sections/lig-set-ot.mjs index ea50a2fae5..51c1b6f290 100644 --- a/utility/amend-readme/sections/lig-set-ot.mjs +++ b/tools/amend-readme/src/sections/lig-set-ot.mjs @@ -1,8 +1,9 @@ -import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { parseLigationData } from "@iosevka/data-export/ligation-data"; + import { ImgX, MdCol } from "../md-format-tools.mjs"; -export default async function processLigSetOt(dirs, index, fn) { - const ligData = await parseLigationData(); +export default async function processLigSetOt(argv, dirs, index, fn) { + const ligData = await parseLigationData(argv); const md = new MdCol(`Section-OT-Ligation-Tags-${index}`); md.log(`
`); for (const ls of ligData.sets) { diff --git a/utility/amend-readme/sections/lig-set-pre-def.mjs b/tools/amend-readme/src/sections/lig-set-pre-def.mjs similarity index 74% rename from utility/amend-readme/sections/lig-set-pre-def.mjs rename to tools/amend-readme/src/sections/lig-set-pre-def.mjs index 0d26e71e77..4f4bfa104b 100644 --- a/utility/amend-readme/sections/lig-set-pre-def.mjs +++ b/tools/amend-readme/src/sections/lig-set-pre-def.mjs @@ -1,11 +1,12 @@ import fs from "fs"; import path from "path"; -import { parseLigationData } from "../../export-data/ligation-data.mjs"; +import { parseLigationData } from "@iosevka/data-export/ligation-data"; + import { MdCol } from "../md-format-tools.mjs"; -export default async function processLigSetPreDef(dirs) { - const ligData = await parseLigationData(); +export default async function processLigSetPreDef(argv, dirs) { + const ligData = await parseLigationData(argv); const md = new MdCol("Section-Predefined-Ligation-Sets"); const headerPath = path.resolve(dirs.fragments, "description-predefined-ligation-sets.md"); md.log(await fs.promises.readFile(headerPath, "utf-8")); diff --git a/utility/amend-readme/sections/package-list.mjs b/tools/amend-readme/src/sections/package-list.mjs similarity index 100% rename from utility/amend-readme/sections/package-list.mjs rename to tools/amend-readme/src/sections/package-list.mjs diff --git a/utility/amend-readme/sections/private-build-plans.mjs b/tools/amend-readme/src/sections/private-build-plans.mjs similarity index 68% rename from utility/amend-readme/sections/private-build-plans.mjs rename to tools/amend-readme/src/sections/private-build-plans.mjs index dbfacb9f32..2c77f71620 100644 --- a/utility/amend-readme/sections/private-build-plans.mjs +++ b/tools/amend-readme/src/sections/private-build-plans.mjs @@ -3,9 +3,9 @@ import path from "path"; import { MdCol } from "../md-format-tools.mjs"; -export default async function processPrivateBuildPlans(dirs) { +export default async function processPrivateBuildPlans(argv, dirs) { const md = new MdCol("Section-Private-Build-Plan-Sample"); - const tomlPath = path.resolve(dirs.projectRoot, "private-build-plans.sample.toml"); + const tomlPath = path.resolve(argv.projectRoot, "private-build-plans.sample.toml"); const toml = await fs.promises.readFile(tomlPath, "utf-8"); md.log("```toml\n" + toml + "```"); return md; diff --git a/utility/amend-readme/sections/ss-ot.mjs b/tools/amend-readme/src/sections/ss-ot.mjs similarity index 75% rename from utility/amend-readme/sections/ss-ot.mjs rename to tools/amend-readme/src/sections/ss-ot.mjs index 76d90ed18e..28b4d55ee3 100644 --- a/utility/amend-readme/sections/ss-ot.mjs +++ b/tools/amend-readme/src/sections/ss-ot.mjs @@ -1,8 +1,9 @@ -import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { parseVariantsData } from "@iosevka/data-export/variants-data"; + import { ImgX, MdCol } from "../md-format-tools.mjs"; -export default async function processSsOt(dirs) { - const variantsData = await parseVariantsData(); +export default async function processSsOt(argv, dirs) { + const variantsData = await parseVariantsData(argv); const md = new MdCol("Section-OT-Stylistic-Sets"); md.log(`
`); for (const ss of variantsData.composites) { diff --git a/utility/amend-readme/sections/ss-styles.mjs b/tools/amend-readme/src/sections/ss-styles.mjs similarity index 74% rename from utility/amend-readme/sections/ss-styles.mjs rename to tools/amend-readme/src/sections/ss-styles.mjs index 414c3265c0..ee0b938a3e 100644 --- a/utility/amend-readme/sections/ss-styles.mjs +++ b/tools/amend-readme/src/sections/ss-styles.mjs @@ -1,11 +1,12 @@ import fs from "fs"; import path from "path"; -import { parseVariantsData } from "../../export-data/variants-data.mjs"; +import { parseVariantsData } from "@iosevka/data-export/variants-data"; + import { MdCol } from "../md-format-tools.mjs"; -export default async function processSsStyles(dirs) { - const variantsData = await parseVariantsData(); +export default async function processSsStyles(argv, dirs) { + const variantsData = await parseVariantsData(argv); const md = new MdCol("Section-Stylistic-Sets"); const headerPath = path.resolve(dirs.fragments, "description-stylistic-sets.md"); md.log(await fs.promises.readFile(headerPath, "utf-8")); diff --git a/tools/data-export/package.json b/tools/data-export/package.json new file mode 100644 index 0000000000..04b8253c99 --- /dev/null +++ b/tools/data-export/package.json @@ -0,0 +1,17 @@ +{ + "name": "@iosevka/data-export", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs", + "./ligation-data": "./src/ligation-data.mjs", + "./variants-data": "./src/variants-data.mjs", + "./supported-languages": "./src/supported-languages.mjs" + }, + "dependencies": { + "@iarna/toml": "^2.2.5", + "@iosevka/param": "28.0.0", + "@unicode/unicode-15.0.0": "^1.5.2", + "cldr": "^7.5.0" + } +} diff --git a/utility/export-data/coverage-export/block-data.mjs b/tools/data-export/src/coverage-export/block-data.mjs similarity index 100% rename from utility/export-data/coverage-export/block-data.mjs rename to tools/data-export/src/coverage-export/block-data.mjs diff --git a/utility/export-data/coverage-export/gather-coverage-data.mjs b/tools/data-export/src/coverage-export/gather-coverage-data.mjs similarity index 100% rename from utility/export-data/coverage-export/gather-coverage-data.mjs rename to tools/data-export/src/coverage-export/gather-coverage-data.mjs diff --git a/utility/export-data/index.mjs b/tools/data-export/src/index.mjs similarity index 59% rename from utility/export-data/index.mjs rename to tools/data-export/src/index.mjs index 199fdd5988..b8d1e6eb41 100644 --- a/utility/export-data/index.mjs +++ b/tools/data-export/src/index.mjs @@ -1,6 +1,4 @@ import fs from "fs"; -import path from "path"; -import url from "url"; import { parseLigationData } from "./ligation-data.mjs"; import { getCharMapAndSupportedLanguageList } from "./supported-languages.mjs"; @@ -8,14 +6,8 @@ import { parseVariantsData } from "./variants-data.mjs"; export default main; async function main(argv) { - const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - const packageJson = JSON.parse( - await fs.promises.readFile(path.join(__dirname, "../../package.json")) - ); - const version = packageJson.version; - - const variantsData = await parseVariantsData(); - const ligationData = await parseLigationData(); + const variantsData = await parseVariantsData(argv); + const ligationData = await parseLigationData(argv); const cl = await getCharMapAndSupportedLanguageList( argv.charMapPath, argv.charMapItalicPath, @@ -25,7 +17,7 @@ async function main(argv) { argv.exportPathMeta, JSON.stringify( { - version, + version: argv.version, variantsData, ligationData: { cherry: ligationData.cherry, @@ -37,5 +29,8 @@ async function main(argv) { 2 ) ); - await fs.promises.writeFile(argv.exportPathCov, JSON.stringify({ version, ...cl }, null, 2)); + await fs.promises.writeFile( + argv.exportPathCov, + JSON.stringify({ version: argv.version, ...cl }, null, 2) + ); } diff --git a/utility/export-data/ligation-data.mjs b/tools/data-export/src/ligation-data.mjs similarity index 88% rename from utility/export-data/ligation-data.mjs rename to tools/data-export/src/ligation-data.mjs index 2c89065573..d6f25a0847 100644 --- a/utility/export-data/ligation-data.mjs +++ b/tools/data-export/src/ligation-data.mjs @@ -1,10 +1,8 @@ import fs from "fs"; import path from "path"; -import url from "url"; import * as toml from "@iarna/toml"; - -import { createBuildup } from "../../font-src/support/ligation-data.mjs"; +import { createBuildup } from "@iosevka/param/ligation"; const ligationSamplesNarrow = [ [ @@ -126,10 +124,9 @@ function buildLigationSet(ligData, getKey) { return ligationSets; } -export async function parseLigationData() { - const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); +export async function parseLigationData(argv) { const ligToml = await fs.promises.readFile( - path.join(__dirname, "../../params/ligation-set.toml"), + path.join(argv.paramsDir, "ligation-set.toml"), "utf8" ); const ligData = toml.parse(ligToml); diff --git a/utility/export-data/supported-languages.mjs b/tools/data-export/src/supported-languages.mjs similarity index 100% rename from utility/export-data/supported-languages.mjs rename to tools/data-export/src/supported-languages.mjs diff --git a/utility/export-data/variants-data.mjs b/tools/data-export/src/variants-data.mjs similarity index 93% rename from utility/export-data/variants-data.mjs rename to tools/data-export/src/variants-data.mjs index bc298e8e92..f483d2432a 100644 --- a/utility/export-data/variants-data.mjs +++ b/tools/data-export/src/variants-data.mjs @@ -1,10 +1,8 @@ import fs from "fs"; import path from "path"; -import url from "url"; import * as toml from "@iarna/toml"; - -import * as VariantDataParser from "../../font-src/support/variant-data.mjs"; +import * as VariantDataParser from "@iosevka/param/variant"; function getCvData(parsed) { const samplerGroups = new Map(); @@ -140,10 +138,10 @@ function uniqueHotChars(cfgDefault, cfgSS) { } return Array.from(s); } -export async function parseVariantsData(fileName) { - const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); + +export async function parseVariantsData(argv) { const variantsToml = await fs.promises.readFile( - path.join(__dirname, "../../params/", fileName || "variants.toml"), + path.join(argv.paramsDir, argv.paramsFileName || "variants.toml"), "utf8" ); const varDatRaw = toml.parse(variantsToml); diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json new file mode 100644 index 0000000000..779b5a1892 --- /dev/null +++ b/tools/generate-samples/package.json @@ -0,0 +1,11 @@ +{ + "name": "@iosevka/generate-samples", + "version": "28.0.0", + "private": true, + "exports": { + ".": "./src/index.mjs" + }, + "dependencies": { + "@iosevka/data-export": "28.0.0" + } +} diff --git a/utility/generate-samples/index.mjs b/tools/generate-samples/src/index.mjs similarity index 91% rename from utility/generate-samples/index.mjs rename to tools/generate-samples/src/index.mjs index 9f72048146..b1a1018201 100644 --- a/utility/generate-samples/index.mjs +++ b/tools/generate-samples/src/index.mjs @@ -1,9 +1,9 @@ import fs from "fs"; import path from "path"; -import { parseLigationData } from "../export-data/ligation-data.mjs"; -import { getCharMapAndSupportedLanguageList } from "../export-data/supported-languages.mjs"; -import { parseVariantsData } from "../export-data/variants-data.mjs"; +import { parseLigationData } from "@iosevka/data-export/ligation-data"; +import { getCharMapAndSupportedLanguageList } from "@iosevka/data-export/supported-languages"; +import { parseVariantsData } from "@iosevka/data-export/variants-data"; import Button from "./templates/button.mjs"; import CharGrid from "./templates/char-grid.mjs"; @@ -38,8 +38,8 @@ class Generator { } async function main(argv) { - const variantsData = await parseVariantsData(); - const ligationData = await parseLigationData(); + const variantsData = await parseVariantsData(argv); + const ligationData = await parseLigationData(argv); const tasks = new Generator( argv.outputDir, argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "TTF", "*.ttf")) diff --git a/utility/generate-samples/templates/button.mjs b/tools/generate-samples/src/templates/button.mjs similarity index 100% rename from utility/generate-samples/templates/button.mjs rename to tools/generate-samples/src/templates/button.mjs diff --git a/utility/generate-samples/templates/char-grid.mjs b/tools/generate-samples/src/templates/char-grid.mjs similarity index 100% rename from utility/generate-samples/templates/char-grid.mjs rename to tools/generate-samples/src/templates/char-grid.mjs diff --git a/utility/generate-samples/templates/character-variant.mjs b/tools/generate-samples/src/templates/character-variant.mjs similarity index 100% rename from utility/generate-samples/templates/character-variant.mjs rename to tools/generate-samples/src/templates/character-variant.mjs diff --git a/utility/generate-samples/templates/grand-title.mjs b/tools/generate-samples/src/templates/grand-title.mjs similarity index 100% rename from utility/generate-samples/templates/grand-title.mjs rename to tools/generate-samples/src/templates/grand-title.mjs diff --git a/utility/generate-samples/templates/languages.mjs b/tools/generate-samples/src/templates/languages.mjs similarity index 100% rename from utility/generate-samples/templates/languages.mjs rename to tools/generate-samples/src/templates/languages.mjs diff --git a/utility/generate-samples/templates/ligation-set.mjs b/tools/generate-samples/src/templates/ligation-set.mjs similarity index 100% rename from utility/generate-samples/templates/ligation-set.mjs rename to tools/generate-samples/src/templates/ligation-set.mjs diff --git a/utility/generate-samples/templates/matrix.mjs b/tools/generate-samples/src/templates/matrix.mjs similarity index 100% rename from utility/generate-samples/templates/matrix.mjs rename to tools/generate-samples/src/templates/matrix.mjs diff --git a/utility/generate-samples/templates/package-sample.mjs b/tools/generate-samples/src/templates/package-sample.mjs similarity index 100% rename from utility/generate-samples/templates/package-sample.mjs rename to tools/generate-samples/src/templates/package-sample.mjs diff --git a/utility/generate-samples/templates/stylistic-set.mjs b/tools/generate-samples/src/templates/stylistic-set.mjs similarity index 100% rename from utility/generate-samples/templates/stylistic-set.mjs rename to tools/generate-samples/src/templates/stylistic-set.mjs diff --git a/utility/generate-samples/templates/weights.mjs b/tools/generate-samples/src/templates/weights.mjs similarity index 100% rename from utility/generate-samples/templates/weights.mjs rename to tools/generate-samples/src/templates/weights.mjs diff --git a/utility/generate-samples/themes/index.mjs b/tools/generate-samples/src/themes/index.mjs similarity index 100% rename from utility/generate-samples/themes/index.mjs rename to tools/generate-samples/src/themes/index.mjs diff --git a/utility/export-tokenized-sample-code.mjs b/tools/generate-samples/src/tokenized-sample-code.mjs similarity index 86% rename from utility/export-tokenized-sample-code.mjs rename to tools/generate-samples/src/tokenized-sample-code.mjs index f2c7408bef..d14c237c15 100644 --- a/utility/export-tokenized-sample-code.mjs +++ b/tools/generate-samples/src/tokenized-sample-code.mjs @@ -1,6 +1,6 @@ import fs from "node:fs"; -import { ssStrings } from "./generate-samples/templates/package-sample.mjs"; +import { ssStrings } from "./templates/package-sample.mjs"; export default main; diff --git a/tools/misc/package.json b/tools/misc/package.json new file mode 100644 index 0000000000..b1e4be81d5 --- /dev/null +++ b/tools/misc/package.json @@ -0,0 +1,10 @@ +{ + "name": "@iosevka/misc", + "version": "28.0.0", + "private": true, + "dependencies": { + "semver": "^7.5.4", + "wawoff2": "^2.0.1", + "@iosevka/util": "28.0.0" + } +} diff --git a/utility/copy-char-name-to-markdown.mjs b/tools/misc/src/copy-char-name-to-markdown.mjs similarity index 100% rename from utility/copy-char-name-to-markdown.mjs rename to tools/misc/src/copy-char-name-to-markdown.mjs diff --git a/utility/create-sha-file.mjs b/tools/misc/src/create-sha-file.mjs similarity index 100% rename from utility/create-sha-file.mjs rename to tools/misc/src/create-sha-file.mjs diff --git a/utility/generate-ttfa-ranges/index.mjs b/tools/misc/src/generate-ttfa-ranges.mjs similarity index 97% rename from utility/generate-ttfa-ranges/index.mjs rename to tools/misc/src/generate-ttfa-ranges.mjs index 8daa1b939e..7cb3e6c9b2 100644 --- a/utility/generate-ttfa-ranges/index.mjs +++ b/tools/misc/src/generate-ttfa-ranges.mjs @@ -2,7 +2,7 @@ import fs from "fs"; import path from "path"; import url from "url"; -import { ArrayUtil } from "../../font-src/support/utils.mjs"; +import { ArrayUtil } from "@iosevka/util"; const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); @@ -49,7 +49,7 @@ async function main() { } await fs.promises.writeFile( - path.resolve(__dirname, "../../font-src/generated/ttfa-ranges.mjs"), + path.resolve(__dirname, "../../../packages/font/src/generated/ttfa-ranges.mjs"), `/* eslint-disable */\n` + `// Machine generated. Do not modify。\n` + `export default ` + diff --git a/utility/make-webfont-css.mjs b/tools/misc/src/make-webfont-css.mjs similarity index 100% rename from utility/make-webfont-css.mjs rename to tools/misc/src/make-webfont-css.mjs diff --git a/utility/ttf-to-woff2.mjs b/tools/misc/src/ttf-to-woff2.mjs similarity index 79% rename from utility/ttf-to-woff2.mjs rename to tools/misc/src/ttf-to-woff2.mjs index 0c897a8074..6c842916f8 100644 --- a/utility/ttf-to-woff2.mjs +++ b/tools/misc/src/ttf-to-woff2.mjs @@ -2,8 +2,8 @@ import fs from "fs"; import * as wawoff from "wawoff2"; -export default (async function (from, to) { +export default async function (from, to) { const input = await fs.promises.readFile(from); const out = await wawoff.compress(input); await fs.promises.writeFile(to, out); -}); +} diff --git a/tools/misc/src/update-package-json-version.mjs b/tools/misc/src/update-package-json-version.mjs new file mode 100644 index 0000000000..db94b74b14 --- /dev/null +++ b/tools/misc/src/update-package-json-version.mjs @@ -0,0 +1,91 @@ +import fs from "fs"; +import path from "path"; +import url from "url"; + +import semver from "semver"; + +const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); + +const ChangeFileDir = path.join(__dirname, "../../../changes"); +const PackageJsonPath = path.join(__dirname, "../../../package.json"); +const PACKAGES_DIR = path.join(__dirname, "../../../packages"); +const TOOLS_DIR = path.join(__dirname, "../../../tools"); + +setTimeout( + () => + main().catch(e => { + console.error(e); + process.exit(1); + }), + 0 +); + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +async function main() { + const version = await GetLatestVersion(); + await updateMainJsonVersion(version); + + const packages = await collectPackages(); + await updateSubPackagesVersion(packages, version); +} + +async function GetLatestVersion() { + const changeFiles = await fs.promises.readdir(ChangeFileDir); + const versions = new Set(); + for (const file of changeFiles) { + const filePath = path.join(ChangeFileDir, file); + const fileParts = path.parse(filePath); + if (fileParts.ext !== ".md") continue; + if (!semver.valid(fileParts.name)) continue; + versions.add(fileParts.name); + } + const sortedVersions = Array.from(versions).sort((a, b) => semver.compare(b, a)); + return sortedVersions[0]; +} + +async function updateMainJsonVersion(version) { + const packageJson = JSON.parse(await fs.promises.readFile(PackageJsonPath)); + packageJson.version = version; + await fs.promises.writeFile(PackageJsonPath, JSON.stringify(packageJson, null, " ") + "\n"); +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +async function collectPackages() { + const packages = new Map(); + for (const dir of [PACKAGES_DIR, TOOLS_DIR]) { + for (const packageItem of await fs.promises.readdir(dir)) { + const pkgPath = path.join(dir, packageItem); + const jsonPath = path.resolve(pkgPath, "package.json"); + const stat = await fs.promises.stat(pkgPath); + if (stat.isDirectory() && (await exists(jsonPath))) { + const packageJson = JSON.parse(await fs.promises.readFile(jsonPath, "utf-8")); + packages.set(packageJson.name, jsonPath); + } + } + } + return packages; +} + +async function exists(fileName) { + try { + await fs.promises.access(fileName); + return true; + } catch (e) { + return false; + } +} + +async function updateSubPackagesVersion(internalPackages, version) { + for (const [pkgName, pkgJsonPath] of internalPackages) { + const packageJson = JSON.parse(await fs.promises.readFile(pkgJsonPath)); + packageJson.version = version; + if (packageJson.dependencies) { + for (const [depName, depVersion] of Object.entries(packageJson.dependencies)) { + if (internalPackages.has(depName)) packageJson.dependencies[depName] = version; + } + } + await fs.promises.writeFile(pkgJsonPath, JSON.stringify(packageJson, null, " ") + "\n"); + } +} diff --git a/utility/dump-cv-list.mjs b/utility/dump-cv-list.mjs deleted file mode 100644 index a5f9efa6d9..0000000000 --- a/utility/dump-cv-list.mjs +++ /dev/null @@ -1,18 +0,0 @@ -import { parseVariantsData } from "./export-data/variants-data.mjs"; - -main().catch(e => { - console.error(e); - process.exit(1); -}); - -async function main() { - const selector = process.argv[2]; - const variantsData = await parseVariantsData(); - - for (const item of variantsData.primes) { - if (item.key !== selector) continue; - for (const v of item.variants) { - console.log(v.rank, v.key, "|", v.description); - } - } -} diff --git a/utility/transpose-variant-tensor.mjs b/utility/transpose-variant-tensor.mjs deleted file mode 100644 index 8b080a8ed7..0000000000 --- a/utility/transpose-variant-tensor.mjs +++ /dev/null @@ -1,102 +0,0 @@ -import * as fs from "fs"; -import * as path from "path"; -import * as url from "url"; - -import * as Toml from "@iarna/toml"; - -const __filename = url.fileURLToPath(import.meta.url); -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - -main().catch(e => { - console.error(e); - process.exit(1); -}); - -async function main() { - const paramsTomlPath = path.join(__dirname, "../params", "variants.toml"); - const tomlText = await fs.promises.readFile(paramsTomlPath, "utf8"); - const tomlData = Toml.parse(tomlText); - - const selector = process.argv[2]; - const vd = tomlData.prime[selector]; - - const dimensions = (process.argv.length - 3) / 2; - const variantsPerDimension = process.argv.slice(3, 3 + dimensions).map(x => parseInt(x, 10)); - - const idMap = Array.from(Array(dimensions).keys()); - const transposedMap = process.argv - .slice(3 + dimensions, 3 + 2 * dimensions) - .map(x => parseInt(x, 10) - 1); - - let rankToDimensionMapOrig = []; - populateRankToDimensionMap(rankToDimensionMapOrig, variantsPerDimension, idMap, 0, []); - - let rankToDimensionMapTransposed = []; - populateRankToDimensionMap( - rankToDimensionMapTransposed, - variantsPerDimension, - transposedMap, - 0, - [] - ); - - const revMap = reverseMap(rankToDimensionMapTransposed); - - let rankedVariants = []; - let variants1 = {}; - - for (const [k, v] of Object.entries(vd.variants)) { - const rank = v.rank; - if (rank) { - v.rank = revMap.get(rankToDimensionMapOrig[rank - 1]); - if (!isFinite(v.rank)) throw new Error("Invalid rank"); - rankedVariants.push([v.rank, k, v]); - } else { - variants1[k] = v; - } - } - rankedVariants.sort((a, b) => a[0] - b[0]); - for (const [rank, k, v] of rankedVariants) { - variants1[k] = v; - } - - for (const [k, v] of Object.entries(variants1)) { - console.log(`[prime.${selector}.variants.${k}]`); - for (const [k1, v1] of Object.entries(v)) { - if (k1 === "selector") continue; - console.log(`${k1} = ${JSON.stringify(v1)}`); - } - - for (const [selector, glyphSuffix] of Object.entries(v.selector)) { - if (/^\w+$/.test(selector)) { - console.log(`selector.${selector} = ${JSON.stringify(glyphSuffix)}`); - } else { - console.log( - `selector.${JSON.stringify(selector)} = ${JSON.stringify(glyphSuffix)}` - ); - } - } - console.log(``); - } -} - -function populateRankToDimensionMap(sink, variantsPerDimension, mapping, iDimension, acc) { - if (iDimension === variantsPerDimension.length) { - sink.push(acc.join(",")); - return; - } - const nVariants = variantsPerDimension[mapping[iDimension]]; - for (let iVariant = 0; iVariant < nVariants; iVariant++) { - let acc1 = [...acc]; - acc1[mapping[iDimension]] = iVariant; - populateRankToDimensionMap(sink, variantsPerDimension, mapping, iDimension + 1, acc1); - } -} - -function reverseMap(a) { - const m = new Map(); - for (const [i, x] of a.entries()) { - m.set(x, i + 1); - } - return m; -} diff --git a/utility/update-package-json-version/index.mjs b/utility/update-package-json-version/index.mjs deleted file mode 100644 index e1dba3bd5c..0000000000 --- a/utility/update-package-json-version/index.mjs +++ /dev/null @@ -1,41 +0,0 @@ -import fs from "fs"; -import path from "path"; -import url from "url"; - -import semver from "semver"; - -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - -const ChangeFileDir = path.join(__dirname, "../../changes"); -const PackageJsonPath = path.join(__dirname, "../../package.json"); - -setTimeout( - () => - main().catch(e => { - console.error(e); - process.exit(1); - }), - 0 -); - -/////////////////////////////////////////////////////////////////////////////////////////////////// - -async function main() { - const version = await GetLatestVersion(); - const packageJson = JSON.parse(await fs.promises.readFile(PackageJsonPath)); - packageJson.version = version; - await fs.promises.writeFile(PackageJsonPath, JSON.stringify(packageJson, null, " ") + "\n"); -} -async function GetLatestVersion() { - const changeFiles = await fs.promises.readdir(ChangeFileDir); - const versions = new Set(); - for (const file of changeFiles) { - const filePath = path.join(ChangeFileDir, file); - const fileParts = path.parse(filePath); - if (fileParts.ext !== ".md") continue; - if (!semver.valid(fileParts.name)) continue; - versions.add(fileParts.name); - } - const sortedVersions = Array.from(versions).sort((a, b) => semver.compare(b, a)); - return sortedVersions[0]; -} diff --git a/verdafile.mjs b/verdafile.mjs index 417eabc4c5..a4fddb23b6 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -413,7 +413,7 @@ const DistUnhintedTTF = file.make( ); echo.action(echo.hl.command(`Hint TTF`), out.full); - await silently.node(`font-src/derive-spacing.mjs`, { + await silently.node(`packages/font/src/derive-spacing.mjs`, { i: deriveFrom.full, o: out.full, oNoGc: noGcTtfPath.full, @@ -435,9 +435,10 @@ const DistUnhintedTTF = file.make( ); echo.action(echo.hl.command(`Create TTF`), out.full); - const { cacheUpdated } = await silently.node("font-src/index.mjs", { + const { cacheUpdated } = await silently.node("packages/font/src/index.mjs", { o: out.full, ...(fi.buildCharMap ? { oCharMap: charMapPath.full } : {}), + paramsDir: Path.resolve("params"), oTtfaControls: ttfaControlsPath.full, cacheFreshAgeKey: ageKey, iCache: cachePath, @@ -449,7 +450,7 @@ const DistUnhintedTTF = file.make( if (cacheUpdated) { const lock = build.locks.alloc(cacheFileName); await lock.acquire(); - await silently.node(`font-src/merge-cache.mjs`, { + await silently.node(`packages/font/src/merge-cache.mjs`, { base: cachePath, diff: cacheDiffPath, version: fi.menu.version, @@ -507,7 +508,7 @@ const DistHintedTTF = file.make( ); echo.action(echo.hl.command(`Create TTF`), out.full); - await silently.node(`font-src/derive-spacing.mjs`, { + await silently.node(`packages/font/src/derive-spacing.mjs`, { i: deriveFrom.full, oNoGc: noGcTtfPath.full, o: out.full, @@ -548,7 +549,7 @@ const DistWoff2 = file.make( const [from] = await target.need(Ctor(group, f), de`${out.dir}`); echo.action(echo.hl.command("Create WOFF2"), out.full, echo.hl.operator("<-"), from.full); - await silently.node(`utility/ttf-to-woff2.mjs`, from.full, out.full); + await silently.node(`tools/misc/src/ttf-to-woff2.mjs`, from.full, out.full); } ); @@ -599,7 +600,14 @@ async function createWebFontCssImpl(target, output, gr, formats, unhinted) { const [bp, ts] = await target.need(BuildPlanOf(gr), GroupFontsOf(gr)); const hs = await target.need(...ts.map(FontInfoOf)); echo.action(echo.hl.command(`Create WebFont CSS`), output, echo.hl.operator("<-"), gr); - await silently.node("utility/make-webfont-css.mjs", output, bp.family, hs, formats, unhinted); + await silently.node( + "tools/misc/src/make-webfont-css.mjs", + output, + bp.family, + hs, + formats, + unhinted + ); } // Content files @@ -876,16 +884,19 @@ const PagesDir = oracle(`pages-dir-path`, async t => { }); const PagesDataExport = task(`pages:data-export`, async t => { + const [version] = await t.need(Version); const [pagesDir] = await t.need(PagesDir, Version, Parameters, UtilScripts); const [cm, cmi, cmo] = await t.need( BuildCM("Iosevka", "Iosevka-Regular"), BuildCM("Iosevka", "Iosevka-Italic"), BuildCM("Iosevka", "Iosevka-Oblique") ); - await node(`utility/export-tokenized-sample-code.mjs`, { + await node(`tools/generate-samples/src/tokenized-sample-code.mjs`, { output: Path.resolve(pagesDir, "shared/tokenized-sample-code/alphabet.txt.json") }); - await node(`utility/export-data/index.mjs`, { + await node(`tools/data-export/src/index.mjs`, { + version, + paramsDir: Path.resolve("params"), charMapPath: cm.full, charMapItalicPath: cmi.full, charMapObliquePath: cmo.full, @@ -947,8 +958,10 @@ const AmendReadmeFor = task.make( BuildCM("Iosevka", "Iosevka-Italic"), BuildCM("Iosevka", "Iosevka-Oblique") ); - return node(`utility/amend-readme/index.mjs`, { + return node(`tools/amend-readme/src/index.mjs`, { version, + projectRoot: Path.resolve("."), + paramsDir: Path.resolve("params"), mdFilePath: f, releasePackagesJsonPath: rpFiles.full, charMapPath: cm.full, @@ -982,7 +995,7 @@ const ReleaseNotePackagesFile = file(`${BUILD}/release-packages.json`, async (t, await FS.promises.writeFile(out.full, JSON.stringify(releaseNoteGroups, null, " ")); }); const AmendLicenseYear = task("amend-readme:license-year", async target => { - return node(`utility/amend-readme/license-year.mjs`, { + return node(`tools/amend-readme/src/license-year.mjs`, { path: "LICENSE.md" }); }); @@ -1010,8 +1023,9 @@ const SampleImagesPre = task(`sample-images:pre`, async target => { BuildCM("Iosevka", "Iosevka-Italic"), BuildCM("Iosevka", "Iosevka-Oblique") ); - return await node("utility/generate-samples/index.mjs", { + return await node("tools/generate-samples/src/index.mjs", { version, + paramsDir: Path.resolve("params"), outputDir: IMAGE_TASKS, packageSnapshotTasks: await PackageSnapshotConfig(target), fontGroups: fontGroups, @@ -1061,7 +1075,7 @@ const ReleaseNotesFile = file.make( await t.need(Version, UtilScripts, de(ARCHIVE_DIR)); const [changeFiles] = await t.need(ChangeFileList()); await t.need(changeFiles.map(fu)); - await node("utility/amend-readme/generate-release-note.mjs", { + await node("tools/amend-readme/src/generate-release-note.mjs", { version, outputPath: out.full }); @@ -1076,7 +1090,7 @@ const ChangeLogMd = file(`CHANGELOG.md`, async (t, out) => { await t.need(UtilScripts, de(ARCHIVE_DIR)); const [changeFiles] = await t.need(ChangeFileList()); await t.need(changeFiles.map(fu)); - await node("utility/amend-readme/generate-change-log.mjs", { version, outputPath: out.full }); + await node("tools/amend-readme/src/generate-change-log.mjs", { version, outputPath: out.full }); }); const ChangeFileList = oracle.make( () => `release:change-file-list`, @@ -1104,7 +1118,7 @@ const Release = task(`release`, async target => { }); const ReleaseArchives = task(`release:archives`, async target => { - const [version, collectPlans] = await target.need(Version, CollectPlans); + const [version, collectPlans] = await target.need(Version, CollectPlans, UtilScriptFiles); let goals = []; for (const [cgr, plan] of Object.entries(collectPlans)) { if (!plan.inRelease) continue; @@ -1120,28 +1134,27 @@ const ReleaseArchives = task(`release:archives`, async target => { } const [archiveFiles] = await target.need(goals); // Create hash of packages - await target.need(fu`utility/create-sha-file.mjs`); - await node("utility/create-sha-file.mjs", "doc/packages-sha.txt", archiveFiles); + await node("tools/misc/src/create-sha-file.mjs", "doc/packages-sha.txt", archiveFiles); }); /////////////////////////////////////////////////////////// ////// Script Building ////// /////////////////////////////////////////////////////////// -const MARCOS = [fu`font-src/meta/macros.ptl`]; +const MARCOS = [ + fu`packages/font-glyphs/src/meta/macros.ptl`, + fu`packages/font-otl/src/meta/macros.ptl` +]; const ScriptsUnder = oracle.make( (ext, dir) => `${ext}-scripts-under::${dir}`, (target, ext, dir) => FileList({ under: dir, pattern: `**/*.${ext}` })(target) ); const UtilScriptFiles = computed("util-script-files", async target => { - const [mjs, md] = await target.need( - ScriptsUnder("mjs", "utility"), - ScriptsUnder("md", "utility") - ); + const [mjs, md] = await target.need(ScriptsUnder("mjs", "tools"), ScriptsUnder("md", "tools")); return [...mjs, ...md]; }); const ScriptFiles = computed.group("script-files", async (target, ext) => { - const [ss] = await target.need(ScriptsUnder(ext, `font-src`)); + const [ss] = await target.need(ScriptsUnder(ext, `packages`)); return ss; }); const JavaScriptFromPtl = computed("scripts-js-from-ptl", async target => { From f5f95c1464ce7765cb093585316c518f654ce5a0 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 3 Dec 2023 05:39:52 -0800 Subject: [PATCH 49/59] Fix space derivation --- packages/font/src/derive-spacing.mjs | 11 ++++------- verdafile.mjs | 5 +++-- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/packages/font/src/derive-spacing.mjs b/packages/font/src/derive-spacing.mjs index 4197cf1503..0ed815c836 100644 --- a/packages/font/src/derive-spacing.mjs +++ b/packages/font/src/derive-spacing.mjs @@ -1,6 +1,5 @@ import fs from "fs"; import path from "path"; -import url from "url"; import * as Toml from "@iarna/toml"; import { CliProc, Ot } from "ot-builder"; @@ -8,8 +7,6 @@ import { CliProc, Ot } from "ot-builder"; import { readTTF, saveTTF } from "./font-io/index.mjs"; import { assignFontNames, createNamingDictFromArgv } from "./naming/index.mjs"; -const __dirname = url.fileURLToPath(new URL(".", import.meta.url)); - export default main; async function main(argv) { const font = await readTTF(argv.i); @@ -24,12 +21,12 @@ async function main(argv) { case "fontconfig-mono": await deriveTerm(font); await deriveFixed_DropWideChars(font); - await deriveFixed_DropFeatures(font, false); + await deriveFixed_DropFeatures(font, argv, false); break; case "fixed": await deriveTerm(font); await deriveFixed_DropWideChars(font); - await deriveFixed_DropFeatures(font, true); + await deriveFixed_DropFeatures(font, argv, true); break; } @@ -86,7 +83,7 @@ async function deriveFixed_DropWideChars(font) { } } -async function deriveFixed_DropFeatures(font, fFixed) { +async function deriveFixed_DropFeatures(font, argv, fFixed) { if (!font.gsub) return; const dropFeatureTagSet = new Set(); @@ -94,7 +91,7 @@ async function deriveFixed_DropFeatures(font, fFixed) { dropFeatureTagSet.add("WWID"); if (fFixed) { - const LIGATIONS_TOML = path.resolve(__dirname, "../params/ligation-set.toml"); + const LIGATIONS_TOML = path.resolve(argv.paramsDir, "ligation-set.toml"); const rawLigationData = Toml.parse(await fs.promises.readFile(LIGATIONS_TOML, "utf-8")); for (const [_, comp] of Object.entries(rawLigationData.composite)) { dropFeatureTagSet.add(comp.tag); diff --git a/verdafile.mjs b/verdafile.mjs index a4fddb23b6..99746d9215 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -412,10 +412,11 @@ const DistUnhintedTTF = file.make( de(charMapPath.dir) ); - echo.action(echo.hl.command(`Hint TTF`), out.full); + echo.action(echo.hl.command(`Create TTF`), out.full); await silently.node(`packages/font/src/derive-spacing.mjs`, { i: deriveFrom.full, o: out.full, + paramsDir: Path.resolve("params"), oNoGc: noGcTtfPath.full, ...fi }); @@ -507,7 +508,7 @@ const DistHintedTTF = file.make( de(noGcTtfPath.dir) ); - echo.action(echo.hl.command(`Create TTF`), out.full); + echo.action(echo.hl.command(`Hint TTF`), out.full); await silently.node(`packages/font/src/derive-spacing.mjs`, { i: deriveFrom.full, oNoGc: noGcTtfPath.full, From 1146457235a9b83e5f1adda41161d4a4fd24576d Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Sun, 3 Dec 2023 17:30:02 -0500 Subject: [PATCH 50/59] Add two combining characters. (#2109) --- changes/28.0.0.md | 2 ++ packages/font-glyphs/src/marks/above.ptl | 31 ++++++++++++++++++++++-- packages/font-glyphs/src/marks/tie.ptl | 18 +++++++++++++- 3 files changed, 48 insertions(+), 3 deletions(-) diff --git a/changes/28.0.0.md b/changes/28.0.0.md index 1d3735902f..24823b1939 100644 --- a/changes/28.0.0.md +++ b/changes/28.0.0.md @@ -25,7 +25,9 @@ - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING DOUBLE CIRCUMFLEX ABOVE (`U+1DCD`). - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - COMBINING DELETION MARK (`U+1DFB`). - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). diff --git a/packages/font-glyphs/src/marks/above.ptl b/packages/font-glyphs/src/marks/above.ptl index 87238aa90b..71bf28aadf 100644 --- a/packages/font-glyphs/src/marks/above.ptl +++ b/packages/font-glyphs/src/marks/above.ptl @@ -170,10 +170,12 @@ glyph-block Mark-Above : begin flat (df.middle - HalfStroke * 1.1 * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkBot asciiMarkZoomY] [widths.center : Stroke * 0.9] curl (df.middle + markExtend * asciiMarkZoomX * [Math.sqrt df.div]) [mix aboveMarkMid aboveMarkTop asciiMarkZoomY] [widths.center : Stroke * 1.1] + glyph-block-export CaretCaronWidth CaretCaronMidSw CaretCaronTerminalSw define CaretCaronWidth : 2 * markExtend + markStress define CaretCaronMidSw : [StrokeWidthBlend 1.375 1.25] * markStroke define CaretCaronTerminalSw : AdviceStroke 5 + glyph-block-export CaretShape define [CaretLeftShape] : with-params [top bottom xMiddle width swEnd swMid] : dispiro flat (xMiddle - 0.5 * width) bottom [widths.center swEnd] curl xMiddle top [widths.center.heading swMid Upward] @@ -575,7 +577,7 @@ glyph-block Mark-Above : begin create-glyph 'tripleAcuteAbove' 0x1ACB : glyph-proc set-width 0 - include : StdAnchors.impl 'above' 0 1.5 + include : StdAnchors.extraWide local fine : 0.5 * [AdviceStroke 6] local stress : 1.2 * fine @@ -731,7 +733,7 @@ glyph-block Mark-Above : begin include : StdAnchors.mediumWide select-variant 'candrabinduAbove' 0x310 (follow -- 'diacriticDot') - turned 'turncandrabinduAbove' 0x352 'candrabinduAbove' markMiddle aboveMarkMid + turned 'fermataAbove' 0x352 'candrabinduAbove' markMiddle aboveMarkMid alias 'graveToneAbove' 0x340 'graveAbove' alias 'acuteToneAbove' 0x341 'acuteAbove' @@ -938,6 +940,7 @@ glyph-block Mark-Above : begin alias 'cyrlDasiaAbove' 0x485 'revCommaAbove' alias 'cyrlPsiliAbove' 0x486 'commaAbove' + create-glyph 'cyrlPalatilizationAbove' 0x484 : glyph-proc set-width 0 include : StdAnchors.wide @@ -951,6 +954,7 @@ glyph-block Mark-Above : begin g2.left.mid markMiddle (aboveMarkTop - markHalfStroke) [heading Leftward] alsoThru.g2 0.5 0.5 g2.left.end leftEnd ([mix aboveMarkBot aboveMarkTop 0.5] - markHalfStroke) [heading Leftward] + create-glyph 'cyrlPokrytieAbove' 0x487 : glyph-proc set-width 0 include : StdAnchors.wide @@ -1124,6 +1128,29 @@ glyph-block Mark-Above : begin include : VBar.m markMiddle aboveMarkBot aboveMarkTop (markFine * 2) include : HBar.t (markMiddle - markExtend) (markMiddle + markExtend) aboveMarkTop (markFine * 2) + create-glyph 'deletionMarkAbove' 0x1DFB : glyph-proc + set-width 0 + include : StdAnchors.medium + + local wide : markExtend * 0.3 + local d : markExtend * 0.7 + + local fine : 0.5 * [Math.min ([AdviceStroke 3.5] / Stroke * markStroke) (markExtend / 3)] + local stress : 1.2 * fine + + include : dispiro + widths.center (stress * 2) + flat (markMiddle - d + wide) aboveMarkTop [heading Downward] + curl (markMiddle - d - wide) aboveMarkBot [widths.heading fine fine Downward] + include : dispiro + widths.center (stress * 2) + flat (markMiddle + wide) aboveMarkTop [heading Downward] + curl (markMiddle - wide) aboveMarkBot [widths.heading fine fine Downward] + include : dispiro + widths.center (stress * 2) + flat (markMiddle + d + wide) aboveMarkTop [heading Downward] + curl (markMiddle + d - wide) aboveMarkBot [widths.heading fine fine Downward] + # Scaled-down glyphs for Vietnamese's secondary mark define [VNSecondaryMark s kx ky d] : glyph-proc include : ScaleAround markMiddle aboveMarkMid s s diff --git a/packages/font-glyphs/src/marks/tie.ptl b/packages/font-glyphs/src/marks/tie.ptl index 2b04c5d01d..d9176d4cbd 100644 --- a/packages/font-glyphs/src/marks/tie.ptl +++ b/packages/font-glyphs/src/marks/tie.ptl @@ -13,7 +13,8 @@ glyph-block Mark-Tie : begin glyph-block-import Mark-Shared-Metrics : markExtend markHalfStroke markStress markFine glyph-block-import Mark-Shared-Metrics : markMiddle markDotsRadius glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack - glyph-block-import Mark-Above : TildeShape + glyph-block-import Mark-Above : TildeShape CaretShape CaretCaronWidth + glyph-block-import Mark-Above : CaretCaronMidSw CaretCaronTerminalSw glyph-block-import Mark-Below : belowMarkBot belowMarkTop belowMarkMid define aboveTieBase : aboveMarkStack - AccentClearance @@ -127,3 +128,18 @@ glyph-block Mark-Tie : begin leftEnd -- tieLeft rightEnd -- tieRight hs -- markHalfStroke + + create-glyph 'circumflexTieAbove' 0x1DCD : glyph-proc + set-width 0 + set-mark-anchor 'tieAbove' 0 aboveTieBase 0 aboveTieTop + set-base-anchor 'aboveBraceL' (0 - 0.5 * markExtend) aboveTieMid + set-base-anchor 'aboveBraceR' (0 + 0.5 * markExtend) aboveTieMid + + TieGlyph.set currentGlyph + include : CaretShape + xMiddle -- 0 + width -- CaretCaronWidth + top -- aboveTieTop + markFine * 0.7 + bottom -- aboveTieBottom + markStress - markFine + swEnd -- CaretCaronTerminalSw + swMid -- CaretCaronMidSw From 3c39923380a24c3196bae1288cc1f23189bf7da3 Mon Sep 17 00:00:00 2001 From: be5invis Date: Mon, 4 Dec 2023 00:06:51 -0800 Subject: [PATCH 51/59] Cont. fix build breaks --- verdafile.mjs | 1 + 1 file changed, 1 insertion(+) diff --git a/verdafile.mjs b/verdafile.mjs index 99746d9215..2625d1b787 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -513,6 +513,7 @@ const DistHintedTTF = file.make( i: deriveFrom.full, oNoGc: noGcTtfPath.full, o: out.full, + paramsDir: Path.resolve("params"), ...fi }); } else { From ae4e56d4e0d737c89395ee047f9656f5acba2c3f Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 5 Dec 2023 16:00:10 -0500 Subject: [PATCH 52/59] Drop unnecessary default oblique CV definitions. (#2110) --- params/variants.toml | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) diff --git a/params/variants.toml b/params/variants.toml index a6e1f621ea..d48724495a 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -7479,19 +7479,24 @@ capital-z = "straight-serifless" a = "double-storey-serifless" b = "toothed-serifless" c = "serifless" +d = "toothed-serifless" e = "flat-crossbar" +f = "serifless" g = "single-storey-serifless" i = "serifed" j = "serifed" +k = "straight-serifless" l = "serifed" p = "eared-serifless" q = "straight-serifless" r = "serifless" s = "serifless" t = "bent-hook" +u = "toothed-serifless" v = "straight-serifless" w = "straight-serifless" x = "straight-serifless" +y = "straight-serifless" z = "straight-serifless" long-s = "bent-hook-serifless" eszet = "sulzbacher-serifless" @@ -7579,13 +7584,6 @@ n = "straight-serifless" # Digit form digit-form = "lining" -[default.upright-oblique] -d = "toothed-serifless" -f = "serifless" -k = "straight-serifless" -u = "toothed-serifless" -y = "straight-serifless" - [default.italic] a = "single-storey-tailed" d = "tailed-serifless" @@ -7632,14 +7630,22 @@ capital-z = "straight-serifed" a = "double-storey-serifed" b = "toothed-serifed" c = "unilateral-serifed" +d = "toothed-serifed" +f = "serifed" g = "single-storey-serifed" +h = "straight-serifed" +k = "straight-serifed" +m = "serifed" +n = "straight-serifed" p = "eared-serifed" q = "straight-serifed" r = "serifed" s = "bilateral-serifed" +u = "toothed-serifed" v = "straight-serifed" w = "straight-serifed" x = "straight-serifed" +y = "straight-turn-serifed" z = "straight-serifed" long-s = "bent-hook-bottom-serifed" eszet = "sulzbacher-bottom-serifed" @@ -7665,16 +7671,6 @@ one = "base" seven = "straight-serifed" micro-sign = "toothed-serifed" -[composite.slab.upright-oblique] -d = "toothed-serifed" -f = "serifed" -h = "straight-serifed" -k = "straight-serifed" -m = "serifed" -n = "straight-serifed" -u = "toothed-serifed" -y = "straight-turn-serifed" - [composite.slab.italic] a = "single-storey-tailed-serifed" d = "tailed-serifed" From 6a8a0d27f0dc435f162a45c1124418651fd212cd Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 8 Dec 2023 05:28:47 -0800 Subject: [PATCH 53/59] I still think we worth testing the release for once more --- changes/{28.0.0.md => 28.0.0-beta.3.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename changes/{28.0.0.md => 28.0.0-beta.3.md} (100%) diff --git a/changes/28.0.0.md b/changes/28.0.0-beta.3.md similarity index 100% rename from changes/28.0.0.md rename to changes/28.0.0-beta.3.md From 17274ab0c028019143a8cee6779af9250e8a1e12 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sat, 9 Dec 2023 14:36:41 -0800 Subject: [PATCH 54/59] Release 28.0.0-beta.3 --- CHANGELOG.md | 4 +- doc/PACKAGE-LIST.md | 274 +++--- doc/packages-sha.txt | 904 +++++++++--------- images/button-release.dark.svg | 17 +- images/button-release.light.svg | 17 +- ...ning-diacritical-marks-supplement.dark.svg | 188 ++-- ...ing-diacritical-marks-supplement.light.svg | 188 ++-- package-lock.json | 78 +- package.json | 2 +- packages/font-glyphs/package.json | 12 +- packages/font-kits/package.json | 8 +- packages/font-otl/package.json | 6 +- packages/font/package.json | 16 +- packages/geometry-cache/package.json | 2 +- packages/geometry/package.json | 4 +- packages/glyph/package.json | 4 +- packages/param/package.json | 4 +- packages/util/package.json | 2 +- tools/amend-readme/package.json | 4 +- tools/data-export/package.json | 4 +- tools/generate-samples/package.json | 4 +- tools/misc/package.json | 4 +- 22 files changed, 893 insertions(+), 853 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index bcea8a32f2..43c3ab5e4a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Modifications since last major version -### 28.0.0 +### 28.0.0-beta.3 * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. @@ -29,7 +29,9 @@ - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING DOUBLE CIRCUMFLEX ABOVE (`U+1DCD`). - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - COMBINING DELETION MARK (`U+1DFB`). - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). - TRIANGLE-HEADED RIGHTWARDS ARROW (`U+279D`). - LONG RIGHTWARDS SQUIGGLE ARROW (`U+27FF`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 71495cf6b8..575f768b5c 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.0.0 +# Package list of Release 28.0.0-beta.3 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index 7a33d82df3..cacc08fa72 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -cc38f3e632a807fde0f13c89b907478bc006f74f8b7aaba789d88da8a6d0451f undefined -ca5513e10b8f5e216b1a913eb48b2704146e35c6e68a9c90634d3b3c65e545dc undefined -f9b8f57b6a75e1ca66131e85c2d06b2aba321ac660f7431b1c69bab5b972e399 undefined -f7fdd3298009323577f4a79829e647dd14b0fce2d7dfde7d2fd35a703857491d undefined -740f28349685b2c9ea3afdbf557fbb7deea3164f0c43bd003412338c633c1f13 undefined -c43c7088fbf50475e3fbbc40717dbdfdb3ea7d42df0ba10891db6efeea6e4d4a undefined -363b682a98cac0b7fd711fd92afd43bd85d1f12a7f35be56b543cb8fba34e9b0 undefined -6dc583d0f438089f98701bd5bc0e2f591c38482efa9d7691c8350370846c2522 undefined -757b66be1a487fa3339cabf6b9904b613c0373a042a6c6ba6ff38d0b472feef0 undefined -c22e50658facbc865a30e9430730e12533ecfd31c6b9e0063a0e1956cb1a2805 undefined -6f9ed915ef801aff62b3b03c04bbee7add75793d37a361c49301272ec5d8e915 undefined -6ca0a94dedd29e6f2ccd2ca263ebb2f36e214cb5ee323850514957982faa65b9 undefined -90f53e99df03186f94486858c40df15e9f9a4a1fdbb81843c6c74a8be68473f2 undefined -b1f5092d957673d74049d642b4e4ebbdfd08f0b00e5f766b0ed4f762ad4ebeec undefined -815dc4b731a1a07a2164021946a09d2c9e1e5d22f13de082e7dff32f9d10c432 undefined -d379d2e716e42d67baa8e02ecf028b7608153e66fa4f1688c5eae220aba8c857 undefined -272d56ac055591e3669cf1e908620e3bf05fa34f859b1ca47b4964d4e7fcef95 undefined -f2e1904f369845a3e714374bca7d6818789e18751d66c4e7a4ee91e0b0d3c956 undefined -2a61655ccfe6f08e53e5ac61c7c341bbbc15a6e4f6918ec619bfee5aae61237a undefined -e8c56e62bec3eef5677e7180d2d002848b1ef9b3279197f942be9b0a67215f04 undefined -4b484489e195ea04bf6da0c03f5f7c227341af016c42087fcfd6aed4970fc135 undefined -d663b178ad31da50758e168a7590a9460680a663344c7a7bdfc94afb8ba42147 undefined -b1fb787304fa4b59b8eefacbc9106ead86085404048cb87d109dbd71402f4a6f undefined -996bff00fa5e3f629dc129399f32fa319e71c0944750bfe6cc25067f95f877c3 undefined -6e5ca1b4e59811607f6fd81b9aeda4610dc572112d5b0264ed34c1cee1916d3c undefined -f80eb703c8831087a1dbff82763552198d2c96633a5113b84cc6502d7b0f4c3c undefined -d866f0333e22d909152a90d9ff00b7a6841875e943e96994e09480a1455741db undefined -b5e36ad491c06813f89ed98e5ff1f81878289a38d487ec9c5bc94ab572d9f2a1 undefined -c76319821e8839daf9205708073ea14eef6fff51d4f75bfcf7b3c251338f8b3e undefined -bb26cf6fae8c3f588e32f55eb4044ba9731c45fd9f77b94ef9873d5046353df1 undefined -2b52f8fc2910c33ef195f145707a9677decf9e9456249e4ccc95fa0800292285 undefined -eb360a9a245bc7f5c88fa67c81994a9ca953aabfaafcf782d704140a637e3145 undefined -f36062b3f367ba34da26ece6e1cff72d7203ee09e40fc182de29ac88df9ba8f0 undefined -2d38ae3cd5e5fbd72f86a5eae3af89c632805831f071f3c5764914038a383023 undefined -0dbc183eae95229d6cd97257a1d719a7b39ffead939e76db38bf3104e8c2ef6d undefined -ed1742f01b01d6106137be49c47108a0cab9960ce23a1f71089a25470e97f301 undefined -62b5b91db6c4679ca66741222c265d0507496db4b20298e043908ba909a3494a undefined -8989fed9d7e93bae96895d70d9206464b9e1c32eac89c27ea3366cb39963018e undefined -c2cb0c6586fbef6815a5154e25fe653389d41460ae096dfd5af01b934789ddfb undefined -98952705a1620e7fec8a4205fe04fca1ad87aac9836afa1a072ae24671ca5e68 undefined -03332c2434991146e44818c0364598bbbb17519eb3ec1af44904a3f8e54e98bf undefined -49dd963866dfaae14ffb1c96ea08920220dce64b1bf9089e82c6f3921e370f5b undefined -482cbfc0c001178ffea67491bc3c48c4a2ef5c6d0a723bddb030edbd251a3dbf undefined -3910a94998c65cf05aa1c968e76f48f752cfe867606b3306955a7d97be44a669 undefined -7326f6bf839fdac47acaeccd299dc1c746f5b4f64b0aba6680858532062edc32 undefined -9360b91331b65e5b9beeed54bbcc8fae60450d2f8a8e7b8b94dad8108ee0149a undefined -60f900b058904859f5eb276849319e3575c9a72092063b3cb1320a6945867c0e undefined -996f47bb585d4ff336bea7ef10c617f95563416e9691d40c5f5dfec8c38d2eb8 undefined -7e883b69ca67f6910fe5a3ada2de881d18be4474f6d28b3f64303b7d6b2fcfb1 undefined -15c2dc9940582293487df0b3c304407559dd6a9167dba833ed2255a9bca5be18 undefined -0f21623df0803529c4826fbb2edcf548edc24c9bdbbd24f7b6be33a8c460fd36 undefined -20cf42addd1c8e38033702e9a725bd6f5e5d3505345ed27e492df4abe82c5e17 undefined -09ed32c421c017096171ab9ff250b63018fe6ce2c4503eee185c5213e617524b undefined -d6a4181034b649c75f4802b50726cffe5675afee8a339d39fdb7eae29f3b6f42 undefined -1dba6082203abd5845881fb589a0b09629f13b45bbba6f8b59e7c0b3dd671294 undefined -ca8f29e98c83f5ad49d7318f64e8b9d12e0f0b16be05d7eb0f556d03db7436e6 undefined -1482fd8d30086908718d42895f6a3329c8c805aef930bbcb9464510596909adf undefined -14e4919c2d0d875b1aab1a93895bb4dc2bfeb33e90682c5e7c9e3615bd3256a1 undefined -a727371896558d8e33883eb832cc447ca027e44ad04130dcc1332345d611f086 undefined -6ba533e3df3bea415f3d42183bd95a745aa75f4415e1ffbb2c00b35574704ef6 undefined -e6cc2d5092a35e60abcf168ef4fab0b982d7de93fd1774d84b1ce73ee85cf421 undefined -9d7a532492ca911cf2cd6b1990d918864fcdb98982c46533370558d17abb9264 undefined -fae657aa3f2563a333f8889cc9931b70f09dbbd4b1adfbae9f51e4c3dbe6d0db undefined -6490ff1a148c19956f53c84598fdef486e4dc628bd03d5cf7aac7586fe1084db undefined -32ff1f4467497027fa00fad3971fb6faf5a9d483369ea687c23d97a8689396c8 undefined -1e8c64bf2d7257a3214ad60abf4d3adc67819995beeebfed96523cf868f71375 undefined -29b58efa41c4eefff462c60edcf2bc2ef3e70402ffa0e04b1ba1fa61808b3625 undefined -bfc8afe3c678283acfa3b13f410b46c01059a00f0a4edef1e866a80e9bde4c85 undefined -2968c60c095be2207b2588e963a529bfc8213fcd9c614e36bff63057f51e90d7 undefined -4b2b00db95855c780795f1d898cafc2f6db02e0ebbaaa17c78f7ef93525bfd5e undefined -5428be4789cac39085f07cae89b1583ded90b5919a510680be810147ad814a46 undefined -e21fc1cad5ffcdf6173d9f22958a3169236b0cfee0097c11c7a281d17928113c undefined -90146f8347083be80f29d10df5012184ed670169f72958740d457537f82314ea undefined -bb540657355f5a231ff2feab008ee186ae43993c25eddecccade45497bc24fff undefined -4b8b132392f0ff425c4f2f321602e25525b84ee601a36d87f3672f2d6a9b9b0a undefined -10be8ba5728f79650acc5e7f4633c2d895754445644bae9a1afcce8d0586caa0 undefined -9fd0446c3995f937f1c89fe4d70416bcbee6fce11b1321889a97d894914328e1 undefined -1c7f26191a534759b87267a2ab74a9ce37aee5472681f9a7a266253e27d0608c undefined -762f35b462bf7e735c967b1c4c3d7706e0ebacbe7ab6b16e001b8d0d61b267d2 undefined -29a7c0f9f10010c9fd3d0b096f91e8c13a820ffed23dbfd2cc9162edbe9d7c03 undefined -364e727a7964d3137909bfcb9389d6eeb542bfeb455b6dda18f2b9a5dcce4366 undefined -3aaafba32b00fb8db26c02b9bd0911617968a6966aa62a0c51b2ed0c2afd5387 undefined -b1f5399a72451dc1ee7b600edda991bcc294cadf9426aeec9e1dfd42a63d08e2 undefined -e39f7d1e346a7b9c6e58e35d9a4292f86df95c7f41b53fa75f647d6bda6e3c0c undefined -c2a2bbab06ad18e64854bcec165c6d25121886279c9050ae4ed22e9b85a93121 undefined -4c0733cb085e46bcf21c848d9163b5de9cc96045abb3f908abe08abd4aca63d7 undefined -4791e61734d2396c474f445a8ecb8676b3cd18ba4e3ab088a3ed6dc1d981d06b undefined -7ae23074abce65fd74afe3acc214fa3e0e416449aa2e9be140b49420288e2fb8 undefined -a5f6f1a12fad2d3b181a8194952ddaa2cedb2b3ca73de7b31634bcaf0fbdf8a9 undefined -a54878d8a610e85b86c04dc4d4eb50d8a63a9292dc4be3a777cfd6275067a552 undefined -bb22ea17f10bdf82b979bb10822dc205868ec81afe50592006dd9e1d16a655b4 undefined -4aaccdfaf47b740b8f4e961f18b3abab4bb7785c4c8a18f698b64e4628f60d56 undefined -45265a03efb8490962ba78ec81d6ba8f968a40751252e3366fa96ce7b10ac2a7 undefined -5d7d0f235dfd72680078a51bdb8671a339145b847a942a8c063a6c1c4ae650fd undefined -64dcc9da39e6a59ac97c69cb69262b7c9d1dce5beee5860406517f2414d821d2 undefined -dc6f6ac31f3d2f52d9ed799fc089da565c1da6c065e9b1ee1a0fad26073775f8 undefined -f7944685b047f1cc7f21ce7cc7f6b39c9ce14b9b2e0aaafc30d8faf1304e38ae undefined -e19ffe75c450ad2c1247de2974423704890a803d8351c5ac7bf0b9e6a41d3a75 undefined -88886e29e0e09d00b230f37b381f5d68ad703e1e16069dfbdd00b24d2cc6c594 undefined -0575a0361e6a840f9670e2d5934ac8b816401d15146e40d4be8900ecd5d3660e undefined -27bb6e38d84aa17b481d3dbac8c25b06a3048fa495be21513d5bb2a2301d49c5 undefined -e77bd0c0ec8feadffc41e8596b0f7414997da81743b9be28487d429a5b50eb6f undefined -f45e907bd6a4b34b6a2b07a6495d814260d81265cb8f214d6162f21b5dfb16fe undefined -af605d337b03c03fe68288719b1c07a4ac88ca3cddfbb1de9009ea912a76367a undefined -1b67189b5be6d8b0f905976fd2affe0172fe95ca26f43a3cafad9130b6bc1376 undefined -f6939a2877ad2503ea70de90a92b99bf6a537098773aebdc45ccf7b6d3d42f2d undefined -427420129256704358a2a1460d04c1c373b754325fcd8d46d3df7197f261fe0f undefined -b72149df4aad40dd59eca96ba265b7b2ec67a089d5a9dbfdd72b15e587a6a640 undefined -3b159c0a9ee7f2a06ee249c1b79892961dfb0e4b4af7dac657858e0889ef17fc undefined -42f1d79ded07286a82ecf9769b4a8d68c35f871f7960642418a7aa904024c71f undefined -201e865a5c96ff46ea7095dc6ad1e7a8740d2ef1ed5090b88cc41bc1724d9d52 undefined -ce8a9dfae6927167b23cae6b27b7f60f4d29c8479c47af0b7c5f03a9d9b27877 undefined -38c0aa7360a91e9c431b3a47d4cdf23c1adfb67e0dd6e81e93d47c36791b169e undefined -a2cd30bce7cf196021abd45672cc3488a35a750bbb8a32cad1c04a189875cc72 undefined -d75411ef42a18cb85d67d2ab43118ffecd4f7805424f9a2e4dfc121ac20cc2cb undefined -5655f9bf4b7825a9d965247dfdc3f9025cc65b427d967e3e8ed68b9b0f2862d1 undefined -369aa82bfd3d9a7fc72e7fb9e0081ab05be0bb00b3e4ad685adc7178fca6cf05 undefined -f4980885f8ce3e551658f44ba0dcb4a3e40042fd9af9786abdd97a0cb862f1da undefined -8c9cf88add546feddd50308a09ae3f8feae646c08735d2160b05fa284bccb10a undefined -fff56c4303e73b6c839183207d7dddc998278df217a487a862b37f462daed160 undefined -5e1ad9f80f54b2d385efd6e277ede18753d98761f4f38785d5e0cd96930dd177 undefined -f9f5436e52d3bd66f01c99b8cca9ca4bba1df5126a1320c8abfdfdfbae7ed83e undefined -1b03cb05921c0df0fda2c7da9f92ab778a56c70d108bd5cc3f24a624a0e4b1a5 undefined -5ccf4fefc87f6d974a77f85e91920d9e1852244d26e87df88575092e068c001a undefined -3008f80b56fc3eaf03f897c607c937257aaa7eadd921295304acf20c1b1c42be undefined -cacba8f5455e50b762a6d325d395e8254cc30cf65628e5bcbdb19fcbf3c1bfd1 undefined -133a3a7a422f07c06e3d800dcb747805cf2f81ddf30479336e291ed89a16d4bf undefined -0cc8497cbe4bae5bbab516d6a9951da2b689771f880a3ef963ee300cb905c1e9 undefined -d55726dfab980954bbff206107131e81e87256de5a10b5826b14a049b9ad0ebc undefined -c4ce9f2e5cd5d1f8506741049b6c041ee766834b002544a2a51391459134db60 undefined -0f247caf4b7599f9631354b426a8fe540a2535ab36dd31add368ba82761c8f43 undefined -7d0d8b94ef17ecacf2b9cf4b4421eb6531a0658eeeb090edcef6fa37056bdc1a undefined -8e9822d69359a3675afe22c7562f65338d96c7964c94235e9a7cddf39a14db26 undefined -62d2aeac00d9d217f911fcfd521305f548414c670693e52f3d4d9e24351b3146 undefined -05dd4a841d3f4ab5ca1a3fd1a53001b4c856c8f3747b54c74c118457adadfb3e undefined -ff52aa204ca5b8a68fe34fbbee52aceb3f698bbdd73a2822f5db12e084f1cb2a undefined -b6b49e713ea27f324a7cf478cc8e8b29210ad4a4d0a5e2a241a89c79b33f256f undefined -129f3c59048ad43206f3c729def230bb788483a5f8acfd612c1768d5b17506b9 undefined -cfdeb9cb5913789b696ee4157a591dd1e2d20c6ef63378664af7d19cf8a3f6b2 undefined -33eadc1532cb14a6b5e4153cc039e4f3501b9a8f2021e8138f8c73245d4c8772 undefined -4d68284f3dd5f10e8b64187bdc6d7d10c4d0a6f8311e88aaf8a26319d71f7113 undefined -b70dc537f02f9a72bde5242d398caeff1b77be50d63c96fac7d36d47016c4598 undefined -713210e5b1c5c7fc943410dbbfca8ab25bda89706a400ef6a1be5f20f379957c undefined -cba724464b630de1aa55006dc4b236393770c406147029ae449ab3ed1ba6625d undefined -6ad8a1f646212f46e83b10ca39c7a108a2b121a1e4077f722d8d4212317ee04b undefined -fe583acbc8788dc5c0b308ff48268b7126f871581fbca6ec3a607932cad88e6b undefined -2f35e720e5f972ca86bb4ffb7f3806e7b1ddd4e75b664b448ecf22d91c42bc67 undefined -0a6f203d94a26ef387f2900c34f8e6c1d3e2f273d1c4c0f4a94da3cd0a6eece9 undefined -70f826a6f692e689801c0a063490b64bc66321be6a00a036c0ff513bc523c41e undefined -85e781c2f406523028367c13cdcc944235fc96d85a940f515ccf19958135a8f5 undefined -24e564b7ed9dd2ccdb6a85f6cd604c11b4aa7d2c97d00dd328b77a4b1f3df641 undefined -6d0b206f7542cbc1219d48e8204b6bfab8917e8c6fbfb4647cff3309cfa40224 undefined -09e8a0cdc9212a81a9d671466f55b3e38710fbd3b23b7b16a3c60b7bee7fe25b undefined -0e930bacc1535f59200695e7649220698fef3090cc3642a59cba372e0198f310 undefined -51def382bca2b09fe27fc470b153868c293cae832ddee3140d1361d41e99f01e undefined -a0d1161c38b241514bb7a0e3c026bf5cc9f493777c7d14a28f2572917abf8c4b undefined -1161fd5fb103449ac480aa7c6e0867ec7205470d8fac32438bd8ba770eda0648 undefined -6bff022e8047077528f6eba0b89f3d872085835734127db615e535aa2cde753e undefined -5f9fd11d0f2e3f557320404b1c52b23ec9bcf0bc66aceb88ea7cb6f690c5f631 undefined -e64cb050054bc2c9d4f3e96ef6d26a175413b555cf142bf26e61d8c8bd9d837e undefined -9019a8d65d00daf79a0d62593635c712ebf873e61e774a6385b25bb9efc77e1c undefined -165c5ab0ce3455b20ae7916208bb8cff7f5b6e38c24c5ece5e7d2bbbcd4cdd85 undefined -c4b94f41cba8a45ed9db2151773f0ce0134e4af645e60fe9de8fa546ea07c17b undefined -9eb2d75af61a71898ebdc2618ff76959883af7210aea28b43cda9cadffe891d2 undefined -8b98522b4ff93582eafc1f96302bc236569d804ab0124a03780cea0ec1379e1e undefined -1fa8ac2d07be7ba07ecccb062d664c4f9f920af6c34ec3981b04af239151a7fb undefined -94de7ab863b623c6d090421b4c92369a7be18034c8495504f72941e8fc5ca1ed undefined -8a68ab6693c282913366dd1ff4519c800e0ce76a982bca1f3447c825bebb7e8b undefined -472ddf3f19409e46819f4b22853411197865da4382a0b5bfa0ca9c2c23dff365 undefined -984682ef811d826eeedd66012f61f89e4dc6d34373a44d02a334b5337c278d15 undefined -18b723545004dbe96620a2ab4bf321ee6565bbb4c4d4af784ea3746d8815313f undefined -4c77408e933fbe8c8f66bdec33dc15a18e4dfee5fc254733774bf085d4496b60 undefined -e51ed3038121ac40bedcd16ee051e0953fc0d978470bf1cd53c2c7f3ddc96117 undefined -9536703e7d0be1dcf39b8fe14a38bf84df30727450a2fa3d96fd5fad7b2548dc undefined -ef0834e677c6a413404cb0c5b4db88bff7b3cdb29c1699011fa420ddfa650e9a undefined -f1e93451d369461cfd6833b1e6a4005cc98d4117f0d7023d43a4ac2c9e808c66 undefined -d9ed9dfe023afe7ddf49ea5089a5d413a72a9f0cfc231bed9c1c20f0a9d2950f undefined -3c75b3ddaa4290f63156572d6c7030c635447f3b700b681259fc4f3dbe52a78a undefined -6bf6ac15a1c8d448a309db71c6b1bc81bb02eb6c0939d802728ea726087598a2 undefined -cd83d2e34eeead7df3224922a73d9bd95f81731fa10d98e5b40aa5937d0d2025 undefined -88833f1bdc74e6d682b5dc99061c345c9ef1fbd1a474487444cef239989a0ef2 undefined -c036d072da8028ec5a8d4d5f127cc4be3d968ab8e2361570fc9bdd8eaed018d8 undefined -4d8318159e7f33550779f268687bb78058c5418b90e401ff68d5de5662ced3fa undefined -5f421cbf9594fc3bcf7c52c2bebbdad924af5e3bee5b00d80d2cafedeb92966d undefined -7e247c4e5953368cf766de4b268a08625777d188a398f994d14b7b0e1afef695 undefined -d647ad95d5db01e1e7fc6d74d19c0a6ff6d2d983d806b73e31b4ef77c54d1205 undefined -f118c6629c220216254c7afe7f20541ea82054040a5f7352676766e6bc4e70e5 undefined -135a6eda69b61efc8299f819a3e7058793c533cbcf3d7fc5967c1fae765849a2 undefined -bbd98fc9577265f9712a3985ac4be2f2129c71bbc91776c1f9b61793241bd506 undefined -d0c13a01ad861d964735cc383e876cd052e77c2e1f2790f8d2ff24055c88233c undefined -d22545e9e870356cade917cd616590ef25a550b3bf9d32217428d4f0658504ed undefined -cb399f88d0201b09fc53c949b1b2294e04ce7ece91ed0fa0d272fc08f4002803 undefined -727d3648fbda85769eb0b8f9a013749759e8fbe6ea3fc4571b36fd70aa8e9773 undefined -953ab9d133a8cb4d4ca45d6529d6aba13de1c7ff6514918b925d44c04fe6ea40 undefined -0683f9fdf959d6bdb778e9338a62d6d3b5f48168267f27247d493e58814f11de undefined -f3f6a03a2d9581aee3aa4160d9d45d56d8d52da3147471c28630bf854299fe5d undefined -e66d3e4577ab4504d54f192e6d2f3e0f8ba78d0a620638e5213879a364766078 undefined -89217f162329375c345ab33121176d8dbeeec37c9d7b631bcfab04f50556faf2 undefined -a1eb0e2845373173de418d58464cb43e914c622f9ead5149ca85c2eb785ea96c undefined -8b05990b2f99ab01ca2ccad451866036bb1c1cfdd01960342379f4ac7ce68d1a undefined -265681c93109b8b1b69e70aacbccce425d1b041141e5d16600df82c63f932432 undefined -9eebe74ad690206d123d81337321ed16d4df43a92fff1788be889a1059449c67 undefined -974bbe639a63dfe47591919a7be1d614043ba4098b3c7f8b284883e4c2d5a51b undefined -c68b0518435ee3b2d630eb207ca4c1089706467da9de4588c7f5f41819f4c19c undefined -5e5402b0c0e6097953131cd7e2e32d591eb6ac02dfbafdbddac2abed813e92db undefined -bb70a69041cee7a130bcb3bd205d4eae28f6c6e2898824b00b120b723a36b1d2 undefined -06e3d1c679981d22dc61d21149ccdd694f9bddd08b93d9aae3f84261a27caf3f undefined -43230f2d92bda17dae584d81b3c591a28ef0c492b7620175e84b29c992117d8a undefined -f23b59fde8ee669d069352656c7b53a674b79b495a771d12a8effaaa6beb0659 undefined -a0fc5cf80ddd2441a81af875fb9dc37907db9efd5466644d2e9379cec61acc31 undefined -920b41426cc1f12d21c687b85a99f1a5f22096e3fd98aee5c49b4c6e33c4554d undefined -27210c1640b820516c8065009f68f709d0b09656bfdc37a04b1c2ab8995abbda undefined -123a2a8ca6d2d55e7fb3e3e99e399cc549bb4ec9ca5933b7751961805cbfb88a undefined -a4d16649d7878aad726ef4891b7131f9d2380cdf2e934239e160186a53747891 undefined -a14b7a7a02a24967a6b26160bd83fbc7f44196faf9eb17df926ec7e025101daf undefined -e313fdbe37c047c26142a5a2c26921a1810631826a06bf9dc757bc84c115cba0 undefined -5a381e6ad71a6eb47e2baafe44270cf58f2ff4f2d86341308908f93262ec9442 undefined -ac012d4bef568cd56eb2cadc9215766b0c2ff4ef9b856e0b933a493e3a38efb5 undefined -3caa02b58661962ce8d624da88fd05d445b5f440ac7544aada899c9ad418f80f undefined -ec67947c98036cc660692532beed44921332ff0011d910e74416aaf1a080faf6 undefined -d3457567b731f8e5935f0f9d363a5ce0f8e9040c893e62742f85175998408cbe undefined -d144f9603f0ad16070b96131499931307e267af85b34a1c893ccabaea06dad91 undefined -b7f8bc8ba822d725afe232b4eb1e95de5cf5b6db692a1160de636edb3252aa0f undefined -5c9d46a9be4da34258a1f3d4e912ce02b7def06f0d77a290a6c9cc1ab0adf621 undefined -bc5ff9afea4d784b2c57eefcf6d6fe9cf6d66d855fd644efdb2f668ec7569a86 undefined -21ab70cedacd9f778b30d2ff5aae6e550b68bf2d0816e34c000af4f480ff48c3 undefined -80dadd9933b5445e1248334fa796556ee1d3f768ea4a653ca219831e73d710ea undefined -78dbc2bc1eb5b307e676aa424a6423f6910a2594a0a96be071d6438a64f005bd undefined -7ed33184ee2f1e1a520bda49c96f7c4703187fd518688fae62c1e33236582528 undefined -f9df134997be208b6311eb4622ab969f03f228322b9775715b7f9f6da6121ca6 undefined -217fa7cc611581e9d0cf5d516f1dc2aebd95e7ecf8a66467278a30e5ab5f58aa undefined -1630d611c614db9b0a22d2194330473a1658493d9e5daa55de39249d029cbff0 undefined -d00a0ef5784f763f1ca82ff5acf902bb0278bac8963c2e983247732219e5d416 undefined -5e0eb6caf750c4b35b924c0a9bdb73fa4d0dbf72e9102926e2a8bf1dc9687028 undefined -582dad92558e94c7f645ec212aa04a16ae961e93b24d89a2789d16fdde5ad199 undefined -bf8efce59a23926b5511d603826251ef4d38e0084aa33c3bb444e2f8a8ee2f90 undefined -e15ab9e379e2ef6e0e598fdc3912e5b8ea5fbc1cbf36f64908fd5ad609aca996 undefined -11ecea751de47e4a92bbe037842ad67079ab6f9b2ca8e8d1b30b6182842f700e undefined -9789b9002a0a3dc069ed780a1e2ed7a68b196ac1ca425a039982159be140bb35 undefined -a6ed3e62d4fb33a2e575577e99c63e0ebf8268a0b88b9d569422ff7d1bc4a766 undefined -3e58758347604615223cd7db0489cdecf30faf1601a8de68a11d4e126e0a4abf undefined -0f551ea4cb0ab0792194be4af1d61be729f1a373fa21f9b99642ad355ebf69ab undefined -ccb713150d5cb38eba50db578edae3f165d661c120cbb3770bff7dae4e93825c undefined -f47502030b3e1e7384c91ca5913b229e184a3a933a3a6346bfe934a9c964993e undefined -e3c2127dd52fd64243836887bba8a398148d4100b68b4f6cde4a3d1dce0b7762 undefined -73131119668ba7919eb3e732d2a7ed93c12065ad52bda8bce82836a2d824388c undefined -7a905b43241bb8fdf15fd8743197c9ea6ac50b730617a2250cd9105299dc464c undefined -166ccfb16f479b2a01b33327a8f7837f977ff79867e0af7081af58bfc71094d4 undefined -7fa3795a8e64dc4753300bc99e3255b7fac2aafc6d59f29e49f3ad16091ca1e2 undefined -4e06bd73875062b41fe0a22c39cfe589d3a0f55d258703cc31b030ae4d660aa9 undefined -f3930b2cf46331816dd88f04d3bdb3d848d9be2a29ceb9b0aca2693524d074a1 undefined -ae09398dc4e39415e22ce571e1d46176217f8ec43c11180604c08bcc92fff0c9 undefined -44788b16a0e606d7ed90bd5873d35a76f78171ce2a26d20238417a45d800c435 undefined -59b46b4cab2eaa92bd21984b574cc58238825c7f1c2438dbe81f58ba4c7b14ce undefined -6d769e28ffe5f096e15833ed0b05b3f6fb48c3ac15f847a135d7e04204b560e1 undefined -22cba73da4be574b5c77421ef2f0b68fecfddf7b75fcd91b2827795f33e6e814 undefined -6f91caf5ca728431505dfb2d8d504f5cfb76d63a3116fb60c97bd7fb5fe66031 undefined -7faec31492641d5b59790614853ff96363a280d54eaff3a400b395c8c9a9fff4 undefined -0d23444ec6e43d6b1f435b597f891d3a2deb45ea396498d59fb7cd15580ebb88 undefined -47b2c661a5e5087a1012870b08037573e87590284d8b0c613d459999b83ef29c undefined -b3f42a5d3acf246decc42524f8d5e1cbce05f50904010fc5df4d37050c4aa79f undefined -ae0a05018290a2b4bf6bf2df2a059a22737e50b2fb3d15ea2d3c5187681de467 undefined -247eac90dddc3ad6cdc8b3502d10dfc621fc387bcdf8599d295455895a22260c undefined -c2c27f3708b34a3e25ba87f4ad9cf5b4a2e7b6ad27e3e28881ac5cbe2835faba undefined -2a62a957442785d57643269d43bbddea92a8340d08a9d14967e3ebc504c0511c undefined -4cbc375a974cfc162fd7744b7839a84225a8c7d34cb076ca088992300fa7b125 undefined -eff0102cfc4f590ca1b8080b59eb75f77d07fd73555a327d76993a3b881f2c15 undefined -ee394a093c56e8f6cc6287783fc8bf3a89980d74b931d4013e3b2c55408529b7 undefined -415e902bdcbe9b64ae8de3652b004c06d01d037cb77e9435e371eaa179a49176 undefined -1cc9ef26c30fa270a10234e753dced94f8f84e09b345426a0d533f794d66eb4f undefined -dd76f7e00653c67335650dde2881849c0d9ec5602b645b0632f65c1a2ed71701 undefined -92cf8b391c401ad73b887190bd7791c3cc48083f8d2db7bb20451622e0f6ac83 undefined -044c6edece3545ddd11b4e53fbd734a8de5f72e65eccaed414bb6f071e6bda03 undefined -669834e5dc5c285f0dc5cd0467f3eb346f5bfc2bdcfbfe5693064013436b702f undefined -8d08df5c5af163f02eb56f242c5b15e2fd011fd39be59f7510d79ab3191377ec undefined -0159518c60c2316e522b40dbf573bcc336667aac0c4f1a74fa97a4715daa5db1 undefined -afdeb897c7e17066c6e5670da496776225921a3a30812033edd75a6520d56eb7 undefined -4e5f70bfff7139ddf3e616f460fc6c4959a7b7ce1b86b4a142aef62374e31f2c undefined -7f12309d71d0263e99eb766004ed1754fac8de15a3aea6a7e2a3ec30ff870253 undefined -a8bc6a6b7f4f634e6d264df3ac55a00fabcda1a7f822955a7ca2a1d08d06bb63 undefined -f6ebc44dbd558b777a595e578518aa73774c46f50d7ac4dda36dfe37e223da52 undefined -d5919644c7a53cca167a9632720b14cc237ab062d8966129707b1fc931ee9d79 undefined -7f6eee88382fe936b1d849e0ff9f2400aeacaf3642caf2dda015cc831177d695 undefined -41d14b122a303877c34f960633dd865f56717bc6036653528f4ca432f9c93861 undefined -b0e0f8da743a6a483cae263e604b0609da322c524ce9dec2d79bd4b6484e1294 undefined -2a56bb58280d028c14857be060ee2be36c153ff7534d2750467b751b1de1b6d4 undefined -b8ad8ff28df63720970185286cdee973f5b1af358cc0ac2c351fc0eee8cf25b7 undefined -579b4944c29afd455799add7bc97fcad773b527b59d8f91a6df0a448e3d1bc88 undefined -5467c89d27b0b6a40ccb987bdecaa2a3e3120d64af9801a43db0cf6ebbcd7d83 undefined -5352504590f2941179a21052f1ce60ea617bf40fc51b9145ea6c1d6b4afa2fe1 undefined -e02a79aece69563ce81b07e9f87251bd756c9bdfd420a90f56232df387c29ab5 undefined -ee37a98c95c919284d7be21fb055c97e77539ea574f5393ac75da6e6d0ca922c undefined -ef52b4c63d078061dbf9f006b872cb0a46d4eaf3422c481fd8ad1063f30dd4d1 undefined -42c837e818f155c31e341cb6fe5af0ec134e86f75f35c0133b2475c33b89590c undefined -4f75bf250f7d71f5514866eba917a171d7b99989a8bb67fc6ccdf6f3400c58dc undefined -dee4fd969fa6b1ad558ecf2a69aac6d9c25acc19dc9e2e470bc5b9ef846c8683 undefined -8f935df3a1539840efd18c219302a3b0f307f95bcae91e22b5a4ae8d50cf5a5f undefined -2c21e461748faa1bd1a835d08862c38963de52df56096c0897a9984426169945 undefined -848e1e956e2048c1d87659c218dfc9a67ef198e7d2f7c754658d503be1fec97b undefined -fe147f0a35f3362f53b80b83d6949c83d8603375d7430448514b03ae8d6f9c93 undefined -55b067ab487f5528097cdd91c069c50c245e03d42629f0649ebdab57bed1f41f undefined -a8fbdeeff0d1e2ae151ba8cf82068aa76b503638e54cd0ad5d636626f9106c1f undefined -ebe5f77305912af13aa6086b7e33506b8a2464056ace097b1131d071f93f7493 undefined -fda1ccba04512be16861ee6724a791a432a813d471ab9974594f4ca7de8bc590 undefined -3f1d92a85256d35aadc91f98ef75234c94c52f93c5dcc1522162b7766c3c46e2 undefined -0f9a174a0256cc610bb4cbde55388463e7df9b20af377ab84ce9bf5ab34c8e1d undefined -9de8ec4794264c995e324e2ef979dc11fbb1da9bf883fce2b2a8fe72c6df29c5 undefined -d700b720caf21116a5c21b760aa748f48aff4883b96724669674963a8e8e3589 undefined -6c041b48785e1c2208510d114f186cd5eb32e53d931811c7fc82426c1a64a3fc undefined -3bcfb24212364cfcc1faaebfbcde07924737a9ca56df7d94bbfae7f264b5b730 undefined -8ab45c778d04af88bafd6147cad43be10d4569fa9ce436e2ccc569d174df1318 undefined -c6bf6e4e6e719e1bd7aa5b8548df7b2449ebbc52078cec6f56dd0fa419c95544 undefined -3fef40a3266f4cce1f7715eebaeddf7f3632e153b7d9a39e610a2c68fd06a835 undefined -edab6dc12e5dc3b17450be12d4d9bc022bc18ddd3fe85385152e024243933a37 undefined -f52407dcf3fc61745185b54e5c44551fe24fc6fedf271155cd8b58994621b263 undefined -5e3259867f30d28d764cb48ce31bea65b17baee1e073c62cdf47142e3ac6eb2e undefined -322056da6dfd9fb2d641faba70732808ac43c43ee1557055d482fd50bc1a72c0 undefined -b9b1f6b97155eb5295568a76914d62344d03e9e0c138d85b05214f1950c300ed undefined -62e25d102b0e177b36f735f806b5cadfc2b92b60974a5e1c4a5b83a6499e0a70 undefined -940a9c50a5721df2de88a98e254ab107f44c2a189c5dd74a34c7d3f6679837f0 undefined -8e7e2ab8ba13c5fbe46949fcca833c2935ff66ac57acaabde7c3ee2ebcd87935 undefined -1e2b752113a8fb7f33418c05458ef1ae7194353107502d5da9aca734af92f3de undefined -36cfdcdd3f0e4b669e7a4743ef441c1581ef3ad809abd21a5c94078807501983 undefined -2fd9ebc5cf54b9698c2579482f98456d97f74340c9b568321c3c244784e0e617 undefined -cfddc5cb2867d11b0e4a67411ece9c918e3fb8c2d94a12457c28aa37c247d613 undefined -1220cdd4e7a6ded4b89fa46637cbc13008fa565219e1b795ec439e21a5f1348a undefined -14b137a5b63ecd0e58a25d215b60b0e223c604841236d0a504a2871c89c51923 undefined -5e06e277b798f4815da19bb603ee8e25a5655e33b1537e6ca5e52219a17cb6a8 undefined -fe3a391e7187131c799cd40eae4fb55fcd85b1e5256574f7b939c96893d2997f undefined -96f1ea39363e1c4a7cd0df97f0c84a54729bd0073ab7443d5042a39259179401 undefined -f7ad7806f6d2b72fbf10ddd4a8936e8a168a7e924639ff8dac28888f9c4fa0d3 undefined -d1eb7da915fe0336ddcd27c607ef5d4513d40be7e13fd35ec4eeeb9aba64edcc undefined -cd7bfe56732ecfe54d6686dd4f455719df1c5f3d62ac64fd519226fea949feb0 undefined -898d969b5b12e896e8ec28c6760139457e6667cc8900fa75c14f2f4564d70a92 undefined -ff2a8175d6fb5e96d6c8220f79943212b6b6723086b6e5535d36ec3ca0ff007f undefined -883e3b7396e053c1ba5b5f340ea6809a832c505d290dde102199e6cd3727a892 undefined -53e42a13d35478bb1b018f4339f95006f85e5ef95dd395bced313df9098574ef undefined -975c2d1b1e96327f2cebe149c3e34e9fcc64a552a01926dbdf92a43bc0b48a43 undefined -b45a848b599c1fdc9037d02266c99f2227429dd2c294fd84d3d2fd7cb7891b1d undefined -04027227de175d61165d21c5d89bc1ba3d583998d74c4b61e6f5fc04fda3985a undefined -d4dadf052e4ff0e2c2d955c4bb2a4929214407984ac0ef7e29e79f667275d86c undefined -d13709aff73c71188421b83d73b07d4b2ec1e618d185333251a20b625e3aed86 undefined -78d86e5a7c669abf6bebf7d786b9bad9fabb74644b17000572670780b118b4cc undefined -0d45a2fc491a9f3da79b22e5d369fdcc8c64e479c9335561acf0f3903ac45baa undefined -be0b99f257eac618469a754e169274bd00ffdc21212101a344512a71b03a7840 undefined -d709c7e1feaaaf82772d55c153b43f1a6ff4d21eabf296fea3b9aec42b03f65b undefined -615d54f6a4f75fb892d3a1c9196d5230d216581141e3e572fbfc84d83866767f undefined -07292435fae2f8e52abead4eb6e66bc8bb6d49485ebaa1c18eaec3c7bc718375 undefined -1333a8fc8e4521accf2622dd68f0213096712edc4959c0b6176115c2c3f394a9 undefined -7e187f61b9a20fe216d1ce5ec69c8550f38706de2b3a0e0fb0cf4593fb91c67e undefined -0895ad47e5cf363e704dd510ffef760a1b5d4ab31a0f72ad1ef056530c9ae982 undefined -162f555c769280c3b29ea791e9fa74da58a37205d4bb503dfcd4e94fe1d308c5 undefined -7e632b6ddb4354e18f7ac79ca4183261c6acf95909e4dd9ad313d8b289b6b146 undefined -598aa40f052ca17eb7be0cd81187afb181ead5b412ad3df86cc1edb3f9306f07 undefined -bdb6411fb41d7fabf23de4fcc8c97ff8da2594125dcca3ef57241693eb0b7ce7 undefined -e3d98878913705b9b7b2392b797ad057d909addc3f97d6c694cedac348c38460 undefined -e8709eb118cbae50a154fa67b2d87defb9a2b55a3f94c004fa3ef35af424aadc undefined -555e51c75ba558d63a9e8184324cc12a13dc2f547a6ff3c4b90296b8dd6f70c5 undefined -0610907e0762b419ae04b6a6e9ad8822076ea9047ed4bb2d63774293d9b9f98e undefined -b6bf21f963c7322b1b787cbc3f6c717e17c489121462cf6c7b1b35271fcdb806 undefined -19760480fcf950eedd9eab38b612dcb0625c85daa35f8d19e62d89bc0fe77c4a undefined -8149dce1be8b2de361afeed4faf9c6912e00e07fdced96285e7be2f369b988fe undefined -3b0e353a540ae15cff8a4204cd97c73b1c656fa04c695068ed73b965314a5c2c undefined -31a0fa878831d9b76c7315398195b869b5d6b5a39ef0dab02ff253891fcdab2f undefined -47cd00de296a0ad1ade477855f80c1a2f573f2bca7d910715e35de0bd553ec63 undefined -66b07c08b17b594fb2f2779b772906f7f2ba29cf24ead96f913b7dc2d11738c8 undefined -9c32efc6a3458bdecde41875c7e9d89d6e0db50fcfe8e13e4ca37950a62fedb2 undefined -ae4d541a4c50f2262cec96bb8ad80153c56de75e208e2659cc47c4513d117bd0 undefined -747e3b09d81272d3b101bb21fd8a99e0f7cf4e6e4eb8172c7b7611534bf874a0 undefined -d0c4148ea17ff6b5504e32b79af47ddea3a1cf4f60668a31e878b622c2366068 undefined -feb626a703af678d276677f80e0d0114c55c5e383dc68f45b7bcd1685a900a0e undefined -9f9ce77dfc06f0e65484c6c6c8cf63cb4d7d50b80d22a3fa24300a58236bd9ac undefined -3d338aec9456c523d666daaeef4c2255cb7eebaaa591bddb7c85eac0e2682c73 undefined -37ca6cd844389208e2a1dd2af274c736e73dd83b0630017643734490edd52f2f undefined -d2e47e13a765135614f2efa29c321bc637ac707fba9b5ff999ed48f0a1b404ad undefined -4df6539da5e4894968864bea4b4d8ef4892f7daf0a4749f9289752682ca38c2e undefined -f272a059d2f1ea8932609b796ceda5a4a3cf45b1954a4e93ecd1f2c70558e893 undefined -0fe89edbe0ec7f8c866186944ab8a206965a872ee920feb937de64b26788d9c6 undefined -2883a0cb97abf6bfa72948475aea0d321d7db077337c553be7567e83cc9ee07b undefined -cdb9f963300573cac410131481751f4f2dc19551d6da621f206eb4c2e0100b6b undefined -12abf8db13d1207ffe18a529c357d299a506f450a28b17d669e7ab826f4d28f9 undefined -f0d5c7b1723e6a3295d98748766e7d208dc95815b2218e57372be6c9f5fd84ed undefined -2b0c0c4543b2f57058e12de2982392580000aceb84d7637a8878f4ac0c87a929 undefined -484f7f7cb16475da052a7c53519f7a6abc5d966724652c59e911c33e64f39c4c undefined -520b048f51998b50615b2af0408a3409d60e87624b155297dd2803a1a1e67b51 undefined -ba8fb57ea695463442c38c6699fc92b55ee378c5c96ab3a0cdbac1d16973e272 undefined -44f4d004a6e0b51df86d12d50165ea7f34198aa68d71fe96fe7b2867455f2a69 undefined -60cc9fab4b4711c3b3d29e78c647c0b82e4d84df2788420dd9d47e380db1d058 undefined -c32b58220a4f18e4f3801f69e551c1c2d1e606194e062f0ed304f5beb883621c undefined -14a78967a590b34560945fd8df85f0cee9867f80fb3e0ec2ab8f6d2546d3328f undefined -4df2b70f9a6c155e64a86e7f5cfe0d555caa5395be94165eef1a61b687625300 undefined -362d9187d434f583ffd73645854e0f7d5fd2f1459b79ed2f9c794f363b2f5da5 undefined -151678bd825fcdf09b74cfff7ebc07a62660cb93332e2655d6a383b602726741 undefined -0d5f35cabc2bf6258c776fa028da2b631f41c174be14de795ca2e96499018562 undefined -e228f36174b7e2f95e90db024079b19d4eedd758920d17af863af7e3800dd537 undefined -458cc0dc8271d39337a5f9f22b8df490e23d6bab61dd486f0b2f11c3aa6f38dd undefined -6227a7b0a974794095acdaa62c793c593b313ea997a87d7af99034753da6dffe undefined -14065e7502bd441006f711b5f6700efb42a99f734220eef286b83512371b7604 undefined -4fc1481b6810db56bbf74506f8746c4f86dad60d0706ec2c02ad7f048324948b undefined -b9b11ede3891c518d50575e25b176fa6dec71bebf9ae61059bd51041cba04f2a undefined -6e02d29ec0db12153901236071e2d8f861c7b78e506b1a53506e8a81f6f49cf5 undefined -f12e7945ad8224283c941ba151d4363af73bdae0a949e020eaefdf5c23506df5 undefined -1ae48207ce5a908e82d57f0f0d16444717a7b5ad11ac8a7d0598a7f346bbe67d undefined -1cb80e543e5424275bc3c756c664920c7aa46a7e3f2a7df6a451bb52f1402fc2 undefined -e453f50cd841763a49a72e460bbb0f9e0a79b1687d8eec8584e5a2973981aa88 undefined -ab4c89132807e92f117b75557ec01d5153773fee2b22a3d339c46666a4c5b19c undefined -a35f8dee129cdfbfc15e8f24aa907a4ae55850b5a9e8d457d77d608a52668534 undefined -e02e2c44a63e5dfe703c745ceae3f2aa0074d0c8754bd05b58930350eb11788f undefined -c560df9dfcd2c85088b32f6558a49c21d02387846994d314d35bf5b30e151a2d undefined -953ef8e7459a41629002cd3e261510612c983cce3ddf37f45a6999cd30ff5faf undefined -86ada043f893c38fba7d1f85992eb175478e6eb14e514db4052ae03bf9c0172c undefined -7e514cd968f05c850f1a84f38458af62fd608e25909141d4a1cad63845997f37 undefined -bd8053b9206748e1c28de032ac4768be4f4eba27bb1dbcc44f9383996547d182 undefined -bb0df35b4a549d5a60f35567607b0ad944adf2b52dc2f666324e191c33ff3837 undefined -852abfcd6e99859ae5f26645092201f8dbd0da3b5312a4a224b5b9f81bb1ae8f undefined -a6ee99719c183590831bcb65626c6c5cd82d929e5ddfc1eba3ee9702064d2d8f undefined -6c1b39d9a8cb3d9e5688cca0780a741592d51593bbc870cfeacda5b26ff5d058 undefined -9e564f829c660bd86e892be1dfcd0b280b841e1e9767acafba98c786a9c419d0 undefined -5307707911380836ed0778b633e57fb326f089b1b65a05e88640bb1e666b02d8 undefined -b460c75271cebd57e9272e0c55659169fd9aec750f52610c5191f43b1323e799 undefined -79cc55ca9c1c457a246e6d3ae2356ae72ed55c69cb7cfd51aaa46c6369bf1d38 undefined -ebcec7b29d50788f4b2ad78d69fc0cfa8f70d990f3e9814a73d0e1fa455af266 undefined -3c00eb2943d4f7777fa2dca85cc29bb6855d3483e0052af9fd828eb5d6f6a6ee undefined -428509ce181625b9cf4612bd98de2fc4c575e6099847ed48f1bd814c8a73f542 undefined -201ebd9d8355a9e39601879cfc9000851e13928197e45d2c78f359b0ce1b421d undefined -f3ce8670cc9a6e240ed9e31221e6342d1374dd8709a0be8ec4a8faf8b57f5c44 undefined -1233a45708dc3150c526d8e118a7d0ef0584c29cfd48358098b75ce050a77c7a undefined -7dccc7ce638d421d1c3b3a64e06efdb159dcfe90e15b0fe8e1eca4d296b47c64 undefined -a8c897c15716d99f007d6fdeb6b48563ba9b7590977c21712ce880bb4df38bb4 undefined -cc1bb615a6a5af43ded344ccfce41191d7bbdbcef1b5ac6e5dd1d865b77209f6 undefined -f3b9f46d4ba5b3923784e3f11115e27502fd551956e842bf8af2b9dfc7a72aa2 undefined -799e7423c31b269988e538a17700583f2c7aaf3dd60efda6a707f749be1056ac undefined -b508b3f24dd580ff954561a04a5d14c25c78c7990a3524ea37e9adf011c25854 undefined -5253d726a6ecc5bcdf39ca7ee0b7f8057ea498c2c075e84daab50e2dddcb2083 undefined -c907d3f3bfc0ab8d78c17568153d2e3548639cdbc48cd30c77d10d5dc31365ac undefined -44a06df667d169530cb6d3cdbfe996ff57049d1daf29838dcbca688fe6b9b8b0 undefined -968af744ef1a2aa726f6efb1da9a713c45a6595bf62dabda8a9d504a8ea068f7 undefined -8d87a4b85e117b7fd1e58512667926d696a0c298cbb2296bdd096a9f7358fcfc undefined -bc6027ec3354beb0004e3e1c9155870a67a9dad4605a6348cb8e32027c6a7bfe undefined -faaaf1463648c4eb9ae573268b76112286adaa617f5d8008bb6b997722589865 undefined -86769476afc5e087bc022af684f832370c29f6c1b41a854e42152701cf310b99 undefined -8f725d8b9b4fca640137ca4b03392169e119a8ff3c77880b0c0b5dd8349fd5bb undefined -9d497881ee61acccdcb3b71b4a627fb0416dabd1add4c1f1be360eb82092c77e undefined -539078def560c6db49e8e9b11af9426946a04b981bfe814732137b7e836e430a undefined -97ed0be8a6065588c63bbbbb86ed6aa52f7c15a80c6971a4fbdbb8985c338292 undefined -e5011c3ee790271a211dcc8ae2a2fba09fdaee59395771b3a4c7a681af6bb623 undefined -e752f889860689dce1375efeb77c6256d2ebc133e776092530437973d7bfc335 undefined -059f322097e8880338f88f453cab631eec425b198b2be4695efea1f02f835ef2 undefined -12952749312d1383a2c918132ce949bddb5622d21bad5f487c6bfa6adadbb59e undefined -f5452d502e8f9e4f0f08cba39d221bf13407654ac63d1f703883e6106d17ff30 undefined -b773f9702ec6e5722b22b7fb28f146f482c0d4e7ef01d0c045a0569c1e7f574a undefined -06bdb88ac592fab4bbefae0a1cedec0751c82005a93049b95392aa20cfe54fde undefined +00560d6864492965ca1b5551582493cfc1140330ea1bf39e1d7b29969ffd1bd8 undefined +83b0c9b15cdd5a00feb7acfe3288679f57076fe5eade4c89fc00fae5f02969dd undefined +8879d879dd1e3d1f9c3fa3487e9a50edc730f35b53b71e2744cbb50ae507edd6 undefined +5427a685245895711c48d354d90386f0c8375d6723360520dd2adee165443f5d undefined +522cf2a4edb0842c828757ce3cb36a8cda833d1a3cfb1a701a7c3db82b518d2b undefined +81128b3c0ee5b1d6f0d715f1baedef33dbadaeeace7189e9a963861a2bbff72c undefined +5e90e2c84f14cfac3f059d7c772166ff312b8238394bed6f410c38c6d97a105a undefined +8c170fa0fc412dd4b6eaf066774ec2e0da6ea6d33edbde9304d47dd6ba065e11 undefined +92683e74ee59d66201b2ceb96fdb9abb2f02416cf797913670bb02f6d45a4277 undefined +dead35b5f0df2ebc903c516dd9102f4436e6a0645abd56888e9ed078898085cc undefined +a9e3fbdffabde6a1324a59c52dca440adeaf0a5556840178d03df51ab6dde921 undefined +bc152068f8cc651637549fcb7e6f0750fe952f9c096246005ebc06a4457f5bac undefined +828b437f351c656d0e75e7f41f74a47b7872427f9f7f75c5f59a5a93d5bc563b undefined +07fba3c20098b17f5a0f2c1dfc32d13d5fed9ae11aab3ab7f199f6b3e6a0aa77 undefined +1352b740dde0db85bd32486e0af936e729d40c645603e525b7c44808b8b471b8 undefined +6d948b8e7ced79c22416121cf40c4f97244047583e7f151c5e3e9c8de38617a2 undefined +d7d93a0c63d92dc4becb56cdaee4ab803bba976dc2787c767fb00e224011648f undefined +96be1e4e2625ca7485d7bfbd5d4609a04247a52b5862a8212133404a4e40aa49 undefined +e730b8a84b11a71c66e4cebee5bcc1a53a38c6f9801435fd8dde18bdf4f6aa8b undefined +a79bd592c3f308ab7fa21cfdd4e4b11d848e8de913ba4743f213f27345554dda undefined +62629c7e64addab6e4d74d61fb279691e55c5612b140baa5405e178c7b398c31 undefined +56a0d6d0280277f48a075177763b7c54bde617e0fdfa5711ca20d0ea6caf075c undefined +53699c8f9b7dae2e616dcba4a0d40ab3c93993e8706504afa158b2bad2474a5e undefined +24fd36897f53bc3e7bc492d1c9069e57b9fb46f19157e066fabeec497623147b undefined +825e8bac99092241d2f8a66131dd7e1209077bab5172e23dc01d768d15a83c85 undefined +cbd20ce5fca368c7b91961d370f433aedd6775867f3415343459b80313fdf4ce undefined +5e18e2962c26fc4dcd1befa790e100db091e2cb35988f4bb0a46e746eb055067 undefined +737002e9f713e8a386d1aaf7121923b3b9c049e3df452829f8c9906bf3951aab undefined +d8d6e746c54d665010f43f03d2c1c587484ce8d159340477763fa23a305681e2 undefined +250637a62ea907003f44bd212c70b099178c1c627b6f3a07809af9d0e3525036 undefined +f72dd108a6620d7d6c9e77c2e7841abf1ab010294effaa51f0755e2c4af7aacb undefined +3c97400ac2091680b215efb5d2df0d1c5306a68be36d33afde1943fd5418fffe undefined +876ce46e78284c47393a25d27fa37b5d451c70f0f3d48497dac22bf4dc4eb0ce undefined +199d92ab5c026a8f7ced4451b4b7baf96b56a48df242198b3a2262e223aea7e4 undefined +e311ec4b04974348d2efac33e017c908b145d9165324323138aa784f6f999669 undefined +3b92b9680cc53222f4776511c65c3a0ca9db421541a983d4435d170949c59780 undefined +7ec76deeefc81cf41439e1324a96543135f5fb5772ee9856064d66d2a4ceade5 undefined +168f863667ec8913768cb9ee87d0b0a22ccaaf41206daa158c2b4d6c842a7d0c undefined +8c9d33d7c8d628e981c172aa5d242ed9455aa574d681956a54152965aa7bfd83 undefined +d8b9f72ae6fc00fab0a7372283bb797cd651d93542fd9d850c56c61bd13e63d9 undefined +a727ce239f5897c52ba900cc79be31e4061baf60384e869c31b03071b3b19797 undefined +9526f0b23fd95350ca16376ec2f1fd57a73726320f266365b9d48aa607fcba6c undefined +da86ab6f2b19081e2463e1f40c09781abe6d0b4ed1ccd184fcd524d153ee9ce4 undefined +dab1062a1052b6d567fb2e5e953b5267188aca444b27ea7516d00495e4fdc2c3 undefined +feceb459537fc8ae1d6bba3fdd735801f7e8a4155993385ba5393056ed55e342 undefined +9a07051eb64119f056d8b19fa2f5b51f9b9641b87c404ddfc6c72e897859f1e9 undefined +2e241018bd861edba09b92b5c49eda9fe8c5b14ae5ccb34baafc98c042d8422b undefined +f7ed8330b03502fb5e7506a84577acc0ef313cccf78e098d9eb55df853948c63 undefined +7bc66ec1fb4d8a9c77c96b9250b8964594d21d4a57afd8600d437b39cad7cd84 undefined +49d2f4e0adddb59c64153a210af3bb0999a338a58c986ab6753f33510b4f4d30 undefined +6894230f2071bb952428f24d09eea0b7fea24d90cc980f8c14bf28dcb325e557 undefined +580d49fc32c4142955bf62c065c30b8c1ff4d8fd0a1e762818fb0f66d2c9a7f8 undefined +ed893f675d91969eb97b3b3b6f9e4a0c9be745058fdba242e76bd75d91f42a7b undefined +0688ddaff14f09406ac9df6f0601feff0d4178c1f19327f881005a1b4ee3ca62 undefined +9024aa5e5fb5bb127a2a24d5959d71da651322f58172b40475e9715e1b8d9fb9 undefined +928386da4a82fdaa2681b3adaa525f078bcc6fcfbfe19ca61624f22b8bfe75ce undefined +dfabeb82d63833bb1dfdfc5148e257ced57d10bf22013ab0117106ae86638d01 undefined +72ff3cbb0e8f4d4d3aed6bd32900ab3ab11427694ff7757303f8c0a6073d42d8 undefined +064fadcb35ba687e441fab53df9d93f02cd0b0f57dac46e340c4c2614e91dc69 undefined +65618cc09f785cd3f1fb31dd4e7e9dea0aa7cc79e5b1a681a63a21f985fcd6ae undefined +1948f358240239df51393614426c18a868e78c0bbe93bbdd1ce93deca59a8c6b undefined +23483aafd6812179d6cbdc4485abcdfc3f94724108ce936629a3af5e02d662a8 undefined +39a483f62c670c10eff7f66853d0bcf11b232dc5c0edb477d97364ce779a48f7 undefined +5ae7b2721c375360b3e6e6ab179144efba6c964f079d0c56dd2a01a41583fab1 undefined +60ffc419dd9c05d90d0f3c9c3627dd5dc2f41e617026d6e08268c1349c432d60 undefined +6488dc7a4beaaf0f08dac1942bea5153d6e138c9c5da386cbf8c393927258504 undefined +72fa948f06188a664590c9b3d856f0c0ed2a703d61c4b9ee741d628e6300a0ee undefined +b35c291881e26837557de9bc8b13eb2c075bcaf4904d61c7a4e978765d8905ba undefined +4af5aebd0b2d4346672a0797b2dd9fd10f91c932f38b880965c6d4d0ac2f8fc0 undefined +dfd9d0ddc4fb634236646be3d30dc7c81f0b168a8fdc1498ba844c57539673cf undefined +d5dc08c55b49959c5aca449a31885358b115bac1528cb227a21885dbebbc7375 undefined +4212bb3ab347a9490ab78e458057f68ccde5335782a775dddb77dcf138169c95 undefined +6958e7d741c8158e664c52d1f2fe38d0e13498826c02367715cd8978918f7312 undefined +2ecbacf1e88ce145a165741fc873648743852b0024c659d02b4a10046798b26a undefined +6d6026c2aacd59e3a6c446116004c3655152ae0d344887d158480e2082ad44ab undefined +5bece0d98865fd63e760065ac6eea1dbd70262885dd5706e1bd87bfd1aeb819f undefined +242867906eaba6d348310ba300d006a1667d8b996b0393b19030c7465664b37f undefined +084cba921783ca1ef48a26fce0980d93b555721404b839e90d033f8b7913abed undefined +34991fa6e3b7d536910f1095411963a04cfdbdb0aa45625c5020375c3dae3764 undefined +0d15993aeb107bcf7135cc8702d6ee57126202cfbad04d25023389b24bca38b3 undefined +d8a6e2ea8fb1847655d0442916b8b707f7ef7ff9e05798f1c9400431a4122fda undefined +e984f384c551cc3304da140da6d455133a21d833ea059877129c9004285cd2f1 undefined +0e81c1bff9dca29376691f5596237bc2bd013526d97675fbe6ca02da10bdca7f undefined +53c03b93bf25c3a540789a8743656f753d9c6bde264899126fee9fc0e144c311 undefined +9e8c47bf0fa80eb97048140dcb70acddf2adbbaa6608109441082de6a257327a undefined +f8bdd7e2a6d58be09d0e88bf0262fbd8031c71be21c1d64ffb05db28933ce5f1 undefined +11bf133a3722bcdad4babf75ed4910d2efd0a18184df62f33edfdf69b9d72bb3 undefined +2b2af5ce08161ef3328def031abce399eecca5a9d097fa003b9bb83509fab262 undefined +1101ff8d80d763924bd88e5fec13a2353947f08f1515784b52d12f3b5552ac26 undefined +a74f3c28f56aefae471c3ad71ef9fa4f21b66087959ffaa256f30117bb60a06b undefined +7f2ba682362e67fb5a8fa036d5da7ce21bd809af6f5ae5bf782f29903ab212fd undefined +8f5897694fd31e4fa3dbecd21372504802ee539cdd2ec7f320a2fa9613deb582 undefined +b375e3bed28fd7f9596e20b6afb922f3db7fa74961e172c7bf781066e3c53896 undefined +8e1e366b75454f84bb0cbdfca0276b497ff5b0552e2631b5f37c08cee8b6906b undefined +0c4f05f307e35423d6ba0fac523759098a2e7993598eb21d5a90afab86874143 undefined +94048fff339a10d87d31f1989e5a6fd99ebd6f2b9e4ab2ceb66a29c2c6d481bf undefined +a72f48414f2af1f1c6ba83582f4896e20175dcc0e03163136a850113e481aec5 undefined +282dcd001dc43a023116528250c9f43ffd37085ce2402fe1a4ab87975cd29c40 undefined +0a6af65a0e6e54dd53566d37e2f91076968f5aba1d9e6025d0a69d1e0da95851 undefined +9f6466be4e4664764a1518d9a56e4fad9037aca7b4f1455ccabaf5eb47416131 undefined +752584708a74ba741862a8892e7700480ab3c66c0b1136aa5a69055b7fa664b0 undefined +090bf8f56c284dfd04c00844337b42b35759bf1a996bf3037f9bde4f20dc89d7 undefined +af753c92ec9a75c49e5ee44f30c2127c076572ece2ad1c667e9e67f6ef0651f2 undefined +7e0c63d506f36ff022ec3481c15ddc354acb1a056fbccaefed8708b8f4ea0a54 undefined +7b74034ec474bfe317a4f537fcb0f4ee0b2d7c29bc5ffd8be4abca6f6c9686c3 undefined +54916de7ff4ceacb3730a05e1b545d542c5603257008c67a67d9d6fdf90b4ab6 undefined +9df17943a0c0df8fbb3716a2c37619ce0c2e287c117a72c5dadacd2655039853 undefined +636e710c737ab958bbf840f6733e5edad71e83f9363af220d420a0070273c167 undefined +c2dc3bf06bb08e68a61eb567ae65359f75ed74f3a26dab4e4d8be5d4033ed582 undefined +38502940da39d80b5ca6329eba881558e35f43c6528d176f53cd33ff35ec76d7 undefined +2ef755b564acd5baaf015943b71e1fdef8c5145b68dcbad5c7da7ef2f6d6137b undefined +dbf138804083e8ae0ddf5628b014f6a65de15d953d46fb88d25e39ed0f1e791e undefined +d2b107f0c5290f1f9fe88b88e61bb8723ba71339601e39e453c2ca8cdd17270d undefined +a55f73aa3130cefa3a6f9b1fcf07b0f08997aba9ce1fb5e1cb0fd73fced532a5 undefined +9d92265e7d525c0ada238b967b93306b7be799120e1ce6ac7480818c33270db1 undefined +05911919eb5c793ad9360b07ecaef7dbe771098f81ae1a997e70349828f2792e undefined +7cccf52f80ce7183c4c2a3035b0a170a106faa2f189fcdeddd7b3ec3a401f820 undefined +c4fdecdc5315dc48dd66f71105a23fca17fe29c8215c982c082a5b453813c87d undefined +6bee971680e16d0f5d6dbd4807dee84a97d7ee19627e8193aba01b2dc4aeda2b undefined +177730ce57188c04bae9194b9670de84a33427847820df035104b8fe694730e0 undefined +0ad9a5b051ca5121b979ece0b3b24e88a65c1ec0a7d5eb3198bea318b3b0f6c6 undefined +ca6384e5711613f5f3f26382a76cc096cfb984506bb832b19c730ff34f0c34b4 undefined +77a70eb597b9e6075c6572a37ffe30937a87033f7b57135b877089967308fdb5 undefined +8e3806dc04603a14476b30449d65abdaaf5bbade7b5797cb7b632eb342e350a1 undefined +7c11b999051b85de583867ec53ca932bc7e520f0e4b0a585746f0a8b6edf15f8 undefined +83fb9c07cbffee81165642b570483f00cdb9b41ee2f69ce99755fc60720790aa undefined +61996f305d777cd0894b854d8337ce394227907011f29df5eae041dff58731c4 undefined +3324b53544646452d748ef90bd61ce05619ac161ed11723e877566d351f3bf0b undefined +85297c0f7724f0d5de1e6b58397730aca96cbbbb7a03e13f199ee7e1a59f5514 undefined +90e3a9a32fc98ccb38a76e4a4a28fd4223bb63326b86f8f538a2d3e9dac993c1 undefined +295602c8d3eaa9fd95fda4ab3281dac4612026312db289dfc32bf06d5bddbc38 undefined +7e8fa46b87dfbe386d1bd9a96ae27d04eaf2867b2ed5324631b7070ad187255c undefined +2ee7658de6a90d7449abe34e9ba8fd9cf26224876a8b85c49d728a1261a1cff7 undefined +f861fe1496f2f4f1729e0a4d02f3834565df08d594ff9f7cc55cd5e834cc02e1 undefined +cc880cfa65c8cff0c6151945075691f0f0d853f15d437d5f341272b8a8e701f7 undefined +105c72088f389868a0750a8c07ff0c040564ea5018d5ffad9382e1e341126af2 undefined +67ab4a57c89a4d98680d413ca3808e46a1a68923395ea01ef0170e491a5c529b undefined +fd4512dc62e9d9d3597354baa1f344679844f94cfa9963270b8224965972546e undefined +d35476bc147cfd58487cb6a13698bde5d408d4aae74b71f5651ec4d79e7a34d4 undefined +8d6275eb8a9c23c8174ead7bcc60f5d4f460984c9fe57ea29504d65d5b69a3e3 undefined +d8afe630c9165980464107b8ec6df1bf9ee94cdb56bb4183572a013f7e321bda undefined +ea9b37514ab702db38c3f843ec63ea06fbffefd493c765a4ea5b64f73ea0016d undefined +848de9a9725ce13743b31bc6b2af168eaf71e6d1b5f46d5762fe15c0cbfe458a undefined +ac12c66a2378fdb3558d43b19c00cc27baa63a1afeb614cffe66c5891739e117 undefined +a73205e0eac72230890b2eb02c3588da196d4ac4ddc66e643d9198e6739db32f undefined +f8d2c38089054f3dcd76fce1ba0b2feeadac7571923b9f6744e322c8925912c3 undefined +a73f702eac70352552779bc0fa358e5b756e6c7fa108c148e7869bb17f3ed1ec undefined +7e86b7a52dea386200541c68fdf39511c8fa9c3a59d93075c1a223fdc25be06b undefined +4e0c08611f8b5b1df2e4ced4fd4e9dc158841338c656423197995768a9e534c3 undefined +e070830be83d77900c25ebee9c3f68710b9736d9e97e1dedfffd01d9b7f3f600 undefined +b7101ceeaf4e5b605e2d3f091071bc268c0f2a81ce1919f1ba9579caa6fcaf04 undefined +17c69ef04c5d3c392b6fd5b4fa0b4c6ef308860e6a53fc4457cd6005de4c6908 undefined +5294757b83ca1ecd90eac29da34b77cabd80e4f9779f45466f0821fd99ac7d73 undefined +2160dc589bc23f11a61e1e9150573b1954eec3918338c6ff293f657caa82b7da undefined +682be40ecb58f07e00b60768c7c2d3bdb9daeda4b7e42e8c020c79adbad519bc undefined +de6c112627f7c14aab1c921ab4553985be913ad7afc63c235cc9cdf1f5576c88 undefined +1e128ad71f13048dfa1715e135c48e51d6e97e349e86c1d4e8ceb6222960ee91 undefined +72047eb931239a5d56d655c4ce969de0059c00adab1ea749b24fe97cf9493e83 undefined +dc996f83a4a8245becf8b86915947eb31bd27c4765752451711515ef5abe00de undefined +cf0261609d7ac9dc80a6589909f83d34930054777fafd61d1b6e9324d64c3abc undefined +5359385ff0ed3f4c86841e6f58c94c5a0c4d82cc4977d680a2455ea0478a3309 undefined +32fe40c97c1c8d86fd7bca5ffb870634cbea98833c3409480feba26a5a03b3df undefined +2461fada50d0dc015158b05965694dacae4cda06ebac1be692c219c890038e22 undefined +ea7e3d3415adf85a92d8c2a74b95e8f199aac56444d288cbd1c9510d378ba01d undefined +5320f117d0b6bb1de1026ce9e9a5c8f1c142c577a8afc7217b42a64b3ee6bb47 undefined +94981a09a08c1020e6938a5314e12c53cccae276f05f94c09d4bb12e20b73eb5 undefined +6c7132c6b798d41f8f87e50dc77e2cf233257531a31dcabbc900352d43af4f96 undefined +334adc825da80eafad35bad5a07c2b30e487d3dc6189e346ed34afc6c191043a undefined +8eb12f06ab5ca863563a2e799a4c1fa9530b5e1291edf46deb05799354a66398 undefined +4297cf4ad770d4162eee677696a0440ed17d1f9648c0058d17a4595a1860510a undefined +981c5e139ed8036c5e6b913097f910e36e235a4087573838f4ac4a0fa28fc9a7 undefined +22ac865c92d50aa666fc8dd52833bdae8f054194a0c0e5065e6be6d646ebbeaa undefined +c586558d477314f2c6d245f3b2031f9d4d86ef8dca4c9f921c1d4580b7e221ec undefined +a95a6a69869ba7cda7d40ae821511ccc3b8ea3aff9cbba6c96f7c438a69b3a46 undefined +4082d8b0d8bf6db7c156c061613458f53df6182639313e52b9d08a745504aa23 undefined +ecdd10c185f8e43675ba00508a5ef94748c8864cfefa58539ec0c28f828f8692 undefined +8b15dc67589fcf6678044bc937bc6aef97c569208c0d5634290a3e691743833b undefined +f25af4aa034fa2033fa56341bf4c3e6efc6015d1a3ddccfff98d258a4db0552b undefined +ae4553f5923f36ab8f0b9b9b35a035c8982177252e3b8f827af7ab5b5eb37952 undefined +89d445258b6eae733242dbde23e02837685046a9ec18bbcaf9ec2b0868b44077 undefined +ea269447b0217e04499e910359e2a1e821e7102904d82dd87cd0391ba6c97c53 undefined +c66fba290f3ee6b3e70c36adc8d2313acbdee5f5a6960212f7474d1717a1cfba undefined +615bdb704ea50de5f354bbf2bdc6e3d889eaa100df38dd73d8bd63ffdedf640e undefined +637e80a3c6fe7f9a37f4c3e56a14d11fcfd042aae5c14a50be6ba89b96be2013 undefined +57c4cfc8568b32b8b9dd76924eea8bc9756f8b35dae6f7e9a79b70780c2ed1c6 undefined +e5d4960bd3592a5cfbb3fbfa6f1517407ade44f6c880790e5d7bf31688fd86a7 undefined +8adfe858f17550daf104c51f44daed1f602764e1302afa3edc79d8e0a64d906d undefined +db78fcd8ece9164d637f28d27b5cf7716926b306c802d5d55fc30fa9b8b52663 undefined +acff669002ee2a2c4711fa806a27acf06f3b51d6ad560c12ca8cfdc561606bc8 undefined +6311cef80890da8faeb86ac50f751519a43afa58ccf175e4ab684293a14ce28f undefined +e4d37f9b9fc6f905e3564dc6e9d9500d477d8efe1859e334ddc7b25d63e1ba81 undefined +27d0a9ddbfdf7bab3417902c370fcd7ebf2a5e52cdbdfa6e87b16c555c60bc84 undefined +39c4e569021633ed751be7c0dbb71b57f2e6f458b676e8b49da5a94ad34ab9a5 undefined +dcb2b8227e9ebe335c1b1ce57883545d86ac39dbe9451cf2344e35f877f1d4e1 undefined +a2aabb57d79639f52970046864540e92d4a725990730b3d027c4d703428cefba undefined +3bcc1b6def15d0a97a977a322d5d8a9c5d40cc0ac89659b36faf1aaca4319b2b undefined +02ff6f866258408536b64005f39b521eebb899f22b67dc2b3eea07f7c753c081 undefined +ed23dd1e6ac58a2e941cea9390aad8aad9e56e931c8d6665c3ef927164ca7b3d undefined +8874568c7073933e8b8dded479f1792c4f329a9a6d5fd82eaaf5ac9b4ad4715c undefined +2a693cc990990056392549be35706bbdbc1f756e6641a02067b09c497e236a2e undefined +f36e0d6013730c35c7cf569c611e746e7bdc9f4b83477aecef68b9d06e6bb5aa undefined +e00ef2570e832374a7d78628376133890ce2de06887f5b101ab262914f95961d undefined +87e077b6d405eb14d2b2f52734b307e208f93311c2e2773158df19c4091a5481 undefined +b5a4c03ce933e068f5802c59d22ff65037a4ee7ea2b610cd6839ba7d47fe96a1 undefined +7dac6789ed3542878c177802f9683dd4e2753342c9804a7b44b49178dd1f088a undefined +9970d29fbbc0e24462d36ce7e656607a0e0e01e6f59bc3f5382c39b1f81d6cab undefined +e5fd01da8762bdb01c4c4ec12c7526315298dd448bf355b763f8338f2c5c779a undefined +e5c1596b61e2868d8e0c9859e9f3487ee44781ccbdb77053cd68c4970cb00f7b undefined +e362838d8b4cba6b452ac10c3d002905d92d97f464a02ebae5dde0d1fcd4561d undefined +c17819ac95227188837746d3267005194477b8b82f49862511e09133400d2114 undefined +43cbdf7434a2d8a61c6a0e30f33147dfd1456623316f58f0b79319742cb7ca6c undefined +95109a605ecaf07e4e95c7129f51a5d8a06cf1ec60a4ee6cebb11e9c2ee41058 undefined +d65f8802d2d77a052ffe0b49989526e27a174e626d08ac990f03b620f3e03c8c undefined +bf2a91e2554925831c11100df9fc6b7aed7d71403471ad4841722dcf0f5030ed undefined +245c81b5f8d959c8b1ec7cec92207ae15bd9f91e400153bf059ae516661e7b9b undefined +250b711da92ff0fbd7e25c5658bbf5b31d707da62005f894db5cbfbe2b780f38 undefined +dcca70beaec770da54416313fedce23c2d7d76d3baf6d57c1b500822961526bb undefined +a453b0975ba7bfcfdf1f2ba8755e6ab5212d6acdb4418f5a48eefe7440d59a8d undefined +b6f84049301bb032b6d000343f3f27ecfb16801a4ab7942556bc0209335860e3 undefined +1f48110aefee1de915c4329a6d6645a80cd8a85bd523c352385350dc1a44d350 undefined +527f4f57ee3de0ce15da2db95947da18dea667a15ba67443db8f6ff2d60292ba undefined +84d6c6d1036034a9ca19e5b7166d5715e5e431f00c57bf7ef20fe7fddcfc6214 undefined +dfa66cdbbabad2b918b055de69855edaf20fd4ad98aba9590a7caf24c8758ef1 undefined +8e62d9b91fe5f919bc06f3b3541a04c0d7c8bd020c11e6e8c28a8a077a1c3566 undefined +4bcc37c5a300938a020e1ce1917c4b5fb4157d7b8ec53d9fd8250e57632c0f75 undefined +1d93343c4f91fca6b257ad565758dd891c0f2eb5d842f0fe2183c02acdf82843 undefined +bdfd0092b080004a8d683e2d56ff32f0e32bcd529d32db49a55172efa12db803 undefined +f02e248b5e88a036a89eb03017554ee580bbab55ac3a076d40437b1c25081fd6 undefined +e206dafabf04e18ab83aa7c04bf7a5252055cc35b7e179c429df9e8d7cb49598 undefined +2050cb3bff93768bf937c7aa1bb9cd70fccadc477b7c3d79b9504efe9074a6ae undefined +8347667c298c56c36ff18fd6177bc8d7f571a2411004483fdc7eaecb9971aeb6 undefined +8b39f066202a859cffcce83610bffeee44ff2a0f72c0a912aacaefa659d184b6 undefined +91cf30e90a7fcc2562d571181951984ef33a4abf70ec33a054f97f966c3b0d60 undefined +675892a23ae68df3a5b18a557dd4f37138ef2e6947db16057270ba4ad9fb5837 undefined +6d435d95391f2ac7fa26366708f555f9415113c18323be3cb85b85ac4104495e undefined +2f6415835d3cab05cbd5d9515d4dca1933b8dbbc65c36a4a0cd7d5a8b08cd6fd undefined +648433b59943245cbbf3b0769b07011c19e84f503436ee9c3c080948332a9677 undefined +96f6aadf5815433f500d114e928b0e8d7b5881552d265e32e2414e058fff47b1 undefined +0521319757c88f9b20e7b8d8bdcfa8cdbcd3fca18c7999c3f000d8d100d7af2f undefined +a8ac39a66e8899fa750fe171e85455e4085ec44ca5c08280dd16f9a6f5ca07de undefined +29505d3b0bee6de173b4d4fbb2ddd504b80af42e1a81d101d89f1da644974eb5 undefined +73858b7c8a5b770c46501b91f8e7c7eeaf6d1665c465c56b668317ab2f30f961 undefined +e0684c0955ac41d2f2c5da5ec00d015ade7e1ed4c80a058ff0c3629b1dbd1006 undefined +f505393f9bf5124cb769da9fddc11e8b49f0cf7a1e95c29b2433d5aff50b2c2d undefined +ba57a7ae19838e67dc7cbef09fbf0566cc6d23ec3d7ca0fd1499b56c8e6ff7fd undefined +ecea72eba89e9de5f06bb392125627589dd0258160af791392757afe87638cff undefined +acc36747f1b63231ba14d8b91ceac2e7e5ae92f4b08dfd8906181387ea5c21bc undefined +7eb12f4ee9b24853f2cb738427ec7cc3721b5510c08e451f12bc7acebd7681a6 undefined +531e3df0378b873365886a3b1b42338c0c7b56eb46f3772b1d9874edea5fa3a9 undefined +60c49441ffe2a7e74d5a3b6b8128fd064d4165a2b917b3c1ef1fbd0204832d43 undefined +70b997aba556176bbbdb8fe538ca5b4f276099a08368b0f9ad243585fd71e79c undefined +dd8374eaf370bc1e21dec8f47242dc4f93aab3a26e45564fdbc27fc1537e0ae9 undefined +c15b0c56917befaf920cc353de4d7ea9fad6375ba5ae1b2cea0c6eefa435fd36 undefined +a0d9e579e5608f427526099793164f9569547fb04003850fdee5d901cd2e7e1c undefined +4ef8ff1c3c297dbeec673a5e162e09e9e673a317a16b32fae00fd43fa181533b undefined +568f8ec135ba880bf3e09539aa83e3acee1cc331e6c35e2fe7a08a4ea7df784b undefined +36e3bb71f510bea9bb5b08d0636789b4f67132bbe65af9af0089cbceeb20662f undefined +687346fa23509c00c0fe82ec9c1064d082d0f258ed8406c3a9cbef5914fe900a undefined +81c79f7015d17fae167806545f635e1fc75cd44cf4fb9588d1a5868e65b0abcf undefined +eb5259e868c97980df83aed4163046ba9948214e1282316eb8f458949b8c3d03 undefined +f4ee2c7709fae0c17a5c182e766b9027a530de0e7ce275b9a620a71aaeac8888 undefined +4e11266e636fccdc532ef76835b5acc8fc9ef90b2c7c2b2abcd20e7ba7274b4f undefined +3c9e9472cecc94dc7243981f1f57151a24704b14f59e14b48a0589b5830026e1 undefined +fa4c6cf47a1fe81a46075c86a6e4c13c8792d0fdb2a8758a448534130b8553ed undefined +87c4ef73fc4b35dd795ccf7428d4ab6ce6d8742b2ec42a1a22bedba0948b0a63 undefined +f0419fea2ffaf18e19ed61411b978f1b1d3307c3c844fabfb016925e9e5397b4 undefined +593a27aa310ea977a8b399f4d42de15e0eb45e5efa2de525ed233b2a6d53b9eb undefined +c4012b31a344de6b2bfec93be92ca844e9f9b54a25b9dfd7be7be03a90c78520 undefined +2c46783b3971b2834cdf74bcf0c2b69278b5b9846b82b29bdbae1f59ce6c0021 undefined +e9a8d5debc21cd1296caf4387d625fadb2173faa51678483b77ce7834950c5ac undefined +0661158d78be6117b9ac0bdb7214e09440d9e0bfbecde4258c75b19e882fb007 undefined +a4cf573294e805aee11f5a12101a9360f57ca3dbbb18ed287a774a0ee153a968 undefined +dae078cd22f4a27ab6be22401ba5158981a9bb3114cb3509c1acdf535955a6d7 undefined +d233230775c18a358a6bd06375f489e621871e8e537798067e3d74228345e38c undefined +81ba98b9796c38569e6cf7e5ee78f6f014a19a9b589e163dfe4a227e962ef3fd undefined +53df80a5482701dd5060136d1bf9aefb20bd34263be9b2c1f8530a5012bd43ed undefined +df9bd456f8aaf8a23f2c967d511596b476e97847261c537a850b5885fe25981a undefined +29717ad5489dd6a12cadd1f9eb999ccb5dc33d6f88d9f2f44b912c1d1a7fe86d undefined +0f98a4f36b76c1302191ef2341f95f242fc91dcfe770c981104fac88d942bcab undefined +4391e0b89f4b907e901171224ec5f84ab4d459f26d1f8864c7989ae3de208ee0 undefined +1ba263a91fffbaf4d6f8e48ae458c86d3035051ef93045aeb798210737a8b109 undefined +3b857293fee1cc26bacaa2cab5f2ec2d2890c59baf116041fe825c978c788fb7 undefined +6cb8b67ea14358e873da6518d69660567357e47f2424224c08a99da9aa3ce259 undefined +30378aeba22d3443e9d03a38b2e3163af9e000a8f8835e98087deff68ecc6854 undefined +d6459b0f01b7a882bb9f66184efd9d0a0ad3b67bb079a2adc995acaf062a9540 undefined +768f76359a1792b44977891db0cb52e907798ceccd8f6b6a032555d49ea9d511 undefined +8eabeff44d35af5b6e3c6e1e44f403bfc79c36e17ac6eaf7e5f7c465602b2d3a undefined +741ced4c93080c97ef5736e1810f36606b4302fb3078f3c49b95c9f0dbf8ef9a undefined +ae462521b23a7dcadadb42f16420a504bf3c44112ccaa326f06c6c485facbc28 undefined +ce6d9570e58aee0dd3a7f91db3ec6f75b7c2178917429fa0e826d82fbb9415db undefined +93dc26c7555a1d676c7f83d263eb7661aa80ea1034ff3b275afec230e16c1179 undefined +2fba655928bef3b17a7c97fe07696a6d5a6c0c3460c4f4bf42117323c90ca956 undefined +6e5973ba282c25f9de0869cb00bc4425356178e376eba03e141c253fcb7a41a9 undefined +53006b1464419026c19d1cd37fce1e94f248250a4397f8bcbc77526f0040c239 undefined +24eeb9e7ba79e3d2f6a72e3a3a540e53382c38bef089240426b9f1390bcbc0d7 undefined +c13a69ccc9da95749e9e58794f1f0fadf04e220d528ca557304a913926f74e01 undefined +74a845149c9ed1c4abcab583df788c7de1495b36ca2d4fb07a2720d1a399e195 undefined +731e35a5e9d2211b276e96b4eeb90106079464ef5c61f1d0e2f363c55df8ccb4 undefined +c8ee6cb8225d01300c0d95f132f3493a9cb3d0f70af484c1010beadff3aecb49 undefined +d353e92fde57c4d0c6110c41e5f2cacea6a0a74807e9fe8b0c4d45ea2babbaaa undefined +09bf4a8e66502f1709ec19cf025ef4f84f7209dde95bad98c3e719d093f09bd4 undefined +f864721f09b7b21b74cfd3eedd05e4521bdf25390e4a8a7fe6b0b411a427aba1 undefined +6c66aa50994a5c830f475451fba82d13a6f1ae8d7fc7a4b9fe52ba317bd35e78 undefined +6e02c0250b09b2ee0a679ccf75740e9e041a8f4033ca507754ef20ae7bb3c2ea undefined +da649da3a45ce7987c3880971a78fa6137b37c99eb137b8a96556a4521a18814 undefined +245a57368107ec067e8d95648c4ae3807e6e13e1f759ce129924ca55f1358342 undefined +da48455b93b1be9e5b858647ac0bb477a3b25029d7f97085d1ebbd8fc96afdfe undefined +b19e26898c3dd4d70b9521cc93b3358c6309b08737fa27141fe75a7a0baf7d8c undefined +470fe67b2f638c0d018eb2f3b545289d3e69ca7e17e1852fb7c90aeaf16f2c90 undefined +c377ee097073ec009f0fc253229dba851fb7ea4bb4d99943dcd54224f7d6c3b7 undefined +347c8415c6456dbf6d135ff3025b456a45e1c0b1291602356b0ac9716c823b5c undefined +51e3847ae33d75cec61bc5a4cc558626756f2cd02c4d66aea2803f6370d32065 undefined +333af94f6a65fc181efce7b1ad1cdceec4e359ab5f57c997f4ed2e135e2cd0cd undefined +e4a99fad34976d3b23ae44b81c8b1be1dcf74ae57766d2c5e3fc65792cc71ead undefined +d87102807c5c3cadfd85fa662667720f5522499c04d957af7e6ded2296cf42e4 undefined +aae0b10eb5df281940a23d66bcee718650b916709548ae3bf96495eb73ef813a undefined +57f3f7736535dc8a8c289351c056cd8eed5f718e1059ef5dd81cca80b58ab2f4 undefined +e93f54f8e2f5aa6d9510da1e1ae6e28998879635d9c81aa3e38c7eedc9bf7865 undefined +a6b202771e1b73be1df406f2593e80f55825e2822bedc5aa6943e3537d02dc3b undefined +ba2b2d35529c019f0cafbecaf19a7c2d4d81d952704b627d06a52047d953bb70 undefined +f43d98983b6a2ae684e700928db7033f440e71ff470bf9a4872b408f5c113547 undefined +c57d7f8ef868bb212b7fc98abd70cabef375a6129b8df17fda6939e4594b2531 undefined +5b1bb47de040c086db5eaf96ec136c2ea73399a21a808c84845bfac763918a44 undefined +477c05662798d20549ceef580c5f55494829e475d1da37b16597560f8a208c9e undefined +c0aa4d8da69608b7306691c62184187d4186bc5d948cc365244f92d436f872a4 undefined +b7e59fb13a758e29c555c01ce37ab5b6888b712d2d46ed36d3cee4e61533f546 undefined +f298790a26d4e1467dde61cc7b467458c62c53bde965e2722f58298f02ec234c undefined +37e11dcfa7feea2ca6e269e8e665a6606e73c52825c895243980b2b6fc966421 undefined +5c38dbbb58f3cdb069e8372edc9f14af295c78982f46f4631cc9e0dbc8b226b2 undefined +a9705f7acab9b2f673eb07c57fb7a454a945bd9b461e7faab44ffd0a66e73285 undefined +c2cc0165d40b50229b2dc01f8a8a51cf33066b5135e25cb1d01ce2618a6647fc undefined +582a334014d9b4377ec68aa38cfa184e293220e2291fd9fa547739d174cd8d6a undefined +d4ebc7fa6fb8da8ee7b344e77e3ab5c3529a942322adb5ca269cda3325a5061a undefined +ac8a090887831be5f6a650a29b75c2e71d1ecd85b2d0abd0e79472f7b1bfe2ac undefined +9deb3d20a065d2205bb922df29b575dae14f4478bdaf11a529b093353eb58d50 undefined +51c20fb42661390295c0a44e1b1e232a372e6862cee73be047f3efe1263f4cbd undefined +8c89b095c020924d6a83ab6b3fd0b1534c22f1589447d707ee2634b148f46ea5 undefined +33311c8ed56e78b3cc123362d41ad80a449f0135185e80cc5f45d3805945ec33 undefined +f89608c5880e8b06ac38d2f501d8f7328041046b754541a5c729466d212282d9 undefined +3699c2e99ed4119068c3dd1de9d7e4ebdad41bc6a68bca5b612a0fc5abc3516a undefined +894850c6dc96e209c09994694fb5fa5069a34f2b3d45239334d6ab465cfb7e76 undefined +9370db062e8bf8fcc5f7f7d5f62c46b37ea8edc82ec2ec56ee12ee74e72045c0 undefined +caaf165a77e1be2e4e63de867ca5518929d2c2b5cf212d443431e68076bd95c9 undefined +ec08517d56f57e526d0cea474f57dbe35ad9ea0230a0c9a4dbdd74b384953a3e undefined +d36e7e1ec8c7ee15c4783f8b05b07a9ab3d6cb39008a0d064b7287fed8810145 undefined +c42e31ed23d9fef253bbc0eae22ed372eced311bc4465bc0c254628c58bcb69f undefined +654599cd84c19bb73a25940a0af695886b6ad7be8a6515b122700b8c95e7d7e4 undefined +aa684cf50d1a36d6f1e10128e180807eb81c155abe2e617de10c33a3174fddb7 undefined +f71659dd9382d70b17bb80812cb0e2e4b94163e56293d32f2f07bab941fadf68 undefined +8d603246bbd6b8ee8fad627adec6dfd0a2c48fe4fc91b23c36217f41395dda00 undefined +81e2e4c420a42d81fd51330b631860c7a6087481b2cddefd601dda15d6469e54 undefined +0ba916b9fa085a5cbde4306b4dd8890ec32c7fa639cc95200a8b093393c42961 undefined +e4c7857c54146b38c3c3444ec53b3b55a07d5927c4886fc9f146a71de9e7fff0 undefined +ed55ebc8f90e9d95a5f091b109514356b31b87bee73c778ef3a9875e4785b5b0 undefined +128d9d3ed9d818b1ea6ab24cca781d2b52072a8f227b7138580fb603cde70648 undefined +71c85a596744d3cb8d86c4b7e9a089f53da41e0c824b682bee0a9a9796e3dfb2 undefined +75ea9c07f552532feb7e75ca51ffb7f6299a44ba19586f9a55bf74b2ba69812f undefined +b356a7f9299abd625950a7484284d7dfb2e1a8adff80326bbd0dac493d258c7f undefined +1585b8fc051a038562ddb079f4696522905fc260d9340fc8b68b551809f2a68c undefined +32383b44cb557269f919b831ec96ec3d96ff77f085303a0f962de4d717ca8c53 undefined +7680e2e75f5e21d9cde2286af275409ee486edc23c204eb18a2e23262edbaff2 undefined +3b3e98c678719b0a0fa7629aefb51bec0f2c709450471bde112c370d22943969 undefined +f353fbcc42395b57edd473d9df3832f9428410ca75f7253659ca4d2f66b26b3a undefined +c5be93ad397478a7ea0a61a304dadc23e2684108f5671792764c2479a05d35df undefined +7842538419f3e40b1400e3fe54844f015e39804eaa64b4d73113e4459948e1d7 undefined +e0755c0bd849437945296ce8d622adc506342782baa4f6d62ccd3ca3a7a69c10 undefined +ebb60db3a7b6464661ff5e445a6907275b7e4c1b71d9052ed5bda044c5f735c6 undefined +5d1db0176e049ab46a056d42a06edbc876211aa3df7f0db8f4df6ca97cd813b7 undefined +9f4df2d4b8bef36224f782eeb11e80f791019b9a12f1544a330f45b1b5c957ef undefined +96d0d90c9807ca892fe6142e2884e953ea89f07312731515ea57b3b39504a289 undefined +f722bf5ba13c1410e7942aafbf3ab6699ae077b85c01a2e4b9f887540125955c undefined +3186fcea6aaf8e0ffd0b1970c7abee2e6415fd873bfd1e1c68d4bd10c507355e undefined +34fdaad5a1257a05ca2b6e3484f050418297aab2f2dc5d47f7c489f0c64a8924 undefined +584664475c8ef6ac2b91f86b3483aef20087d66639591e411e1586a5fb45d525 undefined +18dd13835ab4ac0fe9f5c63995edcd7eca9d9fa7673d1e4bf09bd547f0620c13 undefined +4876518dd34e069f76981f9da0d405fb50ecf2171ed5c59126762f27051d3e47 undefined +d32c592bde108f60e963730872c0bc842e8e083be9ecd998bf3d88cf948ccd63 undefined +b6332c3b14c225b3fe07cbd89ee8a088f0bccc0fff47d8ce4056a4c028b5506f undefined +78d042c67f04668695f54fbb7eaa52ee39cd65a2e8eb1e27cc4b67f701e281b0 undefined +7ac9eadd346a6fcf03f9b416d249d6f83f999372896a47b1270f699650ca7cf1 undefined +ae6e9569173819c9cfbd4164933426d6d6f1f2b04dea035f27efd226e0c62857 undefined +ea7e78623e93b22a1d5d1eaa5f5248c7db41216c407c4d247f01b062571352b4 undefined +a144cede83260541363e8ddb5d6662b2a4ef4023ef234d1b14089e719a74ec08 undefined +b52e1407d6f80332dc448db9f17df4ac590f2201a29dd6764623631ddf967828 undefined +a52de05d75fb288117d62be797a245cc6b70c99543943ad6423c2bf584ec39d2 undefined +ec790c4d43713773d40ea7cdf93dd90c78b0d35e99fbb0f236798fce39bbe99d undefined +5144d0b7b033a4f1c39a83529d718cdf9eb13edcfee5e838b4763baf660a9983 undefined +04f2433ff0dad74e60a488a87046308708bc6c2540dc5a20143c708040e22ce4 undefined +744fc9bb9848bebf64c78326d3bd6c21f018ea5dd2160d16fcb1816156ceb75c undefined +c41bb7c8ed04bee5e8d4a319697e3145a8b36faee3747f48bab930c4272b2836 undefined +5b42603e64362e0854dcd998c58e702afc1daf4ac6c5484791e4fd20978c4921 undefined +a64324c10a4e9635abb03e4ba7974ece56c8e6c9d35aeeba1bbab0e7973cb57b undefined +0c98989ae5461aa26cf8cad6db61358ae913d0fe05714341dc2cd01826fb020d undefined +cc772953ea898e66fb6d915539a0b78080d314e424efc338c293ac66ef566ec6 undefined +08e3498a864752bb42ad81d274cb5190d71fbeb634ba5a81c6f9353e283bb26e undefined +502684477e6837d73b3631900dda5f466c0409aa48f91300b6858d824989c959 undefined +9cd46174293d3232d3dcfdc7138bd3fae732e7ec60a287404726ee576bcf8817 undefined +3bc60d4a300f52797c90cd87a1fabb5e8fea58e678f1c27c0e84bf1ec95a5db3 undefined +09fc5b44ed933dd228907cb87d2767abb98ef698eca01f8a0cfcc37f8d5699e6 undefined +1a0b0bb30f46b6d634670f5a31f015b2fdfc08f2dcf5b46ea5b4ff4c3fdfd489 undefined +c879ae7cc3d24aaf205521aa5030c13c47f851f75ffd79d3fd9e877c6dd68a3f undefined +7152243431a34ef42b837c7c323dcbd7aea8619bb3dc63908461bcc683cb4eca undefined +6b60d70d7b10563148a4e3e239f924a3cf1478b07d5f4d67507f6b8c6f6bbf84 undefined +bec1b07dfbd2598e2261b738b2aa1d94f6daffc02fa51a554c670133e97d83c6 undefined +28c650849ec1bbd488bb44c817b03f952b2c2444524d5d3d1bd02332aa5a6b1b undefined +7de63bb049e16f317f06d815e02603653d2c72d768908e9664a2b40270ff7789 undefined +58a17d2924e945caae92bfa42f83a50b854a535da2d7a37ff5dfaf86184d5a94 undefined +eca1db6e77e2b8d172b83167cee7050ba0c13f17aaa4d2f7d9a70c410bb983bc undefined +e61ea92f472e039b1feeaf8c6a50753279c6c8e448d15c7fb3a03f852f598f9d undefined +825f16724c3cc3535e0a58d0cc417ec022f05bd6b1097f325f623066f0cd3f39 undefined +cc3462902a68e54f132eddc09f7d5afc1888fab3ce2f2efb09385c43776d43f1 undefined +b8da9f11c7c4e8e5f4a1a1fda50b0c423351c062e5e0eedb9656f17b7332acad undefined +81be9c227951a7b231837c258018f0c2f794a26702aa3ad7ff62825a8406a1ff undefined +ce8bf185153a79f4648df644dbc9a2527ef64d9a392c2df8ba9cfb8f62e27001 undefined +996acd11e9f3a2f1fc0dd9583ea50af5447effd5bec4c6033810b62714835be3 undefined +7950070b7868b6e6748ca4c33155cb1ebf71caf7b6f31ad2a0cb4d7dfc95638d undefined +e1d30230dbdb2bba21665caad99b16967757af58b30e5c98505a22abec21b84f undefined +249897d0350f938f69f1ec2aae2d94ea419ac29f17baa95fe7e1a22e6efa739a undefined +c53f264d0788cff731835d6f064d29279cd88985687fb04d9182db8069b7d788 undefined +b4314ad28b44114ea604c3ee311732234f76fbcb6672d262f192ca8a877df3fe undefined +02fc6c54b84acc9c8b78848afd3aba1d92d7d46fdc700d6a785ca093c50a07c6 undefined +6905de9ff33881d80ed9d4bc198a4d0e530e28b1bfc0b0b0cd9782e9313e8387 undefined +5ab6d47a6ddeb7236e203c20dce01166afc8895739df181c2b08d0c5ec329ce7 undefined +c5870e6abd50f9a27a97af880a38d227b6f6d92f4b1bdd97ac2dcbf944d9b2d0 undefined +0123f121d41458b14ea186d5c8c2700db21d90f1219d9daf4766f0b5e0f3c9cd undefined +11554774f1285de4d7e4e0c89be9062f9fe8f861d85d07bb21d50aa010ea3db1 undefined +253baba43558b84c0999f5409b31bfcac6db47b8e22e2e96e49b8512dee9ee8c undefined +bdadde436168720ff839c40202d6cf162e8551f9ba4257c9731be8df96a0cf9f undefined +4b87e6af4e3f0f725bad81019c3a8e6348673cfaca5007a528aca4e586baf2d2 undefined +f209676159d85c5989b8e664bec835437be505ef26169ea1009ac20d8d98ea82 undefined +47bbba4c86244a696eba4486dfb7099868271ebb62471a8ba5df2bf4767d323b undefined +faa8e3b855d56d731823c5c9500eba4c050255dcaef55a2c78f78f158c4d0465 undefined +4a41c15b0470d1880c762099cddc9728b35ddec4ff5b53d0bf634cbe77c2d25c undefined +1d13c91322c417bdb053f4d9f0156bead3bac693ca97d47b6950f4bed6ec73c7 undefined +15ecbed1b0265c8a980f4673e772870e98419f5476b61e5ecb852adab7ff75dc undefined +35b9228a01db73d5327681dd62ee75f99232cc1b0fad42fc067fc69995b8cb89 undefined +19f7eb8d128ed76cd2bcb15cb88d71c6aa3a70ff71a0527c720a8be242720a0e undefined +97d9eb059a465c0af7086531d316cb84ef7a63ae5d5cdf2d9952528901a4e97c undefined +062aa6a7831dde23414ae70090952624a4832c3b1b23d92884d42346f03af5f6 undefined +66b10a3f29a74ecb0a57c02f46097feea4a2c68a9d7fed4c7454a5fb0c79f0b7 undefined +974317f8a1349ca8e694f3ca4c17dcf1bb6d070a96da33b1812f0b6b94d504dc undefined +1cc9f2cfaafda04c0d7f516d01712f2c06f04560ac0cb4cf89034d10e9964620 undefined +4efc1cf32e9501974ac1bc4901cfafe2bc0270bffe30238685c87c7f33b5df21 undefined +0e59a699a7b9679fefbc462e719463bc57dc9ef5d6c9ab5b1052f5a62c2d5571 undefined +f175fee60c47b6048aa1ca9f99d826f4cab071aa692ea609b5ed37e6df200733 undefined +39f1756091af348eaf13b56d578d7be5881a00ef5047f49269d63305e2c73dcb undefined +e02b07f5731588461edcf53e6ad8b02fd84ab86de8c5adcf10be21c5c2811033 undefined +a5ca1f35a6ba516bed60438b9282ba6f660a6580fc91554351e43c0f43824b25 undefined +88413df27ab22e01d34674ac43821d4010af1a3dd4be4ee0b77a33d312521bb2 undefined +81d3422c7b4bbb1e217d0ceb4117f47ca0c2cb685714869d0ae854e33cab8dca undefined +8aa288d2046d388aee40544502a976cfab5e5c8535222bec8b2202e1aa804765 undefined +4a22891ed0b9dbb84f2c70a475753192883cd81be361721f56bb002754f89914 undefined diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index d9d39af6ec..981fd1ffff 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -10,8 +10,12 @@ + + + + - + @@ -20,12 +24,19 @@ - + + + + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 6aa51cc26d..fbb730e0d9 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -10,8 +10,12 @@ + + + + - + @@ -20,12 +24,19 @@ - + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg index fa96aa844f..1cdf677081 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.dark.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg @@ -28,49 +28,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -188,20 +190,23 @@ - - + + + + + - + - + @@ -224,19 +229,19 @@ - + - + - + @@ -245,55 +250,55 @@ - + - + - + - + - + - + - + - + - + @@ -307,97 +312,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -411,37 +416,37 @@ - + - + - + - + - + - + @@ -453,45 +458,48 @@ - + - + - + - - + + + + + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg index 9705d8c4f0..bb533465f9 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.light.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg @@ -28,49 +28,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -188,20 +190,23 @@ - - + + + + + - + - + @@ -224,19 +229,19 @@ - + - + - + @@ -245,55 +250,55 @@ - + - + - + - + - + - + - + - + - + @@ -307,97 +312,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -411,37 +416,37 @@ - + - + - + - + - + - + @@ -453,45 +458,48 @@ - + - + - + - - + + + + + - + - + - + - + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 2dc7d9852d..6e036f0f2f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "28.0.0", + "version": "28.0.0-beta.3", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "28.0.0", + "version": "28.0.0-beta.3", "workspaces": [ "packages/*", "tools/*" @@ -3970,16 +3970,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.0", - "@iosevka/font-otl": "28.0.0", - "@iosevka/geometry": "28.0.0", - "@iosevka/geometry-cache": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/param": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/font-glyphs": "28.0.0-beta.3", + "@iosevka/font-otl": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry-cache": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/param": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "harfbuzzjs": "^0.3.3", "ot-builder": "^1.7.3", "semver": "^7.5.4", @@ -3989,103 +3989,103 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/font-kits": "28.0.0", - "@iosevka/geometry": "28.0.0", - "@iosevka/geometry-cache": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/font-kits": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry-cache": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "typo-geom": "^0.13.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/geometry": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/font-glyphs": "28.0.0", - "@iosevka/glyph": "28.0.0", + "@iosevka/font-glyphs": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/util": "28.0.0", + "@iosevka/util": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/geometry": "28.0.0", + "@iosevka/geometry": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/param": { "name": "@iosevka/param", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/util": "28.0.0" + "@iosevka/util": "28.0.0-beta.3" } }, "packages/util": { "name": "@iosevka/util", - "version": "28.0.0" + "version": "28.0.0-beta.3" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0", + "@iosevka/param": "28.0.0-beta.3", "@unicode/unicode-15.0.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0", + "@iosevka/param": "28.0.0-beta.3", "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/data-export": "28.0.0" + "@iosevka/data-export": "28.0.0-beta.3" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "28.0.0", + "version": "28.0.0-beta.3", "dependencies": { - "@iosevka/util": "28.0.0", + "@iosevka/util": "28.0.0-beta.3", "semver": "^7.5.4", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 66cc13abd9..9697923f57 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "28.0.0", + "version": "28.0.0-beta.3", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 02cb9997e9..9ac7bcbe25 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "28.0.0", - "@iosevka/geometry": "28.0.0", - "@iosevka/geometry-cache": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/font-kits": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry-cache": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "typo-geom": "^0.13.1" } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 6e0b5c13d2..732211fbea 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,15 +1,15 @@ { "name": "@iosevka/font-kits", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index 119d36e62c..ef36d20774 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "28.0.0", - "@iosevka/glyph": "28.0.0", + "@iosevka/font-glyphs": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index 800b235cfb..abf9da2347 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.0", - "@iosevka/font-otl": "28.0.0", - "@iosevka/geometry": "28.0.0", - "@iosevka/geometry-cache": "28.0.0", - "@iosevka/glyph": "28.0.0", - "@iosevka/param": "28.0.0", - "@iosevka/util": "28.0.0", + "@iosevka/font-glyphs": "28.0.0-beta.3", + "@iosevka/font-otl": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry-cache": "28.0.0-beta.3", + "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/param": "28.0.0-beta.3", + "@iosevka/util": "28.0.0-beta.3", "harfbuzzjs": "^0.3.3", "ot-builder": "^1.7.3", "semver": "^7.5.4", diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 7b77f2958b..35731672ec 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry-cache", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs" diff --git a/packages/geometry/package.json b/packages/geometry/package.json index adf5baa2e0..2f1084170a 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", @@ -12,7 +12,7 @@ "./spiro-control": "./src/spiro-control.mjs" }, "dependencies": { - "@iosevka/util": "28.0.0", + "@iosevka/util": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 9d476b6a56..467535f862 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,7 +9,7 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.0", + "@iosevka/geometry": "28.0.0-beta.3", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/param/package.json b/packages/param/package.json index 4748ff0017..86a89ca9f8 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "28.0.0" + "@iosevka/util": "28.0.0-beta.3" } } diff --git a/packages/util/package.json b/packages/util/package.json index 97a3161c84..d96b649994 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index d865440b58..af0596cdb4 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0", + "@iosevka/param": "28.0.0-beta.3", "@unicode/unicode-15.0.0": "^1.5.2" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 04b8253c99..05a3ee4e63 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0", + "@iosevka/param": "28.0.0-beta.3", "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 779b5a1892..3c83529b3f 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "28.0.0" + "@iosevka/data-export": "28.0.0-beta.3" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index b1e4be81d5..6d7d982bb1 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "28.0.0", + "version": "28.0.0-beta.3", "private": true, "dependencies": { "semver": "^7.5.4", "wawoff2": "^2.0.1", - "@iosevka/util": "28.0.0" + "@iosevka/util": "28.0.0-beta.3" } } From ab7b5376df4f659e006c977de61900f799b27789 Mon Sep 17 00:00:00 2001 From: be5invis Date: Sun, 10 Dec 2023 00:18:30 -0800 Subject: [PATCH 55/59] Prepare for v28 final release --- changes/{28.0.0-beta.3.md => 28.0.0.md} | 0 package-lock.json | 78 ++++++++++++------------- package.json | 2 +- packages/font-glyphs/package.json | 12 ++-- packages/font-kits/package.json | 8 +-- packages/font-otl/package.json | 6 +- packages/font/package.json | 16 ++--- packages/geometry-cache/package.json | 2 +- packages/geometry/package.json | 4 +- packages/glyph/package.json | 4 +- packages/param/package.json | 4 +- packages/util/package.json | 2 +- tools/amend-readme/package.json | 4 +- tools/data-export/package.json | 4 +- tools/generate-samples/package.json | 4 +- tools/misc/package.json | 4 +- 16 files changed, 77 insertions(+), 77 deletions(-) rename changes/{28.0.0-beta.3.md => 28.0.0.md} (100%) diff --git a/changes/28.0.0-beta.3.md b/changes/28.0.0.md similarity index 100% rename from changes/28.0.0-beta.3.md rename to changes/28.0.0.md diff --git a/package-lock.json b/package-lock.json index 6e036f0f2f..2dc7d9852d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@iosevka/monorepo", - "version": "28.0.0-beta.3", + "version": "28.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@iosevka/monorepo", - "version": "28.0.0-beta.3", + "version": "28.0.0", "workspaces": [ "packages/*", "tools/*" @@ -3970,16 +3970,16 @@ }, "packages/font": { "name": "@iosevka/font", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.0-beta.3", - "@iosevka/font-otl": "28.0.0-beta.3", - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/geometry-cache": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/param": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/font-otl": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/param": "28.0.0", + "@iosevka/util": "28.0.0", "harfbuzzjs": "^0.3.3", "ot-builder": "^1.7.3", "semver": "^7.5.4", @@ -3989,103 +3989,103 @@ }, "packages/font-glyphs": { "name": "@iosevka/font-glyphs", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/font-kits": "28.0.0-beta.3", - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/geometry-cache": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/font-kits": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", "typo-geom": "^0.13.1" } }, "packages/font-kits": { "name": "@iosevka/font-kits", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/font-otl": { "name": "@iosevka/font-otl", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/font-glyphs": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/glyph": "28.0.0", "toposort": "^2.0.2" } }, "packages/geometry": { "name": "@iosevka/geometry", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/util": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/geometry-cache": { "name": "@iosevka/geometry-cache", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { "@msgpack/msgpack": "^2.8.0" } }, "packages/glyph": { "name": "@iosevka/glyph", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } }, "packages/param": { "name": "@iosevka/param", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/util": "28.0.0-beta.3" + "@iosevka/util": "28.0.0" } }, "packages/util": { "name": "@iosevka/util", - "version": "28.0.0-beta.3" + "version": "28.0.0" }, "tools/amend-readme": { "name": "@iosevka/amend-readme", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0-beta.3", + "@iosevka/param": "28.0.0", "@unicode/unicode-15.0.0": "^1.5.2" } }, "tools/data-export": { "name": "@iosevka/data-export", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0-beta.3", + "@iosevka/param": "28.0.0", "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0" } }, "tools/generate-samples": { "name": "@iosevka/generate-samples", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/data-export": "28.0.0-beta.3" + "@iosevka/data-export": "28.0.0" } }, "tools/misc": { "name": "@iosevka/misc", - "version": "28.0.0-beta.3", + "version": "28.0.0", "dependencies": { - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/util": "28.0.0", "semver": "^7.5.4", "wawoff2": "^2.0.1" } diff --git a/package.json b/package.json index 9697923f57..66cc13abd9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/monorepo", - "version": "28.0.0-beta.3", + "version": "28.0.0", "workspaces": [ "packages/*", "tools/*" diff --git a/packages/font-glyphs/package.json b/packages/font-glyphs/package.json index 9ac7bcbe25..02cb9997e9 100644 --- a/packages/font-glyphs/package.json +++ b/packages/font-glyphs/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font-glyphs", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -8,11 +8,11 @@ "./unicode-knowledge": "./src/meta/unicode-knowledge.mjs" }, "dependencies": { - "@iosevka/font-kits": "28.0.0-beta.3", - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/geometry-cache": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/font-kits": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", "typo-geom": "^0.13.1" } } diff --git a/packages/font-kits/package.json b/packages/font-kits/package.json index 732211fbea..6e0b5c13d2 100644 --- a/packages/font-kits/package.json +++ b/packages/font-kits/package.json @@ -1,15 +1,15 @@ { "name": "@iosevka/font-kits", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { "./boole-kit": "./src/boole-kit.mjs", "./spiro-kit": "./src/spiro-kit.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/util": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/font-otl/package.json b/packages/font-otl/package.json index ef36d20774..119d36e62c 100644 --- a/packages/font-otl/package.json +++ b/packages/font-otl/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/font-otl", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/font-glyphs": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/glyph": "28.0.0", "toposort": "^2.0.2" } } diff --git a/packages/font/package.json b/packages/font/package.json index abf9da2347..800b235cfb 100644 --- a/packages/font/package.json +++ b/packages/font/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/font", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,13 +10,13 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/font-glyphs": "28.0.0-beta.3", - "@iosevka/font-otl": "28.0.0-beta.3", - "@iosevka/geometry": "28.0.0-beta.3", - "@iosevka/geometry-cache": "28.0.0-beta.3", - "@iosevka/glyph": "28.0.0-beta.3", - "@iosevka/param": "28.0.0-beta.3", - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/font-glyphs": "28.0.0", + "@iosevka/font-otl": "28.0.0", + "@iosevka/geometry": "28.0.0", + "@iosevka/geometry-cache": "28.0.0", + "@iosevka/glyph": "28.0.0", + "@iosevka/param": "28.0.0", + "@iosevka/util": "28.0.0", "harfbuzzjs": "^0.3.3", "ot-builder": "^1.7.3", "semver": "^7.5.4", diff --git a/packages/geometry-cache/package.json b/packages/geometry-cache/package.json index 35731672ec..7b77f2958b 100644 --- a/packages/geometry-cache/package.json +++ b/packages/geometry-cache/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry-cache", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs" diff --git a/packages/geometry/package.json b/packages/geometry/package.json index 2f1084170a..adf5baa2e0 100644 --- a/packages/geometry/package.json +++ b/packages/geometry/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/geometry", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -12,7 +12,7 @@ "./spiro-control": "./src/spiro-control.mjs" }, "dependencies": { - "@iosevka/util": "28.0.0-beta.3", + "@iosevka/util": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/glyph/package.json b/packages/glyph/package.json index 467535f862..9d476b6a56 100644 --- a/packages/glyph/package.json +++ b/packages/glyph/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/glyph", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/glyph.mjs", @@ -9,7 +9,7 @@ "./relation": "./src/relation.mjs" }, "dependencies": { - "@iosevka/geometry": "28.0.0-beta.3", + "@iosevka/geometry": "28.0.0", "spiro": "^3.0.0", "typo-geom": "^0.13.1" } diff --git a/packages/param/package.json b/packages/param/package.json index 86a89ca9f8..4748ff0017 100644 --- a/packages/param/package.json +++ b/packages/param/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/param", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -9,6 +9,6 @@ "./metric-override": "./src/metric-override.mjs" }, "dependencies": { - "@iosevka/util": "28.0.0-beta.3" + "@iosevka/util": "28.0.0" } } diff --git a/packages/util/package.json b/packages/util/package.json index d96b649994..97a3161c84 100644 --- a/packages/util/package.json +++ b/packages/util/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/util", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", diff --git a/tools/amend-readme/package.json b/tools/amend-readme/package.json index af0596cdb4..d865440b58 100644 --- a/tools/amend-readme/package.json +++ b/tools/amend-readme/package.json @@ -1,13 +1,13 @@ { "name": "@iosevka/amend-readme", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0-beta.3", + "@iosevka/param": "28.0.0", "@unicode/unicode-15.0.0": "^1.5.2" } } diff --git a/tools/data-export/package.json b/tools/data-export/package.json index 05a3ee4e63..04b8253c99 100644 --- a/tools/data-export/package.json +++ b/tools/data-export/package.json @@ -1,6 +1,6 @@ { "name": "@iosevka/data-export", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs", @@ -10,7 +10,7 @@ }, "dependencies": { "@iarna/toml": "^2.2.5", - "@iosevka/param": "28.0.0-beta.3", + "@iosevka/param": "28.0.0", "@unicode/unicode-15.0.0": "^1.5.2", "cldr": "^7.5.0" } diff --git a/tools/generate-samples/package.json b/tools/generate-samples/package.json index 3c83529b3f..779b5a1892 100644 --- a/tools/generate-samples/package.json +++ b/tools/generate-samples/package.json @@ -1,11 +1,11 @@ { "name": "@iosevka/generate-samples", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "exports": { ".": "./src/index.mjs" }, "dependencies": { - "@iosevka/data-export": "28.0.0-beta.3" + "@iosevka/data-export": "28.0.0" } } diff --git a/tools/misc/package.json b/tools/misc/package.json index 6d7d982bb1..b1e4be81d5 100644 --- a/tools/misc/package.json +++ b/tools/misc/package.json @@ -1,10 +1,10 @@ { "name": "@iosevka/misc", - "version": "28.0.0-beta.3", + "version": "28.0.0", "private": true, "dependencies": { "semver": "^7.5.4", "wawoff2": "^2.0.1", - "@iosevka/util": "28.0.0-beta.3" + "@iosevka/util": "28.0.0" } } From ff55c2a3542d8ab6dad8d9b47ab5b2d18d0c9256 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Tue, 12 Dec 2023 12:06:05 -0500 Subject: [PATCH 56/59] Clean up guillemet section of package sample text. (#2115) --- tools/generate-samples/src/templates/package-sample.mjs | 4 ++-- tools/generate-samples/src/templates/stylistic-set.mjs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/tools/generate-samples/src/templates/package-sample.mjs b/tools/generate-samples/src/templates/package-sample.mjs index ec95b140a6..cd46ce66ae 100644 --- a/tools/generate-samples/src/templates/package-sample.mjs +++ b/tools/generate-samples/src/templates/package-sample.mjs @@ -4,8 +4,8 @@ import * as themes from "../themes/index.mjs"; export const ssStrings = [ ["ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ", "abc.def.ghi.jkl.mno.pqrs.tuv.wxyz"], ["!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm", "float il1[]={1-2/3.4,5+6=7/8%90};"], - ["1234567890 ,._-+= >« ¯-¬_ »~–÷+×<", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], - ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!="," ","==", " ", "=>", " ", "->"]] + ["1234567890 ,._-+= >< «¯-¬_» ~–÷+×", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], + ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] ]; function* makeSample(lbm, hotChars) { diff --git a/tools/generate-samples/src/templates/stylistic-set.mjs b/tools/generate-samples/src/templates/stylistic-set.mjs index ab1ea558e0..e3d01d06c9 100644 --- a/tools/generate-samples/src/templates/stylistic-set.mjs +++ b/tools/generate-samples/src/templates/stylistic-set.mjs @@ -4,8 +4,8 @@ import * as themes from "../themes/index.mjs"; const ssStrings = [ ["ABC.DEF.GHI.JKL.MNO.PQRS.TUV.WXYZ", "abc.def.ghi.jkl.mno.pqrs.tuv.wxyz"], ["!iIlL17|¦ ¢coO08BbDQ $5SZ2zs 96µm", "float il1[]={1-2/3.4,5+6=7/8%90};"], - ["1234567890 ,._-+= >« ¯-¬_ »~–÷+×<", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], - ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!="," ","==", " ", "=>", " ", "->"]] + ["1234567890 ,._-+= >< «¯-¬_» ~–÷+×", "{*}[]()<>`+-=$/#_%^@\\&|~?'\" !,.;:"], + ["E3CGQ g9q¶ uvw ſßðþ ΓΔΛαδιλμξπτχ∂", [..."ЖЗКУЯжзклмнруфчьыя ", "<=", " ", "!=", " ", "==", " ", "=>", " ", "->"]] ]; function* makeSample(theme, lbm, features, hotChars) { From 41a982b69512a4d9aa62cefb77bed41478af2a3d Mon Sep 17 00:00:00 2001 From: Denis Buzdalov Date: Tue, 12 Dec 2023 20:06:24 +0300 Subject: [PATCH 57/59] Add brack bars to Idris ligation (#2114) --- params/ligation-set.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/params/ligation-set.toml b/params/ligation-set.toml index 729992e800..125ef7f22f 100644 --- a/params/ligation-set.toml +++ b/params/ligation-set.toml @@ -497,7 +497,10 @@ buildup = [ [composite.idris] tag = 'IDRS' desc = 'Idris' -buildup = [ 'haskell' ] +buildup = [ + 'haskell', + 'brack-bar', +] [composite.elm] tag = 'ELMX' From 8c7b6e4e4c7312b32dc29a8d597aa8e6db1bbb72 Mon Sep 17 00:00:00 2001 From: John McWilliams <37010132+jmcwilliams403@users.noreply.github.com> Date: Thu, 14 Dec 2023 13:38:25 -0500 Subject: [PATCH 58/59] Harmonize default iota/tau variants with `i`/`l`. (#2116) Also move zshaped `i`/`l`/iota variants to be after hooky/hooky-bottom variants for more consistent serif buildup order. --- build-plans.toml | 16 ++----- changes/28.0.0.md | 3 +- params/variants.toml | 109 +++++++++++++++++++------------------------ 3 files changed, 54 insertions(+), 74 deletions(-) diff --git a/build-plans.toml b/build-plans.toml index 52e81a9c96..21c1cb049b 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -684,14 +684,12 @@ exportGlyphNames = true [buildPlans.IosevkaAile.variants.design] capital-i = "serifless" capital-j = "serifless" -capital-k = "straight-serifless" capital-m = "flat-bottom-serifless" capital-w = "straight-flat-top-serifless" a = "double-storey-serifless" d = "toothed-serifless" e = "flat-crossbar" f = "flat-hook-serifless" -g = "single-storey-serifless" i = "serifless" j = "flat-hook-serifless" k = "straight-serifless" @@ -705,11 +703,8 @@ long-s = "flat-hook-serifless" eszet = "longs-s-lig-serifless" lower-iota = "flat-tailed" lower-lambda = "straight-turn" -lower-tau = "flat-tailed" -cyrl-capital-ka = "symmetric-connected-serifless" -cyrl-ka = "symmetric-connected-serifless" +lower-tau = "short-tailed" cyrl-em = "flat-bottom-serifless" -cyrl-capital-u = "straight-serifless" cyrl-u = "straight-serifless" cyrl-ef = "serifless" cyrl-yeri = "corner" @@ -722,14 +717,12 @@ micro-sign = "toothed-serifless" [buildPlans.IosevkaAile.derivingVariants.mathtt.design] capital-i = "serifed" capital-j = "serifless" -capital-k = "straight-serifless" capital-m = "flat-bottom-serifless" capital-w = "straight-flat-top-serifless" a = "double-storey-serifless" d = "toothed-serifless" e = "flat-crossbar" f = "flat-hook-serifless" -g = "single-storey-serifless" i = "serifed" j = "flat-hook-serifed" k = "straight-serifless" @@ -743,11 +736,8 @@ long-s = "flat-hook-serifless" eszet = "longs-s-lig-serifless" lower-iota = "serifed-flat-tailed" lower-lambda = "straight-turn" -lower-tau = "flat-tailed" -cyrl-capital-ka = "symmetric-connected-serifless" -cyrl-ka = "symmetric-connected-serifless" +lower-tau = "short-tailed" cyrl-em = "flat-bottom-serifless" -cyrl-capital-u = "straight-serifless" cyrl-u = "straight-serifless" cyrl-ef = "serifless" cyrl-yeri = "corner" @@ -784,7 +774,7 @@ w = "straight-flat-top-serifed" long-s = "flat-hook-bottom-serifed" eszet = "longs-s-lig-bottom-serifed" lower-iota = "serifed-flat-tailed" -lower-tau = "flat-tailed" +lower-tau = "short-tailed" cyrl-em = "flat-bottom-serifed" at = "fourfold" percent = "rings-continuous-slash" diff --git a/changes/28.0.0.md b/changes/28.0.0.md index 24823b1939..714ab9e1e1 100644 --- a/changes/28.0.0.md +++ b/changes/28.0.0.md @@ -12,7 +12,7 @@ - `webfont-formats` → `webfontFormats` * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. + - Influenced characters: `M`, `R`, `f`, `i`, `l`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - Various other glyph variant tags are also changed to reflect this insertion. * \[**BREAKING**\] Make the ligation group names for symbol connections more intuitive, and add alternatives to start chaining from at least 3 continuous characters (#2100): @@ -45,6 +45,7 @@ * Add bottom-serifed variants for `d`, and `q`. * Add bottom-right-serifed variants for `U`. * Add tailless variants for Greek Lower Iota (`ι`). +* Make Greek Lower Iota (`ι`) and Greek Lower Tau (`τ`) semi-tailed under default upright and tailed under default italic. * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. * Remove earless-corner variants for `U+027E`. * Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). diff --git a/params/variants.toml b/params/variants.toml index d48724495a..753d336bdc 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -2321,17 +2321,8 @@ selector."dotlessi/sansSerif" = "serifless" selector."dotlessi/compLigRight" = "serifed" selector."dotlessi/ital" = "tailedSerifed" -[prime.i.variants.zshaped] -rank = 2 -groupRank = 1 -description = "Z-shaped `i`" -selector.dotlessi = "zshaped" -selector."dotlessi/sansSerif" = "serifless" -selector."dotlessi/compLigRight" = "zshaped" -selector."dotlessi/ital" = "tailedSerifed" - [prime.i.variants.serifless] -rank = 3 +rank = 2 groupRank = 1 description = "`i` like a straight line" selector.dotlessi = "serifless" @@ -2340,7 +2331,7 @@ selector."dotlessi/compLigRight" = "hooky" selector."dotlessi/ital" = "tailed" [prime.i.variants.hooky] -rank = 4 +rank = 3 groupRank = 1 description = "Hooky `i`" selector.dotlessi = "hooky" @@ -2349,7 +2340,7 @@ selector."dotlessi/compLigRight" = "hooky" selector."dotlessi/ital" = "tailedSerifed" [prime.i.variants.hooky-bottom] -rank = 5 +rank = 4 groupRank = 1 description = "`i` with a sharp-turning horizontal tail" selector.dotlessi = "hookyBottom" @@ -2357,6 +2348,15 @@ selector."dotlessi/sansSerif" = "serifless" selector."dotlessi/compLigRight" = "zshaped" selector."dotlessi/ital" = "tailed" +[prime.i.variants.zshaped] +rank = 5 +groupRank = 1 +description = "Z-shaped `i`" +selector.dotlessi = "zshaped" +selector."dotlessi/sansSerif" = "serifless" +selector."dotlessi/compLigRight" = "zshaped" +selector."dotlessi/ital" = "tailedSerifed" + [prime.i.variants.serifed-asymmetric] rank = 6 groupRank = 1 @@ -2686,22 +2686,8 @@ selector."l/phoneticLeft" = "hookyPL" selector.lCurlyTail = "hooky" selector.lyogh = "hooky" -[prime.l.variants.zshaped] -rank = 4 -groupRank = 1 -description = "Z-shaped `l`" -selector.l = "zshaped" -selector."l/sansSerif" = "serifless" -selector."l/compLigRight" = "zshaped" -selector."l/reduced/decompress" = "zshaped" -selector."l/reduced/rtail" = "hookyRTail" -selector."l/reduced/rtailDec" = "hookyRTailDec" -selector."l/phoneticLeft" = "hookyPL" -selector.lCurlyTail = "hooky" -selector.lyogh = "hooky" - [prime.l.variants.hooky-bottom] -rank = 5 +rank = 4 groupRank = 1 description = "`l` with a straight sharp-turning horizontal tail" selector.l = "hookyBottom" @@ -2714,6 +2700,20 @@ selector."l/phoneticLeft" = "seriflessPL" selector.lCurlyTail = "serifless" selector.lyogh = "serifless" +[prime.l.variants.zshaped] +rank = 5 +groupRank = 1 +description = "Z-shaped `l`" +selector.l = "zshaped" +selector."l/sansSerif" = "serifless" +selector."l/compLigRight" = "zshaped" +selector."l/reduced/decompress" = "zshaped" +selector."l/reduced/rtail" = "hookyRTail" +selector."l/reduced/rtailDec" = "hookyRTailDec" +selector."l/phoneticLeft" = "hookyPL" +selector.lCurlyTail = "hooky" +selector.lyogh = "hooky" + [prime.l.variants.serifed-asymmetric] rank = 6 groupRank = 1 @@ -4756,26 +4756,26 @@ tagKind = "letter" [prime.lower-iota.variants.tailless] rank = 1 -description = "Greek lower Iota (`ι`) with a tailless shape" +description = "Greek lower Iota (`ι`) like a straight line" selector."grek/iota" = "serifless" selector."grek/iota/sansSerif" = "serifless" [prime.lower-iota.variants.tailless-serifed] rank = 2 -description = "Greek lower Iota (`ι`) with a top serif and tailless shape" +description = "Greek lower Iota (`ι`) like a straight line with top serif" selector."grek/iota" = "hooky" selector."grek/iota/sansSerif" = "serifless" -[prime.lower-iota.variants.zshaped] +[prime.lower-iota.variants.hooky-bottom] rank = 3 -description = "Z-shaped Greek lower Iota (`ι`)" -selector."grek/iota" = "zshaped" +description = "Greek lower Iota (`ι`) with a sharp-turning horizontal tail" +selector."grek/iota" = "hookyBottom" selector."grek/iota/sansSerif" = "serifless" -[prime.lower-iota.variants.hooky-bottom] +[prime.lower-iota.variants.zshaped] rank = 4 -description = "Greek lower Iota (`ι`) with a sharp-turning horizontal tail" -selector."grek/iota" = "hookyBottom" +description = "Z-shaped Greek lower Iota (`ι`)" +selector."grek/iota" = "zshaped" selector."grek/iota/sansSerif" = "serifless" [prime.lower-iota.variants.tailed] @@ -7507,13 +7507,13 @@ lower-alpha = "crossing" capital-gamma = "serifless" capital-delta = "straight" lower-delta = "rounded" -lower-iota = "serifed-flat-tailed" +lower-iota = "serifed-semi-tailed" capital-lambda = "straight-serifless" lower-lambda = "straight" lower-mu = "tailed-serifless" lower-xi = "flat-top" lower-pi = "tailed" -lower-tau = "flat-tailed" +lower-tau = "semi-tailed" lower-chi = "straight-serifless" cyrl-capital-zhe = "symmetric-connected" cyrl-zhe = "symmetric-connected" @@ -7596,6 +7596,8 @@ u = "tailed-serifless" y = "cursive-serifless" long-s = "flat-hook-tailed" eszet = "sulzbacher-tailed-serifless" +lower-iota = "tailed-serifed" +lower-tau = "tailed" cyrl-u = "cursive-serifless" cyrl-ef = "cursive" cyrl-yeri = "round" @@ -7673,8 +7675,8 @@ micro-sign = "toothed-serifed" [composite.slab.italic] a = "single-storey-tailed-serifed" -d = "tailed-serifed" c = "unilateral-inward-serifed" +d = "tailed-serifed" f = "flat-hook-tailed" h = "straight-motion-serifed" k = "diagonal-tailed-cursive-top-left-serifed" @@ -7725,7 +7727,7 @@ y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-serifless" lower-eth = "straight-bar" -lower-iota = "semi-tailed" +lower-iota = "tailed" lower-lambda = "tailed-turn" lower-mu = "toothed-serifless" lower-pi = "tailless" @@ -7766,7 +7768,7 @@ c = "unilateral-serifed" d = "toothed-serifed" f = "flat-hook-serifed" h = "straight-serifed" -i = "serifed" +i = "zshaped" k = "straight-serifed" m = "serifed" n = "straight-serifed" @@ -7780,7 +7782,7 @@ y = "straight-turn-serifed" z = "straight-serifed" long-s = "flat-hook-double-serifed" eszet = "longs-s-lig-bottom-serifed" -lower-iota = "serifed-semi-tailed" +lower-iota = "tailed-serifed" lower-mu = "toothed-serifed" cyrl-ze = "unilateral-serifed" cyrl-capital-ka = "straight-serifed" @@ -7859,6 +7861,7 @@ diacritic-dot = "square" [composite.ss02.slab-override.design] capital-j = "serifed-symmetric" a = "double-storey-serifed" +d = "toothed-serifed" h = "straight-serifed" k = "straight-serifed" m = "serifed" @@ -7902,9 +7905,7 @@ long-s = "flat-hook-serifless" eszet = "longs-s-lig-serifless" lower-chi = "semi-chancery-straight" lower-eth = "straight-bar" -lower-iota = "serifed-semi-tailed" lower-lambda = "tailed-turn" -lower-tau = "semi-tailed" cyrl-capital-zhe = "symmetric-touching" cyrl-zhe = "symmetric-touching" cyrl-capital-ka = "symmetric-touching-serifless" @@ -7937,8 +7938,6 @@ k = "cursive-serifless" l = "tailed" long-s = "flat-hook-descending" eszet = "longs-s-lig-descending-serifless" -lower-iota = "tailed-serifed" -lower-tau = "tailed" cyrl-zhe = "symmetric-connected" cyrl-ka = "symmetric-connected-serifless" cyrl-yeri = "round" @@ -8175,7 +8174,7 @@ y = "straight-turn-serifless" long-s = "flat-hook-serifless" eszet = "longs-s-lig-serifless" lower-delta = "flat-top" -lower-iota = "serifed-semi-tailed" +lower-iota = "tailed-serifed" lower-lambda = "straight-turn" lower-tau = "short-tailed" lower-chi = "straight-motion-serifed" @@ -8360,11 +8359,9 @@ long-s = "bent-hook-middle-serifed" eszet = "longs-s-lig-serifless" capital-delta = "curly" lower-delta = "flat-top" -lower-iota = "serifed-semi-tailed" capital-lambda = "curly-serifless" lower-lambda = "curly-tailed-turn" lower-mu = "toothed-serifless" -lower-tau = "semi-tailed" lower-chi = "semi-chancery-curly" cyrl-capital-zhe = "curly" cyrl-zhe = "curly" @@ -8397,8 +8394,6 @@ lig-neq = "slightly-slanted-dotted" [composite.ss08.italic] g = "single-storey-serifless" -lower-iota = "tailed-serifed" -lower-tau = "tailed" cyrl-yeri = "round" cyrl-yery = "round" @@ -8476,7 +8471,6 @@ w = "straight-flat-top-serifless" y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-serifless" -lower-iota = "serifed-semi-tailed" lower-lambda = "straight-turn" lower-tau = "short-tailed" cyrl-em = "flat-bottom-serifless" @@ -8507,7 +8501,6 @@ a = "single-storey-serifless" g = "single-storey-serifless" i = "tailed-serifed" l = "tailed-serifed" -lower-iota = "tailed-serifed" [composite.ss09.slab-override.design] capital-d = "more-rounded-bilateral-serifed" @@ -8664,12 +8657,10 @@ y = "straight-turn-serifless" eszet = "longs-s-lig-serifless" lower-alpha = "barred-earless-corner-tailed" capital-gamma = "bottom-serifed" -lower-iota = "serifed-semi-tailed" lower-lambda = "straight-turn" lower-mu = "toothless-corner-serifless" lower-xi = "rounded" lower-pi = "small-capital" -lower-tau = "semi-tailed" cyrl-capital-zhe = "symmetric-touching" cyrl-zhe = "symmetric-touching" cyrl-capital-ka = "symmetric-touching-serifless" @@ -8707,9 +8698,7 @@ l = "tailed-serifed" u = "tailed-serifless" long-s = "bent-hook-tailed" eszet = "longs-s-lig-tailed-serifless" -lower-iota = "tailed-serifed" lower-mu = "tailed-serifless" -lower-tau = "tailed" cyrl-zhe = "cursive" micro-sign = "tailed-serifless" @@ -8779,7 +8768,7 @@ u = "toothed-serifless" y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-serifless" -lower-iota = "semi-tailed" +lower-iota = "tailed" lower-lambda = "straight-turn" lower-mu = "toothed-serifless" lower-pi = "tailless" @@ -8830,7 +8819,7 @@ y = "straight-turn-serifed" z = "straight-serifed" long-s = "flat-hook-double-serifed" eszet = "longs-s-lig-bottom-serifed" -lower-iota = "serifed-semi-tailed" +lower-iota = "tailed-serifed" lower-mu = "toothed-serifed" cyrl-ze = "unilateral-serifed" cyrl-ka = "symmetric-connected-serifed" @@ -9077,8 +9066,10 @@ long-s = "flat-hook-middle-serifed" eszet = "longs-s-lig-middle-serifed" lower-thorn = "motion-serifed" capital-gamma = "serifed" +lower-iota = "serifed-semi-tailed" lower-lambda = "straight-turn" lower-mu = "toothed-bottom-right-serifed" +lower-tau = "semi-tailed" cyrl-capital-ze = "bilateral-inward-serifed" cyrl-ze = "unilateral-inward-serifed" cyrl-ka = "symmetric-connected-bottom-right-serifed" @@ -9281,7 +9272,6 @@ y = "straight-turn-serifless" long-s = "flat-hook-middle-serifed-xh" eszet = "longs-s-lig-serifless" lower-alpha = "barred-tailed" -lower-iota = "serifed-semi-tailed" lower-lambda = "straight-turn" lower-tau = "short-tailed" cyrl-capital-u = "straight-turn-serifless" @@ -9311,7 +9301,6 @@ micro-sign = "tailed-serifless" f = "extended-crossbar-at-x-height" long-s = "flat-hook-descending-middle-serifed-xh" eszet = "longs-s-lig-descending-serifless" -lower-iota = "tailed-serifed" [composite.ss18.slab-override.design] capital-g = "toothless-rounded-serifed-hooked" From 31a192694cf46616af3511d27be06e9a7eddd0ff Mon Sep 17 00:00:00 2001 From: be5invis Date: Fri, 15 Dec 2023 23:48:25 -0800 Subject: [PATCH 59/59] Release 28.0.0 --- CHANGELOG.md | 5 +- doc/PACKAGE-LIST.md | 274 +++--- doc/character-variants.md | 6 +- doc/custom-build.md | 8 +- doc/language-specific-ligation-sets.md | 11 +- doc/packages-sha.txt | 904 +++++++++--------- images/button-release.dark.svg | 17 +- images/button-release.light.svg | 17 +- images/cs-block-cyrillic-extended-b.dark.svg | 4 +- images/cs-block-cyrillic-extended-b.light.svg | 4 +- images/cs-block-greek-and-coptic.dark.svg | 10 +- images/cs-block-greek-and-coptic.light.svg | 10 +- images/cs-block-greek-extended.dark.svg | 32 +- images/cs-block-greek-extended.light.svg | 32 +- images/cs-block-ipa-extensions.dark.svg | 2 +- images/cs-block-ipa-extensions.light.svg | 2 +- images/cs-block-latin-extended-b.dark.svg | 2 +- images/cs-block-latin-extended-b.light.svg | 2 +- images/cs-block-letterlike-symbols.dark.svg | 2 +- images/cs-block-letterlike-symbols.light.svg | 2 +- ...mathematical-alphanumeric-symbols.dark.svg | 527 +++++----- ...athematical-alphanumeric-symbols.light.svg | 527 +++++----- .../cs-block-miscellaneous-technical.dark.svg | 4 +- ...cs-block-miscellaneous-technical.light.svg | 4 +- ...ck-phonetic-extensions-supplement.dark.svg | 2 +- ...k-phonetic-extensions-supplement.light.svg | 2 +- images/cs-block-phonetic-extensions.dark.svg | 2 +- images/cs-block-phonetic-extensions.light.svg | 2 +- ...cs-block-spacing-modifier-letters.dark.svg | 4 +- ...s-block-spacing-modifier-letters.light.svg | 4 +- images/languages.dark.svg | 568 ++++++----- images/languages.light.svg | 568 ++++++----- images/ligset-IDRS-1.dark.svg | 88 +- images/ligset-IDRS-1.light.svg | 88 +- images/package-sample-Iosevka.dark.svg | 40 +- images/package-sample-Iosevka.light.svg | 40 +- images/package-sample-IosevkaAile.dark.svg | 38 +- images/package-sample-IosevkaAile.light.svg | 38 +- images/package-sample-IosevkaCurly.dark.svg | 40 +- images/package-sample-IosevkaCurly.light.svg | 40 +- .../package-sample-IosevkaCurlySlab.dark.svg | 40 +- .../package-sample-IosevkaCurlySlab.light.svg | 40 +- images/package-sample-IosevkaEtoile.dark.svg | 38 +- images/package-sample-IosevkaEtoile.light.svg | 38 +- images/package-sample-IosevkaFixed.dark.svg | 40 +- images/package-sample-IosevkaFixed.light.svg | 40 +- .../package-sample-IosevkaFixedCurly.dark.svg | 40 +- ...package-sample-IosevkaFixedCurly.light.svg | 40 +- ...kage-sample-IosevkaFixedCurlySlab.dark.svg | 40 +- ...age-sample-IosevkaFixedCurlySlab.light.svg | 40 +- .../package-sample-IosevkaFixedSS01.dark.svg | 38 +- .../package-sample-IosevkaFixedSS01.light.svg | 38 +- .../package-sample-IosevkaFixedSS02.dark.svg | 36 +- .../package-sample-IosevkaFixedSS02.light.svg | 36 +- .../package-sample-IosevkaFixedSS03.dark.svg | 36 +- .../package-sample-IosevkaFixedSS03.light.svg | 36 +- .../package-sample-IosevkaFixedSS04.dark.svg | 36 +- .../package-sample-IosevkaFixedSS04.light.svg | 36 +- .../package-sample-IosevkaFixedSS05.dark.svg | 36 +- .../package-sample-IosevkaFixedSS05.light.svg | 36 +- .../package-sample-IosevkaFixedSS06.dark.svg | 38 +- .../package-sample-IosevkaFixedSS06.light.svg | 38 +- .../package-sample-IosevkaFixedSS07.dark.svg | 36 +- .../package-sample-IosevkaFixedSS07.light.svg | 36 +- .../package-sample-IosevkaFixedSS08.dark.svg | 36 +- .../package-sample-IosevkaFixedSS08.light.svg | 36 +- .../package-sample-IosevkaFixedSS09.dark.svg | 36 +- .../package-sample-IosevkaFixedSS09.light.svg | 36 +- .../package-sample-IosevkaFixedSS10.dark.svg | 36 +- .../package-sample-IosevkaFixedSS10.light.svg | 36 +- .../package-sample-IosevkaFixedSS11.dark.svg | 40 +- .../package-sample-IosevkaFixedSS11.light.svg | 40 +- .../package-sample-IosevkaFixedSS12.dark.svg | 36 +- .../package-sample-IosevkaFixedSS12.light.svg | 36 +- .../package-sample-IosevkaFixedSS13.dark.svg | 38 +- .../package-sample-IosevkaFixedSS13.light.svg | 38 +- .../package-sample-IosevkaFixedSS14.dark.svg | 36 +- .../package-sample-IosevkaFixedSS14.light.svg | 36 +- .../package-sample-IosevkaFixedSS15.dark.svg | 36 +- .../package-sample-IosevkaFixedSS15.light.svg | 36 +- .../package-sample-IosevkaFixedSS16.dark.svg | 40 +- .../package-sample-IosevkaFixedSS16.light.svg | 40 +- .../package-sample-IosevkaFixedSS17.dark.svg | 36 +- .../package-sample-IosevkaFixedSS17.light.svg | 36 +- .../package-sample-IosevkaFixedSS18.dark.svg | 36 +- .../package-sample-IosevkaFixedSS18.light.svg | 36 +- .../package-sample-IosevkaFixedSlab.dark.svg | 40 +- .../package-sample-IosevkaFixedSlab.light.svg | 40 +- images/package-sample-IosevkaSS01.dark.svg | 38 +- images/package-sample-IosevkaSS01.light.svg | 38 +- images/package-sample-IosevkaSS02.dark.svg | 36 +- images/package-sample-IosevkaSS02.light.svg | 36 +- images/package-sample-IosevkaSS03.dark.svg | 36 +- images/package-sample-IosevkaSS03.light.svg | 36 +- images/package-sample-IosevkaSS04.dark.svg | 36 +- images/package-sample-IosevkaSS04.light.svg | 36 +- images/package-sample-IosevkaSS05.dark.svg | 36 +- images/package-sample-IosevkaSS05.light.svg | 36 +- images/package-sample-IosevkaSS06.dark.svg | 38 +- images/package-sample-IosevkaSS06.light.svg | 38 +- images/package-sample-IosevkaSS07.dark.svg | 36 +- images/package-sample-IosevkaSS07.light.svg | 36 +- images/package-sample-IosevkaSS08.dark.svg | 36 +- images/package-sample-IosevkaSS08.light.svg | 36 +- images/package-sample-IosevkaSS09.dark.svg | 36 +- images/package-sample-IosevkaSS09.light.svg | 36 +- images/package-sample-IosevkaSS10.dark.svg | 36 +- images/package-sample-IosevkaSS10.light.svg | 36 +- images/package-sample-IosevkaSS11.dark.svg | 40 +- images/package-sample-IosevkaSS11.light.svg | 40 +- images/package-sample-IosevkaSS12.dark.svg | 36 +- images/package-sample-IosevkaSS12.light.svg | 36 +- images/package-sample-IosevkaSS13.dark.svg | 38 +- images/package-sample-IosevkaSS13.light.svg | 38 +- images/package-sample-IosevkaSS14.dark.svg | 36 +- images/package-sample-IosevkaSS14.light.svg | 36 +- images/package-sample-IosevkaSS15.dark.svg | 36 +- images/package-sample-IosevkaSS15.light.svg | 36 +- images/package-sample-IosevkaSS16.dark.svg | 40 +- images/package-sample-IosevkaSS16.light.svg | 40 +- images/package-sample-IosevkaSS17.dark.svg | 36 +- images/package-sample-IosevkaSS17.light.svg | 36 +- images/package-sample-IosevkaSS18.dark.svg | 36 +- images/package-sample-IosevkaSS18.light.svg | 36 +- images/package-sample-IosevkaSlab.dark.svg | 40 +- images/package-sample-IosevkaSlab.light.svg | 40 +- images/package-sample-IosevkaTerm.dark.svg | 40 +- images/package-sample-IosevkaTerm.light.svg | 40 +- .../package-sample-IosevkaTermCurly.dark.svg | 40 +- .../package-sample-IosevkaTermCurly.light.svg | 40 +- ...ckage-sample-IosevkaTermCurlySlab.dark.svg | 40 +- ...kage-sample-IosevkaTermCurlySlab.light.svg | 40 +- .../package-sample-IosevkaTermSS01.dark.svg | 38 +- .../package-sample-IosevkaTermSS01.light.svg | 38 +- .../package-sample-IosevkaTermSS02.dark.svg | 36 +- .../package-sample-IosevkaTermSS02.light.svg | 36 +- .../package-sample-IosevkaTermSS03.dark.svg | 36 +- .../package-sample-IosevkaTermSS03.light.svg | 36 +- .../package-sample-IosevkaTermSS04.dark.svg | 36 +- .../package-sample-IosevkaTermSS04.light.svg | 36 +- .../package-sample-IosevkaTermSS05.dark.svg | 36 +- .../package-sample-IosevkaTermSS05.light.svg | 36 +- .../package-sample-IosevkaTermSS06.dark.svg | 38 +- .../package-sample-IosevkaTermSS06.light.svg | 38 +- .../package-sample-IosevkaTermSS07.dark.svg | 36 +- .../package-sample-IosevkaTermSS07.light.svg | 36 +- .../package-sample-IosevkaTermSS08.dark.svg | 36 +- .../package-sample-IosevkaTermSS08.light.svg | 36 +- .../package-sample-IosevkaTermSS09.dark.svg | 36 +- .../package-sample-IosevkaTermSS09.light.svg | 36 +- .../package-sample-IosevkaTermSS10.dark.svg | 36 +- .../package-sample-IosevkaTermSS10.light.svg | 36 +- .../package-sample-IosevkaTermSS11.dark.svg | 40 +- .../package-sample-IosevkaTermSS11.light.svg | 40 +- .../package-sample-IosevkaTermSS12.dark.svg | 36 +- .../package-sample-IosevkaTermSS12.light.svg | 36 +- .../package-sample-IosevkaTermSS13.dark.svg | 38 +- .../package-sample-IosevkaTermSS13.light.svg | 38 +- .../package-sample-IosevkaTermSS14.dark.svg | 36 +- .../package-sample-IosevkaTermSS14.light.svg | 36 +- .../package-sample-IosevkaTermSS15.dark.svg | 36 +- .../package-sample-IosevkaTermSS15.light.svg | 36 +- .../package-sample-IosevkaTermSS16.dark.svg | 40 +- .../package-sample-IosevkaTermSS16.light.svg | 40 +- .../package-sample-IosevkaTermSS17.dark.svg | 36 +- .../package-sample-IosevkaTermSS17.light.svg | 36 +- .../package-sample-IosevkaTermSS18.dark.svg | 36 +- .../package-sample-IosevkaTermSS18.light.svg | 36 +- .../package-sample-IosevkaTermSlab.dark.svg | 40 +- .../package-sample-IosevkaTermSlab.light.svg | 40 +- images/ss-i-off-0.dark.svg | 40 +- images/ss-i-off-0.light.svg | 40 +- images/ss-i-ss01-1.dark.svg | 49 +- images/ss-i-ss01-1.light.svg | 49 +- images/ss-i-ss02-1.dark.svg | 52 +- images/ss-i-ss02-1.light.svg | 52 +- images/ss-i-ss03-1.dark.svg | 59 +- images/ss-i-ss03-1.light.svg | 59 +- images/ss-i-ss04-1.dark.svg | 59 +- images/ss-i-ss04-1.light.svg | 59 +- images/ss-i-ss05-1.dark.svg | 47 +- images/ss-i-ss05-1.light.svg | 47 +- images/ss-i-ss06-1.dark.svg | 50 +- images/ss-i-ss06-1.light.svg | 50 +- images/ss-i-ss07-1.dark.svg | 46 +- images/ss-i-ss07-1.light.svg | 46 +- images/ss-i-ss08-1.dark.svg | 54 +- images/ss-i-ss08-1.light.svg | 54 +- images/ss-i-ss09-1.dark.svg | 52 +- images/ss-i-ss09-1.light.svg | 52 +- images/ss-i-ss10-1.dark.svg | 69 +- images/ss-i-ss10-1.light.svg | 69 +- images/ss-i-ss11-1.dark.svg | 55 +- images/ss-i-ss11-1.light.svg | 55 +- images/ss-i-ss12-1.dark.svg | 61 +- images/ss-i-ss12-1.light.svg | 61 +- images/ss-i-ss13-1.dark.svg | 48 +- images/ss-i-ss13-1.light.svg | 48 +- images/ss-i-ss14-1.dark.svg | 64 +- images/ss-i-ss14-1.light.svg | 64 +- images/ss-i-ss15-1.dark.svg | 47 +- images/ss-i-ss15-1.light.svg | 47 +- images/ss-i-ss16-1.dark.svg | 69 +- images/ss-i-ss16-1.light.svg | 69 +- images/ss-i-ss17-1.dark.svg | 59 +- images/ss-i-ss17-1.light.svg | 59 +- images/ss-i-ss18-1.dark.svg | 53 +- images/ss-i-ss18-1.light.svg | 53 +- images/ss-i-ss20-1.dark.svg | 40 +- images/ss-i-ss20-1.light.svg | 40 +- images/ss-u-off-0.dark.svg | 40 +- images/ss-u-off-0.light.svg | 40 +- images/ss-u-ss01-1.dark.svg | 49 +- images/ss-u-ss01-1.light.svg | 49 +- images/ss-u-ss02-1.dark.svg | 52 +- images/ss-u-ss02-1.light.svg | 52 +- images/ss-u-ss03-1.dark.svg | 59 +- images/ss-u-ss03-1.light.svg | 59 +- images/ss-u-ss04-1.dark.svg | 59 +- images/ss-u-ss04-1.light.svg | 59 +- images/ss-u-ss05-1.dark.svg | 65 +- images/ss-u-ss05-1.light.svg | 65 +- images/ss-u-ss06-1.dark.svg | 48 +- images/ss-u-ss06-1.light.svg | 48 +- images/ss-u-ss07-1.dark.svg | 46 +- images/ss-u-ss07-1.light.svg | 46 +- images/ss-u-ss08-1.dark.svg | 54 +- images/ss-u-ss08-1.light.svg | 54 +- images/ss-u-ss09-1.dark.svg | 52 +- images/ss-u-ss09-1.light.svg | 52 +- images/ss-u-ss10-1.dark.svg | 69 +- images/ss-u-ss10-1.light.svg | 69 +- images/ss-u-ss11-1.dark.svg | 55 +- images/ss-u-ss11-1.light.svg | 55 +- images/ss-u-ss12-1.dark.svg | 61 +- images/ss-u-ss12-1.light.svg | 61 +- images/ss-u-ss13-1.dark.svg | 48 +- images/ss-u-ss13-1.light.svg | 48 +- images/ss-u-ss14-1.dark.svg | 64 +- images/ss-u-ss14-1.light.svg | 64 +- images/ss-u-ss15-1.dark.svg | 55 +- images/ss-u-ss15-1.light.svg | 55 +- images/ss-u-ss16-1.dark.svg | 51 +- images/ss-u-ss16-1.light.svg | 51 +- images/ss-u-ss17-1.dark.svg | 59 +- images/ss-u-ss17-1.light.svg | 59 +- images/ss-u-ss18-1.dark.svg | 53 +- images/ss-u-ss18-1.light.svg | 53 +- images/ss-u-ss20-1.dark.svg | 40 +- images/ss-u-ss20-1.light.svg | 40 +- 250 files changed, 6542 insertions(+), 6582 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 43c3ab5e4a..8fea849a14 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ ## Modifications since last major version -### 28.0.0-beta.3 +### 28.0.0 * \[**BREAKING**\] The filenames and package filenames are changed. - They will now use PascalCase instead of kebab-case. @@ -16,7 +16,7 @@ - `webfont-formats` → `webfontFormats` * \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. * \[**BREAKING**\] Reorder of glyph variants: - - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. + - Influenced characters: `M`, `R`, `f`, `i`, `l`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. * \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. - Various other glyph variant tags are also changed to reflect this insertion. * \[**BREAKING**\] Make the ligation group names for symbol connections more intuitive, and add alternatives to start chaining from at least 3 continuous characters (#2100): @@ -49,6 +49,7 @@ * Add bottom-serifed variants for `d`, and `q`. * Add bottom-right-serifed variants for `U`. * Add tailless variants for Greek Lower Iota (`ι`). +* Make Greek Lower Iota (`ι`) and Greek Lower Tau (`τ`) semi-tailed under default upright and tailed under default italic. * Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. * Remove earless-corner variants for `U+027E`. * Improve serifs for turned k (`U+029E`) to match `q` and turned h (`U+0265`). diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 575f768b5c..71495cf6b8 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,7 +1,7 @@ -# Package list of Release 28.0.0-beta.3 +# Package list of Release 28.0.0 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -22,146 +22,146 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - + + - - + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index 102eff62d8..250b5e79a4 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -966,10 +966,10 @@ cv34 - + @@ -1099,8 +1099,8 @@ - + @@ -1996,8 +1996,8 @@ cv59 - + diff --git a/doc/custom-build.md b/doc/custom-build.md index 8ef5ea9977..2d44e33427 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -328,13 +328,13 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `h`:
h = 'straight-serifless', cv33 = 1
h with straight terminal; without serifs (default for Sans)
h = 'straight-top-left-serifed', cv33 = 2
h with straight terminal, and serif at top left
h = 'straight-motion-serifed', cv33 = 3
h with straight terminal, and serifs at top left and bottom right (default for Slab Italic)
h = 'straight-serifed', cv33 = 4
h with straight terminal, and serifs (default for Slab Upright)
h = 'tailed-serifless', cv33 = 5
h with curly tailed terminal; without serifs
h = 'tailed-motion-serifed', cv33 = 6
h with curly tailed terminal, and serifs at top left and bottom right
h = 'tailed-serifed', cv33 = 7
h with curly tailed terminal, and serifs
- Styles for `i`: -
i = 'serifed', cv34 = 1
Serifed i (default for Upright)
i = 'zshaped', cv34 = 2
Z-shaped i
i = 'serifless', cv34 = 3
i like a straight line
i = 'hooky', cv34 = 4
Hooky i
i = 'hooky-bottom', cv34 = 5
i with a sharp-turning horizontal tail
i = 'serifed-asymmetric', cv34 = 6
i with shorter top serif and full bottom serif
i = 'tailed', cv34 = 7
i with curly tail
i = 'tailed-serifed', cv34 = 8
i with top serif and curly tail (default for Italic)
i = 'flat-tailed', cv34 = 9
i with curly-then-flat tail
i = 'serifed-flat-tailed', cv34 = 10
i with top serif and curly-then-flat tail
i = 'diagonal-tailed', cv34 = 11
i with diagonal tail
i = 'serifed-diagonal-tailed', cv34 = 12
i with top serif and diagonal tail
i = 'semi-tailed', cv34 = 13
i with slightly curly tail
i = 'serifed-semi-tailed', cv34 = 14
i with top serif and slightly curly tail
+
i = 'serifed', cv34 = 1
Serifed i (default for Upright)
i = 'serifless', cv34 = 2
i like a straight line
i = 'hooky', cv34 = 3
Hooky i
i = 'hooky-bottom', cv34 = 4
i with a sharp-turning horizontal tail
i = 'zshaped', cv34 = 5
Z-shaped i
i = 'serifed-asymmetric', cv34 = 6
i with shorter top serif and full bottom serif
i = 'tailed', cv34 = 7
i with curly tail
i = 'tailed-serifed', cv34 = 8
i with top serif and curly tail (default for Italic)
i = 'flat-tailed', cv34 = 9
i with curly-then-flat tail
i = 'serifed-flat-tailed', cv34 = 10
i with top serif and curly-then-flat tail
i = 'diagonal-tailed', cv34 = 11
i with diagonal tail
i = 'serifed-diagonal-tailed', cv34 = 12
i with top serif and diagonal tail
i = 'semi-tailed', cv34 = 13
i with slightly curly tail
i = 'serifed-semi-tailed', cv34 = 14
i with top serif and slightly curly tail
- Styles for `j`:
j = 'serifless', cv35 = 1
j without serif
j = 'serifed', cv35 = 2
j with top serif (default)
j = 'straight-line', cv35 = 3
j like a straight line
j = 'hooky', cv35 = 4
j like a straight line with top serif
j = 'flat-hook-serifless', cv35 = 5
j with flat terminal hook
j = 'flat-hook-serifed', cv35 = 6
j with flat terminal hook and top serif
j = 'diagonal-tailed-serifless', cv35 = 7
j with diagonal tail
j = 'diagonal-tailed-serifed', cv35 = 8
j with top serif and diagonal tail
- Styles for `k`:
k = 'straight-serifless', cv36 = 1
k with standard shape; without serifs (default for Sans Upright)
k = 'straight-top-left-serifed', cv36 = 2
k with standard shape, and serifs at top left
k = 'straight-bottom-right-serifed', cv36 = 3
k with standard shape, and serifs at bottom right
k = 'straight-top-left-and-bottom-right-serifed', cv36 = 4
k with standard shape, and serifs at top left and bottom right
k = 'straight-serifed', cv36 = 5
k with standard shape, and serifs (default for Slab Upright)
k = 'curly-serifless', cv36 = 6
k with curly shape; without serifs
k = 'curly-top-left-serifed', cv36 = 7
k with curly shape, and serifs at top left
k = 'curly-bottom-right-serifed', cv36 = 8
k with curly shape, and serifs at bottom right
k = 'curly-top-left-and-bottom-right-serifed', cv36 = 9
k with curly shape, and serifs at top left and bottom right
k = 'curly-serifed', cv36 = 10
k with curly shape, and serifs
k = 'symmetric-touching-serifless', cv36 = 11
k with symmetric legs touching the vertical bar; without serifs
k = 'symmetric-touching-top-left-serifed', cv36 = 12
k with symmetric legs touching the vertical bar, and serifs at top left
k = 'symmetric-touching-bottom-right-serifed', cv36 = 13
k with symmetric legs touching the vertical bar, and serifs at bottom right
k = 'symmetric-touching-top-left-and-bottom-right-serifed', cv36 = 14
k with symmetric legs touching the vertical bar, and serifs at top left and bottom right
k = 'symmetric-touching-serifed', cv36 = 15
k with symmetric legs touching the vertical bar, and serifs
k = 'symmetric-connected-serifless', cv36 = 16
k with symmetric legs connected to the vertical bar; without serifs
k = 'symmetric-connected-top-left-serifed', cv36 = 17
k with symmetric legs connected to the vertical bar, and serifs at top left
k = 'symmetric-connected-bottom-right-serifed', cv36 = 18
k with symmetric legs connected to the vertical bar, and serifs at bottom right
k = 'symmetric-connected-top-left-and-bottom-right-serifed', cv36 = 19
k with symmetric legs connected to the vertical bar, and serifs at top left and bottom right
k = 'symmetric-connected-serifed', cv36 = 20
k with symmetric legs connected to the vertical bar, and serifs
k = 'cursive-serifless', cv36 = 21
k with cursive loop; without serifs (default for Sans Italic)
k = 'cursive-top-left-serifed', cv36 = 22
k with cursive loop, and serifs at top left
k = 'cursive-bottom-right-serifed', cv36 = 23
k with cursive loop, and serifs at bottom right
k = 'cursive-top-left-and-bottom-right-serifed', cv36 = 24
k with cursive loop, and serifs at top left and bottom right
k = 'cursive-serifed', cv36 = 25
k with cursive loop, and serifs
k = 'diagonal-tailed-cursive-serifless', cv36 = 26
k with cursive loop plus diagonal tail; without serifs
k = 'diagonal-tailed-cursive-top-left-serifed', cv36 = 27
k with cursive loop plus diagonal tail, and serifs at top left (default for Slab Italic)
- Styles for `l`: -
l = 'serifed', cv37 = 1
Serifed l (default for Upright)
l = 'serifless', cv37 = 2
l like a straight line
l = 'hooky', cv37 = 3
Hooky l
l = 'zshaped', cv37 = 4
Z-shaped l
l = 'hooky-bottom', cv37 = 5
l with a straight sharp-turning horizontal tail
l = 'serifed-asymmetric', cv37 = 6
l with shorter top serif and full bottom serif
l = 'tailed', cv37 = 7
l with curly tail
l = 'tailed-serifed', cv37 = 8
l with top serif and curly tail (default for Italic)
l = 'flat-tailed', cv37 = 9
l with curly-then-flat tail
l = 'serifed-flat-tailed', cv37 = 10
l with top serif and curly-then-flat tail
l = 'diagonal-tailed', cv37 = 11
l with diagonal tail
l = 'serifed-diagonal-tailed', cv37 = 12
l with top serif and diagonal tail
l = 'semi-tailed', cv37 = 13
l with slightl curly tail
l = 'serifed-semi-tailed', cv37 = 14
l with top serif and slightl curly tail
+
l = 'serifed', cv37 = 1
Serifed l (default for Upright)
l = 'serifless', cv37 = 2
l like a straight line
l = 'hooky', cv37 = 3
Hooky l
l = 'hooky-bottom', cv37 = 4
l with a straight sharp-turning horizontal tail
l = 'zshaped', cv37 = 5
Z-shaped l
l = 'serifed-asymmetric', cv37 = 6
l with shorter top serif and full bottom serif
l = 'tailed', cv37 = 7
l with curly tail
l = 'tailed-serifed', cv37 = 8
l with top serif and curly tail (default for Italic)
l = 'flat-tailed', cv37 = 9
l with curly-then-flat tail
l = 'serifed-flat-tailed', cv37 = 10
l with top serif and curly-then-flat tail
l = 'diagonal-tailed', cv37 = 11
l with diagonal tail
l = 'serifed-diagonal-tailed', cv37 = 12
l with top serif and diagonal tail
l = 'semi-tailed', cv37 = 13
l with slightl curly tail
l = 'serifed-semi-tailed', cv37 = 14
l with top serif and slightl curly tail
- Styles for `m`:
m = 'serifless', cv38 = 1
m with eared body shape, and normal middle leg; without serifs (default for Sans)
m = 'top-left-serifed', cv38 = 2
m with eared body shape, normal middle leg, and serif at top left
m = 'top-left-and-bottom-right-serifed', cv38 = 3
m with eared body shape, normal middle leg, and serifs at top left and bottom right (default for Slab Italic)
m = 'serifed', cv38 = 4
m with eared body shape, normal middle leg, and serifs (default for Slab Upright)
m = 'tailed-serifless', cv38 = 5
m with eared body shape, normal middle leg, and tail; without serifs
m = 'tailed-top-left-serifed', cv38 = 6
m with eared body shape, normal middle leg, tail, and serif at top left
m = 'tailed-serifed', cv38 = 7
m with eared body shape, normal middle leg, tail, and serifs
m = 'short-leg-serifless', cv38 = 8
m with eared body shape, and shorter middle leg (like Ubuntu Mono); without serifs
m = 'short-leg-top-left-serifed', cv38 = 9
m with eared body shape, shorter middle leg (like Ubuntu Mono), and serif at top left
m = 'short-leg-top-left-and-bottom-right-serifed', cv38 = 10
m with eared body shape, shorter middle leg (like Ubuntu Mono), and serifs at top left and bottom right
m = 'short-leg-serifed', cv38 = 11
m with eared body shape, shorter middle leg (like Ubuntu Mono), and serifs
m = 'short-leg-tailed-serifless', cv38 = 12
m with eared body shape, shorter middle leg (like Ubuntu Mono), and tail; without serifs
m = 'short-leg-tailed-top-left-serifed', cv38 = 13
m with eared body shape, shorter middle leg (like Ubuntu Mono), tail, and serif at top left
m = 'short-leg-tailed-serifed', cv38 = 14
m with eared body shape, shorter middle leg (like Ubuntu Mono), tail, and serifs
m = 'earless-corner-double-arch-serifless', cv38 = 15
m with earless (corner top-left) double-arch body shape, and normal middle leg; without serifs
m = 'earless-corner-double-arch-bottom-right-serifed', cv38 = 16
m with earless (corner top-left) double-arch body shape, normal middle leg, and serifs at bottom right
m = 'earless-corner-double-arch-serifed', cv38 = 17
m with earless (corner top-left) double-arch body shape, normal middle leg, and serifs
m = 'earless-corner-double-arch-tailed-serifless', cv38 = 18
m with earless (corner top-left) double-arch body shape, normal middle leg, and tail; without serifs
m = 'earless-corner-double-arch-tailed-serifed', cv38 = 19
m with earless (corner top-left) double-arch body shape, normal middle leg, tail, and serifs
m = 'earless-corner-double-arch-short-leg-serifless', cv38 = 20
m with earless (corner top-left) double-arch body shape, and shorter middle leg (like Ubuntu Mono); without serifs
m = 'earless-corner-double-arch-short-leg-bottom-right-serifed', cv38 = 21
m with earless (corner top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and serifs at bottom right
m = 'earless-corner-double-arch-short-leg-serifed', cv38 = 22
m with earless (corner top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and serifs
m = 'earless-corner-double-arch-short-leg-tailed-serifless', cv38 = 23
m with earless (corner top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and tail; without serifs
m = 'earless-corner-double-arch-short-leg-tailed-serifed', cv38 = 24
m with earless (corner top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), tail, and serifs
m = 'earless-rounded-double-arch-serifless', cv38 = 25
m with earless (rounded top-left) double-arch body shape, and normal middle leg; without serifs
m = 'earless-rounded-double-arch-bottom-right-serifed', cv38 = 26
m with earless (rounded top-left) double-arch body shape, normal middle leg, and serifs at bottom right
m = 'earless-rounded-double-arch-serifed', cv38 = 27
m with earless (rounded top-left) double-arch body shape, normal middle leg, and serifs
m = 'earless-rounded-double-arch-tailed-serifless', cv38 = 28
m with earless (rounded top-left) double-arch body shape, normal middle leg, and tail; without serifs
m = 'earless-rounded-double-arch-tailed-serifed', cv38 = 29
m with earless (rounded top-left) double-arch body shape, normal middle leg, tail, and serifs
m = 'earless-rounded-double-arch-short-leg-serifless', cv38 = 30
m with earless (rounded top-left) double-arch body shape, and shorter middle leg (like Ubuntu Mono); without serifs
m = 'earless-rounded-double-arch-short-leg-bottom-right-serifed', cv38 = 31
m with earless (rounded top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and serifs at bottom right
m = 'earless-rounded-double-arch-short-leg-serifed', cv38 = 32
m with earless (rounded top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and serifs
m = 'earless-rounded-double-arch-short-leg-tailed-serifless', cv38 = 33
m with earless (rounded top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), and tail; without serifs
m = 'earless-rounded-double-arch-short-leg-tailed-serifed', cv38 = 34
m with earless (rounded top-left) double-arch body shape, shorter middle leg (like Ubuntu Mono), tail, and serifs
m = 'earless-single-arch-serifless', cv38 = 35
m with earless (corner top-left) body shape, and normal middle leg; without serifs
m = 'earless-single-arch-bottom-right-serifed', cv38 = 36
m with earless (corner top-left) body shape, normal middle leg, and serifs at bottom right
m = 'earless-single-arch-serifed', cv38 = 37
m with earless (corner top-left) body shape, normal middle leg, and serifs
m = 'earless-single-arch-tailed-serifless', cv38 = 38
m with earless (corner top-left) body shape, normal middle leg, and tail; without serifs
m = 'earless-single-arch-tailed-serifed', cv38 = 39
m with earless (corner top-left) body shape, normal middle leg, tail, and serifs
m = 'earless-single-arch-short-leg-serifless', cv38 = 40
m with earless (corner top-left) body shape, and shorter middle leg (like Ubuntu Mono); without serifs
m = 'earless-single-arch-short-leg-bottom-right-serifed', cv38 = 41
m with earless (corner top-left) body shape, shorter middle leg (like Ubuntu Mono), and serifs at bottom right
m = 'earless-single-arch-short-leg-serifed', cv38 = 42
m with earless (corner top-left) body shape, shorter middle leg (like Ubuntu Mono), and serifs
m = 'earless-single-arch-short-leg-tailed-serifless', cv38 = 43
m with earless (corner top-left) body shape, shorter middle leg (like Ubuntu Mono), and tail; without serifs
m = 'earless-single-arch-short-leg-tailed-serifed', cv38 = 44
m with earless (corner top-left) body shape, shorter middle leg (like Ubuntu Mono), tail, and serifs
- Styles for `n`: @@ -378,7 +378,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `δ` (Greek lower Delta):
lower-delta = 'rounded', cv58 = 1
Greek lower Delta (δ) with rounded top (default)
lower-delta = 'flat-top', cv58 = 2
Greek lower Delta (δ) with flat top
- Styles for `ι` (Greek lower Iota): -
lower-iota = 'tailless', cv59 = 1
Greek lower Iota (ι) with a tailless shape
lower-iota = 'tailless-serifed', cv59 = 2
Greek lower Iota (ι) with a top serif and tailless shape
lower-iota = 'zshaped', cv59 = 3
Z-shaped Greek lower Iota (ι)
lower-iota = 'hooky-bottom', cv59 = 4
Greek lower Iota (ι) with a sharp-turning horizontal tail
lower-iota = 'tailed', cv59 = 5
Greek lower Iota (ι) with curly tail
lower-iota = 'tailed-serifed', cv59 = 6
Greek lower Iota (ι) with top serif and curly tail
lower-iota = 'flat-tailed', cv59 = 7
Greek lower Iota (ι) with a curly-then-flat tail
lower-iota = 'serifed-flat-tailed', cv59 = 8
Greek lower Iota (ι) with top serif and a curly-then-flat tail (default)
lower-iota = 'diagonal-tailed', cv59 = 9
Greek lower Iota (ι) with a diagonal tail
lower-iota = 'serifed-diagonal-tailed', cv59 = 10
Greek lower Iota (ι) with top serif and a diagonal tail
lower-iota = 'semi-tailed', cv59 = 11
Greek lower Iota (ι) with a slightly curly tail
lower-iota = 'serifed-semi-tailed', cv59 = 12
Greek lower Iota (ι) with top serif and a slightly curly tail
+
lower-iota = 'tailless', cv59 = 1
Greek lower Iota (ι) like a straight line
lower-iota = 'tailless-serifed', cv59 = 2
Greek lower Iota (ι) like a straight line with top serif
lower-iota = 'hooky-bottom', cv59 = 3
Greek lower Iota (ι) with a sharp-turning horizontal tail
lower-iota = 'zshaped', cv59 = 4
Z-shaped Greek lower Iota (ι)
lower-iota = 'tailed', cv59 = 5
Greek lower Iota (ι) with curly tail
lower-iota = 'tailed-serifed', cv59 = 6
Greek lower Iota (ι) with top serif and curly tail (default for Italic)
lower-iota = 'flat-tailed', cv59 = 7
Greek lower Iota (ι) with a curly-then-flat tail
lower-iota = 'serifed-flat-tailed', cv59 = 8
Greek lower Iota (ι) with top serif and a curly-then-flat tail
lower-iota = 'diagonal-tailed', cv59 = 9
Greek lower Iota (ι) with a diagonal tail
lower-iota = 'serifed-diagonal-tailed', cv59 = 10
Greek lower Iota (ι) with top serif and a diagonal tail
lower-iota = 'semi-tailed', cv59 = 11
Greek lower Iota (ι) with a slightly curly tail
lower-iota = 'serifed-semi-tailed', cv59 = 12
Greek lower Iota (ι) with top serif and a slightly curly tail (default for Upright)
- Styles for `Λ` (Greek capital Lambda (`Λ`)):
capital-lambda = 'straight-serifless', cv60 = 1
Greek capital Lambda (Λ) with straight shape; without serifs (default for Sans)
capital-lambda = 'straight-top-serifed', cv60 = 2
Greek capital Lambda (Λ) with straight shape, and serifs at top
capital-lambda = 'straight-base-serifed', cv60 = 3
Greek capital Lambda (Λ) with straight shape, and serifs at base (default for Slab)
capital-lambda = 'straight-tri-serifed', cv60 = 4
Greek capital Lambda (Λ) with straight shape, and serifs at both top and base
capital-lambda = 'curly-serifless', cv60 = 5
Greek capital Lambda (Λ) with curly shape; without serifs
capital-lambda = 'curly-top-serifed', cv60 = 6
Greek capital Lambda (Λ) with curly shape, and serifs at top
capital-lambda = 'curly-base-serifed', cv60 = 7
Greek capital Lambda (Λ) with curly shape, and serifs at base
capital-lambda = 'curly-tri-serifed', cv60 = 8
Greek capital Lambda (Λ) with curly shape, and serifs at both top and base
- Styles for `λ` (Greek small Lambda): @@ -390,7 +390,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `π` (Greek lower Pi):
lower-pi = 'tailless', cv64 = 1
Greek lower Pi (π) with a tailless shape
lower-pi = 'tailed', cv64 = 2
Greek lower Pi (π) with a tailed shape (default)
lower-pi = 'small-capital', cv64 = 3
Greek lower Pi (π) with a small-capital shape
- Styles for `τ` (Greek lower Tau): -
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'short-tailed', cv65 = 2
Greek lower Tau (τ) with a very short tail
lower-tau = 'tailed', cv65 = 3
Greek lower Tau (τ) with curly tail
lower-tau = 'flat-tailed', cv65 = 4
Greek lower Tau (τ) with a flat tail (default)
lower-tau = 'diagonal-tailed', cv65 = 5
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 6
Greek lower Tau (τ) with a slightly curly tail
+
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'short-tailed', cv65 = 2
Greek lower Tau (τ) with a very short tail
lower-tau = 'tailed', cv65 = 3
Greek lower Tau (τ) with curly tail (default for Italic)
lower-tau = 'flat-tailed', cv65 = 4
Greek lower Tau (τ) with a flat tail
lower-tau = 'diagonal-tailed', cv65 = 5
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 6
Greek lower Tau (τ) with a slightly curly tail (default for Upright)
- Styles for `χ` (Greek lower Chi):
lower-chi = 'straight-serifless', cv66 = 1
Greek lower Chi (χ) with straight shape; without serifs (default for Sans)
lower-chi = 'straight-motion-serifed', cv66 = 2
Greek lower Chi (χ) with straight shape, and motion serifs
lower-chi = 'straight-serifed', cv66 = 3
Greek lower Chi (χ) with straight shape, and serifs (default for Slab)
lower-chi = 'curly-serifless', cv66 = 4
Greek lower Chi (χ) with curly shape; without serifs
lower-chi = 'curly-motion-serifed', cv66 = 5
Greek lower Chi (χ) with curly shape, and motion serifs
lower-chi = 'curly-serifed', cv66 = 6
Greek lower Chi (χ) with curly shape, and serifs
lower-chi = 'semi-chancery-straight', cv66 = 7
Greek lower Chi (χ) with Semi-chancery shape with straight counter-leg
lower-chi = 'semi-chancery-curly', cv66 = 8
Greek lower Chi (χ) with Semi-chancery shape with curly counter-leg
lower-chi = 'chancery', cv66 = 9
Greek lower Chi (χ) with Chancery shape
- Styles for `Ж` (Cyrillic Capital Zhe): diff --git a/doc/language-specific-ligation-sets.md b/doc/language-specific-ligation-sets.md index 532f35753a..ffe2bf2812 100644 --- a/doc/language-specific-ligation-sets.md +++ b/doc/language-specific-ligation-sets.md @@ -68,13 +68,20 @@ -IDRS; ELMX; PURS -Idris, Elm, PureScript +IDRS +Idris +ELMX; PURS +Elm, PureScript + + + + + SWFT Swift diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index cacc08fa72..62eb4f2d2b 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,452 +1,452 @@ -00560d6864492965ca1b5551582493cfc1140330ea1bf39e1d7b29969ffd1bd8 undefined -83b0c9b15cdd5a00feb7acfe3288679f57076fe5eade4c89fc00fae5f02969dd undefined -8879d879dd1e3d1f9c3fa3487e9a50edc730f35b53b71e2744cbb50ae507edd6 undefined -5427a685245895711c48d354d90386f0c8375d6723360520dd2adee165443f5d undefined -522cf2a4edb0842c828757ce3cb36a8cda833d1a3cfb1a701a7c3db82b518d2b undefined -81128b3c0ee5b1d6f0d715f1baedef33dbadaeeace7189e9a963861a2bbff72c undefined -5e90e2c84f14cfac3f059d7c772166ff312b8238394bed6f410c38c6d97a105a undefined -8c170fa0fc412dd4b6eaf066774ec2e0da6ea6d33edbde9304d47dd6ba065e11 undefined -92683e74ee59d66201b2ceb96fdb9abb2f02416cf797913670bb02f6d45a4277 undefined -dead35b5f0df2ebc903c516dd9102f4436e6a0645abd56888e9ed078898085cc undefined -a9e3fbdffabde6a1324a59c52dca440adeaf0a5556840178d03df51ab6dde921 undefined -bc152068f8cc651637549fcb7e6f0750fe952f9c096246005ebc06a4457f5bac undefined -828b437f351c656d0e75e7f41f74a47b7872427f9f7f75c5f59a5a93d5bc563b undefined -07fba3c20098b17f5a0f2c1dfc32d13d5fed9ae11aab3ab7f199f6b3e6a0aa77 undefined -1352b740dde0db85bd32486e0af936e729d40c645603e525b7c44808b8b471b8 undefined -6d948b8e7ced79c22416121cf40c4f97244047583e7f151c5e3e9c8de38617a2 undefined -d7d93a0c63d92dc4becb56cdaee4ab803bba976dc2787c767fb00e224011648f undefined -96be1e4e2625ca7485d7bfbd5d4609a04247a52b5862a8212133404a4e40aa49 undefined -e730b8a84b11a71c66e4cebee5bcc1a53a38c6f9801435fd8dde18bdf4f6aa8b undefined -a79bd592c3f308ab7fa21cfdd4e4b11d848e8de913ba4743f213f27345554dda undefined -62629c7e64addab6e4d74d61fb279691e55c5612b140baa5405e178c7b398c31 undefined -56a0d6d0280277f48a075177763b7c54bde617e0fdfa5711ca20d0ea6caf075c undefined -53699c8f9b7dae2e616dcba4a0d40ab3c93993e8706504afa158b2bad2474a5e undefined -24fd36897f53bc3e7bc492d1c9069e57b9fb46f19157e066fabeec497623147b undefined -825e8bac99092241d2f8a66131dd7e1209077bab5172e23dc01d768d15a83c85 undefined -cbd20ce5fca368c7b91961d370f433aedd6775867f3415343459b80313fdf4ce undefined -5e18e2962c26fc4dcd1befa790e100db091e2cb35988f4bb0a46e746eb055067 undefined -737002e9f713e8a386d1aaf7121923b3b9c049e3df452829f8c9906bf3951aab undefined -d8d6e746c54d665010f43f03d2c1c587484ce8d159340477763fa23a305681e2 undefined -250637a62ea907003f44bd212c70b099178c1c627b6f3a07809af9d0e3525036 undefined -f72dd108a6620d7d6c9e77c2e7841abf1ab010294effaa51f0755e2c4af7aacb undefined -3c97400ac2091680b215efb5d2df0d1c5306a68be36d33afde1943fd5418fffe undefined -876ce46e78284c47393a25d27fa37b5d451c70f0f3d48497dac22bf4dc4eb0ce undefined -199d92ab5c026a8f7ced4451b4b7baf96b56a48df242198b3a2262e223aea7e4 undefined -e311ec4b04974348d2efac33e017c908b145d9165324323138aa784f6f999669 undefined -3b92b9680cc53222f4776511c65c3a0ca9db421541a983d4435d170949c59780 undefined -7ec76deeefc81cf41439e1324a96543135f5fb5772ee9856064d66d2a4ceade5 undefined -168f863667ec8913768cb9ee87d0b0a22ccaaf41206daa158c2b4d6c842a7d0c undefined -8c9d33d7c8d628e981c172aa5d242ed9455aa574d681956a54152965aa7bfd83 undefined -d8b9f72ae6fc00fab0a7372283bb797cd651d93542fd9d850c56c61bd13e63d9 undefined -a727ce239f5897c52ba900cc79be31e4061baf60384e869c31b03071b3b19797 undefined -9526f0b23fd95350ca16376ec2f1fd57a73726320f266365b9d48aa607fcba6c undefined -da86ab6f2b19081e2463e1f40c09781abe6d0b4ed1ccd184fcd524d153ee9ce4 undefined -dab1062a1052b6d567fb2e5e953b5267188aca444b27ea7516d00495e4fdc2c3 undefined -feceb459537fc8ae1d6bba3fdd735801f7e8a4155993385ba5393056ed55e342 undefined -9a07051eb64119f056d8b19fa2f5b51f9b9641b87c404ddfc6c72e897859f1e9 undefined -2e241018bd861edba09b92b5c49eda9fe8c5b14ae5ccb34baafc98c042d8422b undefined -f7ed8330b03502fb5e7506a84577acc0ef313cccf78e098d9eb55df853948c63 undefined -7bc66ec1fb4d8a9c77c96b9250b8964594d21d4a57afd8600d437b39cad7cd84 undefined -49d2f4e0adddb59c64153a210af3bb0999a338a58c986ab6753f33510b4f4d30 undefined -6894230f2071bb952428f24d09eea0b7fea24d90cc980f8c14bf28dcb325e557 undefined -580d49fc32c4142955bf62c065c30b8c1ff4d8fd0a1e762818fb0f66d2c9a7f8 undefined -ed893f675d91969eb97b3b3b6f9e4a0c9be745058fdba242e76bd75d91f42a7b undefined -0688ddaff14f09406ac9df6f0601feff0d4178c1f19327f881005a1b4ee3ca62 undefined -9024aa5e5fb5bb127a2a24d5959d71da651322f58172b40475e9715e1b8d9fb9 undefined -928386da4a82fdaa2681b3adaa525f078bcc6fcfbfe19ca61624f22b8bfe75ce undefined -dfabeb82d63833bb1dfdfc5148e257ced57d10bf22013ab0117106ae86638d01 undefined -72ff3cbb0e8f4d4d3aed6bd32900ab3ab11427694ff7757303f8c0a6073d42d8 undefined -064fadcb35ba687e441fab53df9d93f02cd0b0f57dac46e340c4c2614e91dc69 undefined -65618cc09f785cd3f1fb31dd4e7e9dea0aa7cc79e5b1a681a63a21f985fcd6ae undefined -1948f358240239df51393614426c18a868e78c0bbe93bbdd1ce93deca59a8c6b undefined -23483aafd6812179d6cbdc4485abcdfc3f94724108ce936629a3af5e02d662a8 undefined -39a483f62c670c10eff7f66853d0bcf11b232dc5c0edb477d97364ce779a48f7 undefined -5ae7b2721c375360b3e6e6ab179144efba6c964f079d0c56dd2a01a41583fab1 undefined -60ffc419dd9c05d90d0f3c9c3627dd5dc2f41e617026d6e08268c1349c432d60 undefined -6488dc7a4beaaf0f08dac1942bea5153d6e138c9c5da386cbf8c393927258504 undefined -72fa948f06188a664590c9b3d856f0c0ed2a703d61c4b9ee741d628e6300a0ee undefined -b35c291881e26837557de9bc8b13eb2c075bcaf4904d61c7a4e978765d8905ba undefined -4af5aebd0b2d4346672a0797b2dd9fd10f91c932f38b880965c6d4d0ac2f8fc0 undefined -dfd9d0ddc4fb634236646be3d30dc7c81f0b168a8fdc1498ba844c57539673cf undefined -d5dc08c55b49959c5aca449a31885358b115bac1528cb227a21885dbebbc7375 undefined -4212bb3ab347a9490ab78e458057f68ccde5335782a775dddb77dcf138169c95 undefined -6958e7d741c8158e664c52d1f2fe38d0e13498826c02367715cd8978918f7312 undefined -2ecbacf1e88ce145a165741fc873648743852b0024c659d02b4a10046798b26a undefined -6d6026c2aacd59e3a6c446116004c3655152ae0d344887d158480e2082ad44ab undefined -5bece0d98865fd63e760065ac6eea1dbd70262885dd5706e1bd87bfd1aeb819f undefined -242867906eaba6d348310ba300d006a1667d8b996b0393b19030c7465664b37f undefined -084cba921783ca1ef48a26fce0980d93b555721404b839e90d033f8b7913abed undefined -34991fa6e3b7d536910f1095411963a04cfdbdb0aa45625c5020375c3dae3764 undefined -0d15993aeb107bcf7135cc8702d6ee57126202cfbad04d25023389b24bca38b3 undefined -d8a6e2ea8fb1847655d0442916b8b707f7ef7ff9e05798f1c9400431a4122fda undefined -e984f384c551cc3304da140da6d455133a21d833ea059877129c9004285cd2f1 undefined -0e81c1bff9dca29376691f5596237bc2bd013526d97675fbe6ca02da10bdca7f undefined -53c03b93bf25c3a540789a8743656f753d9c6bde264899126fee9fc0e144c311 undefined -9e8c47bf0fa80eb97048140dcb70acddf2adbbaa6608109441082de6a257327a undefined -f8bdd7e2a6d58be09d0e88bf0262fbd8031c71be21c1d64ffb05db28933ce5f1 undefined -11bf133a3722bcdad4babf75ed4910d2efd0a18184df62f33edfdf69b9d72bb3 undefined -2b2af5ce08161ef3328def031abce399eecca5a9d097fa003b9bb83509fab262 undefined -1101ff8d80d763924bd88e5fec13a2353947f08f1515784b52d12f3b5552ac26 undefined -a74f3c28f56aefae471c3ad71ef9fa4f21b66087959ffaa256f30117bb60a06b undefined -7f2ba682362e67fb5a8fa036d5da7ce21bd809af6f5ae5bf782f29903ab212fd undefined -8f5897694fd31e4fa3dbecd21372504802ee539cdd2ec7f320a2fa9613deb582 undefined -b375e3bed28fd7f9596e20b6afb922f3db7fa74961e172c7bf781066e3c53896 undefined -8e1e366b75454f84bb0cbdfca0276b497ff5b0552e2631b5f37c08cee8b6906b undefined -0c4f05f307e35423d6ba0fac523759098a2e7993598eb21d5a90afab86874143 undefined -94048fff339a10d87d31f1989e5a6fd99ebd6f2b9e4ab2ceb66a29c2c6d481bf undefined -a72f48414f2af1f1c6ba83582f4896e20175dcc0e03163136a850113e481aec5 undefined -282dcd001dc43a023116528250c9f43ffd37085ce2402fe1a4ab87975cd29c40 undefined -0a6af65a0e6e54dd53566d37e2f91076968f5aba1d9e6025d0a69d1e0da95851 undefined -9f6466be4e4664764a1518d9a56e4fad9037aca7b4f1455ccabaf5eb47416131 undefined -752584708a74ba741862a8892e7700480ab3c66c0b1136aa5a69055b7fa664b0 undefined -090bf8f56c284dfd04c00844337b42b35759bf1a996bf3037f9bde4f20dc89d7 undefined -af753c92ec9a75c49e5ee44f30c2127c076572ece2ad1c667e9e67f6ef0651f2 undefined -7e0c63d506f36ff022ec3481c15ddc354acb1a056fbccaefed8708b8f4ea0a54 undefined -7b74034ec474bfe317a4f537fcb0f4ee0b2d7c29bc5ffd8be4abca6f6c9686c3 undefined -54916de7ff4ceacb3730a05e1b545d542c5603257008c67a67d9d6fdf90b4ab6 undefined -9df17943a0c0df8fbb3716a2c37619ce0c2e287c117a72c5dadacd2655039853 undefined -636e710c737ab958bbf840f6733e5edad71e83f9363af220d420a0070273c167 undefined -c2dc3bf06bb08e68a61eb567ae65359f75ed74f3a26dab4e4d8be5d4033ed582 undefined -38502940da39d80b5ca6329eba881558e35f43c6528d176f53cd33ff35ec76d7 undefined -2ef755b564acd5baaf015943b71e1fdef8c5145b68dcbad5c7da7ef2f6d6137b undefined -dbf138804083e8ae0ddf5628b014f6a65de15d953d46fb88d25e39ed0f1e791e undefined -d2b107f0c5290f1f9fe88b88e61bb8723ba71339601e39e453c2ca8cdd17270d undefined -a55f73aa3130cefa3a6f9b1fcf07b0f08997aba9ce1fb5e1cb0fd73fced532a5 undefined -9d92265e7d525c0ada238b967b93306b7be799120e1ce6ac7480818c33270db1 undefined -05911919eb5c793ad9360b07ecaef7dbe771098f81ae1a997e70349828f2792e undefined -7cccf52f80ce7183c4c2a3035b0a170a106faa2f189fcdeddd7b3ec3a401f820 undefined -c4fdecdc5315dc48dd66f71105a23fca17fe29c8215c982c082a5b453813c87d undefined -6bee971680e16d0f5d6dbd4807dee84a97d7ee19627e8193aba01b2dc4aeda2b undefined -177730ce57188c04bae9194b9670de84a33427847820df035104b8fe694730e0 undefined -0ad9a5b051ca5121b979ece0b3b24e88a65c1ec0a7d5eb3198bea318b3b0f6c6 undefined -ca6384e5711613f5f3f26382a76cc096cfb984506bb832b19c730ff34f0c34b4 undefined -77a70eb597b9e6075c6572a37ffe30937a87033f7b57135b877089967308fdb5 undefined -8e3806dc04603a14476b30449d65abdaaf5bbade7b5797cb7b632eb342e350a1 undefined -7c11b999051b85de583867ec53ca932bc7e520f0e4b0a585746f0a8b6edf15f8 undefined -83fb9c07cbffee81165642b570483f00cdb9b41ee2f69ce99755fc60720790aa undefined -61996f305d777cd0894b854d8337ce394227907011f29df5eae041dff58731c4 undefined -3324b53544646452d748ef90bd61ce05619ac161ed11723e877566d351f3bf0b undefined -85297c0f7724f0d5de1e6b58397730aca96cbbbb7a03e13f199ee7e1a59f5514 undefined -90e3a9a32fc98ccb38a76e4a4a28fd4223bb63326b86f8f538a2d3e9dac993c1 undefined -295602c8d3eaa9fd95fda4ab3281dac4612026312db289dfc32bf06d5bddbc38 undefined -7e8fa46b87dfbe386d1bd9a96ae27d04eaf2867b2ed5324631b7070ad187255c undefined -2ee7658de6a90d7449abe34e9ba8fd9cf26224876a8b85c49d728a1261a1cff7 undefined -f861fe1496f2f4f1729e0a4d02f3834565df08d594ff9f7cc55cd5e834cc02e1 undefined -cc880cfa65c8cff0c6151945075691f0f0d853f15d437d5f341272b8a8e701f7 undefined -105c72088f389868a0750a8c07ff0c040564ea5018d5ffad9382e1e341126af2 undefined -67ab4a57c89a4d98680d413ca3808e46a1a68923395ea01ef0170e491a5c529b undefined -fd4512dc62e9d9d3597354baa1f344679844f94cfa9963270b8224965972546e undefined -d35476bc147cfd58487cb6a13698bde5d408d4aae74b71f5651ec4d79e7a34d4 undefined -8d6275eb8a9c23c8174ead7bcc60f5d4f460984c9fe57ea29504d65d5b69a3e3 undefined -d8afe630c9165980464107b8ec6df1bf9ee94cdb56bb4183572a013f7e321bda undefined -ea9b37514ab702db38c3f843ec63ea06fbffefd493c765a4ea5b64f73ea0016d undefined -848de9a9725ce13743b31bc6b2af168eaf71e6d1b5f46d5762fe15c0cbfe458a undefined -ac12c66a2378fdb3558d43b19c00cc27baa63a1afeb614cffe66c5891739e117 undefined -a73205e0eac72230890b2eb02c3588da196d4ac4ddc66e643d9198e6739db32f undefined -f8d2c38089054f3dcd76fce1ba0b2feeadac7571923b9f6744e322c8925912c3 undefined -a73f702eac70352552779bc0fa358e5b756e6c7fa108c148e7869bb17f3ed1ec undefined -7e86b7a52dea386200541c68fdf39511c8fa9c3a59d93075c1a223fdc25be06b undefined -4e0c08611f8b5b1df2e4ced4fd4e9dc158841338c656423197995768a9e534c3 undefined -e070830be83d77900c25ebee9c3f68710b9736d9e97e1dedfffd01d9b7f3f600 undefined -b7101ceeaf4e5b605e2d3f091071bc268c0f2a81ce1919f1ba9579caa6fcaf04 undefined -17c69ef04c5d3c392b6fd5b4fa0b4c6ef308860e6a53fc4457cd6005de4c6908 undefined -5294757b83ca1ecd90eac29da34b77cabd80e4f9779f45466f0821fd99ac7d73 undefined -2160dc589bc23f11a61e1e9150573b1954eec3918338c6ff293f657caa82b7da undefined -682be40ecb58f07e00b60768c7c2d3bdb9daeda4b7e42e8c020c79adbad519bc undefined -de6c112627f7c14aab1c921ab4553985be913ad7afc63c235cc9cdf1f5576c88 undefined -1e128ad71f13048dfa1715e135c48e51d6e97e349e86c1d4e8ceb6222960ee91 undefined -72047eb931239a5d56d655c4ce969de0059c00adab1ea749b24fe97cf9493e83 undefined -dc996f83a4a8245becf8b86915947eb31bd27c4765752451711515ef5abe00de undefined -cf0261609d7ac9dc80a6589909f83d34930054777fafd61d1b6e9324d64c3abc undefined -5359385ff0ed3f4c86841e6f58c94c5a0c4d82cc4977d680a2455ea0478a3309 undefined -32fe40c97c1c8d86fd7bca5ffb870634cbea98833c3409480feba26a5a03b3df undefined -2461fada50d0dc015158b05965694dacae4cda06ebac1be692c219c890038e22 undefined -ea7e3d3415adf85a92d8c2a74b95e8f199aac56444d288cbd1c9510d378ba01d undefined -5320f117d0b6bb1de1026ce9e9a5c8f1c142c577a8afc7217b42a64b3ee6bb47 undefined -94981a09a08c1020e6938a5314e12c53cccae276f05f94c09d4bb12e20b73eb5 undefined -6c7132c6b798d41f8f87e50dc77e2cf233257531a31dcabbc900352d43af4f96 undefined -334adc825da80eafad35bad5a07c2b30e487d3dc6189e346ed34afc6c191043a undefined -8eb12f06ab5ca863563a2e799a4c1fa9530b5e1291edf46deb05799354a66398 undefined -4297cf4ad770d4162eee677696a0440ed17d1f9648c0058d17a4595a1860510a undefined -981c5e139ed8036c5e6b913097f910e36e235a4087573838f4ac4a0fa28fc9a7 undefined -22ac865c92d50aa666fc8dd52833bdae8f054194a0c0e5065e6be6d646ebbeaa undefined -c586558d477314f2c6d245f3b2031f9d4d86ef8dca4c9f921c1d4580b7e221ec undefined -a95a6a69869ba7cda7d40ae821511ccc3b8ea3aff9cbba6c96f7c438a69b3a46 undefined -4082d8b0d8bf6db7c156c061613458f53df6182639313e52b9d08a745504aa23 undefined -ecdd10c185f8e43675ba00508a5ef94748c8864cfefa58539ec0c28f828f8692 undefined -8b15dc67589fcf6678044bc937bc6aef97c569208c0d5634290a3e691743833b undefined -f25af4aa034fa2033fa56341bf4c3e6efc6015d1a3ddccfff98d258a4db0552b undefined -ae4553f5923f36ab8f0b9b9b35a035c8982177252e3b8f827af7ab5b5eb37952 undefined -89d445258b6eae733242dbde23e02837685046a9ec18bbcaf9ec2b0868b44077 undefined -ea269447b0217e04499e910359e2a1e821e7102904d82dd87cd0391ba6c97c53 undefined -c66fba290f3ee6b3e70c36adc8d2313acbdee5f5a6960212f7474d1717a1cfba undefined -615bdb704ea50de5f354bbf2bdc6e3d889eaa100df38dd73d8bd63ffdedf640e undefined -637e80a3c6fe7f9a37f4c3e56a14d11fcfd042aae5c14a50be6ba89b96be2013 undefined -57c4cfc8568b32b8b9dd76924eea8bc9756f8b35dae6f7e9a79b70780c2ed1c6 undefined -e5d4960bd3592a5cfbb3fbfa6f1517407ade44f6c880790e5d7bf31688fd86a7 undefined -8adfe858f17550daf104c51f44daed1f602764e1302afa3edc79d8e0a64d906d undefined -db78fcd8ece9164d637f28d27b5cf7716926b306c802d5d55fc30fa9b8b52663 undefined -acff669002ee2a2c4711fa806a27acf06f3b51d6ad560c12ca8cfdc561606bc8 undefined -6311cef80890da8faeb86ac50f751519a43afa58ccf175e4ab684293a14ce28f undefined -e4d37f9b9fc6f905e3564dc6e9d9500d477d8efe1859e334ddc7b25d63e1ba81 undefined -27d0a9ddbfdf7bab3417902c370fcd7ebf2a5e52cdbdfa6e87b16c555c60bc84 undefined -39c4e569021633ed751be7c0dbb71b57f2e6f458b676e8b49da5a94ad34ab9a5 undefined -dcb2b8227e9ebe335c1b1ce57883545d86ac39dbe9451cf2344e35f877f1d4e1 undefined -a2aabb57d79639f52970046864540e92d4a725990730b3d027c4d703428cefba undefined -3bcc1b6def15d0a97a977a322d5d8a9c5d40cc0ac89659b36faf1aaca4319b2b undefined -02ff6f866258408536b64005f39b521eebb899f22b67dc2b3eea07f7c753c081 undefined -ed23dd1e6ac58a2e941cea9390aad8aad9e56e931c8d6665c3ef927164ca7b3d undefined -8874568c7073933e8b8dded479f1792c4f329a9a6d5fd82eaaf5ac9b4ad4715c undefined -2a693cc990990056392549be35706bbdbc1f756e6641a02067b09c497e236a2e undefined -f36e0d6013730c35c7cf569c611e746e7bdc9f4b83477aecef68b9d06e6bb5aa undefined -e00ef2570e832374a7d78628376133890ce2de06887f5b101ab262914f95961d undefined -87e077b6d405eb14d2b2f52734b307e208f93311c2e2773158df19c4091a5481 undefined -b5a4c03ce933e068f5802c59d22ff65037a4ee7ea2b610cd6839ba7d47fe96a1 undefined -7dac6789ed3542878c177802f9683dd4e2753342c9804a7b44b49178dd1f088a undefined -9970d29fbbc0e24462d36ce7e656607a0e0e01e6f59bc3f5382c39b1f81d6cab undefined -e5fd01da8762bdb01c4c4ec12c7526315298dd448bf355b763f8338f2c5c779a undefined -e5c1596b61e2868d8e0c9859e9f3487ee44781ccbdb77053cd68c4970cb00f7b undefined -e362838d8b4cba6b452ac10c3d002905d92d97f464a02ebae5dde0d1fcd4561d undefined -c17819ac95227188837746d3267005194477b8b82f49862511e09133400d2114 undefined -43cbdf7434a2d8a61c6a0e30f33147dfd1456623316f58f0b79319742cb7ca6c undefined -95109a605ecaf07e4e95c7129f51a5d8a06cf1ec60a4ee6cebb11e9c2ee41058 undefined -d65f8802d2d77a052ffe0b49989526e27a174e626d08ac990f03b620f3e03c8c undefined -bf2a91e2554925831c11100df9fc6b7aed7d71403471ad4841722dcf0f5030ed undefined -245c81b5f8d959c8b1ec7cec92207ae15bd9f91e400153bf059ae516661e7b9b undefined -250b711da92ff0fbd7e25c5658bbf5b31d707da62005f894db5cbfbe2b780f38 undefined -dcca70beaec770da54416313fedce23c2d7d76d3baf6d57c1b500822961526bb undefined -a453b0975ba7bfcfdf1f2ba8755e6ab5212d6acdb4418f5a48eefe7440d59a8d undefined -b6f84049301bb032b6d000343f3f27ecfb16801a4ab7942556bc0209335860e3 undefined -1f48110aefee1de915c4329a6d6645a80cd8a85bd523c352385350dc1a44d350 undefined -527f4f57ee3de0ce15da2db95947da18dea667a15ba67443db8f6ff2d60292ba undefined -84d6c6d1036034a9ca19e5b7166d5715e5e431f00c57bf7ef20fe7fddcfc6214 undefined -dfa66cdbbabad2b918b055de69855edaf20fd4ad98aba9590a7caf24c8758ef1 undefined -8e62d9b91fe5f919bc06f3b3541a04c0d7c8bd020c11e6e8c28a8a077a1c3566 undefined -4bcc37c5a300938a020e1ce1917c4b5fb4157d7b8ec53d9fd8250e57632c0f75 undefined -1d93343c4f91fca6b257ad565758dd891c0f2eb5d842f0fe2183c02acdf82843 undefined -bdfd0092b080004a8d683e2d56ff32f0e32bcd529d32db49a55172efa12db803 undefined -f02e248b5e88a036a89eb03017554ee580bbab55ac3a076d40437b1c25081fd6 undefined -e206dafabf04e18ab83aa7c04bf7a5252055cc35b7e179c429df9e8d7cb49598 undefined -2050cb3bff93768bf937c7aa1bb9cd70fccadc477b7c3d79b9504efe9074a6ae undefined -8347667c298c56c36ff18fd6177bc8d7f571a2411004483fdc7eaecb9971aeb6 undefined -8b39f066202a859cffcce83610bffeee44ff2a0f72c0a912aacaefa659d184b6 undefined -91cf30e90a7fcc2562d571181951984ef33a4abf70ec33a054f97f966c3b0d60 undefined -675892a23ae68df3a5b18a557dd4f37138ef2e6947db16057270ba4ad9fb5837 undefined -6d435d95391f2ac7fa26366708f555f9415113c18323be3cb85b85ac4104495e undefined -2f6415835d3cab05cbd5d9515d4dca1933b8dbbc65c36a4a0cd7d5a8b08cd6fd undefined -648433b59943245cbbf3b0769b07011c19e84f503436ee9c3c080948332a9677 undefined -96f6aadf5815433f500d114e928b0e8d7b5881552d265e32e2414e058fff47b1 undefined -0521319757c88f9b20e7b8d8bdcfa8cdbcd3fca18c7999c3f000d8d100d7af2f undefined -a8ac39a66e8899fa750fe171e85455e4085ec44ca5c08280dd16f9a6f5ca07de undefined -29505d3b0bee6de173b4d4fbb2ddd504b80af42e1a81d101d89f1da644974eb5 undefined -73858b7c8a5b770c46501b91f8e7c7eeaf6d1665c465c56b668317ab2f30f961 undefined -e0684c0955ac41d2f2c5da5ec00d015ade7e1ed4c80a058ff0c3629b1dbd1006 undefined -f505393f9bf5124cb769da9fddc11e8b49f0cf7a1e95c29b2433d5aff50b2c2d undefined -ba57a7ae19838e67dc7cbef09fbf0566cc6d23ec3d7ca0fd1499b56c8e6ff7fd undefined -ecea72eba89e9de5f06bb392125627589dd0258160af791392757afe87638cff undefined -acc36747f1b63231ba14d8b91ceac2e7e5ae92f4b08dfd8906181387ea5c21bc undefined -7eb12f4ee9b24853f2cb738427ec7cc3721b5510c08e451f12bc7acebd7681a6 undefined -531e3df0378b873365886a3b1b42338c0c7b56eb46f3772b1d9874edea5fa3a9 undefined -60c49441ffe2a7e74d5a3b6b8128fd064d4165a2b917b3c1ef1fbd0204832d43 undefined -70b997aba556176bbbdb8fe538ca5b4f276099a08368b0f9ad243585fd71e79c undefined -dd8374eaf370bc1e21dec8f47242dc4f93aab3a26e45564fdbc27fc1537e0ae9 undefined -c15b0c56917befaf920cc353de4d7ea9fad6375ba5ae1b2cea0c6eefa435fd36 undefined -a0d9e579e5608f427526099793164f9569547fb04003850fdee5d901cd2e7e1c undefined -4ef8ff1c3c297dbeec673a5e162e09e9e673a317a16b32fae00fd43fa181533b undefined -568f8ec135ba880bf3e09539aa83e3acee1cc331e6c35e2fe7a08a4ea7df784b undefined -36e3bb71f510bea9bb5b08d0636789b4f67132bbe65af9af0089cbceeb20662f undefined -687346fa23509c00c0fe82ec9c1064d082d0f258ed8406c3a9cbef5914fe900a undefined -81c79f7015d17fae167806545f635e1fc75cd44cf4fb9588d1a5868e65b0abcf undefined -eb5259e868c97980df83aed4163046ba9948214e1282316eb8f458949b8c3d03 undefined -f4ee2c7709fae0c17a5c182e766b9027a530de0e7ce275b9a620a71aaeac8888 undefined -4e11266e636fccdc532ef76835b5acc8fc9ef90b2c7c2b2abcd20e7ba7274b4f undefined -3c9e9472cecc94dc7243981f1f57151a24704b14f59e14b48a0589b5830026e1 undefined -fa4c6cf47a1fe81a46075c86a6e4c13c8792d0fdb2a8758a448534130b8553ed undefined -87c4ef73fc4b35dd795ccf7428d4ab6ce6d8742b2ec42a1a22bedba0948b0a63 undefined -f0419fea2ffaf18e19ed61411b978f1b1d3307c3c844fabfb016925e9e5397b4 undefined -593a27aa310ea977a8b399f4d42de15e0eb45e5efa2de525ed233b2a6d53b9eb undefined -c4012b31a344de6b2bfec93be92ca844e9f9b54a25b9dfd7be7be03a90c78520 undefined -2c46783b3971b2834cdf74bcf0c2b69278b5b9846b82b29bdbae1f59ce6c0021 undefined -e9a8d5debc21cd1296caf4387d625fadb2173faa51678483b77ce7834950c5ac undefined -0661158d78be6117b9ac0bdb7214e09440d9e0bfbecde4258c75b19e882fb007 undefined -a4cf573294e805aee11f5a12101a9360f57ca3dbbb18ed287a774a0ee153a968 undefined -dae078cd22f4a27ab6be22401ba5158981a9bb3114cb3509c1acdf535955a6d7 undefined -d233230775c18a358a6bd06375f489e621871e8e537798067e3d74228345e38c undefined -81ba98b9796c38569e6cf7e5ee78f6f014a19a9b589e163dfe4a227e962ef3fd undefined -53df80a5482701dd5060136d1bf9aefb20bd34263be9b2c1f8530a5012bd43ed undefined -df9bd456f8aaf8a23f2c967d511596b476e97847261c537a850b5885fe25981a undefined -29717ad5489dd6a12cadd1f9eb999ccb5dc33d6f88d9f2f44b912c1d1a7fe86d undefined -0f98a4f36b76c1302191ef2341f95f242fc91dcfe770c981104fac88d942bcab undefined -4391e0b89f4b907e901171224ec5f84ab4d459f26d1f8864c7989ae3de208ee0 undefined -1ba263a91fffbaf4d6f8e48ae458c86d3035051ef93045aeb798210737a8b109 undefined -3b857293fee1cc26bacaa2cab5f2ec2d2890c59baf116041fe825c978c788fb7 undefined -6cb8b67ea14358e873da6518d69660567357e47f2424224c08a99da9aa3ce259 undefined -30378aeba22d3443e9d03a38b2e3163af9e000a8f8835e98087deff68ecc6854 undefined -d6459b0f01b7a882bb9f66184efd9d0a0ad3b67bb079a2adc995acaf062a9540 undefined -768f76359a1792b44977891db0cb52e907798ceccd8f6b6a032555d49ea9d511 undefined -8eabeff44d35af5b6e3c6e1e44f403bfc79c36e17ac6eaf7e5f7c465602b2d3a undefined -741ced4c93080c97ef5736e1810f36606b4302fb3078f3c49b95c9f0dbf8ef9a undefined -ae462521b23a7dcadadb42f16420a504bf3c44112ccaa326f06c6c485facbc28 undefined -ce6d9570e58aee0dd3a7f91db3ec6f75b7c2178917429fa0e826d82fbb9415db undefined -93dc26c7555a1d676c7f83d263eb7661aa80ea1034ff3b275afec230e16c1179 undefined -2fba655928bef3b17a7c97fe07696a6d5a6c0c3460c4f4bf42117323c90ca956 undefined -6e5973ba282c25f9de0869cb00bc4425356178e376eba03e141c253fcb7a41a9 undefined -53006b1464419026c19d1cd37fce1e94f248250a4397f8bcbc77526f0040c239 undefined -24eeb9e7ba79e3d2f6a72e3a3a540e53382c38bef089240426b9f1390bcbc0d7 undefined -c13a69ccc9da95749e9e58794f1f0fadf04e220d528ca557304a913926f74e01 undefined -74a845149c9ed1c4abcab583df788c7de1495b36ca2d4fb07a2720d1a399e195 undefined -731e35a5e9d2211b276e96b4eeb90106079464ef5c61f1d0e2f363c55df8ccb4 undefined -c8ee6cb8225d01300c0d95f132f3493a9cb3d0f70af484c1010beadff3aecb49 undefined -d353e92fde57c4d0c6110c41e5f2cacea6a0a74807e9fe8b0c4d45ea2babbaaa undefined -09bf4a8e66502f1709ec19cf025ef4f84f7209dde95bad98c3e719d093f09bd4 undefined -f864721f09b7b21b74cfd3eedd05e4521bdf25390e4a8a7fe6b0b411a427aba1 undefined -6c66aa50994a5c830f475451fba82d13a6f1ae8d7fc7a4b9fe52ba317bd35e78 undefined -6e02c0250b09b2ee0a679ccf75740e9e041a8f4033ca507754ef20ae7bb3c2ea undefined -da649da3a45ce7987c3880971a78fa6137b37c99eb137b8a96556a4521a18814 undefined -245a57368107ec067e8d95648c4ae3807e6e13e1f759ce129924ca55f1358342 undefined -da48455b93b1be9e5b858647ac0bb477a3b25029d7f97085d1ebbd8fc96afdfe undefined -b19e26898c3dd4d70b9521cc93b3358c6309b08737fa27141fe75a7a0baf7d8c undefined -470fe67b2f638c0d018eb2f3b545289d3e69ca7e17e1852fb7c90aeaf16f2c90 undefined -c377ee097073ec009f0fc253229dba851fb7ea4bb4d99943dcd54224f7d6c3b7 undefined -347c8415c6456dbf6d135ff3025b456a45e1c0b1291602356b0ac9716c823b5c undefined -51e3847ae33d75cec61bc5a4cc558626756f2cd02c4d66aea2803f6370d32065 undefined -333af94f6a65fc181efce7b1ad1cdceec4e359ab5f57c997f4ed2e135e2cd0cd undefined -e4a99fad34976d3b23ae44b81c8b1be1dcf74ae57766d2c5e3fc65792cc71ead undefined -d87102807c5c3cadfd85fa662667720f5522499c04d957af7e6ded2296cf42e4 undefined -aae0b10eb5df281940a23d66bcee718650b916709548ae3bf96495eb73ef813a undefined -57f3f7736535dc8a8c289351c056cd8eed5f718e1059ef5dd81cca80b58ab2f4 undefined -e93f54f8e2f5aa6d9510da1e1ae6e28998879635d9c81aa3e38c7eedc9bf7865 undefined -a6b202771e1b73be1df406f2593e80f55825e2822bedc5aa6943e3537d02dc3b undefined -ba2b2d35529c019f0cafbecaf19a7c2d4d81d952704b627d06a52047d953bb70 undefined -f43d98983b6a2ae684e700928db7033f440e71ff470bf9a4872b408f5c113547 undefined -c57d7f8ef868bb212b7fc98abd70cabef375a6129b8df17fda6939e4594b2531 undefined -5b1bb47de040c086db5eaf96ec136c2ea73399a21a808c84845bfac763918a44 undefined -477c05662798d20549ceef580c5f55494829e475d1da37b16597560f8a208c9e undefined -c0aa4d8da69608b7306691c62184187d4186bc5d948cc365244f92d436f872a4 undefined -b7e59fb13a758e29c555c01ce37ab5b6888b712d2d46ed36d3cee4e61533f546 undefined -f298790a26d4e1467dde61cc7b467458c62c53bde965e2722f58298f02ec234c undefined -37e11dcfa7feea2ca6e269e8e665a6606e73c52825c895243980b2b6fc966421 undefined -5c38dbbb58f3cdb069e8372edc9f14af295c78982f46f4631cc9e0dbc8b226b2 undefined -a9705f7acab9b2f673eb07c57fb7a454a945bd9b461e7faab44ffd0a66e73285 undefined -c2cc0165d40b50229b2dc01f8a8a51cf33066b5135e25cb1d01ce2618a6647fc undefined -582a334014d9b4377ec68aa38cfa184e293220e2291fd9fa547739d174cd8d6a undefined -d4ebc7fa6fb8da8ee7b344e77e3ab5c3529a942322adb5ca269cda3325a5061a undefined -ac8a090887831be5f6a650a29b75c2e71d1ecd85b2d0abd0e79472f7b1bfe2ac undefined -9deb3d20a065d2205bb922df29b575dae14f4478bdaf11a529b093353eb58d50 undefined -51c20fb42661390295c0a44e1b1e232a372e6862cee73be047f3efe1263f4cbd undefined -8c89b095c020924d6a83ab6b3fd0b1534c22f1589447d707ee2634b148f46ea5 undefined -33311c8ed56e78b3cc123362d41ad80a449f0135185e80cc5f45d3805945ec33 undefined -f89608c5880e8b06ac38d2f501d8f7328041046b754541a5c729466d212282d9 undefined -3699c2e99ed4119068c3dd1de9d7e4ebdad41bc6a68bca5b612a0fc5abc3516a undefined -894850c6dc96e209c09994694fb5fa5069a34f2b3d45239334d6ab465cfb7e76 undefined -9370db062e8bf8fcc5f7f7d5f62c46b37ea8edc82ec2ec56ee12ee74e72045c0 undefined -caaf165a77e1be2e4e63de867ca5518929d2c2b5cf212d443431e68076bd95c9 undefined -ec08517d56f57e526d0cea474f57dbe35ad9ea0230a0c9a4dbdd74b384953a3e undefined -d36e7e1ec8c7ee15c4783f8b05b07a9ab3d6cb39008a0d064b7287fed8810145 undefined -c42e31ed23d9fef253bbc0eae22ed372eced311bc4465bc0c254628c58bcb69f undefined -654599cd84c19bb73a25940a0af695886b6ad7be8a6515b122700b8c95e7d7e4 undefined -aa684cf50d1a36d6f1e10128e180807eb81c155abe2e617de10c33a3174fddb7 undefined -f71659dd9382d70b17bb80812cb0e2e4b94163e56293d32f2f07bab941fadf68 undefined -8d603246bbd6b8ee8fad627adec6dfd0a2c48fe4fc91b23c36217f41395dda00 undefined -81e2e4c420a42d81fd51330b631860c7a6087481b2cddefd601dda15d6469e54 undefined -0ba916b9fa085a5cbde4306b4dd8890ec32c7fa639cc95200a8b093393c42961 undefined -e4c7857c54146b38c3c3444ec53b3b55a07d5927c4886fc9f146a71de9e7fff0 undefined -ed55ebc8f90e9d95a5f091b109514356b31b87bee73c778ef3a9875e4785b5b0 undefined -128d9d3ed9d818b1ea6ab24cca781d2b52072a8f227b7138580fb603cde70648 undefined -71c85a596744d3cb8d86c4b7e9a089f53da41e0c824b682bee0a9a9796e3dfb2 undefined -75ea9c07f552532feb7e75ca51ffb7f6299a44ba19586f9a55bf74b2ba69812f undefined -b356a7f9299abd625950a7484284d7dfb2e1a8adff80326bbd0dac493d258c7f undefined -1585b8fc051a038562ddb079f4696522905fc260d9340fc8b68b551809f2a68c undefined -32383b44cb557269f919b831ec96ec3d96ff77f085303a0f962de4d717ca8c53 undefined -7680e2e75f5e21d9cde2286af275409ee486edc23c204eb18a2e23262edbaff2 undefined -3b3e98c678719b0a0fa7629aefb51bec0f2c709450471bde112c370d22943969 undefined -f353fbcc42395b57edd473d9df3832f9428410ca75f7253659ca4d2f66b26b3a undefined -c5be93ad397478a7ea0a61a304dadc23e2684108f5671792764c2479a05d35df undefined -7842538419f3e40b1400e3fe54844f015e39804eaa64b4d73113e4459948e1d7 undefined -e0755c0bd849437945296ce8d622adc506342782baa4f6d62ccd3ca3a7a69c10 undefined -ebb60db3a7b6464661ff5e445a6907275b7e4c1b71d9052ed5bda044c5f735c6 undefined -5d1db0176e049ab46a056d42a06edbc876211aa3df7f0db8f4df6ca97cd813b7 undefined -9f4df2d4b8bef36224f782eeb11e80f791019b9a12f1544a330f45b1b5c957ef undefined -96d0d90c9807ca892fe6142e2884e953ea89f07312731515ea57b3b39504a289 undefined -f722bf5ba13c1410e7942aafbf3ab6699ae077b85c01a2e4b9f887540125955c undefined -3186fcea6aaf8e0ffd0b1970c7abee2e6415fd873bfd1e1c68d4bd10c507355e undefined -34fdaad5a1257a05ca2b6e3484f050418297aab2f2dc5d47f7c489f0c64a8924 undefined -584664475c8ef6ac2b91f86b3483aef20087d66639591e411e1586a5fb45d525 undefined -18dd13835ab4ac0fe9f5c63995edcd7eca9d9fa7673d1e4bf09bd547f0620c13 undefined -4876518dd34e069f76981f9da0d405fb50ecf2171ed5c59126762f27051d3e47 undefined -d32c592bde108f60e963730872c0bc842e8e083be9ecd998bf3d88cf948ccd63 undefined -b6332c3b14c225b3fe07cbd89ee8a088f0bccc0fff47d8ce4056a4c028b5506f undefined -78d042c67f04668695f54fbb7eaa52ee39cd65a2e8eb1e27cc4b67f701e281b0 undefined -7ac9eadd346a6fcf03f9b416d249d6f83f999372896a47b1270f699650ca7cf1 undefined -ae6e9569173819c9cfbd4164933426d6d6f1f2b04dea035f27efd226e0c62857 undefined -ea7e78623e93b22a1d5d1eaa5f5248c7db41216c407c4d247f01b062571352b4 undefined -a144cede83260541363e8ddb5d6662b2a4ef4023ef234d1b14089e719a74ec08 undefined -b52e1407d6f80332dc448db9f17df4ac590f2201a29dd6764623631ddf967828 undefined -a52de05d75fb288117d62be797a245cc6b70c99543943ad6423c2bf584ec39d2 undefined -ec790c4d43713773d40ea7cdf93dd90c78b0d35e99fbb0f236798fce39bbe99d undefined -5144d0b7b033a4f1c39a83529d718cdf9eb13edcfee5e838b4763baf660a9983 undefined -04f2433ff0dad74e60a488a87046308708bc6c2540dc5a20143c708040e22ce4 undefined -744fc9bb9848bebf64c78326d3bd6c21f018ea5dd2160d16fcb1816156ceb75c undefined -c41bb7c8ed04bee5e8d4a319697e3145a8b36faee3747f48bab930c4272b2836 undefined -5b42603e64362e0854dcd998c58e702afc1daf4ac6c5484791e4fd20978c4921 undefined -a64324c10a4e9635abb03e4ba7974ece56c8e6c9d35aeeba1bbab0e7973cb57b undefined -0c98989ae5461aa26cf8cad6db61358ae913d0fe05714341dc2cd01826fb020d undefined -cc772953ea898e66fb6d915539a0b78080d314e424efc338c293ac66ef566ec6 undefined -08e3498a864752bb42ad81d274cb5190d71fbeb634ba5a81c6f9353e283bb26e undefined -502684477e6837d73b3631900dda5f466c0409aa48f91300b6858d824989c959 undefined -9cd46174293d3232d3dcfdc7138bd3fae732e7ec60a287404726ee576bcf8817 undefined -3bc60d4a300f52797c90cd87a1fabb5e8fea58e678f1c27c0e84bf1ec95a5db3 undefined -09fc5b44ed933dd228907cb87d2767abb98ef698eca01f8a0cfcc37f8d5699e6 undefined -1a0b0bb30f46b6d634670f5a31f015b2fdfc08f2dcf5b46ea5b4ff4c3fdfd489 undefined -c879ae7cc3d24aaf205521aa5030c13c47f851f75ffd79d3fd9e877c6dd68a3f undefined -7152243431a34ef42b837c7c323dcbd7aea8619bb3dc63908461bcc683cb4eca undefined -6b60d70d7b10563148a4e3e239f924a3cf1478b07d5f4d67507f6b8c6f6bbf84 undefined -bec1b07dfbd2598e2261b738b2aa1d94f6daffc02fa51a554c670133e97d83c6 undefined -28c650849ec1bbd488bb44c817b03f952b2c2444524d5d3d1bd02332aa5a6b1b undefined -7de63bb049e16f317f06d815e02603653d2c72d768908e9664a2b40270ff7789 undefined -58a17d2924e945caae92bfa42f83a50b854a535da2d7a37ff5dfaf86184d5a94 undefined -eca1db6e77e2b8d172b83167cee7050ba0c13f17aaa4d2f7d9a70c410bb983bc undefined -e61ea92f472e039b1feeaf8c6a50753279c6c8e448d15c7fb3a03f852f598f9d undefined -825f16724c3cc3535e0a58d0cc417ec022f05bd6b1097f325f623066f0cd3f39 undefined -cc3462902a68e54f132eddc09f7d5afc1888fab3ce2f2efb09385c43776d43f1 undefined -b8da9f11c7c4e8e5f4a1a1fda50b0c423351c062e5e0eedb9656f17b7332acad undefined -81be9c227951a7b231837c258018f0c2f794a26702aa3ad7ff62825a8406a1ff undefined -ce8bf185153a79f4648df644dbc9a2527ef64d9a392c2df8ba9cfb8f62e27001 undefined -996acd11e9f3a2f1fc0dd9583ea50af5447effd5bec4c6033810b62714835be3 undefined -7950070b7868b6e6748ca4c33155cb1ebf71caf7b6f31ad2a0cb4d7dfc95638d undefined -e1d30230dbdb2bba21665caad99b16967757af58b30e5c98505a22abec21b84f undefined -249897d0350f938f69f1ec2aae2d94ea419ac29f17baa95fe7e1a22e6efa739a undefined -c53f264d0788cff731835d6f064d29279cd88985687fb04d9182db8069b7d788 undefined -b4314ad28b44114ea604c3ee311732234f76fbcb6672d262f192ca8a877df3fe undefined -02fc6c54b84acc9c8b78848afd3aba1d92d7d46fdc700d6a785ca093c50a07c6 undefined -6905de9ff33881d80ed9d4bc198a4d0e530e28b1bfc0b0b0cd9782e9313e8387 undefined -5ab6d47a6ddeb7236e203c20dce01166afc8895739df181c2b08d0c5ec329ce7 undefined -c5870e6abd50f9a27a97af880a38d227b6f6d92f4b1bdd97ac2dcbf944d9b2d0 undefined -0123f121d41458b14ea186d5c8c2700db21d90f1219d9daf4766f0b5e0f3c9cd undefined -11554774f1285de4d7e4e0c89be9062f9fe8f861d85d07bb21d50aa010ea3db1 undefined -253baba43558b84c0999f5409b31bfcac6db47b8e22e2e96e49b8512dee9ee8c undefined -bdadde436168720ff839c40202d6cf162e8551f9ba4257c9731be8df96a0cf9f undefined -4b87e6af4e3f0f725bad81019c3a8e6348673cfaca5007a528aca4e586baf2d2 undefined -f209676159d85c5989b8e664bec835437be505ef26169ea1009ac20d8d98ea82 undefined -47bbba4c86244a696eba4486dfb7099868271ebb62471a8ba5df2bf4767d323b undefined -faa8e3b855d56d731823c5c9500eba4c050255dcaef55a2c78f78f158c4d0465 undefined -4a41c15b0470d1880c762099cddc9728b35ddec4ff5b53d0bf634cbe77c2d25c undefined -1d13c91322c417bdb053f4d9f0156bead3bac693ca97d47b6950f4bed6ec73c7 undefined -15ecbed1b0265c8a980f4673e772870e98419f5476b61e5ecb852adab7ff75dc undefined -35b9228a01db73d5327681dd62ee75f99232cc1b0fad42fc067fc69995b8cb89 undefined -19f7eb8d128ed76cd2bcb15cb88d71c6aa3a70ff71a0527c720a8be242720a0e undefined -97d9eb059a465c0af7086531d316cb84ef7a63ae5d5cdf2d9952528901a4e97c undefined -062aa6a7831dde23414ae70090952624a4832c3b1b23d92884d42346f03af5f6 undefined -66b10a3f29a74ecb0a57c02f46097feea4a2c68a9d7fed4c7454a5fb0c79f0b7 undefined -974317f8a1349ca8e694f3ca4c17dcf1bb6d070a96da33b1812f0b6b94d504dc undefined -1cc9f2cfaafda04c0d7f516d01712f2c06f04560ac0cb4cf89034d10e9964620 undefined -4efc1cf32e9501974ac1bc4901cfafe2bc0270bffe30238685c87c7f33b5df21 undefined -0e59a699a7b9679fefbc462e719463bc57dc9ef5d6c9ab5b1052f5a62c2d5571 undefined -f175fee60c47b6048aa1ca9f99d826f4cab071aa692ea609b5ed37e6df200733 undefined -39f1756091af348eaf13b56d578d7be5881a00ef5047f49269d63305e2c73dcb undefined -e02b07f5731588461edcf53e6ad8b02fd84ab86de8c5adcf10be21c5c2811033 undefined -a5ca1f35a6ba516bed60438b9282ba6f660a6580fc91554351e43c0f43824b25 undefined -88413df27ab22e01d34674ac43821d4010af1a3dd4be4ee0b77a33d312521bb2 undefined -81d3422c7b4bbb1e217d0ceb4117f47ca0c2cb685714869d0ae854e33cab8dca undefined -8aa288d2046d388aee40544502a976cfab5e5c8535222bec8b2202e1aa804765 undefined -4a22891ed0b9dbb84f2c70a475753192883cd81be361721f56bb002754f89914 undefined +ac41fc18fbdf29e8bb45b8cf5ee316acd86fcf3d1898d60184c8f4d1d0ba8ff2 undefined +8614b27e9971b7c7aab173a35c18b5a160e811486e37832fc1b7698febe341d4 undefined +948ab6d594e0c6e23d56d5796e4a3d7919f1d3a7c9a6abd17b985d5c5edc4ecf undefined +cfc6861cabbcc36a832f1d655572cdfd6fb2188b6d2cbb47799912d6fd71cc2d undefined +37024c8ec945284a2eb34ffc96d57e715b5ea183e9a5eb190ad2cb75e3a285b6 undefined +c55eb655b1589918bd19b162fd86c94489d23300756aa307a02cdb25e92cb580 undefined +3a15a58dd9db8de5820f7e2dae1576ba17a2052ea76b6422fa7a49954a3f2d9a undefined +93ccd905cba4eaa425dfbd92b0eec0257997185f792107c1db5f202c11f88971 undefined +866b7a9fcd11639029de14cdf1be98769b1f0b288799220485e0436ac513e5a7 undefined +bdeb4b1d5b8b8b97ebbdefe3946082aa8f0ade3e3c9b40d5bb4f2137e27a693c undefined +9f8737501531cefd6eec8e3e4df235cbb3492224c53c9b6389b4438a181620da undefined +f516ac31ca0a933c1e34cbc44df0bd5fb30420b3f441d143100d10ad453a336d undefined +2d009bd8430dea84af8d2b9fd8990f6e4dae483d633bd4a91622334524eb0d8b undefined +376acf4c0d6cf96810de74fa7346f78fb4b2aaf1a1d97ff45fe49bf4e7750e1e undefined +5d3d87e93e1c681088285bf29624a38bf52a78a2b230be6734f21a1d1ba7f5ab undefined +526dabfddeb933abd7b550d824c691c7640fc16e804747485c56aa4af34cbdb2 undefined +7e9f40016dcf59945c278f0bf51a9b29d4cd59908e73145d0ad504b59fbf0566 undefined +1bdd6f236af1a1dbe3b56c7bd48ba964ddf7390ab40d7ee0419d62578fbc7a48 undefined +b119e2a5cb219a88b70abdcb19dd43ea23da1d20a775217a62423a2f921f4f43 undefined +ac491935bad202ef0bc94230beb5650136013b040c8e100366aac12d58e3edcb undefined +bfde348c0cb2222060d701bc17c904d9c4775e1c6a4614873029bd0829e26072 undefined +3521bac7f41e1016036b4130bec17f682104f0f3e0f0bfdccdac978c3123e10c undefined +87ec32fab46e578092ed54ba3ebb05e45f7362cd5cd2fb9e59a72efba2c9b79e undefined +46da58a5af19bc70b11358a952305fa57e5ef18e15c3caedc88f31637b880ac5 undefined +5741004f246e6abfdd06f5d7e1115fe26919b421aa4edfcbbeb0581d31cd8f87 undefined +0886f8d9dd0e878f3c9852337308be8bfebad903f6a5d7d76615baaa9a75a637 undefined +b0d6e9a23a4c55f31bf3cb8855985aeefd6ee7fdf8242235ade5b93fe37e95a2 undefined +f5bec7bdf80ba8d2a4eea06d1770df716e2332c971c7b5f77b0e8d8503a5d2fd undefined +8d9a3379942e5b7244a28f6ea5ae5d1fdaaf759b4e75300f6af7a0e6f87eb14e undefined +bba2eecabbb08e0fae7d9e5fbd12a4f7d37bc56d68ccf9d192789c19e3195282 undefined +95c2093e353c12cacfec02df1f3ffa6e521aea773a547b9e3835738669ca0351 undefined +dacf0c8cc1c0e3df7e3c7c23c1ccb39e355ccbe6633c39ba5a262a2aefb28dc5 undefined +ef75d1cdc61d6f3661a2171e4820f158fa68f8f5346d008ca67956d7349ae2cc undefined +01291bfb784e5772dfdcfc2aff3112bddf64f3f20b63451b98b7d06482d6486a undefined +f137c3f94b99125a433e4796aeb269d037a8739d3d64c546b51d02d61f4683fa undefined +e1c0817d8dd1090006663ee76f6e47f28df74c7b4bea934936645454984fca4e undefined +ce926cd3af97f60b4e0e2c424c9c3368815bf616afa278890adcaac89a3061ac undefined +78101bbbd91074c09d51da93e973c6a51397dab49ad99d8ad8ec0b369da39cac undefined +ea117e1c37f0a8292fe612e599b4f310463ce2caccaf5de7de0ac77ab3ed4965 undefined +f9ecb00cb795bfd665f28be9c8b7d1ac407989c9babb26d47b147ad932017741 undefined +189ec4c773ff57b81c93ba7c223a23467398e65e4a27cce3884bbc1e4b04c489 undefined +5132aa40ce930152a7855ff2b9c55389c2ab07eddf4aeed6cc6808251b9dcb04 undefined +4debe6e29c7fc3d38544ad22b381fa66517a790b6f14a02e11c4bc84469fc072 undefined +b8f58e49467fb41d37444f407690cf529560acd62332f90e85bac4164a655752 undefined +7be58de5b0934c126db011dd3dc2cbd6f1241e45e8893e66bc8639095e7a8c3b undefined +ed7227f24b7d5bd682d16b83b7ff164184e90198f179af7fd6e7fa5601f72ce9 undefined +34135be4643781f2c3ad5293949199929f5b821913db324ce37ebcba40fa566f undefined +422bb30822b745e84cb86918d15e3389275be56972580c4b0436458b18718241 undefined +23fff8cdd131c7b06379e09788c6fd4a69927f3d21089102804fbefbd2e9d57b undefined +19511eea20218c6780e5ef2dde2178da03be1e35263d00300134c5cce5a2d258 undefined +6af635ed553dd6263a19923b9d637f40f88d76fd2de3200149fe0ff279ed8808 undefined +4baf63f034604ef966d4fbe083f0af9fc54f8919222eb945011eb9c3f3a14038 undefined +50ce047e8f0f8b09e26d99900be9e0fcca945e96277d1ac902fd9454d9ecd82c undefined +6c950fd9edddb7b934d137615aca5d320e4772422db006c1a7d371d0fe91fa5f undefined +abf2023e493bc9dae8ad5cb6ab03a27e388f31b59888459152ff21150700e141 undefined +de0b808f582eb3a06b3a5093207cf69e96dce5013bb45aa58ff4a78efdf0f49e undefined +3de2932b29f0552c5c7d9a5b40c04cee104af91b77bd4fcb970afad52be38dac undefined +d562ba4b10f4b05d896db370623b2956a8bea2a6d26adb10d5615419c3732359 undefined +561e3b563240dadb4a94408256e1eeefa2ff20329b068ec6a264b5c3cf87fabb undefined +38f72d82e0118a18bd8f919e1070ebd73954421be18672a634092847c0f7558a undefined +c9019c6d66110111b0c3fdb23bbb0814e9c5093b6003ee586b314d302deed41a undefined +4b1ff43ef09b598c91c0f1c8ed51804fe0ce09f417625d95d598874cdf6e9386 undefined +fc57c24c4cc8060b9427b47833109f531d664bf366c8b7b4b7fe0661cda15df3 undefined +af6c3e537d29d917ecc01810e7572a391876547235835593fe848beaa7e9704e undefined +39f616cfb77670c40aaf1cf7e1c53edde0040c45bda6dd619dc18cfcf35827cb undefined +89f295df782d710c598a8ab6ef1adbe265d122026d78bbd678c249a2a14bc075 undefined +33cc358e1e1168d884bd174c0c5bb327bec4b81b5ff24f5552a521fc862a4031 undefined +d93785dc1f9b63729d3e644390e94f8c46c9586e070754787922cec1366f4a66 undefined +7f89419da3ecf6912f27ff87d6dc36a779d278e608cb4cbe114eb23211fd1524 undefined +d4be31746b6d69a2d0f9e50fbeb3513b41794cd8bf379da1eb83b8517c7f2141 undefined +7662fa3d28289db1b35141e90dd159ac848b1a831fbc4059168de7609a66c65c undefined +9e46129688a7211a3220b08976ab682336d02db229f2032c53a2f34fbbd8ac97 undefined +fae11a519b96c639c8cd97b12e76b20520fe4af0774ad513e709bc04533f3a14 undefined +b8ab09e87eb92d6daedec09c7c40a4ae33ef1aaca9caee8cd97379e8f6469295 undefined +d5240f1000a974169205309cadd48ec744b21dc941ded5473ff2310aab4ae57a undefined +8141e50c9f5d03e328c338057aeac68a3113216aeec65e99381a7bed5728cd4b undefined +af08b1d13234e801d0fc06850368e1dbdf751052654e072f9cd6dfc8692bc984 undefined +9b2d945f4cc0805595ac867e721937ac8bc7364c648bacaa65ec37af0aa2c612 undefined +808562c31a3be4549f7cccf45ce60606e6069eaf4e922c261b155c54a0184a56 undefined +b37c6d059346dc83db45916b4d4998e7616309a76f74151654891ea2af9ea12d undefined +7d7a2114704a9598f763cf0d2ef8052dcff00b77fd4108f0b17c6b4e9d6c0c5c undefined +47b601da013df9be65f1044c8517bd02d78c35fb9ccd9a4fc69bc7f3cbfe5fdc undefined +0d46eb2b75a0760bbcd9ca9fd535742cdcd521e26239bc2c7ce6b7e9332ca5f3 undefined +39251317bf0b094a658fdb7047297f78768b13ffef247e721a27589d14f37c21 undefined +bad6de97c32b77b325702cf1a78db4cf2ace57084e95441e77e7aa976597da44 undefined +7c4e86bca904b6d7dc2ad5f9b0cbfdf276284619184ecc8ebc5c8d7ea56e5848 undefined +372c749ab5c6ebe4d4f4fac03924aeeae8a87927866372cc18f6a1114f7f5f28 undefined +e4a3fb65a669216438839693a5f09573d0eca407805ad2bfd7f1fa6d1d44b190 undefined +56fbd710920a1eb0f99e2ebbecc4401ae257d7c3f5bba4076c8c917a434fed18 undefined +708abb474b0c8c82937025a68a85439e27556c81668724838be982577f540234 undefined +83ab2a78d9a0c2dc07cd2f84ddae3fa0b72f1e1f6d071f3967ac4413b1bd6961 undefined +062b3ac01c18825accfe329e5c5e29ac203a7c042314d0b5039223f43b164c7a undefined +361089694d9aa48cc1f5d03924335047f5d47700804c99228bbc59abedad5ea0 undefined +10c76fb76f0c5ea01cc47a535a1bdc1f454f6f2b591871bcfa25f02d56047343 undefined +c2b0f5da28bd53f1bc8b5bdd5408d1cce6454039cfa87f0051accbc6628eb89b undefined +f9f8006d72c0d0b3c4f744a378d09ec9f61b0e7e6844945d3f3e20839f4b90d8 undefined +1b601436269d028901f34ce439b35e311729848e1b3b8a19568afc4def5f56c1 undefined +fb8bb40ede996bf4cdc0ac28f99cd82ac698557abdd941868d1aab12362aecdd undefined +5c2f85d838f861c8dc822fb1520cf6c127625845d28f237459edc5a5a6817d60 undefined +20cebb0a0d0d92a72e39116c94c0a70b23189142bd2c51092c93fa9ee321d384 undefined +918c15f307a6527ad896c5f4c57a76d02e28cdc26c694cbe2231f6d10c6bcba0 undefined +64bb01db3de485a80f3a541ee458f32a7af22781ad72e11b17784828dc24455d undefined +6c20c5d7a7d1db3dbbfee612e8eedefbf29b542db1718568d77da83ea5dd005a undefined +e9705e170551609a5e55959e2b9315f78c1a98be0c5dd8995a82b53e0106ad3a undefined +024cc9289831d0b5e874f7c130424d4a4baa9bdc21bcec09316e3c599c4512f5 undefined +6edd5a99b48a2f0b9ca8e8fa7eb22097f8893b8e7fcc57ec1b6735337d90afaa undefined +00387b6fa3fe2471f3489237a220a822e66dac2bbcc73f181982f3c198fdb248 undefined +7d3afeb896b21e004fb057903b8b58aed39e7002b402d8b367a9ef46d5750f63 undefined +611aa4ed3ff4276d38513046e734097345d0fa9edcc962d4e7bc02cd5c5dc4fe undefined +24827be7bfdfc14245ac5790e2c00761398636a9d8ae60c4382556c5a850cf03 undefined +63d2a561b10ed3dfeacd5e9df0d682d24f9b0f1c8aa33ab1e86685e282d07fe2 undefined +332147b65673f566c898203b4538f6f1dc361bf925e1bc314883fff88d5d0c57 undefined +4468a479c77d4648f61b1be0ccd60d67c4e6363a3fab73284f60380c6f2a4884 undefined +096ef9c2788a5943aafdcca1bf3190781c814a06ba3790a31b415f57b9de36ab undefined +fd23504193db0a5f8635c69189a4e6afd0e54a49d529ff4f6bbf8c020c3f6474 undefined +0b73a9532c232d17af803a3880a40c5ec997a37fd4a84c880f85af1ff914bd03 undefined +34744fced052f45005135661a28678949cdef4b11fe492e15b5bf425eca3b106 undefined +75ee0c1dad655080ea3edb1f7f263f56a0dc9384b1c431035935449ec56ac8b8 undefined +834565c7b643885e99dd37fa94d9cc15b96d28dae96b8f8038b649f1827078f0 undefined +f3e232f361c6163c3dc2553e300952a9479556c380bf33e72ffab81f4e6c60dc undefined +2978c28ae4fc9e89bab16da19453a20c89877ea331514414dc374652a09b6c1b undefined +0e1828a9f426a8c7dd644b3b8cb285a40a77e97fde95209641ab7abea7ebd791 undefined +4d4d553e0e913698cffcc1dbf8b8787868f731e72d4df168adcf274d917d83ba undefined +235e1b1bf5139098638d2fe47c017bc4cd51102c11825dbf22487934eaa24cb5 undefined +f6c7bb178da6ed8488e7df236d8b7c6e37e6792c5eeee0d57965e3ab4c957155 undefined +5d6bff0fa3629daebb18e6fdc3a5e02b7f9996fa432edd3ab8e630e3d8251c04 undefined +d970e8e3be7ddbfb29f3aa59e534915135f6722588dec01dbf80fb645a738f41 undefined +9008ae99a3a6808764eeb318a60472994e62ecca331c9bc59707a500390ca1d3 undefined +20ba26d2dacefb143e1f03ddec628d661957146abb7f0290bb8da8d2cecdf649 undefined +019b19ea419e9bc888fa1deefd0b802dcaf133814a0f344d2e781bde5fbfc37a undefined +75ae5590fc36360ce0c4780359c0332ca9732d159305902b1740a615712270dc undefined +4428ef676b602b54523d7d4c7270f5693db54ac64cd0e90945ad5685cd4dd8bf undefined +de298438fe2864fafb3535b296229d5ce4c2b5285dfbe19ed4da53c54a7a94df undefined +8ff053138687f49e12fd2e2cbe44945604fd2d82e28ffd92639c24f288aef952 undefined +d43a27c97002e63869b7b4ce6cebb83263530c67e0a4c658d0d1caa6fcd2b00f undefined +6cae664a99b711585033d70004e870667b1b0f55c8f958c09de63dda24161a48 undefined +e9e5ca577b916e89499eab7e05aad4c585958bb7fbd59bb68bca19880938e5c8 undefined +3075e28fa8d32bf03841df299754c6163197bb21f77208e4649116917a5a62de undefined +4328785313b07c44821c45c4fde5d19748b5b56d42fdca092ad350f381fbe687 undefined +5b39892fac6a64b51fb5ddb08f820364769cadc5fee5f04cff4bdae577ef0e3f undefined +ab676d5ace673fe57b90168fc3983940f40bd80a26ecf04f070d892d93cdcac8 undefined +3369b209c79d85cdd35009b477ff0a31622a7ba1dcc3f62ee79875ec73ac0023 undefined +f45b238b69ebd55b76d464251692817a86830b06ebeb51f5be7b423ae70d7833 undefined +a771b51fb2df8c03a9cd2d48d47d52999e6b6f52854904b8bc5079182e442102 undefined +34df2b15004d5339e767621453cc85e65ff60ab4401bd6d576ba6425ed3751e6 undefined +61a505c0b3a731914e4d4556d825e953b0cfbdc1e61263af3d7d7c4127a8817e undefined +538b882c3903ba66d66423bc8ed4186f596b350204fd7ce33183e027457fdee3 undefined +fbb0add631232fdc7e334a8b700cf0424b65fb795457cb09007bca7ec7c666cf undefined +22d4af573edaf3e0875faa60b1b14653567de3393ef5daf770881b8675cd70a1 undefined +fda01e444768b3fbf74a957bb6ac4f5b51af41171bee2b1a4b1a90d5e4812b64 undefined +ee9e6e18b8e59f9815cd7a0359e2f2f665d1e034d093cfd7ede8a14e50297fe3 undefined +00512065017d891fe9d8463c8346815e2d2e06564a2fa6e5718fd99b262cf7ce undefined +24b307b27d396260e7a5fad413a99e8918501fe5e38a75e593639247c39bbce7 undefined +d10624cd47bdefc5bdfff35be186c84b4891d4d00bd57d57d0286dc727547fd1 undefined +083c7f98ffd4681aa061100c6edcbe3a453adecbbc8e8206a321692d4a4cac8a undefined +8ad33b8f08a823edcfa88dfea8b48864785d81f0aec15c7dcaa8443aaf34da5a undefined +c157192627822e49a320e290907d633c00f5e86fde4c9731472d239f5d4e21ab undefined +fe26a90929251c631c1c3d4211f65dd8b892efa8907767cc0fe34814b69a4b4b undefined +be4c058dca5261f0eac942dbc001d114ad04b398163917adeb4eeb1445c9ed91 undefined +946fa378a246ba19abc110e04cdb3664dfd27f3c110078d6177e4b9891bc081b undefined +f619bc7e88f541549d6c2e8b5f713d52056c23232b78c9d05b947b7cab08f7b0 undefined +b24a9674c2a7747abcfb221f7d089eea104d56c6500d933607453d34ca7d5a65 undefined +8199ca82d4407cd716ac25d8ff8d48e67eb900bb751807aa36ad3ec54a5770e7 undefined +5919dac56ac7758c39147591b9b2b7da85011c2418ee620faaa143ba0a4af85f undefined +18ba2a189b338c8ce82ad70ff296776ce906d0bd1e3ae11989466abc6f1b128e undefined +59831b6f79f1782efc997deb96a454317b093cd282c61a7063a8358f783cbd89 undefined +0de5d03f6ecdf14f6911557f567853ca35b7b6fdf3f5e12f3d96b477e110941f undefined +cd7ec80c1ce35bf5506285fdc19393b04cd0d82fbf1d1ce98ac3940c1e938975 undefined +dfce7b295ea61c0cc0c73348a0dddfb749297faccb12a166071114f105d7dd53 undefined +856a6d42025f806bbf0e4636b36317862f46396cc324f919d17e7f730a0505c0 undefined +1377207d8380c770320ee589a05cf92a52a5ec94f2b51b133c403f85418d8448 undefined +521d0f2bd196ca2397ee83e88c058639bc1b35275e7859133c2b1a063812fbca undefined +2aec1658a3793ef00d21c3ca35b656903bd61aaf6dea27c3d8b0a545b7bf7eba undefined +882afdab9c446929a1a9092b9f62e18126200e00e512c393db46c82282114bc2 undefined +8eb98ad1a8586eb86c67f22e69e8ff13679c319fa15f7cc7d0e522dcc3d57a23 undefined +74d8ebb4c7f00d902714200d40792ceb6ca98362a95ea20f1fb974078ac490fe undefined +9fc9a5df71ce1b28f2090dd230a1cd810123f22855bec1bc92546231719c6543 undefined +45779b318c8b3055c1530e32e67594063add18d4317788ab7a33d2aebd5a0feb undefined +b3e8bae619b054f0be2e8c8ff4bbc06b8348c0d0f1125955c217ffa30bd2040a undefined +0c7cfd21e1e2050042a5c47ff89d2fc317369d9a777ffef0b0155346e38797c5 undefined +d817bd3b5c9605453a0029e4caf187236769a6afa7493690f133b85fd1649ae6 undefined +440208bc78610ac61dd9de353dd5740a772de684ba70c100bf36f5da5f2dead1 undefined +fe2ea2a1e8e7f8e521a62ac29b8ade64cc4bc31d15d043d798f62d6c3c104aac undefined +05736c9b96839296c9a5e7e12f40fa795b1099c2e7a8aca2b488092321a52eaa undefined +b5438f0d559683fab6f7d7302074ef8e6aa23c9d456643eb7df1bbc5dcf6412e undefined +407c13a77cdd6936833311925b7c9b722bd46e59c1db8fa2b2677fff677e064d undefined +4850a4873d38bb4fa61b754e0ca317b652ab4d8a6b2d71d63c5cda093537d139 undefined +4c47f37053967e8d04c27cfeaa1fdc3edab66b292223b40c1dbaada681599f9e undefined +43adf424bb87be7dbb12a0af42eec94ee10314f278b9a707f7da06e2a6198679 undefined +d0771e54c109e29e03247a08fda89f604e5fa2cf765c9fead3385f79d16d5faf undefined +59752c86acdd56b4253a7f4ad0cecded737f2ad797a4cecc8664ac47402c3ac4 undefined +76a6f510e6edf3ca0fbd3c0153e0deb310c46987695c5cd661f5367cd74673d9 undefined +7e4af20b3346b8540e9dabad4a659cc1207b6755042eb82dc87999e66573925b undefined +d6aab048de4d93a02935415b04ef4fd9f0f28bd04452c5709ce1491812288b7c undefined +edf9a8a79fa53e1df69249957cf18ed9a5c63ffecff51339a2be091dc170f2ce undefined +f9c8c6e8f0b52dda6d02858ca5369906696bd8dba90d7387d7c07cda25679269 undefined +6088ff1031b4b31b1153cff8cca78054ae03e9a39a4bd4af1106e5f5c19c8b93 undefined +7c7dba71cd9e026ff4d041856ca29ff5556f964ad29092a7f92666d80341f8aa undefined +c29ca08b3bb35ef31c81ef60de60ae9c658f7693652554b728214980cf5e6171 undefined +b0d5621ff385e27a7de856436fc349628917c05a7ee30baa578de0446fb02178 undefined +5332bf593ad2423f05aa3f9992de4075fc4b3d961731b73b93417b41f1f59a8e undefined +1866fdf7599d72f72acc7e1c4c6ceb1d9fe0d653a4441d46bbf4b9fea6fc82bc undefined +150b923168050399972e5b3c4cf59c6b382aba21abaa6fe923ad972eccbaa040 undefined +7da906cef93b81ebbf8ac0c0a229221c07749858b0ebb4d4448c07ea5754e0d4 undefined +4bbef22cf02b9ed9aa324918adbaff2409207496d188cd31fb4860516d8f86d2 undefined +3d259ea267fbbed578dea8db52abfc11a3bc92b015a40675c93143a79d406954 undefined +b6accbd7fa6e8ca98732684ccd794fb36538ea62972c0ba9b6f8ac33bdec6f99 undefined +c448b7a6203a48c9b9f63d64b3f130456bd8c77e2218020656bf74cf624d643a undefined +b8ba1d6ce34e18455bf8ce7d9c5de587beb029ef515a8dcfca8c65da4cf8e5bf undefined +af6dd526b1c73920c83da74f2dc50a6d0adba92864dfa952f3d044ab3609a14b undefined +d3e87e0032c9c72d34c527910acf540a7dfc186ac642414d5cab179fbd6777f5 undefined +0037358e49c73bbaa087c32ed23248ddb816742815d5f62c88aeb217ea9a6b56 undefined +5ae569d33d8eadf45dc8882aa5411f56373f0ddc230f5b59357677bd39d61bef undefined +d14fc3c72f237cdae7c0077ffbce22f05ddfe2b8367615957955314627533d02 undefined +099177d56d3741bceb363233b3826fc8727a9a5b1480740eaf4a62c7d9000150 undefined +5c4035f432e25a16bca7244e244896492396d969d2758b65cb991ddee41c1f6a undefined +a19914536cece3c6b2ddcd56488c3aab9e364c55c22afa122408dd92abf2edd4 undefined +422cf73d5782a341fbc7b95a6c77115c8239909e2d00e1d5b7c5ccb21a112195 undefined +f136f0d0358c2475c15fcf4af80a708a70612d5d29dbf996a5868ed45bbc5de6 undefined +f3bc92ec722829648b03fb66db149d7e03da39a812dd88708e44a2199ad4fcd6 undefined +4cd1df7c9aa188974a1a38c4516669973511405177148c1e36599386a3f7553b undefined +6b234a6b7617e65411bd9dbe3bb642da1e625a26427b2123fcadd53e9f088148 undefined +ecacf7723c4d30e6c43b3992231974c58e385abb49bdbaad0fffa4e4a70b1c88 undefined +12e40312755dc2294131539e73a9d3da41764bb4005152e1c42e724fbceb4a5f undefined +8421fd322a25fdd74caf4f13fa6acf99838848f8dfb1e639ebe5669eb679ae67 undefined +c4f7c328d5a3327b795c337e0657b7717fbd9d27f4ee66299d1ad05d75a56ff2 undefined +c21fe1f4c6db8a23c6098373e184c4d8a44f25290bc3de2024fd211a614422b4 undefined +0e88d0a7069ca5b82ac1b7060888f9e4e04fa0066fe966e576c1f30151e20d0f undefined +b7cb697e06ce776f0148c41dce21fd64038b47111de050f08438413f4b6aa0cb undefined +da2203bc4c104c1fe92a1580d6c97ae33e7d7eb36e25121f1b54cc66c34673e9 undefined +ae319af35b060c9a0530fa06bdd1ff5dfc50e0899e356ded7bf122a64adf8530 undefined +aabc470ab6967e2f2c6131913fb7c1ce90fb69a90ec752d30ebcb74221743adb undefined +a3ae5d2013cbea42e5584fe4a8cee1e4b488e2250acb5420d9c77570b99e1b3a undefined +6da0e3a15c837b2d2e5a15ae55102d7dbc4de21095f5c07213a0a15b6d4b093e undefined +8dc352bfaf2201dabbb2fcc259b1df4031f63f6659fac7ac5e76b399d860689a undefined +b36220c8dbcf61a62e5f30b8156c01a169df105e73a1b2ebcfd3a29703e22cdb undefined +2717e68892e3dc489ef633dc687cb123a0c83adae8942990dd9571e197425b54 undefined +bab190ea59783abb75168e7d003b72b69b68a95fc8bd78adc30ebf157b022a5a undefined +2bd5d5d128e7baa9f6d1a69710b618bf0f1dda4816b920eede5d22c68ac8e397 undefined +2f4c06593f2c95a8783905f777ac31f58b8d70d1d254b8f6e8dc51e8df7e9680 undefined +70c7bb9d42271602c60787961a29dbc92d9c817e5830eca7a9a01348a5e07cd7 undefined +7d8d9a842c64b5b6e7603fce4444d06adb3dba67c63e9662adfd84852be89be0 undefined +cb04603fcbac40f09a6e73d3042a6d88f3002238cbe1df295242ce9a2a6a8cf2 undefined +4ef438f1d0e47508b72ea88198f245c0cf4c165a9f17f6f21c9852fda9f53487 undefined +c055537490ae4b0ec4dbabd186589418fdc3d04e241fa62be128e066499ddb12 undefined +7cd2a12990aa6dd9f63a699269925c15aa9784358d069f54170c5ecaf69f8b4d undefined +52789e258342d70ed4ce378d2c0a49cdae94fbfa80214867b0e9622fa4e17b6c undefined +3d8dc1b86ba8a89e9a1545d8e075309cf77467c137d155f6c78e1668d566748e undefined +b42a088a09e2d964b9830c1545158f69ef25b7b8fa4c6bf70ac58bff640850b3 undefined +84698a554dc4174361295e3a2de71385a0ca6576bf3dcb4b9119058e0f5c2eaa undefined +7e6c82656e9bb49769a74cba74ed94f3eb1cbf6d300d99688a62a7c8a4998528 undefined +8604c4c6a8ec6b8b15b166ed75894ce23afd3bf2af268703e2818950578fb704 undefined +e6f7e74a3f8fd66f878b71843f03f6dd86322a78ae5c7e03fd302bfd853c5fcc undefined +72ece5b24f496f7a79f6b7665096f50dea27747fb30b1c488052bd88fc872f9e undefined +b2df8829943ab70b1f4503ff12c83bba4bc38f46db65d48583b20fa7d201cbd0 undefined +5bd096ad81df0803d5ffde6b29b0938f4a2681545a6bac4f6986fadba71a3f07 undefined +cc8807e8c4a2f31971fc6938297ce33fbc0b191a2069b2060446906940eb06b3 undefined +1a0057fcb3e9360c4c9bd28d7d26f5c4eaeff60ebfaee047db1f4440b368cf25 undefined +ed50e87e6cdc6e59f5180210fff0293be5e6e49fe1495c4f5c4cf959df748964 undefined +a9c30ef9f0eb7a290e57a46fd9063fdae3f12337d15f6dbcf890e435540286fd undefined +b0698e1164368445bd8e52495024b3457a927205eb8add8f10c8a00982a1fe21 undefined +2bf0999ef367d1a0db613ac932a06eb6d136f035b779761cad2b1a08ea1caa4d undefined +c1a24acd53eb790fa06474b26d16d89eb35f6961d1a53ca21c19ef4826b4db34 undefined +26da617982652f9db13c952e22d826519d0521233ffc1bcefc5ffea08a3062db undefined +5487c7080d1dc55fb6ae5fe24a9df28c70085bee5ed619ba7202cdab31ab9625 undefined +a4f295d93acc7d6fcdaeb20825e328812ffcb8e91e15f43b0922fe683f254001 undefined +fd41fd94af581e1bc70ba9fef6368c1ad8c8f1c0f2f7012742de924a6f565026 undefined +00badcd84faa961780375f13a3ee61d366b3a0c2e2a262ca620412ab2c135956 undefined +c56f335c6eedad6c8fec6e6f0cf4eac26d1ae950e0d0ad0bbeabab600eed26c7 undefined +001a1fc7ae05a73b2374323be1ef4d95ec74dfcd3b4b8b4635b08323350103ef undefined +d5b94ac9ec1dbf53fd483b63e6b91db18fc6bfbe8b5668ad87cb5dbb715d802f undefined +06a92bf1ec07f43b4fecfc521bd3a06ecd73bf035d732e8a7277d57baf8e8556 undefined +d7bb1e74b371a76ffd3ea01684a5e98b29939555441c281eb709e8471a912a7a undefined +6aa285eecab8cc82c301474d91897a412c5e5afcbca438d66acc9149febddd18 undefined +0270fa13ce79e95b279a09f71ccd963b72a7f2bd3e4c12f801ff66e3252801e4 undefined +fe8429cbbd197b205f123eb393a8192e0ad13ddffea9c61976078fa1487fa6e7 undefined +e3d84dba556b316440bf30a880875a048ff51e4089817b7672a3ebd85bfa49c6 undefined +2e051e5b65902c7b11691086a4e7d39740c6f17209f6de61521844589d6e20f1 undefined +670d29f7488428c829005e03ffaf543de9ea25de3988bad7a112441d9b3d76ee undefined +1d4f9f5e1f44b8d8dfadcc2d0c77e52d90e7d5ae8c150aa669324b013814cfa7 undefined +9ec6e6e33eff3c9d31bbaa1afdb369224a9d2714919c34d4bc124454fcdc9ec6 undefined +4cdf91e89f0838978382a0eb179e6b778442e85dfabc5f3f878fa803a85a79f0 undefined +68fa2e3029e62d7320feb5affe56c0c6c44ec74b8729221ce224179b62b9526d undefined +5a6d4efde42904b22ced9beb85f7f182877aaa7a0b3faa3c67206931de6ef0cd undefined +c0fbf8bfbdb22f0606f3c67b91007d1a979f5ca08d89712abcba119b59a6edff undefined +1700ae09a20b358aa5d574966c6e702a80620836e40bf419d49b26d8df17d3cb undefined +9ead745aaaa0ca5607afe41ee5a6ad1a235334fb07400bbe7179f468d27f1448 undefined +81d85d2711771259c8a01e0a2d6b41f4d3fbf81272aa35c997251f6e2ba6ac9a undefined +4f5fe5f36b46e106320b74ffaaa99ea0c6fb0af044a4c4328c0a95fd5e160cda undefined +6e30d10bd5bec0a469e82c11aa1d13ee2bf36d1783957bd5fbb10f76b4a812d6 undefined +5279860c3799a69fca42ead6d78230eec0417bd16d456cece9b1c573f3633cc5 undefined +fa33198b7ce5179faaf91ea6ad2e17846d5f7a50078267d69b8088299a805ef7 undefined +c844a8e81e5618b1ef6d004d31dc40733f81e600141fd3885067456a44f0b8e4 undefined +d979d6f07bf66fc8c82e4749cd09f2d80271106ece1c1cd4e6dedfef59f21975 undefined +c36b5ff3ad48592aaac0abf09f311c7ac816726415d121c72be90a46e00a1e1e undefined +5d56541719f6b984f4ba003ce0d83544131a4a03ce91586815725fd0b36cccb1 undefined +6704b3ca7070f0154cf8a054c30139444c1af9ec6766e1cb9e442d0135f9285a undefined +7bf605fb45d4f48cfc1f16197ab193fbc2e6cab84cdec0d46330c29d986e819b undefined +67cd689b429a4170fefe83aeecabe808c8693fa4eb8086fb5c9f75f6b9bcf30f undefined +29f9a5221fa3f1996cb9237d8b26864b774940666637fac690171890ddca1c96 undefined +79102c7893aaf663dbb46c1d16e0d452bbfc970765688480ff9c9f0fd928dfc5 undefined +62076c85c10843577d8a82e57f338c753f59a64168d0fe61986c1c8177e97753 undefined +da0642e405d3414e53b6b1539f47a438cfd66913896b7a8a5191f043fbb87a52 undefined +88adb9dc447ad4cd7b64a626684e2dfc4672e46edd6377d78b50897e303f3664 undefined +f42d28f349d6c6f6a739d89b67c3f8a851f3acab8bce1d568434d8ee9fe3ef28 undefined +30167fa3e75b1b42ebdf15dea56cbcb4df4730e533b71d1f80b4816fe386d36a undefined +e6e7859fa3d6497f18514fb35632de4de809e7731e448ec699503c9c0a15fbaf undefined +f7019380146d60577c0aae69cdba9957fed69f42bc9ddee17e316ce57ecf6a32 undefined +75d105f1ea6456eb15e7d437b0ff1eb25a10ca7ee41f0648dd676410dc688095 undefined +2c8ce1a84a6cd147a5bdaa7a5e2604d49f9f28042255aa72541f337a20a49e32 undefined +36e3cccb0ec2d265231070aacfb82b96f63cdd2bf344aa71f15c85ebb7402722 undefined +fce2bbd02b2feff92c3678f80446a2f62364be075ed3ad9342a9e35eb60bfea8 undefined +4947f8e8b9325a04b35aac19364b9a469387c61115db5a9ed604c77d56eeed3a undefined +644dc6431ccbaac5727c67ae6c6b52156ec817be77686bd521cca35eff00de35 undefined +cf8f0f48a0531ad7834461a1561047c7766791071426873e988b16ad3e479bf2 undefined +e86ca3729fe9e8263950cad24b70fdaae0502e9e6a4e4fb47c25aa876e4b47b5 undefined +c133c4762f83647f3e15a43e54f00ed50f8e080edaccf9bc28fa3b0c824b2072 undefined +aa26f3b4cf3d7d824196cd1358fd8e387d67867c20a2fa23e729db31a44533af undefined +f5a536b6784a449a97c9a83067e2b9d259c614fac2d0d32223efe63957788b20 undefined +1a2d848c5ddbbf29f396133cce4e103020a7e1707209c51efd4350b3cc52d813 undefined +772a96dc236f0c65a2018af6b31bed1672ac8be565568d239f6b73234cd248cd undefined +79aa6243b0e7c6aa0123dc37b0644783c39b2ce293bf590539da733e94f6ad02 undefined +5693b3d730657d2c937174bfaa6e45ace15cd5281406af9d738deae190bd8ca4 undefined +0275850dc4b2e723044ff83c6c5104d605882bd9b8b78823ea2f0caf32392f4d undefined +251b9dc0669f0ac7774b7eec2880f2c26d0d955862475ea667de1fc5be505300 undefined +076b7ffc7dbfd4a3e9c444d7a66e4b0294b2333dc145be0bfb62117e041052e2 undefined +bd980bd998f1195a37e9fd9d2aa3f25f998c5fa994c17d3d3790fcd81f860cd8 undefined +bc0180b87350d5ae483d82713f4e3bb4116e41de1b1548f1d536953b9f05d675 undefined +8b1bf7221358ce2e48b15dfff4254d5c9e972f2bf665db2a014e00ae5b1bc336 undefined +96caa36d1b1204ff2630053a7507edf7768b1730957ac2be34da91a0da1cc7cb undefined +1666db9c40a5a230823eef89475c78cb72e01bc6a13fe8ec7f61e04b5ba1db6a undefined +0407f19de5a2b1847c804754f0a977890c3fc6cb8bf945edb1760ddb2ff0518f undefined +c74610d6f8e8a8880d11c8f1db44225c2f428c994b45e9728dd15387e667ea24 undefined +fe91f7cf7f25f17e17775d793e75fe46e18f254749b26ead50800e9e488df422 undefined +57c463d67101ef4bbb0cb3225fa06afa6eb72b4709f8fc5112fae35760818b4a undefined +4c32d9129592d5203e9d1aac0af3a5fbc96952d759481531af043b2855f2b1c1 undefined +ee4a677fd8fb11e8ad5c00bd3800495f7bce05c7fa781e6e9ca9db48b7de5f8b undefined +039e3c1f4cf16a5566a9cbde48163ec5827adda0622acc5bc9186399c1359718 undefined +be1e3bf0adf8f2e287338881577ca8d8e1edd282056a291e073297dc0996e9a8 undefined +b414c1224656f3ce2ae63e57648661837a6b3c7eee745e2b0e0a32fa9354592b undefined +0574479c9ae229280042cb4258374f4ac6315739c4c05414f1704b76b74849bb undefined +705ec79c12358f36c652c949099dad876a8c235f4bd89490af99d6c1de9f4cc2 undefined +ef938fac8de3561bafeb497a8ceba07421498346633964742a450283ac962aa1 undefined +dc8211fbbcb0ee33211a790447f44efcff23a0495e4c7a25f01c2108cea0122c undefined +f30cd119a59ab6648af13e69ea47971af04afebe7ce59f7670193827276f9c45 undefined +4fd126ef73870da3659b3c861120fc8524f828e7b881c4593c1092fef0bbc9ba undefined +aef4741d8234ffc0ba2cb4617262bda611ee1783d3897e194e9226affad037aa undefined +fb54ab4fb4a1a4bb7b73324aa44aa36e066954602ecdc9bdbf29fc226bdc48c0 undefined +9630daea30ab289740676859caf65df461052a1181b455d5ab26817495612271 undefined +f5817cfd9c0f49381db168016be778f46c188fab031b73ad60375e3cd47719b0 undefined +4335a31525ccdcc3205b7e544cd006dee3da950a7b953679087e724d1cd36207 undefined +110e4f3bc56d89c5073367eec34d74edb8c189b74fbc65a41141141f49f1fa7e undefined +c904ff0afec12713a67fd34619ee1bf42480d44ab0d47e7034f6781e045e4d25 undefined +a605c71093b091bbaf04572c7ad600eba7ef3d609190f217e48d3d5031579054 undefined +b981387bb02f2ad9a0634cf31773262accd8fb289db0aff675fc49082d27fc83 undefined +d07f059152633de2a9db1a93eb61f19e8c672b349a7aa7ba45d15856d934f016 undefined +5abf7fa09ac0f8afcbc3cdff1a99e4efa8ce46e8fe3abc6bb1514eaee25f508a undefined +991a0dd95dfcd58bd9a5c87b32791f28a9e30f22b2529130cb670fb75d1b8f1a undefined +f69393c735416380ffd9aa45631df3c21487ebe374c443ce12e0d5b48b1c3375 undefined +62dc08ff640d7ad28ed8ff1b459fe65e7de56aeb6055b84c5b987760fbe001ed undefined +2d4e20ce4554837a4b13dbda3e701d0d94b5b9149c9077dd38cad4496bdbfb31 undefined +108134c90420629d5c4ba088b6c68a8dc05f913e2fdfb72ea0c891a4151f6c6f undefined +9d123648fde276a44f2bf8225ec77a91c3f623f9d670033a22ddc79fe2467706 undefined +98a9f56f7bcf5320843ed722d552fa858a0fd079349a28cd08acb57223788ba5 undefined +9367f8b3e9c3ab920989dcf613a7fe30fd2b0681390e2c10e966f0879e010131 undefined +9a89341eed1cbe8ef5ab87fa9e63def5eb53f93b24e298c9641319a1281df105 undefined +cfd383fa3f114607f4ecd2409ef5f2e5277bad8618fecbd5bfec7442af1a1fa8 undefined +d4e5447fa218e56bb8e3cce4d36db9959210eaf5d0ceedc8a3e0e5ea4fc7cacf undefined +ea00b8fd3755977c1a0c62d9c233f00510b19cb06967e5f673a506ea5761f1b6 undefined +1dc31db24df06d5f331e7b74567c54563a3843abd36ae7f3afc607c87a10f403 undefined +8e3db088f2d5bf780a031dcb0aba5f8c8056e008929314a43366f2c4fe6dd7da undefined +f457c3280ec6d43d0c7d34bfd158301d173b3cf7ed4bd89e9e0bb6be93559cd5 undefined +9592c302a8e34ff0942d154da902e70f30baaeab41d999e11596bab6e65fa340 undefined +191ab4ad4059ae84a3bf37056fad6bd7277d92c0861dd5ce8d10b4598ddd0af4 undefined +dfe33666c3aa18d7e63ab6aea47ce8ad8ba5f6e8dfd23eaf8e46d3559d2701b5 undefined +6b0118a1ba21aa8014ce2c1f08946929cee49d06e4741b5ddb0197c5e4249627 undefined +662789cdef4b870ca63a8f47f69395a33288857a2ee2a94f29f003707ba92355 undefined +79d138aee55fa0f5642ff108df90119cd4845af9870d6103692e6b2fbc96c651 undefined +5c64e444522a5d6c304c0b0b4982c66550530ea6997f908b3d74b5c427bda1c4 undefined +28a817644431ad3770b4a2091259ec84f7e30e89db9f88f639b7c6b2cbb85975 undefined +ffa98a948a61deb4eb3a46d875e17fab0465962f2215f7018238441de30b502f undefined +9e02157e0a0813b3856987cd7743c47f9fe44bc23bc5ee1f1a049c498fcbcf64 undefined +3edd04654eb96ac12ea95d4baf102d01e8429d174f2c3a5d5a6910f4bcbb213d undefined +efcc84321f3215b123e8ae4f888c993c6f61e887b687eb5a4f08f366c6ae476b undefined +e2f2288a78146bfb186692a7b39b83a0b8c64903068b733c2c80b68dfd36372f undefined +36a9319bf347e0f688301d58fc8e00a388eae4e603f0113d43d5c22db5a34143 undefined +e94da77d4d7c819208dee96210fa44f99391a90a1f82bd99865609302e2ed6ea undefined +240459f0bed91edef8285a302ed6480d69ef1878641c292139f7b49e97e7dd9c undefined +ffa8643a284114b9640b1180f2ae1a62c8f059107851b846b9be48b68117a783 undefined +9b9c9929c807978174c4de7f804e2d85eb385bbb8790371d0ddfe3b0b26e0e09 undefined +6839861d02bfaed137c685e3eaef9c66eb3e3206da47eaa1bb8e96473d847d20 undefined +cd9e27e3e609ef5d26cec3b131ee8f754904caaf0f59cac4dc3d5812fd95f52e undefined +0544500586e7d8147e48483f5419c0a29160037d16157bb7e519870b3228d786 undefined +509a6000482cdc29064f45b0d4634d0e9ddc2fb3ab2b37caad317d3ea1fbdccb undefined +e1fbc439330f426c216fbbf57e0b59c4cdc1df92de3927f62782c1350f381a8d undefined +bdc3bbccd8c787df5a953ab02dde16b6005ffb7a9706558ade2356835871f84c undefined +89c89616ddc5e8731ff2d920e42bf038730a5fb1c5941ebc4e072f88a9d9314c undefined +4d494ef40d205cda0bdafaccc4760d0c5bd9b2015f9f7c06d40ea73ac4e47730 undefined +b555617dfd8d2b541198238f33b1c7199b01cbd38fd4a7b4e7608a8e199a2abb undefined +28008af1c9026e4d4a99dd67eee91b31c82d050d1697eb256103cc7ba4e00e97 undefined +13c814cab82530dbbd20c7330c5ba2851e7274ba47b4b0031fef6e49133c3fdc undefined +ac7c2b24d5cb5f890619923c75006961fa114a2c38775c0df0cabc6d978a68a8 undefined +56f3cc9adccff6939957011ae4299eb1203f8a43519be1ffd344655199440087 undefined +5db7e9bedd20b9db07009055d4683c70165e815b489742e3538828f37021714e undefined +46553fd365033c120b2fb9b291675a1bab087fad12c3c208d165b8288cab83aa undefined +a41886969d3455595ca6a78f314ad27a49ba1dd16637a6975366fde36c63d04a undefined +be3ff38533136aad148c634325de9d20d28b9a9b74d8757e2da92cabe9dd1bfd undefined +ad6f0ea2fab056fcaf051ab0b4ddf9dfd33f4866d9d427c0a7c4b9c3ade1c767 undefined +063323a3450370d2f29c7097bddf0f3e57b8a684585a352c89fd21bb8207c393 undefined +284750167ecb8e118d86469938f10eea14fd1ad2524a593d821adfcf9534d9dd undefined +8fb0df8b766a6a2c913be1d24c3650eeb9a371800d80fadc4bb16365db85f95d undefined +a644ee009a5a631d03caa23cb9d47a16c138780fefd12d94e88d355be9e007a2 undefined +891ea9e4375b3df70c8bf9ff90e726f1b8516acb4db5ffa028043545fbc59daa undefined +afde7a40e7809d092ccef8fe10d70287d6db9ae178c48ce376c12457a1baa26b undefined +4f963eb2c465b1cb3ee135b534751734a40a4e60cdccb59187765983f5816300 undefined +a52693ef1328ed16e125a06a421bb7e0249a607ce29cfa6c3cc4849f611dbcc4 undefined +fe911e65fbbb38e1480436db18dcac77ded02494657dacca00bd152f57be8555 undefined +ab3b17a5e4cc37dd9a2e1a7e31793c829d24fbc7635ac9193960016cb1d20b45 undefined +d0ee458a751464397284a20f923829bb54eeb4158015d6da962d14a11819691f undefined +616666a2af56aa05dcb84abdbb62559fe2301355e5165fd468f71716a496d518 undefined +441da1487b0640df09e9365f5fa7bbb7be8fbed23048e7cdd6b2dd5fff541160 undefined +1d771d1a4b4e38fd036462288cb66152f45b79892e8c4d9856a8d614e5c5de47 undefined +f1e70b7a8527315c5e0f96f9da2fa98f07fd6827f88b34bc3fca01e166c139fa undefined +5e2368d43a23c62e9f4c315466fa115635b6a8cf3dab3dc764bfe0bfb7b7fa95 undefined +16478b9100aacb42cb1396c1279bb288009d822c2fd4b63343c2493a8ad7bb3f undefined +6e7a736ced319d808268b6b4231c62827c5d0019f13837c363bf32470b5b441c undefined +c8b14cc98a8380c13af16b29465352879925f2f767a3ac4d1ae264868498485a undefined +d0b93fad0815d2aaabfb19793348a328703f598dcf88b0e76215466aa84f30ef undefined +e955e8871c58bbbc0bb07f1596bdea2b05f71e55c5df3459080d9ddce873b1fd undefined +d62979dce52fceeddfed3b941a0f50f29e740f64cc8091fc97dbed8a287ac949 undefined +257860b054fe4d886640447b66cbc3aa7356bd2ce50699b1ff3764c6dab8566e undefined +3e0fe77a73aa5b3937f9aaefabf5b72ebf5211e2544817fe2710ca75bfc14a38 undefined +6b09c2312fd8ed310aa1509f9d1acb51b8af68c5a7617eddcfcf6d4eb7378362 undefined +1bb94a5f9f2b30b99b92d38f50fc0dfc711c1e6b2565af44075f730714b14b4c undefined +40153d61c4aa7ac80b408e73d8dd5cb1d95b029aa40c6f5bc7fcb7de443fd59c undefined +5c9c87e70f89bedc32bba84261dacc71cc12de850d4b5cb136fe6c741783881b undefined +d8cb9a9a780c33a3f0edbdbc90a0b047ce929e96fb210f4b30c74cc8e64c7ef2 undefined +f6c2788a69c3043c29f1224113daa87d17ab802be71e51952132bd342046140c undefined +7eeb1849d4cf0e10b3a62669e4e4394d2ff52278b5a53c0f024203e828a741eb undefined +8cd9d4cd641f407e83bd74d05d2aa763c05fa0f9ae80e812c3c915b26af803c2 undefined +bb305869d5ed46574e439479797ceedd651bc612c97e198f25d8de21590aa890 undefined +b4c2c6990202154327a57b708e527587b3de78529bc186c17a48cf5fa7c45186 undefined +1b0c4ffb8244c75a1c1906e03811be5dd5eff4e44bd0a54515ea8f5dc0c2f4e9 undefined +a81e992c9721b3af335af28eacf4588a4b5d2ad29357eb6d04d27790660db4a2 undefined +0acc08fdddb79d3b0b4ae8090bd26c840983cb9e458783ce44a817db13f69a57 undefined +5473c249ef7fc52d4a623d1afe9f76514adc7aedb0e9ec2d69c921262f173354 undefined +6fa660765fac71abb2c4565aa8be192eafea73fc1da61ac4dbfb231633ef99bf undefined +11f8ef40deec4f2375c061716ad81148539d9631c6d3ab93c1891d344a795404 undefined +d26dea41dd80b7ca93f59ef57b380788a240d6117a045f84acf348a67b70822d undefined +76fee2c3a623fa6174c9428ba6b54293186a6476f7f9b62b882ea0c4978674c6 undefined +8298c007410eedf76005688e78c6c555d6e68b1a6581d33b011e5f55065ead79 undefined +e2c7bac08bf37969a8e8e82cc1278beea3355be16c710c5e3307132bb538524f undefined diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index 981fd1ffff..d9d39af6ec 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -10,12 +10,8 @@ - - - - - + @@ -24,19 +20,12 @@ - + - - - - - - - \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index fbb730e0d9..6aa51cc26d 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -10,12 +10,8 @@ - - - - - + @@ -24,19 +20,12 @@ - + - - - - - - - \ No newline at end of file diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index e8e7a42094..cf807dcfb7 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -25,8 +25,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 24ffe78bde..e280e6b18b 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -25,8 +25,8 @@ - - + + diff --git a/images/cs-block-greek-and-coptic.dark.svg b/images/cs-block-greek-and-coptic.dark.svg index 1da6864612..f102c2ac4a 100644 --- a/images/cs-block-greek-and-coptic.dark.svg +++ b/images/cs-block-greek-and-coptic.dark.svg @@ -44,7 +44,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -95,13 +95,13 @@ - + - + diff --git a/images/cs-block-greek-and-coptic.light.svg b/images/cs-block-greek-and-coptic.light.svg index 00a393105c..a64cb9fefe 100644 --- a/images/cs-block-greek-and-coptic.light.svg +++ b/images/cs-block-greek-and-coptic.light.svg @@ -44,7 +44,7 @@ - + @@ -74,7 +74,7 @@ - + @@ -84,7 +84,7 @@ - + @@ -95,13 +95,13 @@ - + - + diff --git a/images/cs-block-greek-extended.dark.svg b/images/cs-block-greek-extended.dark.svg index 273e46d4a7..320e3a3426 100644 --- a/images/cs-block-greek-extended.dark.svg +++ b/images/cs-block-greek-extended.dark.svg @@ -64,14 +64,14 @@ - - - - - - - - + + + + + + + + @@ -126,8 +126,8 @@ - - + + @@ -211,12 +211,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-greek-extended.light.svg b/images/cs-block-greek-extended.light.svg index 9ae0986f25..d56c23a29c 100644 --- a/images/cs-block-greek-extended.light.svg +++ b/images/cs-block-greek-extended.light.svg @@ -64,14 +64,14 @@ - - - - - - - - + + + + + + + + @@ -126,8 +126,8 @@ - - + + @@ -211,12 +211,12 @@ - - - - - - + + + + + + diff --git a/images/cs-block-ipa-extensions.dark.svg b/images/cs-block-ipa-extensions.dark.svg index 369265f8d2..48af70a850 100644 --- a/images/cs-block-ipa-extensions.dark.svg +++ b/images/cs-block-ipa-extensions.dark.svg @@ -44,7 +44,7 @@ - + diff --git a/images/cs-block-ipa-extensions.light.svg b/images/cs-block-ipa-extensions.light.svg index ce4f69826e..ed53601079 100644 --- a/images/cs-block-ipa-extensions.light.svg +++ b/images/cs-block-ipa-extensions.light.svg @@ -44,7 +44,7 @@ - + diff --git a/images/cs-block-latin-extended-b.dark.svg b/images/cs-block-latin-extended-b.dark.svg index 71e81e13bb..f5ff90214d 100644 --- a/images/cs-block-latin-extended-b.dark.svg +++ b/images/cs-block-latin-extended-b.dark.svg @@ -41,7 +41,7 @@ - + diff --git a/images/cs-block-latin-extended-b.light.svg b/images/cs-block-latin-extended-b.light.svg index b6e320996f..28ba3799de 100644 --- a/images/cs-block-latin-extended-b.light.svg +++ b/images/cs-block-latin-extended-b.light.svg @@ -41,7 +41,7 @@ - + diff --git a/images/cs-block-letterlike-symbols.dark.svg b/images/cs-block-letterlike-symbols.dark.svg index 057e8f3283..a8a1961845 100644 --- a/images/cs-block-letterlike-symbols.dark.svg +++ b/images/cs-block-letterlike-symbols.dark.svg @@ -46,7 +46,7 @@ - + diff --git a/images/cs-block-letterlike-symbols.light.svg b/images/cs-block-letterlike-symbols.light.svg index e43c2cc18b..4cf6d6156c 100644 --- a/images/cs-block-letterlike-symbols.light.svg +++ b/images/cs-block-letterlike-symbols.light.svg @@ -46,7 +46,7 @@ - + diff --git a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg index 6a9331755d..f7e4e1f159 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.dark.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.dark.svg @@ -313,7 +313,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -356,106 +356,105 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3263,40 +3262,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -3308,40 +3307,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3350,10 +3349,10 @@ - + - + @@ -3374,7 +3373,7 @@ - + @@ -3383,7 +3382,7 @@ - + @@ -3392,22 +3391,22 @@ - + - + - + - + @@ -3425,49 +3424,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3479,52 +3478,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3536,22 +3535,22 @@ - + - + - + - + - + - + @@ -3674,7 +3673,7 @@ - + @@ -3770,10 +3769,10 @@ - + - + @@ -3785,7 +3784,7 @@ - + @@ -3794,7 +3793,7 @@ - + @@ -3803,13 +3802,13 @@ - + - + @@ -3824,10 +3823,10 @@ - + - + @@ -3836,37 +3835,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -3878,52 +3877,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3935,40 +3934,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3977,10 +3976,10 @@ - + - + @@ -3992,52 +3991,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4049,52 +4048,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4106,51 +4105,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-mathematical-alphanumeric-symbols.light.svg b/images/cs-block-mathematical-alphanumeric-symbols.light.svg index 16e904b7b4..3f742f6930 100644 --- a/images/cs-block-mathematical-alphanumeric-symbols.light.svg +++ b/images/cs-block-mathematical-alphanumeric-symbols.light.svg @@ -313,7 +313,7 @@ - + @@ -323,7 +323,7 @@ - + @@ -356,106 +356,105 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3263,40 +3262,40 @@ - + - + - + - + - + - + - + - + - + - + - + @@ -3308,40 +3307,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3350,10 +3349,10 @@ - + - + @@ -3374,7 +3373,7 @@ - + @@ -3383,7 +3382,7 @@ - + @@ -3392,22 +3391,22 @@ - + - + - + - + @@ -3425,49 +3424,49 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3479,52 +3478,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3536,22 +3535,22 @@ - + - + - + - + - + - + @@ -3674,7 +3673,7 @@ - + @@ -3770,10 +3769,10 @@ - + - + @@ -3785,7 +3784,7 @@ - + @@ -3794,7 +3793,7 @@ - + @@ -3803,13 +3802,13 @@ - + - + @@ -3824,10 +3823,10 @@ - + - + @@ -3836,37 +3835,37 @@ - + - + - + - + - + - + - + - + - + - + @@ -3878,52 +3877,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -3935,40 +3934,40 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -3977,10 +3976,10 @@ - + - + @@ -3992,52 +3991,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4049,52 +4048,52 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -4106,51 +4105,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-miscellaneous-technical.dark.svg b/images/cs-block-miscellaneous-technical.dark.svg index 68b25fbe87..31541b8dae 100644 --- a/images/cs-block-miscellaneous-technical.dark.svg +++ b/images/cs-block-miscellaneous-technical.dark.svg @@ -102,12 +102,12 @@ - + - + diff --git a/images/cs-block-miscellaneous-technical.light.svg b/images/cs-block-miscellaneous-technical.light.svg index 167ce54bc5..8d42615616 100644 --- a/images/cs-block-miscellaneous-technical.light.svg +++ b/images/cs-block-miscellaneous-technical.light.svg @@ -102,12 +102,12 @@ - + - + diff --git a/images/cs-block-phonetic-extensions-supplement.dark.svg b/images/cs-block-phonetic-extensions-supplement.dark.svg index 9f0901ef7b..4d1d615b05 100644 --- a/images/cs-block-phonetic-extensions-supplement.dark.svg +++ b/images/cs-block-phonetic-extensions-supplement.dark.svg @@ -56,7 +56,7 @@ - + diff --git a/images/cs-block-phonetic-extensions-supplement.light.svg b/images/cs-block-phonetic-extensions-supplement.light.svg index 9708a5d3a2..5eb429c74d 100644 --- a/images/cs-block-phonetic-extensions-supplement.light.svg +++ b/images/cs-block-phonetic-extensions-supplement.light.svg @@ -56,7 +56,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index 2141cf75c4..0905778582 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -142,7 +142,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index b17fa9a6c6..f0a8590af6 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -142,7 +142,7 @@ - + diff --git a/images/cs-block-spacing-modifier-letters.dark.svg b/images/cs-block-spacing-modifier-letters.dark.svg index 7477549c86..b56969d8c1 100644 --- a/images/cs-block-spacing-modifier-letters.dark.svg +++ b/images/cs-block-spacing-modifier-letters.dark.svg @@ -60,7 +60,7 @@ - + @@ -296,7 +296,7 @@
- + diff --git a/images/cs-block-spacing-modifier-letters.light.svg b/images/cs-block-spacing-modifier-letters.light.svg index 588b04134a..924b300098 100644 --- a/images/cs-block-spacing-modifier-letters.light.svg +++ b/images/cs-block-spacing-modifier-letters.light.svg @@ -60,7 +60,7 @@ - + @@ -296,7 +296,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index e595526fc1..951e83781c 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -82,7 +82,7 @@ - + @@ -172,9 +172,9 @@ - + - + @@ -194,125 +194,126 @@ - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -544,8 +545,7 @@ - - + @@ -1086,8 +1086,7 @@ - - + @@ -1273,16 +1272,14 @@ - - + - - + @@ -1290,8 +1287,7 @@ - - + @@ -1302,22 +1298,20 @@ - - + - - + - + - + @@ -1325,19 +1319,18 @@ - + - + - - + - + @@ -1346,7 +1339,7 @@ - + @@ -1357,7 +1350,7 @@ - + @@ -1405,14 +1398,14 @@ - + - + @@ -1429,13 +1422,13 @@ - + - - + + @@ -1452,7 +1445,7 @@ - + @@ -1461,8 +1454,8 @@ - - + + @@ -1485,25 +1478,25 @@ - + - + - + - + - + - + @@ -1512,7 +1505,7 @@ - + @@ -1525,27 +1518,27 @@ - + - + - + - + - + @@ -1555,18 +1548,18 @@ - - + + - + - + - + @@ -1580,7 +1573,7 @@ - + @@ -1591,24 +1584,24 @@ - + - + - + - + - - + + @@ -1617,14 +1610,14 @@ - - + + - + @@ -1640,26 +1633,26 @@ - + - + - + - + - + @@ -1671,7 +1664,7 @@ - + @@ -1714,30 +1707,29 @@ - + - - + - + - + - + - + - + @@ -1746,27 +1738,27 @@ - + - + - + - + @@ -1777,34 +1769,34 @@ - + - + - + - + - + - + - + @@ -1813,7 +1805,7 @@ - + @@ -1827,15 +1819,15 @@ - + - + - + @@ -1854,9 +1846,9 @@ - + - + @@ -1873,10 +1865,10 @@ - + - + @@ -1884,7 +1876,7 @@ - + @@ -1894,12 +1886,12 @@ - + - + @@ -1921,7 +1913,7 @@ - + @@ -1930,7 +1922,7 @@ - + @@ -1955,32 +1947,31 @@ - + - - + + - + - - + - + - + @@ -1999,7 +1990,7 @@ - + @@ -2010,7 +2001,7 @@ - + @@ -2023,7 +2014,7 @@ - + @@ -2041,14 +2032,14 @@ - + - + - + @@ -2072,12 +2063,12 @@ - + - + @@ -2087,21 +2078,20 @@ - + - + - - + - + @@ -2120,7 +2110,7 @@ - + @@ -2132,8 +2122,7 @@ - - + @@ -2145,7 +2134,7 @@ - + @@ -2154,8 +2143,8 @@ - - + + @@ -2167,13 +2156,13 @@ - + - + - + @@ -2186,7 +2175,7 @@ - + @@ -2194,7 +2183,7 @@ - + @@ -2207,9 +2196,8 @@ - - - + + @@ -2233,7 +2221,7 @@ - + @@ -2253,16 +2241,16 @@ - + - + - + @@ -2277,14 +2265,14 @@ - - + + - + - - - + + + @@ -2295,7 +2283,7 @@ - + @@ -2338,7 +2326,7 @@ - + @@ -2376,7 +2364,7 @@ - + @@ -2388,7 +2376,7 @@ - + @@ -2438,7 +2426,7 @@ - + @@ -2449,9 +2437,9 @@ - + - + @@ -2463,8 +2451,8 @@ - - + + @@ -2473,12 +2461,12 @@ - + - + @@ -2486,7 +2474,7 @@ - + @@ -2496,7 +2484,7 @@ - + @@ -2511,8 +2499,7 @@ - - + @@ -2520,53 +2507,52 @@ - + - + - + - + - - + + - + - + - - - + + - + - + - + - + @@ -2588,7 +2574,7 @@ - + @@ -2598,7 +2584,7 @@ - + @@ -2612,7 +2598,7 @@ - + @@ -2648,14 +2634,14 @@ - + - - + + diff --git a/images/languages.light.svg b/images/languages.light.svg index c6dacf8d07..c315305964 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -82,7 +82,7 @@ - + @@ -172,9 +172,9 @@ - + - + @@ -194,125 +194,126 @@ - + - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -544,8 +545,7 @@ - - + @@ -1086,8 +1086,7 @@ - - + @@ -1273,16 +1272,14 @@ - - + - - + @@ -1290,8 +1287,7 @@ - - + @@ -1302,22 +1298,20 @@ - - + - - + - + - + @@ -1325,19 +1319,18 @@ - + - + - - + - + @@ -1346,7 +1339,7 @@ - + @@ -1357,7 +1350,7 @@ - + @@ -1405,14 +1398,14 @@ - + - + @@ -1429,13 +1422,13 @@ - + - - + + @@ -1452,7 +1445,7 @@ - + @@ -1461,8 +1454,8 @@ - - + + @@ -1485,25 +1478,25 @@ - + - + - + - + - + - + @@ -1512,7 +1505,7 @@ - + @@ -1525,27 +1518,27 @@ - + - + - + - + - + @@ -1555,18 +1548,18 @@ - - + + - + - + - + @@ -1580,7 +1573,7 @@ - + @@ -1591,24 +1584,24 @@ - + - + - + - + - - + + @@ -1617,14 +1610,14 @@ - - + + - + @@ -1640,26 +1633,26 @@ - + - + - + - + - + @@ -1671,7 +1664,7 @@ - + @@ -1714,30 +1707,29 @@ - + - - + - + - + - + - + - + @@ -1746,27 +1738,27 @@ - + - + - + - + @@ -1777,34 +1769,34 @@ - + - + - + - + - + - + - + @@ -1813,7 +1805,7 @@ - + @@ -1827,15 +1819,15 @@ - + - + - + @@ -1854,9 +1846,9 @@ - + - + @@ -1873,10 +1865,10 @@ - + - + @@ -1884,7 +1876,7 @@ - + @@ -1894,12 +1886,12 @@ - + - + @@ -1921,7 +1913,7 @@ - + @@ -1930,7 +1922,7 @@ - + @@ -1955,32 +1947,31 @@ - + - - + + - + - - + - + - + @@ -1999,7 +1990,7 @@ - + @@ -2010,7 +2001,7 @@ - + @@ -2023,7 +2014,7 @@ - + @@ -2041,14 +2032,14 @@ - + - + - + @@ -2072,12 +2063,12 @@ - + - + @@ -2087,21 +2078,20 @@ - + - + - - + - + @@ -2120,7 +2110,7 @@ - + @@ -2132,8 +2122,7 @@ - - + @@ -2145,7 +2134,7 @@ - + @@ -2154,8 +2143,8 @@ - - + + @@ -2167,13 +2156,13 @@ - + - + - + @@ -2186,7 +2175,7 @@ - + @@ -2194,7 +2183,7 @@ - + @@ -2207,9 +2196,8 @@ - - - + + @@ -2233,7 +2221,7 @@ - + @@ -2253,16 +2241,16 @@ - + - + - + @@ -2277,14 +2265,14 @@ - - + + - + - - - + + + @@ -2295,7 +2283,7 @@ - + @@ -2338,7 +2326,7 @@ - + @@ -2376,7 +2364,7 @@ - + @@ -2388,7 +2376,7 @@ - + @@ -2438,7 +2426,7 @@ - + @@ -2449,9 +2437,9 @@ - + - + @@ -2463,8 +2451,8 @@ - - + + @@ -2473,12 +2461,12 @@ - + - + @@ -2486,7 +2474,7 @@ - + @@ -2496,7 +2484,7 @@ - + @@ -2511,8 +2499,7 @@ - - + @@ -2520,53 +2507,52 @@ - + - + - + - + - - + + - + - + - - - + + - + - + - + - + @@ -2588,7 +2574,7 @@ - + @@ -2598,7 +2584,7 @@ - + @@ -2612,7 +2598,7 @@ - + @@ -2648,14 +2634,14 @@ - + - - + + diff --git a/images/ligset-IDRS-1.dark.svg b/images/ligset-IDRS-1.dark.svg index 5fc7b9f12e..d2c32b902b 100644 --- a/images/ligset-IDRS-1.dark.svg +++ b/images/ligset-IDRS-1.dark.svg @@ -79,23 +79,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -534,70 +536,70 @@ - + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + \ No newline at end of file diff --git a/images/ligset-IDRS-1.light.svg b/images/ligset-IDRS-1.light.svg index dc2ec4b6c7..a61386c2d2 100644 --- a/images/ligset-IDRS-1.light.svg +++ b/images/ligset-IDRS-1.light.svg @@ -79,23 +79,25 @@ - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -534,70 +536,70 @@ - + - - - + + + - - + + - - + + - - + + - - - + + + - - + + - - + + - - + + - - + + - - + + - - - + + + \ No newline at end of file diff --git a/images/package-sample-Iosevka.dark.svg b/images/package-sample-Iosevka.dark.svg index 1be8482cbd..64049850d4 100644 --- a/images/package-sample-Iosevka.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-Iosevka.light.svg b/images/package-sample-Iosevka.light.svg index 32255b0f4a..ddabcc80b5 100644 --- a/images/package-sample-Iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaAile.dark.svg b/images/package-sample-IosevkaAile.dark.svg index c67defb4a0..aa6aecd7ca 100644 --- a/images/package-sample-IosevkaAile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -82,15 +82,15 @@ - - - - - - - - - + + + + + + + + + @@ -121,7 +121,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaAile.light.svg b/images/package-sample-IosevkaAile.light.svg index 92d67a92a3..f7458f1370 100644 --- a/images/package-sample-IosevkaAile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -82,15 +82,15 @@ - - - - - - - - - + + + + + + + + + @@ -121,7 +121,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg index 4309403eeb..e90b9d4714 100644 --- a/images/package-sample-IosevkaCurly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaCurly.light.svg b/images/package-sample-IosevkaCurly.light.svg index 3da68fd63c..ff968a4aab 100644 --- a/images/package-sample-IosevkaCurly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg index ca09699ec9..eb945e2905 100644 --- a/images/package-sample-IosevkaCurlySlab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaCurlySlab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg index 1067e873ff..cb4e8ffcb2 100644 --- a/images/package-sample-IosevkaCurlySlab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg index 0b9d84e52c..09c9315817 100644 --- a/images/package-sample-IosevkaEtoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -122,7 +122,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaEtoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg index 0fec9443a6..fbee5a8520 100644 --- a/images/package-sample-IosevkaEtoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -122,7 +122,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg index 1be8482cbd..64049850d4 100644 --- a/images/package-sample-IosevkaFixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixed.light.svg b/images/package-sample-IosevkaFixed.light.svg index 32255b0f4a..ddabcc80b5 100644 --- a/images/package-sample-IosevkaFixed.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg index 4309403eeb..e90b9d4714 100644 --- a/images/package-sample-IosevkaFixedCurly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg index 3da68fd63c..ff968a4aab 100644 --- a/images/package-sample-IosevkaFixedCurly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg index ca09699ec9..eb945e2905 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedCurlySlab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg index 1067e873ff..cb4e8ffcb2 100644 --- a/images/package-sample-IosevkaFixedCurlySlab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg index f4b4eeee90..9fed8bbf82 100644 --- a/images/package-sample-IosevkaFixedSS01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg index 3384ce02e5..5398bf3600 100644 --- a/images/package-sample-IosevkaFixedSS01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg index 0df9d47ce9..3f7ccaba23 100644 --- a/images/package-sample-IosevkaFixedSS02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg index 4a49e7f490..9fbc342998 100644 --- a/images/package-sample-IosevkaFixedSS02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg index 06099775b1..cf057ef9c4 100644 --- a/images/package-sample-IosevkaFixedSS03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg index f9a7accdb8..e801e35c7b 100644 --- a/images/package-sample-IosevkaFixedSS03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg index 5003625c06..5e7b971a0a 100644 --- a/images/package-sample-IosevkaFixedSS04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg index 5ab0e75e5d..e668a6c575 100644 --- a/images/package-sample-IosevkaFixedSS04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg index bbae8c3c4a..4c0672dd0d 100644 --- a/images/package-sample-IosevkaFixedSS05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg index 25545ac86e..31b2d5ee83 100644 --- a/images/package-sample-IosevkaFixedSS05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg index 2be031e02f..f33091247f 100644 --- a/images/package-sample-IosevkaFixedSS06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg index 6e5900ab2a..0e0f7a1e19 100644 --- a/images/package-sample-IosevkaFixedSS06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg index b0bc2ad36e..aa5a85fef0 100644 --- a/images/package-sample-IosevkaFixedSS07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg index f056ebe7b6..72b3c5450c 100644 --- a/images/package-sample-IosevkaFixedSS07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg index db978d515a..3c0aafe930 100644 --- a/images/package-sample-IosevkaFixedSS08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg index 8aeec2023d..07b18824b1 100644 --- a/images/package-sample-IosevkaFixedSS08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg index 8c6312b4fb..ff6c652d25 100644 --- a/images/package-sample-IosevkaFixedSS09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg index 7d05adea50..9181cafe9b 100644 --- a/images/package-sample-IosevkaFixedSS09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg index 1bd91ccd52..61ee49221c 100644 --- a/images/package-sample-IosevkaFixedSS10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg index 92f839b93c..cfef2a23c3 100644 --- a/images/package-sample-IosevkaFixedSS10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg index 002fc3077a..645fc32c10 100644 --- a/images/package-sample-IosevkaFixedSS11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg index 82158f7e10..ec3fbdd9df 100644 --- a/images/package-sample-IosevkaFixedSS11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg index ae1212d54e..21d77c4cfc 100644 --- a/images/package-sample-IosevkaFixedSS12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg index 5244fb8ecd..fc2591f691 100644 --- a/images/package-sample-IosevkaFixedSS12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg index 4baf99cc3b..e14222f6e8 100644 --- a/images/package-sample-IosevkaFixedSS13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg index cce48e1ec9..ba317500cd 100644 --- a/images/package-sample-IosevkaFixedSS13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg index 88ed065944..0d57e2d6fd 100644 --- a/images/package-sample-IosevkaFixedSS14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg index 3a58267df8..784d7c5a66 100644 --- a/images/package-sample-IosevkaFixedSS14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg index 3ecadd6870..ac45ef605e 100644 --- a/images/package-sample-IosevkaFixedSS15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg index 23a0ade32f..e5a96725bb 100644 --- a/images/package-sample-IosevkaFixedSS15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg index a7f39316dd..3c8546c5ab 100644 --- a/images/package-sample-IosevkaFixedSS16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg index 2465ba7025..211e448e1e 100644 --- a/images/package-sample-IosevkaFixedSS16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg index 35bdb7b8c9..d282bad2d5 100644 --- a/images/package-sample-IosevkaFixedSS17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg index a1bc1431d2..8397187794 100644 --- a/images/package-sample-IosevkaFixedSS17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg index 50d9888bf8..d4cb9e018d 100644 --- a/images/package-sample-IosevkaFixedSS18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSS18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg index aaebb36cea..2e41fb2494 100644 --- a/images/package-sample-IosevkaFixedSS18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg index e7f8b5420f..7deb1c4c8d 100644 --- a/images/package-sample-IosevkaFixedSlab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaFixedSlab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg index aba7617daa..c125dd8efb 100644 --- a/images/package-sample-IosevkaFixedSlab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg index f4b4eeee90..9fed8bbf82 100644 --- a/images/package-sample-IosevkaSS01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS01.light.svg b/images/package-sample-IosevkaSS01.light.svg index 3384ce02e5..5398bf3600 100644 --- a/images/package-sample-IosevkaSS01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg index 0df9d47ce9..3f7ccaba23 100644 --- a/images/package-sample-IosevkaSS02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS02.light.svg b/images/package-sample-IosevkaSS02.light.svg index 4a49e7f490..9fbc342998 100644 --- a/images/package-sample-IosevkaSS02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg index 06099775b1..cf057ef9c4 100644 --- a/images/package-sample-IosevkaSS03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS03.light.svg b/images/package-sample-IosevkaSS03.light.svg index f9a7accdb8..e801e35c7b 100644 --- a/images/package-sample-IosevkaSS03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg index 5003625c06..5e7b971a0a 100644 --- a/images/package-sample-IosevkaSS04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS04.light.svg b/images/package-sample-IosevkaSS04.light.svg index 5ab0e75e5d..e668a6c575 100644 --- a/images/package-sample-IosevkaSS04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg index bbae8c3c4a..4c0672dd0d 100644 --- a/images/package-sample-IosevkaSS05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS05.light.svg b/images/package-sample-IosevkaSS05.light.svg index 25545ac86e..31b2d5ee83 100644 --- a/images/package-sample-IosevkaSS05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg index 2be031e02f..f33091247f 100644 --- a/images/package-sample-IosevkaSS06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS06.light.svg b/images/package-sample-IosevkaSS06.light.svg index 6e5900ab2a..0e0f7a1e19 100644 --- a/images/package-sample-IosevkaSS06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg index b0bc2ad36e..aa5a85fef0 100644 --- a/images/package-sample-IosevkaSS07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS07.light.svg b/images/package-sample-IosevkaSS07.light.svg index f056ebe7b6..72b3c5450c 100644 --- a/images/package-sample-IosevkaSS07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg index db978d515a..3c0aafe930 100644 --- a/images/package-sample-IosevkaSS08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS08.light.svg b/images/package-sample-IosevkaSS08.light.svg index 8aeec2023d..07b18824b1 100644 --- a/images/package-sample-IosevkaSS08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg index 8c6312b4fb..ff6c652d25 100644 --- a/images/package-sample-IosevkaSS09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS09.light.svg b/images/package-sample-IosevkaSS09.light.svg index 7d05adea50..9181cafe9b 100644 --- a/images/package-sample-IosevkaSS09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg index 1bd91ccd52..61ee49221c 100644 --- a/images/package-sample-IosevkaSS10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaSS10.light.svg b/images/package-sample-IosevkaSS10.light.svg index 92f839b93c..cfef2a23c3 100644 --- a/images/package-sample-IosevkaSS10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg index 002fc3077a..645fc32c10 100644 --- a/images/package-sample-IosevkaSS11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS11.light.svg b/images/package-sample-IosevkaSS11.light.svg index 82158f7e10..ec3fbdd9df 100644 --- a/images/package-sample-IosevkaSS11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg index ae1212d54e..21d77c4cfc 100644 --- a/images/package-sample-IosevkaSS12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS12.light.svg b/images/package-sample-IosevkaSS12.light.svg index 5244fb8ecd..fc2591f691 100644 --- a/images/package-sample-IosevkaSS12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg index 4baf99cc3b..e14222f6e8 100644 --- a/images/package-sample-IosevkaSS13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS13.light.svg b/images/package-sample-IosevkaSS13.light.svg index cce48e1ec9..ba317500cd 100644 --- a/images/package-sample-IosevkaSS13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg index 88ed065944..0d57e2d6fd 100644 --- a/images/package-sample-IosevkaSS14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS14.light.svg b/images/package-sample-IosevkaSS14.light.svg index 3a58267df8..784d7c5a66 100644 --- a/images/package-sample-IosevkaSS14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg index 3ecadd6870..ac45ef605e 100644 --- a/images/package-sample-IosevkaSS15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS15.light.svg b/images/package-sample-IosevkaSS15.light.svg index 23a0ade32f..e5a96725bb 100644 --- a/images/package-sample-IosevkaSS15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg index a7f39316dd..3c8546c5ab 100644 --- a/images/package-sample-IosevkaSS16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS16.light.svg b/images/package-sample-IosevkaSS16.light.svg index 2465ba7025..211e448e1e 100644 --- a/images/package-sample-IosevkaSS16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg index 35bdb7b8c9..d282bad2d5 100644 --- a/images/package-sample-IosevkaSS17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS17.light.svg b/images/package-sample-IosevkaSS17.light.svg index a1bc1431d2..8397187794 100644 --- a/images/package-sample-IosevkaSS17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg index 50d9888bf8..d4cb9e018d 100644 --- a/images/package-sample-IosevkaSS18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSS18.light.svg b/images/package-sample-IosevkaSS18.light.svg index aaebb36cea..2e41fb2494 100644 --- a/images/package-sample-IosevkaSS18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg index e7f8b5420f..7deb1c4c8d 100644 --- a/images/package-sample-IosevkaSlab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaSlab.light.svg b/images/package-sample-IosevkaSlab.light.svg index aba7617daa..c125dd8efb 100644 --- a/images/package-sample-IosevkaSlab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.dark.svg b/images/package-sample-IosevkaTerm.dark.svg index 1be8482cbd..64049850d4 100644 --- a/images/package-sample-IosevkaTerm.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTerm.light.svg b/images/package-sample-IosevkaTerm.light.svg index 32255b0f4a..ddabcc80b5 100644 --- a/images/package-sample-IosevkaTerm.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg index 4309403eeb..e90b9d4714 100644 --- a/images/package-sample-IosevkaTermCurly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg index 3da68fd63c..ff968a4aab 100644 --- a/images/package-sample-IosevkaTermCurly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg index ca09699ec9..eb945e2905 100644 --- a/images/package-sample-IosevkaTermCurlySlab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermCurlySlab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg index 1067e873ff..cb4e8ffcb2 100644 --- a/images/package-sample-IosevkaTermCurlySlab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg index f4b4eeee90..9fed8bbf82 100644 --- a/images/package-sample-IosevkaTermSS01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg index 3384ce02e5..5398bf3600 100644 --- a/images/package-sample-IosevkaTermSS01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg index 0df9d47ce9..3f7ccaba23 100644 --- a/images/package-sample-IosevkaTermSS02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg index 4a49e7f490..9fbc342998 100644 --- a/images/package-sample-IosevkaTermSS02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg index 06099775b1..cf057ef9c4 100644 --- a/images/package-sample-IosevkaTermSS03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg index f9a7accdb8..e801e35c7b 100644 --- a/images/package-sample-IosevkaTermSS03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg index 5003625c06..5e7b971a0a 100644 --- a/images/package-sample-IosevkaTermSS04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg index 5ab0e75e5d..e668a6c575 100644 --- a/images/package-sample-IosevkaTermSS04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg index bbae8c3c4a..4c0672dd0d 100644 --- a/images/package-sample-IosevkaTermSS05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg index 25545ac86e..31b2d5ee83 100644 --- a/images/package-sample-IosevkaTermSS05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg index 2be031e02f..f33091247f 100644 --- a/images/package-sample-IosevkaTermSS06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg index 6e5900ab2a..0e0f7a1e19 100644 --- a/images/package-sample-IosevkaTermSS06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg index b0bc2ad36e..aa5a85fef0 100644 --- a/images/package-sample-IosevkaTermSS07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg index f056ebe7b6..72b3c5450c 100644 --- a/images/package-sample-IosevkaTermSS07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg index db978d515a..3c0aafe930 100644 --- a/images/package-sample-IosevkaTermSS08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg index 8aeec2023d..07b18824b1 100644 --- a/images/package-sample-IosevkaTermSS08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg index 8c6312b4fb..ff6c652d25 100644 --- a/images/package-sample-IosevkaTermSS09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg index 7d05adea50..9181cafe9b 100644 --- a/images/package-sample-IosevkaTermSS09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg index 1bd91ccd52..61ee49221c 100644 --- a/images/package-sample-IosevkaTermSS10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg index 92f839b93c..cfef2a23c3 100644 --- a/images/package-sample-IosevkaTermSS10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -288,7 +288,7 @@ - + @@ -308,15 +308,15 @@ - - - - - + + + + + - - + + @@ -341,7 +341,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg index 002fc3077a..645fc32c10 100644 --- a/images/package-sample-IosevkaTermSS11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg index 82158f7e10..ec3fbdd9df 100644 --- a/images/package-sample-IosevkaTermSS11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg index ae1212d54e..21d77c4cfc 100644 --- a/images/package-sample-IosevkaTermSS12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg index 5244fb8ecd..fc2591f691 100644 --- a/images/package-sample-IosevkaTermSS12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg index 4baf99cc3b..e14222f6e8 100644 --- a/images/package-sample-IosevkaTermSS13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg index cce48e1ec9..ba317500cd 100644 --- a/images/package-sample-IosevkaTermSS13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg index 88ed065944..0d57e2d6fd 100644 --- a/images/package-sample-IosevkaTermSS14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg index 3a58267df8..784d7c5a66 100644 --- a/images/package-sample-IosevkaTermSS14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg index 3ecadd6870..ac45ef605e 100644 --- a/images/package-sample-IosevkaTermSS15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg index 23a0ade32f..e5a96725bb 100644 --- a/images/package-sample-IosevkaTermSS15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg index a7f39316dd..3c8546c5ab 100644 --- a/images/package-sample-IosevkaTermSS16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg index 2465ba7025..211e448e1e 100644 --- a/images/package-sample-IosevkaTermSS16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg index 35bdb7b8c9..d282bad2d5 100644 --- a/images/package-sample-IosevkaTermSS17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg index a1bc1431d2..8397187794 100644 --- a/images/package-sample-IosevkaTermSS17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -286,7 +286,7 @@ - + @@ -306,15 +306,15 @@ - - - - - + + + + + - - + + @@ -339,7 +339,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg index 50d9888bf8..d4cb9e018d 100644 --- a/images/package-sample-IosevkaTermSS18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSS18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg index aaebb36cea..2e41fb2494 100644 --- a/images/package-sample-IosevkaTermSS18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -285,7 +285,7 @@ - + @@ -305,15 +305,15 @@ - - - - - + + + + + - - + + @@ -338,7 +338,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg index e7f8b5420f..7deb1c4c8d 100644 --- a/images/package-sample-IosevkaTermSlab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/package-sample-IosevkaTermSlab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg index aba7617daa..c125dd8efb 100644 --- a/images/package-sample-IosevkaTermSlab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -287,7 +287,7 @@ - + @@ -307,15 +307,15 @@ - - - - - + + + + + - - + + @@ -340,7 +340,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index a53206c89d..6a4f6aec0b 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -290,7 +290,7 @@ - + @@ -310,15 +310,15 @@ - - - - - + + + + + - - + + @@ -346,7 +346,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index c6d8fa03d9..3bf4d8019a 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -290,7 +290,7 @@ - + @@ -310,15 +310,15 @@ - - - - - + + + + + - - + + @@ -346,7 +346,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index f11737513e..46a77b8651 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -448,33 +448,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -520,7 +519,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index 9441a48f04..61b261ac1e 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -448,33 +448,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -520,7 +519,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index b381054071..b2203a1550 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -524,31 +524,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -590,7 +590,7 @@ - + @@ -658,13 +658,15 @@ - + - + + + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index bc6e5d183d..1729ba601c 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -524,31 +524,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -590,7 +590,7 @@ - + @@ -658,13 +658,15 @@ - + - + + + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 8b3b03320f..599d0ed726 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -428,33 +428,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -500,7 +499,7 @@ - + @@ -553,26 +552,22 @@ - + - - - + - + - - - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 9f2066b3da..c81de58638 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -428,33 +428,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -500,7 +499,7 @@ - + @@ -553,26 +552,22 @@ - + - - - + - + - - - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 250b3612f8..0b86ad1321 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -501,33 +501,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -575,7 +574,7 @@ - + @@ -640,22 +639,26 @@ - + - + + + - + - + + + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index fa6a8359de..e237ee1865 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -501,33 +501,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -575,7 +574,7 @@ - + @@ -640,22 +639,26 @@ - + - + + + - + - + + + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index fc96fba2bd..3c136a2485 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -451,33 +451,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -525,7 +524,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 35ce5fc976..cf519648c0 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -451,33 +451,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -525,7 +524,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 12855a1764..c07f395455 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -505,31 +505,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -579,7 +579,7 @@ - + @@ -652,7 +652,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 08c0bedc19..93019d9045 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -505,31 +505,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -579,7 +579,7 @@ - + @@ -652,7 +652,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 3d330cac91..878bf889ca 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -446,7 +446,7 @@ - + @@ -455,25 +455,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -523,7 +523,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index a22259fbc8..b2dd3ac1fb 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -446,7 +446,7 @@ - + @@ -455,25 +455,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -523,7 +523,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index c42c1cb603..d5b7c87550 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -482,7 +482,7 @@ - + @@ -490,25 +490,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -564,7 +564,7 @@ - + @@ -631,7 +631,7 @@ - + @@ -640,12 +640,10 @@ - + - - - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index 20bef384c2..c3565d48db 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -482,7 +482,7 @@ - + @@ -490,25 +490,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -564,7 +564,7 @@ - + @@ -631,7 +631,7 @@ - + @@ -640,12 +640,10 @@ - + - - - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 79d2d81076..3d811144b5 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -453,7 +453,7 @@ - + @@ -461,25 +461,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -523,7 +523,7 @@ - + @@ -573,15 +573,13 @@ - + - - - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index ba162dbf94..70063f447f 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -453,7 +453,7 @@ - + @@ -461,25 +461,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -523,7 +523,7 @@ - + @@ -573,15 +573,13 @@ - + - - - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 1b8a987d75..a60f7da68a 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -416,33 +416,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -480,7 +479,7 @@ - + @@ -537,15 +536,21 @@ - + - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index bff97e4c3e..831cbc6d83 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -416,33 +416,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -480,7 +479,7 @@ - + @@ -537,15 +536,21 @@ - + - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index e0bd82a8da..54b15dbc15 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -386,7 +386,7 @@ - + @@ -394,28 +394,29 @@ + - - + + - - - - - + + + + + - - - - + + - + + + + - - + @@ -460,7 +461,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 25f5a598bb..b0ac8a3162 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -386,7 +386,7 @@ - + @@ -394,28 +394,29 @@ + - - + + - - - - - + + + + + - - - - + + - + + + + - - + @@ -460,7 +461,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index eac7016aa7..aec681adbf 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -466,33 +466,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -538,7 +537,7 @@ - + @@ -597,11 +596,9 @@ - + - - - + @@ -615,12 +612,10 @@ - + - - - - + + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index a6e379b8e7..66a605893e 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -466,33 +466,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -538,7 +537,7 @@ - + @@ -597,11 +596,9 @@ - + - - - + @@ -615,12 +612,10 @@ - + - - - - + + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index ad729c6d79..ea2d4a1b85 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -498,31 +498,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -564,7 +564,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index 88be4e7a94..c9cff6c6c5 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -498,31 +498,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -564,7 +564,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index 6c4b3d466c..4ee49c03a0 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -455,7 +455,7 @@ - + @@ -463,25 +463,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -531,7 +531,7 @@ - + @@ -603,9 +603,11 @@ - + - + + + @@ -613,11 +615,15 @@ - + - - - + + + + + + + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index 6f19813e5d..f7d57a11b3 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -455,7 +455,7 @@ - + @@ -463,25 +463,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -531,7 +531,7 @@ - + @@ -603,9 +603,11 @@ - + - + + + @@ -613,11 +615,15 @@ - + - - - + + + + + + + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 19baa5add7..2eee0daaa6 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -459,33 +459,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -525,7 +524,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index 0a40b20645..8821470a94 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -459,33 +459,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -525,7 +524,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index fd39a71c46..adbcdce6e1 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -493,33 +493,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -567,7 +566,7 @@ - + @@ -629,12 +628,14 @@ - + - + + + @@ -642,12 +643,16 @@ - + - - - + + + + + + + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 9a058949e5..7610b1666a 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -493,33 +493,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -567,7 +566,7 @@ - + @@ -629,12 +628,14 @@ - + - + + + @@ -642,12 +643,16 @@ - + - - - + + + + + + + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index cdb3b7ca90..428130b282 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -537,33 +537,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -615,7 +614,7 @@ - + @@ -687,22 +686,26 @@ - + - + + + - + - + + + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index f8b8b3ea84..7a4038e662 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -537,33 +537,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -615,7 +614,7 @@ - + @@ -687,22 +686,26 @@ - + - + + + - + - + + + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index ac094676c5..1aab82ff44 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -454,33 +454,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -520,7 +519,7 @@ - + @@ -584,11 +583,9 @@ - + - - - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index 2dab75bd51..9ac5593d61 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -454,33 +454,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -520,7 +519,7 @@ - + @@ -584,11 +583,9 @@ - + - - - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index 1a4a7d3f0c..ff9e32f9bf 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -363,7 +363,7 @@ - + @@ -374,15 +374,15 @@ - - - - - + + + + + - - + + @@ -410,7 +410,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 53a4878a32..4ee0addb85 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -363,7 +363,7 @@ - + @@ -374,15 +374,15 @@ - - - - - + + + + + - - + + @@ -410,7 +410,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index 53ceebc711..79effc79ec 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -291,7 +291,7 @@ - + @@ -311,15 +311,15 @@ - - - - - + + + + + - - + + @@ -347,7 +347,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index dcb5b4ae23..adf6adef78 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -291,7 +291,7 @@ - + @@ -311,15 +311,15 @@ - - - - - + + + + + - - + + @@ -347,7 +347,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index bf715dfbb4..05217806c2 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -430,33 +430,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -502,7 +501,7 @@ - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index 8722fbf309..0a196bbef4 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -430,33 +430,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -502,7 +501,7 @@ - + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index e57e245cba..93891deb37 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -506,31 +506,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -572,7 +572,7 @@ - + @@ -636,13 +636,15 @@ - + - + + + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index c80642620b..5f612f4582 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -506,31 +506,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -572,7 +572,7 @@ - + @@ -636,13 +636,15 @@ - + - + + + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 57197f7615..b51f23c84b 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -418,33 +418,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -490,7 +489,7 @@ - + @@ -541,26 +540,22 @@ - + - - - + - + - - - + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index 6dda8d1fe2..6ba6adba54 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -418,33 +418,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -490,7 +489,7 @@ - + @@ -541,26 +540,22 @@ - + - - - + - + - - - + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index b7afd4e6db..1165d88f7d 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -495,33 +495,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -569,7 +568,7 @@ - + @@ -630,22 +629,26 @@ - + - + + + - + - + + + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index cba001e760..61044ab186 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -495,33 +495,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -569,7 +568,7 @@ - + @@ -630,22 +629,26 @@ - + - + + + - + - + + + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index 5aa7db14b0..9bc2416c45 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -437,33 +437,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -511,7 +510,7 @@ - + @@ -558,15 +557,13 @@ - + - - - + @@ -577,15 +574,11 @@ - + - - - - - - - + + + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 11a553aad0..4afcdb2bbe 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -437,33 +437,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -511,7 +510,7 @@ - + @@ -558,15 +557,13 @@ - + - - - + @@ -577,15 +574,11 @@ - + - - - - - - - + + + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index b8f4a7be44..efdea6b780 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -497,31 +497,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -571,7 +571,7 @@ - + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index 4bd72e6873..a558ce4b48 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -497,31 +497,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -571,7 +571,7 @@ - + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index 67b962ab3a..5a25927291 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -432,7 +432,7 @@ - + @@ -441,25 +441,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -509,7 +509,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 8beb57558b..e0f14ce0c4 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -432,7 +432,7 @@ - + @@ -441,25 +441,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -509,7 +509,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index f42f72c3b1..b02e50081d 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -468,7 +468,7 @@ - + @@ -476,25 +476,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -550,7 +550,7 @@ - + @@ -616,7 +616,7 @@ - + @@ -625,12 +625,10 @@ - + - - - + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index 9450b79f2f..cb396efab1 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -468,7 +468,7 @@ - + @@ -476,25 +476,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -550,7 +550,7 @@ - + @@ -616,7 +616,7 @@ - + @@ -625,12 +625,10 @@ - + - - - + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index a7f25c3d88..9b2a555e99 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -447,7 +447,7 @@ - + @@ -455,25 +455,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -517,7 +517,7 @@ - + @@ -565,15 +565,13 @@ - + - - - + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index cf7e69b9da..122e9ee4ff 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -447,7 +447,7 @@ - + @@ -455,25 +455,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -517,7 +517,7 @@ - + @@ -565,15 +565,13 @@ - + - - - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index 0aea7dc29a..b39598df84 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -417,33 +417,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -481,7 +480,7 @@ - + @@ -538,15 +537,21 @@ - + - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index c45d7559a2..5cf148a59e 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -417,33 +417,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -481,7 +480,7 @@ - + @@ -538,15 +537,21 @@ - + - - - - - - - + + + + + + + + + + + + + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index 4cc04c8fa0..e4d2b790f7 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -387,7 +387,7 @@ - + @@ -395,28 +395,29 @@ + - - + + - - - - - + + + + + - - - - + + - + + + + - - + @@ -461,7 +462,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index cd9417ea66..feba2fde80 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -387,7 +387,7 @@ - + @@ -395,28 +395,29 @@ + - - + + - - - - - + + + + + - - - - + + - + + + + - - + @@ -461,7 +462,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 84fa6609ef..b825025fe6 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -479,33 +479,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -551,7 +550,7 @@ - + @@ -611,11 +610,9 @@ - + - - - + @@ -629,12 +626,10 @@ - + - - - - + + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index ecb57f0456..4288656181 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -479,33 +479,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -551,7 +550,7 @@ - + @@ -611,11 +610,9 @@ - + - - - + @@ -629,12 +626,10 @@ - + - - - - + + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index 57d034a59c..9ff1cec0a6 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -490,31 +490,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -556,7 +556,7 @@ - + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index 9a9d5ddb96..6644f3f8f0 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,7 +117,7 @@ - + @@ -490,31 +490,31 @@ - + + - - + + - - - - - + + + + + - - - + + - - + + @@ -556,7 +556,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 7f6f004a7c..ac13ce5aea 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -448,7 +448,7 @@ - + @@ -456,25 +456,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -524,7 +524,7 @@ - + @@ -599,9 +599,11 @@ - + - + + + @@ -609,11 +611,15 @@ - + - - - + + + + + + + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 22b5c29762..03580f42fc 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -448,7 +448,7 @@ - + @@ -456,25 +456,25 @@ + - - + + - - - - - + + + + + - - - + + - - + + @@ -524,7 +524,7 @@ - + @@ -599,9 +599,11 @@ - + - + + + @@ -609,11 +611,15 @@ - + - - - + + + + + + + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index b007157842..30081ded01 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -445,33 +445,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -515,7 +514,7 @@ - + @@ -576,17 +575,19 @@ - + - + - + + + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index 267b34a2c3..44b51195a7 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -445,33 +445,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -515,7 +514,7 @@ - + @@ -576,17 +575,19 @@ - + - + - + + + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index e5ea1de9e2..aba13e8e1f 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -493,33 +493,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -567,7 +566,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index a56e0e406d..bfc908c6be 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,11 +117,11 @@ - + - + @@ -493,33 +493,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -567,7 +566,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index ef3f9cf80c..f5a2b38e8b 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -516,33 +516,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -594,7 +593,7 @@ - + @@ -661,22 +660,26 @@ - + - + + + - + - + + + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index ada5783461..765ea42dfe 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -516,33 +516,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -594,7 +593,7 @@ - + @@ -661,22 +660,26 @@ - + - + + + - + - + + + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index 9b02005863..5126969c4b 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -440,33 +440,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -506,7 +505,7 @@ - + @@ -567,11 +566,9 @@ - + - - - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index 328033aa61..adb6ea54c7 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -440,33 +440,32 @@ - + + - - + + - - - - + + + + - + - - - - + + - - + + @@ -506,7 +505,7 @@ - + @@ -567,11 +566,9 @@ - + - - - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index 7a85907749..867f7e1d8b 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -368,7 +368,7 @@ - + @@ -379,15 +379,15 @@ - - - - - + + + + + - - + + @@ -415,7 +415,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index 9e2cd0441e..3cf520599c 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -83,15 +83,15 @@ - - - - - - - - - + + + + + + + + + @@ -117,12 +117,12 @@ - + - + @@ -368,7 +368,7 @@ - + @@ -379,15 +379,15 @@ - - - - - + + + + + - - + + @@ -415,7 +415,7 @@ - +